1.1 分组密码模式简介
- ECB模式 ( Electronic CodeBook mode ) : 电子密码本模式
- CBC模式 ( Cipher Block Chaining mode ) : 密码分组链接模式
- CFB模式 ( Cipher FeedBack mode ) : 密文反馈模式
- OFB模式 ( Output FeedBack mode ) : 输出反馈模式
- CTR模式 ( CounTeR mode ) : 计数器模式
1.2 分组密码模式
分组密码(blockcipher)是每次只能处理特定长度的一块数据的一类密码算法,这里的一块"就称为分组(block)。此外,一个分组的比特数就称为分组长度(blocklength)。
1.3 ECB模式
描述
将明文分组加密之后的结果将直接成为密文分组
特点
- 简单,快速,加密和解密过程支持并行计算
- 明文中的重复排列会反映在密文中
- 通过删除、替换密文分组可以对明文进行操作(即可攻击),无法抵御重放攻击
- 对包含某些bite错误的密文进行解密时,对应的分组会出错
1.4 CBC模式
描述
首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密,即得密文分组
特点
- 明文的重复排列不会反映在密文中
- 只有解密过程可以并行计算,加密过程由于需要前一个密文组,无法进行并行计算
- 能够解密任意密文分组
- 对包含某些错误bite的密文进行揭秘,第一个分组的全部bite(“全部”是由于密文参与了解密算法)和后一个分组的相应bite会出错(“相应”是由于出错的密文在后一组中只参与了XOR运算)
- 填充提示攻击
1.5 CFB模式
描述
前一个密文分组会被送回到密码算法的输入端,加密算法的输出与明文进行XOR运算,即得密文分组
特点
- 不需要填充
- 仅解密过程支持并行运算,加密过程由于需要前一个密文组参与,无法进行并行计算
- 能够解密任意密文分组
- (我认为)对包含某些错误bite的密文进行揭秘,第一个分组的部分bite和后一个分组的全部bite会出错(但书上的意见相反)
- 不能抵御重放攻击
1.6 OFB模式
描述
密码算法的输出会反馈到密码算法的输入中,密码算法的输出与明文进行XOR运算,即得密文分组
特点
- 不需要填充
- 可事先进行加密、解密准备
- 加密解密使用相同结构
- 对包含某些错误bite的密文进行解密时,只有明文中相应bite会出错
- 不支持并行计算
1.7 CTR模式
描述
一种通过逐次累加的计数器进行加密来生成密钥流的流密码,计数器值作为密码算法的输入,密码算法的输出与明文执行XOR运算,即得密文分组
特点
- 不需要填充
- 可事先进行加密、解密准备
- 加密解密使用相同结构
- 对包含某些错误bite的密文进行解密时,只有明文中相应bite会出错
- 加密解密都支持并行计算