ECB模式
ECB模式的加密
ECB模式的解密
CBC模式
一般来说,每次加密时都会随机产生一个不同的比特序列来作为初始化向量。
CBC模式的加密
CBC模式的解密
CFB模式
CFB模式的加密
CFB模式的解密
OFB模式
CFB模式的加密
CFB模式的解密
CTR模式
CTR模式的加密
CTR模式的解密
各种加密模式的特点
对称密码中常见的又ECB、CBC、CFB、OFB 和 CTR等模式。 下面我们对这些模式的特点做一下整理。
模式 | 名称 | 优点 | 缺点 | 备注 |
---|---|---|---|---|
ECB模式 | Electronic CodeBook电子密码本模式 | · 简单 · 快速 · 支持并行计算(加密、解密) |
· 明文中的重复排列会反映在密文中 · 通过删除、替换密文分组可以对明文进行操作 · 对包含某些比特错误的密文进行解密时,对应的分组会出错 · 不能抵御重放攻击 |
不推荐使用 |
CBC模式 | Cipher Block Charning密文分组链接模式 | · 明文的重复排列不会反映在密文中 · 支持并行计算(仅解密) · 能够解密任意密文分组 |
· 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错 · 加密不支持并行计算 |
推荐使用 |
CFB模式 | Cipher-FeedBack密文反馈模式 | · 不需要填充(padding) · 支持并行计算(仅解密) · 能够解密任意密文分组 |
· 加密不支持并行计算 · 对包含某些错误比特的密文进行解密时,第一个分组的全部比特以及后一个分组的相应比特会出错 · 不能抵御重放攻击 |
· 现在已不使用 · 推荐用CTR模式代替 |
OFB模式 | Output-FeedBack输出反馈模式 | · 不需要填充(padding) · 可事先进行加密、解密的准备 · 加密、解密使用相同结构 · 对包含某些错误比特的密文进行解密时,只有铭文中相应的比特会出错 |
· 不支持并行运算 · 主动攻击这反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转 |
推荐使用CTR模式代替 |
CTR模式 | CounTeR计数器模式 | CounTeR计数器模式 | · 不需要填充(padding) · 可事先进行加密、解密的准备 · 加密、解密使用相同的结构 · 对包含某些错误比特的密文进行解密时,只有明文中相对应的比特会出错 · 支持并行计算(加密、解密) |
主动攻击者反转密文分组中的某些比特时,明文分组中对应的比特也会被反转 |
首先,希望大家搞清楚每种模式的3个字母到底是什么的缩写。如果能够记住每个模式的名称,就能够在头脑中想象出相应的结构图,也就能够搞清楚每个模式的特点了。
《实用密码学》[Schneier,2003]一书中指出,不应使用ECB模式,而推荐使用CBC模式和CTR模式。详情可参见《实用密码学》一书。