一、流密码
1. 流密码可以看作分组长度为1的分组密码。
2. 流密码中的密钥流是伪随机的。
3. 流密码应用没有分组密码广泛:
(1)专有设计:流密码大多专用。在容易解决兼容性问题的封闭网络环境或商业领域采用流密码。在高安全性的应用中采用流密码。
(2)功能单一。流密码通常只适用于加密,分组密码可以用于其他密码学原语的设计,如哈希函数和消息认证码。分组密码可用作密钥流生成器,这本质上是将分组密码转换为流密码。
4. 使用比较广泛的流密码:(1)RC4:SSL/TLS、WEP、Microsoft Office (2)A5/1:GSM中使用,保护从移动电话到最近基站的无线信道(3)E0:加密蓝牙通信
二、分组密码
1. 选择分组长度涉及安全性和效率之间的折中。
2. 分组密码特点:
(1)多功能性:不仅用于加密,还作为其他加密原语(如消息认证码和哈希函数)的组件使用。
(2)兼容性
(3)适应性
3. 填充:填充会在一定程度降低效率;填充会给密码系统带来不安全性。
4. IDEA分组长64位,密钥长度128位。
5.Serpent分组长度128位,密钥长度128、192或256。
三、DES
1.DES基于已知的Feistel密码(轮函数:S盒)。
2. Feistel密码的加密解密过程几乎一样。在每轮中并不是使用整个加密密钥,而是从加密密钥派生出一个依赖于轮的密钥(子密钥)。每轮使用一个不同的密钥,而所有子密钥都与原始密钥相关。解密时这些子密钥必须按照与加密相反的顺序使用。
3. DES分组长64位,密钥64位,16轮。
4. DES的有效密钥长度56位,其中8位没有被加密算法使用(校验位)。
5. 最后一轮加密之后对所有输出位执行与初始排列相反的操作。
6. 3DES:
(1)3TDES密钥长度168位,k1加密—k2解密—k3加密,k1解密—k2加密—k3解密。
(2)3DES是DES的替换升级,当k1=k2=k3时,相当于DES。K2的解密在3DES中没有密码意义,是为了兼容DES。
(3)2TDES密钥长112位,K1加密—k2解密—k1加密。
7. AES应该比三重DES加密速度快,AES的速度大约是DES的6倍。
四、AES
1.分组长128位,密钥长128/192/256位。
2. AES轮数是可变的,取决于密钥长度,128位10轮,192位12轮,256位14轮。
3.字节替换(查找S盒)、行位移、列混淆、轮密钥加。整个AES加密过程基于一系列的查表和异或运算。
4.AES解密以加密相反的顺序执行加密过程。每轮执行顺序为轮密钥相加、列混合、行位移和字节替换。
五、操作模式
1.当同一分组密码以不同的操作模式来加密由多个分组组成的明文时,得到的结果具有不同的性质。
2.ECB(电码本)模式
(1)用密钥加密第一个明文分组,生成第一个密文;用密钥加密第二个明文分组,生成第二个密文分组,以此类推。
(2)ECB模式很少用于加密由多个分组组成的长明文。
A.攻击方可以改变密文,使接收方在解密被操纵的密文之后仍然可以得到有意义的明文。
B.相同的明文被加密为相同的密文。
3.CBC(密码块链接)模式
(1)初始向量
(2)使用相同的密钥不会导致相同的明文分组总是被加密为相同的密文分组。
(3)CBC特点:消息依赖,有限的错误传播,不需要同步,效率,需要填充,CBC模式构成了数据源身份认证机制的基础。
4.CFB(密码反馈)模式:
(1)初始向量存入寄存器,密钥加密寄存器内容生成密文,再与明文异或。
(2)CFB特点:消息依赖,有限的错误传输,不需要同步,效率,不需填充,无须实现分组密码解密。
5.CRT(计数器)模式:
无错误传输;产生密钥流的较慢的分组密码加密运算与明文实施真正加密的较快的异或运算是对的,适合在并行计算环境中使用。
6.操作模式比较:
(1)本章的四种操作模式和OFB(输出反馈)模式设计的目的是提供机密性。
(2)身份认证
(3)认证-加密模式
(4)专业模式:满足特殊要求,eg全磁盘加密。