密码反馈模式CFB
CFB 分组密码反馈模式如何转为流密码使用的说明
#status / growing
#type / concept
#tech / security / crypto
#resource / algorithm
[!info] related notes 密码学 Data Encryption Standard DES 电子密码本模式ECB 密码分组链接CBC
密码反馈模式 (CFB)
1. 定义
密码反馈模式 (Cipher Feedback, CFB) 的特点是将分组密码(如 DES/AES)转换为流密码 (Stream Cipher) 使用。 [cite_start]它不需要对整块数据进行填充,可以处理任意长度的消息(如按字节或位处理) [cite: 832, 856]。
2. 工作原理
它使用一个移位寄存器来实现反馈。
-
加密流程:
- 加密器对移位寄存器中的内容(上一轮的密文或 IV)进行加密。
- 取加密输出的最左端 $s$ 位(例如 8位)。
- 将这 $s$ 位与明文单元 $P_i$ 进行异或,得到密文单元 $C_i$。
- [cite_start]$C_i$ 被反馈回移位寄存器的末端,寄存器左移,准备下一轮 [cite: 861, 863]。
-
核心公式:
$$
C_i = P_i \oplus \text{Select}(E_K(\text{ShiftReg}))
$$
3. 优缺点分析
[cite_start]根据 PPT [cite: 857-859, 867-871] 总结:
优点
- [cite_start]流式处理:适合实时通信,可以按字节加密,无需等待整个块填满 [cite: 857]。
- [cite_start]灵活性:可以处理任意长度的消息 [cite: 858]。
- [cite_start]隐藏模式:如同 CBC,隐藏了明文的统计规律 [cite: 867]。
- [cite_start]自同步能力:如果密文丢失或错位,只要接收到足够的正确密文填充寄存器,解密就会自动恢复正常 [cite: 859]。
缺点
- [cite_start]效率限制:无法并行加密 [cite: 868]。
- [cite_start]需要 IV:同样需要共享初始向量 IV [cite: 869]。
- 复杂的误差传递:
- 一个密文单元损坏,会影响当前解密,并且错误会进入移位寄存器。
- [cite_start]这会导致后续的一系列解密出错,直到该错误密文被移出寄存器为止 [cite: 871]。
相关链接:
- cipher-block-chaining-cbc
- [[输出反馈模式 (OFB)]] (另一种流模式)
- [[流密码]]