分组密码 4 大常考模式(软考信安工程师必背:ECB、CBC、CFB、OFB)
前提:都是 AES/DES 这类分组密码的工作模式;分组密码一次只能加密固定大小一块明文,工作模式规定多块明文怎么加密串联核心区分点:有没有 IV 初始化向量、分组之间是否关联、能不能并行、缺陷
1. ECB 电子密码本(Electronic CodeBook)
- 规则:每个明文分组独立,直接加密,不需要 IV
- 加密:\(C_i = E_k(P_i)\) ✅特点
- 最简单,无 IV,可并行加解密
- 相同明文分组 → 相同密文分组,会暴露明文结构(重大安全缺陷)
- 一块损坏,只影响当前这一块 ❌缺点:不安全,工程基本不用 一句话:分组互不影响,直接加密,同明文得同密文
2. CBC 密码分组链接(Cipher Block Chaining)⭐最高频考点
- 规则:需要 IV;当前明文 和 上一块密文先异或,再加密\(C_i=E_k(P_i \oplus C_{i-1})\),第一块用 IV 替代\(C_0\) ✅特点
- 需要初始化向量 IV,IV 必须随机不可预测
- 相同明文,不同 IV 会产生不同密文,隐藏明文重复
- 不能并行加密(解密可以并行)
- 错误传播:一块密文损坏,只会影响当前块 + 下一块一句话:前块密文拿来异或,链在一起;加密不能并行,要 IV
3. CFB 密码反馈模式(Cipher FeedBack)
把分组密码当成流密码来用,不需要明文填充!
- 规则:拿上一轮密文加密,输出结果和当前明文异或得到密文;需要 IV ✅特点
- 可以按小段(比如 8bit)加密,不需要完整分组,不用填充
- 属于反馈模式,加密不能并行
- 错误传播:1 位密文错,会连续影响后续一段 适用场景:明文长度很短,不想做填充
4. OFB 输出反馈模式(Output FeedBack)
同样变身为流密码,和 CFB 很像,但是反馈的是加密器的输出,不是密文 ✅特点
- 需要 IV;可以提前预先生成密钥流!
- 密文错误不会传播!只有出错那一位受影响(最大特点)
- 不能并行加密
重点区分 CFB 与 OFB:
- CFB:反馈密文,错误会持续传播
- OFB:反馈算法输出,错误不扩散
📋汇总对比表(做题直接看)
表格
| 模式 | 需要 IV | 能否并行加密 | 核心特点 |
|---|---|---|---|
| ECB | ❌无 | ✅可以 | 分组独立直接加密;相同明文→相同密文,不安全 |
| CBC | ✅需要 | ❌不可以 | 前块密文异或明文;考试最常考;错误传到下一块 |
| CFB | ✅需要 | ❌不可以 | 反馈密文,流式加密,不用填充;错误持续传播 |
| OFB | ✅需要 | ❌不可以 | 反馈密钥流;密文错误不扩散 |
🔥考场一句话口诀
ECB 无 IV,分组各干各; CBC 要 IV,密文连环锁; CFB 反馈密文,错了一路祸; OFB 反馈输出,错了只一处。
📌考试高频坑点(一定要记)
- ECB:唯一不需要 IV 的模式!也是唯一相同明文块会产生相同密文块的模式。
- CBC:最常用传统模式,但是加密串行,必须记 “前一块密文与当前明文异或”。
- CFB/OFB:流模式,不需要填充;OFB 错误不扩散是它标志性考点。
- GCM(拓展,近年爱考):CBC 的替代,带认证的 AES 模式,同时提供机密性 + 完整性,IPsec/TLS 大量使用。