第1章 概览
1. 信息安全的定义(六点)
- 保密性:对信息访问和公开进行授权限制。e.g. A要保证只有B能收到A的转账单,即使第三者收到,也不知道转账单的细节。
- 完整性:防止对信息的不恰当修改或破坏。e.g. A和B要保证别人不会篡改转账单内容。
- 可用性:确保对信息的及时和可靠的访问和使用。e.g.¡由于某个非授权用户C盗窃和修改了A的个人银行账号,使无法给B开出合法的转账单。
- 真实性:信息和信息的来源是正确的。e.g. B要保证转账单是来自A,而不是别人假装A (否则是假转账单)。
- 不可抵赖:防止发送方和接收方拒绝承认发送和接受过某条信息。e.g.¡如果B把转账单的100元转入B的账号中,钱从A账号转到B账号之后,A 否认签发了转账单呢?法院要用A的签名否认A的抵账,解决争端。
- 访问控制:限制和控制通过通信连接对主机和应用进行访问。e.g. 指定允许B浏览A开出的转账单,但不能更改转账单的信息。而A则可以更改转账单的信息。而A则可以更改转账单的信息。
2. OSI安全框架(三点):
(1)安全攻击:任何危及信息系统安全的行为。
- 被动攻击:对传输进行窃听和监测。攻击者的目标是获得传输的信息。e.g.信息内容的泄漏、流量分析。
- 主动攻击:对数据流进行修改或伪造数据流,e.g.伪装、重播、消息修改、拒绝服务。
(2)安全机制:用来检测、阻止攻击或者从攻击状态恢复到正常状态的过程。
- 加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证
(3)安全服务:加强数据处理系统和信息传输的安全性的一种处理过程或通信服务。
- 认证、访问控制、数据保密性、数据完整性、不可否认性、可用性服务
第2章 传统加密技术
1. 对称密码的基本成分(五点):
2. 密码算法中的两个基本函数:
3. 密码编码学系统的三个特征:
(1)转换明文为密文的运算类型(加密算法的两个基本原理)
- 代替:将明文中的每个元素映射成另一个元素;
- 置换:将明文的元素重新排列。
(2)所用的密钥数(对称密码与非对称密码的区别)
- 对称密码(传统密码):发送方和接收方使用相同的密钥;
- 非对称密码(公钥密码):发收双方使用不同的密钥。
(3)处理明文的方法(分组密码和流密码的区别)
- 分组密码:每次处理输入的一组元素,相应地输出一组元素。分组密码的优势之一是可以重复使用密钥。
- 流密码:连续地处理输入元素,每次输出一个元素。流密码的优势在于不使用块密码作为构建块,比分组密码会更快,代码更短。
4. 攻击密码的两种一般方法:
- 密码分析学:利用算法的性质来推导出特定的明文或使用的密钥。
- 穷举攻击:尝试所有可能的密钥。
5. 基于攻击者所知道信息的密码分析攻击类型(五种):
- 唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击、选择文本攻击
6. 四种代替密码:
(1)Caesar密码(一种单表代替密码):对字母表中的每个字母,用它之后的第3个字母来代替。
(2)Vigenere密码(一种多表代替密码):代替规则由26个Caesar密码的代替表组成,其中每一个代替表是对明文字母表移位0~25次后得到的代替单表。
(3)Playfair密码(一种多字母代替密码):基于一个由密钥词构成的5*5字母矩阵,把明文中的双字母音节作为一个单元并将其转换成密文的“双字母音节”。
(4)Hill密码:用m个线性等式将m个连续的明文字母替换成m个密文字母。
7. 一次一密的两个问题(难点):
- 产生大规模随机密钥有实际困难。
- 更令人担忧的是密钥的分配和保护。
8. 隐藏明文信息的两种方法:
- 隐写术:隐藏信息的存在。
- 密码学:通过对明文信息的不同转换而实现信息的对外不可读。
第3章 分组密码和数据加密标准
1. 乘积密码:依次使用两个或两个以上基本密码,所得结果的密码强度将强于所有单个密码的强度。
2. 扩散与混淆的区别
- 扩散:尽可能使明文和密文间的统计关系变得复杂,以挫败推导出密钥的企图;
- 混淆:尽可能使密文和加密密钥间的统计关系变得复杂,以阻止攻击者发现密钥。
3. Feistel密码具体实现所依赖的参数和特征
- 分组长度:分组越长意味着安全性越高,但是会降低加、解密的速度。
- 密钥长度:密钥较长意味着安全性较高,但是会降低加、解密的速度。
- 迭代轮数:Feistel密码的本质在于单轮不能提供足够的安全性而多轮加密可取得很高的安全性。
- 子密钥产生算法:子密钥产生越复杂,密码分析就越困难。
- 轮函数F:轮函数越复杂,抗攻击的能力就越强。
4. Feistel密码结构的互逆性

对于加密过程有
;
对于解密算法有
![RD_1=LD_0\oplus F(RD_0, K_{16})=RE_{16}\oplus F(RE_{15}, H_{16})\\=[LE_{15}\oplus F(RE_{15}, K_{16})]\oplus F(RE_{15}, K_{16})\\=LE_{15}\oplus [F(RE_{15}, K_{16})\oplus F(RE_{15}, K_{16})]\\=LE_{15}\oplus 0\\=LE_{15}](https://private.codecogs.com/gif.latex?RD_1%3DLD_0%5Coplus%20F%28RD_0%2C%20K_%7B16%7D%29%3DRE_%7B16%7D%5Coplus%20F%28RE_%7B15%7D%2C%20H_%7B16%7D%29%5C%5C%3D%5BLE_%7B15%7D%5Coplus%20F%28RE_%7B15%7D%2C%20K_%7B16%7D%29%5D%5Coplus%20F%28RE_%7B15%7D%2C%20K_%7B16%7D%29%5C%5C%3DLE_%7B15%7D%5Coplus%20%5BF%28RE_%7B15%7D%2C%20K_%7B16%7D%29%5Coplus%20F%28RE_%7B15%7D%2C%20K_%7B16%7D%29%5D%5C%5C%3DLE_%7B15%7D%5Coplus%200%5C%5C%3DLE_%7B15%7D)
5. 雪崩效应:明文或密钥的某一位发生变化会导致密文的很多位发生变化。
第5章 高级加密标准
1. AES加密算法的四个阶段
- 字节代替:用一个 S 盒完成分组的字节到字节的替代。 其中,高四位作为检索的行号,低四位作为检索的列号。
- 行移位:将状态数组的第
行左移
个字节(
)。
- 列混淆:利用域
上的加法和乘法的一个代替。
- 轮密钥加:将状态数组的每一列与当前轮的扩展密钥的每个字做异或运算。
2. 密钥扩展算法
密钥的第一个字为上一轮的第一个字和上一轮的最后一个字的g函数值做异或运算得结果;其余字由前一个字和上一轮对应的字做异或运算得到。g函数的三个步骤如下:
- 字循环:一个字(4字节)循环左移一个字节。
- 字代替:使用S盒对输入字的每个字节进行字节代替。
- 轮常量异或:将上面的结果与轮常量相异或。
第6章 分组密码的工作模式
1. 分组密码的工作模式
(1)电码本(ECB):用相同的密钥分别对明文分组独立加密。

(2)密文分组链接(CBC):加密算法的输入是上一个密文组和下一个明文组的异或。

(3)密文反馈(CFB):一次处理s位,上一块密文作为加密算法的输入,产生的伪随机数输出与明文异或作为下一单元的密文。

(4)输出反馈(OFB):与CFB类似,只是加密算法的输入是上一次加密的输出,且使用整个分组。

(5)计数器(CTR):每个明文分组都与一个经过加密的计数器相异或。对每个后续分组计数器递增。

第9章 公钥密码学与RSA
1. 公钥密码体制的主要成分
2. 公钥密码体制的三种应用:
3. 公钥密码体制索要满足的要求
- 密钥的产生在计算上是容易的;
- 密文的产生在计算上是容易的;
- 明文的恢复在计算上是容易的;
- 已知公钥,攻击者要确定私钥在计算上是不可行的;
- 已知公钥和密文,攻击者要恢复明文在计算上是不可行的。
4. RSA的加密和解密过程

其中
为明文,
为密文,
(
为大素数),
满足
.
5. 挑选素数的有效过程(素性检验)
- 随机选择一个奇素数
;
- 随机选择一个整数
;
- 执行注入Miller-Rabin之类的概率素数测试。若
未通过测试,则拒绝
,并转到步骤(1);
- 若
通过测试足够多次,则接受
;否则转到步骤(2)。
第10章 密钥管理和其他公钥密码体制
1. Diffie-Hellman密钥交换协议的步骤
- 选取大素数
和它的一个本原根
,这些参数公开;
- A选择随机数
,B选择随机数
;
- A计算
,B计算
;
- 交换
;
- A计算
,B计算
。
2. 中间人攻击
交换Y的过程中,Y有可能被替换假冒,而且不能发现。形式上,可以理解为一个中间人在跟双方同时通信,通信内容在中间人那里是可见的。
密钥交换协议不能抵抗中间人攻击,因为它没有对通信的参与方进行认证。这些缺陷可以通过使用数字签名和公钥证书来克服。
3. 椭圆曲线上的加法
(1)椭圆曲线是一个具有两个变元及系数的方程,其三次方程形如
。椭圆曲线的定义中还包含一个称为无穷远点或零点的元素,记为
.
(2)
是加法的单位元,有
,
.
(3)点
的负元为
,
.
(4)同一直线上的三个点之和为
.
(5)更一般地,对于互不为负元的两个点:

(相当于切线斜率
)
e.g.
4. ECC与RSA的对比:
- RSA基于因子分解难题,而为了提高难度需要加大位数,从而导致计算速度变慢;
- ECC基于离散对数难题,可以用较小的密钥长度达到较高的计算难度。
第11章 密码学Hash函数
1. Hash函数的两个重要应用:
- 消息认证:验证消息完整性的一种机制,确保收到的数据确实和发送时的一样,以及确保发送方声称的身份是真实有效的。消息认证是通过使用消息认证码(MAC)来实现的。MAC函数将通信双方共享的同一密钥和数据块作为输入,产生Hash值作为输出。
- 数字签名:与MAC相似,在进行数字签名过程中使用用户的私钥加密消息的Hash值,其他任何知道该用户公钥的人都能够通过数字签名来验证消息的完整性。
2. 密码学Hash函数的安全性需求:

3. SHA-512步骤
(1)附加填充位。填充消息使其长度模1024与896同余[即长度= 896(mod 1024)],即使消息已经满足上述长度要求,仍然需要进行填充,因此填充位数在1~1024之间。填充由一个1和后续的0组成。
(2)附加长度。在消息后附加一个128位的块,将其视为128位的无符号整数(最高有效字节在前),它包含填充前消息的长度。
(3)初始化Hash缓冲区。Hash函数的中间结果和最终结果保存于512位的缓冲区中,缓冲区用8个64位的寄存器(a, b, c, d, e, f, g, h)表示。
(4)以1024位的分组(128个字节)为单位处理消息。算法的核心是具有80轮运算的模块。
(5)输出。所有的N个1024位分组都处理完以后,从第N阶段输出的是512位的消息摘要。
4. MD5与SHA1的比较
- 散列值长度:MD5为128bits;SHA-1为160bits。
- 安全性:SHA-1好一点,但是SHA-1的设计原则没有公开。
- 速度:SHA-1比MD5慢一些。
第12章 消息认证码
1. 产生认证符的函数类型:
- Hash函数
- 消息加密(可逆)
- 消息认证码(不要求可逆,多对一):基于Hash的MAC(HMAC);基于分组密码的MAC(DAA、CMAC)
2. HMAC将Hash函数视为“黑盒”的两个好处:
- 可对HMAC代码进行封装,有需要时直接使用;
- 若希望替代HMAC中的Hash函数,则只需删去现有的Hash函数模块并加入新模块。
第13章 数字签名
1. 消息认证的两种争议:
- A可以伪造消息并称该消息发自B。
- B可以否认曾发送过某条消息。
2. 消息认证和数字签名的区别:
- 消息认证可以保护信息交换双方不受第三方的攻击;
- 数字签名能够处理通信双方自身发生的攻击。
3. 数字签名的特征(应该具有的性质):
- 必须能验证签名者、签名日期和时间。
- 必须能认证被签的消息内容。
- 应能由第三方仲裁以解决纷争。
4. 数字签名应满足的要求:
- 签名必须是与消息相关的二进制位串。
- 签名必须使用发送方某些独有的信息,以防伪造和否认。
- 产生数字签名比较容易。
- 识别和验证签名比较容易。
- 伪造数字签名在计算上是不可行的。
- 保存数字签名的副本是可行的。
5. 公钥密码加密方案和数字签名方案的对比:
- 加密方案能够使用用户的公钥进行加密,使用用户的私钥进行解密。
- 数字签名方案则是使用用户的私钥进行加密,公钥进行解密。
6. RSA产生数字签名和DSA产生数字签名的区别:
- 在RSA方法中,Hash函数的输入是要签名的消息,输出是定长的Hash码,用发送方的私钥将该Hash码加密形成签名,然后发送消息及其签名。接收方收到消息,计算Hash码。接收方用发送方的公钥对签名解密,如果计算出的Hash码与解密出的结果相同,则认为签名是有效的。因为只有发送方拥有私钥,所以只有发送方能够产生有效的签名。

- DSA方法也使用Hash函数,它产生的Hash码和为此次签名而产生的随机数
作为签名函数的输入,签名函数依赖于发送方的私钥(
)和一组参数,这些参数为一组通信伙伴所共有,我们可以认为这组参数构成全局公钥(
)。签名由两部分组成,标记为
和
。接收方对接收到的消息产生Hash码,这个Hash码和签名一起作为验证函数的输入,验证函数依赖于全局公钥和发送方公钥(
),该发送方公钥同发送方私钥组成密钥对。若验证函数的输出等于签名中的
成分,则签名是有效的。签名函数保证只有拥有私钥的发送方才能产生有效签名。

第14章 密钥管理和分发
1. 密钥分发方案
(1)基于对称加密的对称密钥分发
假设每个用户与密钥分发中心(KDC)共享唯一的主密钥(A与KDC共享
,B与KDC共享
)。
- A向KDC请求一个会话密钥,包括A、B的身份以及临时交互号
(该次传输的唯一标志)。
- KDC返回用
加密的信息(包括会话密钥
、临时交互号
等,临时交互号可以判断先前的请求是否被重放)和用
加密的信息(包括会话密钥
和A的标志
。
- A存储将要使用的会话密钥,把来源于KDC的信息发送给B。
- B使用
加密临时交互号
并将结果发送给A。
- A使用
加密
后发给B,其中
是一个执行
转换的函数。这一步保证B在步骤(3)中收到的信息没有受到重放攻击。
(2)基于非对称加密的对称密钥分发
简单密钥分发方案容易受到中间人攻击,需采取确保保密性和身份认证的密钥分发方案。
- A用B的公钥
去加密包含A的标志符
和一个临时交互号
的消息并发给B。
- B用A的公钥
加密包含A的临时交互号
及B产生的新的临时交互号
的消息发送给A。因为只有B可以解密消息(1),故
在消息(2)中出现可以使A确定该消息来自于B。
- A使用的B的公钥加密后返回
,使B确定消息来自于A。
- A选择会话密钥
,后发送
给B。用B的公钥加密确保只有B可以读取该消息,用A的私钥加密保证只有A可以发送该消息。
- B计算
从而恢复密钥
。
2. 公钥分发方案
(1)公开发布
(2)公开可访问目录
(3)公钥授权
(4)公钥证书
- 任何通信方可以读取证书并确定证书拥有者的姓名和公钥。
- 任何通信方可以验证该证书出自证书管理员,而不是伪造的。
- 只有证书管理员才能产生并更新证书。
- 任何通信方可以验证证书的时效性。
第15章 用户认证
1. 重放攻击的定义
重放攻击是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
2. 重放攻击的例子
- 简单重放:对手只是复制消息然后重放给消息接收者。
- 记录重复:对手在有效的时间窗口中重放一个时间戳消息给消息接收者。
- 截获重放:原始消息被截获不能到达,只有重放消息可以到达消息接收者。
- 无更改的反向重放:这个重放是给消息发送者的,这种攻击可能出现是因为对称加密的使用,或者发送者很难识别消息的发送及接收在内容上的不同。
3. 防止重放攻击的三个方法:
- 序列号。为每一个用于认证交互的消息附上一个序列号,新的消息只有其序列号满足适当的顺序时才会被接收。
- 时间戳:只有当消息中包含一个时间戳时,A才接收该消息。该时间截由A来判断,要接近于A所知的当前时间。该方法要求不同参与者之间的时钟是同步的。
- 挑战/应答:A想要一个来自B的新消息,首先发给B一个临时交互号(询问),并要求后面从B收到的消息(回复)包含正确的临时交互号值。
第17章 传输层安全
1. SSL体系结构所包含的协议:
- SSL记录协议:为SSL连接提供了保密性和信息完整性的服务。记录协议包括四个步骤:(1)分段;(2)对压缩数据计算其消息认证码MAC;(3)将压缩信息和MAC用对称加密方法加密;(4)加上一个SSL头。
- SSL修改密码规范协议:用于更新此连接使用的密码组。
- SSL警报协议:用于向对等实体传递SSL相关的警报。
- SSL握手协议:此协议允许客户端和服务器端相互认证、协商加密和MAC算法,保护数据使用的密钥通过SSL记录传送。握手协议在传递应用数据之前使用。握手协议包括四个阶段:(1)建立安全功能;(2)服务器认证和密钥交换;(3)客户端认证和密钥交换;(4)完成。
2. SSL连接与SSL会话的区别:
- SSL连接:连接是提供合适服务类型的一种传输。对SSL来说,,连接表示的是对等网络关系,且连接是短暂的,每个连接与一个会话相关。
- SSL会话:会话是一个客户端和服务器间的关联,是通过握手协议创建的,定义了一组多个连接共享的密码安全参数。会话可用于减少为每次连接建立安全参数的昂贵协商费用。
3. 安全服务的四个应用
- SSL(安全套接层):为TCP提供可靠的端到端安全服务。
- TLS(传输层安全):编写SSL的互联网标准。
- HTTPS(SSL上的HTTP):结合HTTP和SSL来实现Web浏览器和Web服务器之间的安全通信。
- SSH(安全外壳):一种保障网络通信安全的协议,并且简单易实现,可以作为远程登录或X隧道技术的备选方法。
第19章 电子邮件安全
1. PGP提供的4类服务:
- 认证(数字签名)
- 保密(消息加密)
- 压缩
- 电子邮件兼容性
2. 分离签名的用途:
- 用户可能希望为所有发送或接收到的消息的各分离式签名建立并保持一个日志。
- 一个可执行程序的分离式签名可以用来甄别该程序是否被病毒感染。
- 分离式签名还可以用于多个成员对一份诸如合法契约等文件进行签名。
3. PGP在对消息签名之后和加密之前压缩的原因:
- 对未压缩的消息进行签名更有利于仅存储未压缩消息和签名以便未来的签名验证。
- PGP的压缩算法不适合为验证签名动态地生成消息的压缩版。
- 在压缩之后对消息进行加密是为了增强密码运算的安全性。
4. Radix-64编码:每3个字节组成的二进制数据映射成4个ASCII字符。由于大多数电子邮件系统都只允许使用由ASCII文本组成的数据块,所以PGP使用Radix-64将原字节流转换成可打印的ASCII字符流。
5. S/MIME的功能:
6. S/MIME与PGP的区别:
- S/MIME倾向于推广为商业或组织用户的工业标准;
- PGP则用来为个人电子邮件安全提供服务选择。
第20章 IP安全性
1. IPSec的应用
- 分支机构通过Internet安全互连;
- 远程安全访问Internet;
- 与合作者建立外联网和内联网联系;
- 加强电子商务的安全性。
2. 传输模式与隧道模式的区别:
- 传输模式只加密有效载荷部分,不加密地址等头部分,用于两个机器之间直接连接的情况。
- 隧道模式加密整个IP分组,并放在一个新的IP分组的有效载荷部分,用于两个LAN通过VPN网关连接的情况。
第23章 防火墙
1. 防火墙的定义
防火墙是指设置在不同网络或网络安全域(公共网和企业内部网)之间的一系列部件的组合。它是不同网络(安全域)之间的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有很高的抗攻击能力,它是提供信息安全服务,实现网络和信息安全的基础设施。
2. 防火墙的基本原理
- 建立起网络控制系统;
- 隔离内部和外部网络;
- 执行访问控制策略;
- 防止外部的未授权节点访问内部网络和非法向外传递内部信息。