几种分组密码的模式对比
ECB模式
加密
解密
CBC模式
每次加密时都会随机产生一个不同的比特序列来作为初始化向量。
加密
解密
CFB模式
加密
解密
OFB模式
加密
解密
CTR模式
加密
解密
对比总结
模式 | 名称 | 优点 | 缺点 | 备注 |
---|---|---|---|---|
ECB模式 | 电子密码本模式 | 简单 快速 支持并行计算(加密、解密) |
明文中的重复排列会反映在密文中 通过删除、替换密文分组可以对明文进行操作 对包含某些比特错误的密文进行解密时,对应的分组会出错 不能抵御重放攻击 |
不应使用 |
CBC模式 | 密文分组链接模式 | 明文的重复排列不会反映在密文中 支持并行计算(仅解密) 能够解密任意密文分组 |
对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错 加密不支持并行计算 |
推荐使用 |
CFB模式 | 密文反馈模式 | 不需要填充(padding) 支持并行计算(仅解密) 能够解密任意密文分组 |
加密不支持并行计算 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错 不能抵御重放攻击 |
现在已不使用 推荐用CTR模式代替 |
OFB模式 | 输出反馈模式 | 不需要填充(padding) 可事先进行加密、解密的准备 加密、解密使用相同结构 对包含某些错误比特的密文进行解密时,只有明文中相应的比特会出错 |
不支持并行运算 主动攻击这反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转 |
推荐 |
CTR模式 | 计数器模式 | 不需要填充(padding) 可事先进行加密、解密的准备 加密、解密使用相同的结构 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错 支持并行计算(加密、解密) |
主动攻击者反转密文分组中的某些比特时,明文分组中对应的比特也会被反转 | 推荐 |