电码本模式(ECB)
分组后逐个加密
加密:Ci = Ek(Mi)
解密:Mi = Dk-1(Ci)
特点(缺点):
- 要求数据的长度是密码分组长度的整数倍
- 容易暴露明文的数据模式
- 重复的明文产生相同的密码分组
以DES为例,明文的长度必须是64位的整数倍,不足部分要特殊处理。
密码分组链接模式(CBC)
特点:
1. 解决了ECB的安全缺陷可以让重复的明文产生不同的密码分组
2. 要求数据的长度是密码分组长度的整数倍
明密文链接模式
加密:Ci = Ek(Mi⊕Z, K), i = 1
= Ek(Mi⊕Mi-1⊕Ci-1, K), i = 2 …… n
解密:Mi = D(Ci,K) ⊕ Z , i = 1
= D(Ci,K) ⊕ Mi-1 ⊕ Ci-1, i = 2 …… n
其中Z为初始向量
可以看到上一轮的明文和密文参与这一轮的加密,前一轮的明文和密文数据变化会影响之后每一轮,所以错误传播会无界。
特点:加解密错误传播无界
密文链接模式
加密:Ci = Ek(Mi⊕Z, K), i = 1
= Ek(Mi⊕Ci-1, K), i = 2 …… n
解密:Mi = D(Ci,K) ⊕ Z , i = 1
= D(Ci,K) ⊕ Ci-1, i = 2 …… n
可以看到只有上一轮的密文参与这一轮的加密,前一轮的数据变化会影响之后每一轮,在加密时错误传播依然会无界。但在解密的时候,即使某一轮密文发生错误,只有本轮解密会收到影响,此时称为错误传播有界
特点:加密错误传播无界,解密错误传播有界
密码反馈模式(CFB)
设每个传输单元为 j bit (一般为一个字节8bit),有一个初始向量b bit放入移位寄存器中,经过加密算法选择 j bit,丢弃b - j bit,并与明文单元异或得到密文单元,下一次加密式用得到的密文单元代替初始向量,同时移位寄存器需要左移 j 位。
特点:
- 加解密错误传播无界
- 适合数据完整性认证方面的应用
输出反馈模式(OFB)
和CFB类似,不同处在于代替密文单元的是经过加密的选择 j bit 部分。用于卫星通讯。
特点:
- 加解密错误传播有界
- 可以加密任意长度的数据
计数器模式(CTR)
计数器模式是将计数器从初始值开始计数所得到的值作为分组密码的输入,经过加密算法变换后的结果与明文分组异或,得到密文分组。
Ci = Mi ⊕ E(CTRi), i = 1,2,……n
特点:
- 加解密错误传播有界,不适用于数据完整性认证。
- 实现简单,可以处理任意长度的数据,对合运算,加解密过程仅涉及加密运算不涉及解密运算,不用实现解密算法。
- 可以并行处理,高效,还可以提前预处理。
- 可以随机访问,适合随机文件的加密。