CBC (Cipher Block Chaining)
CBC 模式将前块密文与当前明文异或后再加密,使相同明文块产生不同密文,需随机 IV,但不提供完整性认证。
用途
消除 ECB 的相同明文块模式,提供机密性,但需额外 MAC 保证完整性。
机制
加密 C_i = E_K(P_i ⊕ C_{i-1}),C_0 = IV。解密 P_i = D_K(C_i) ⊕ C_{i-1}。IV 必须不可预测(随机)。错误传播仅影响当前与下一块。无认证,需配合 HMAC(Encrypt-then-MAC)。
用例
- 文件加密(如 OpenSSL 默认)
- 数据库字段加密
- IPsec ESP(历史)
- 磁盘加密(部分)
示例
- 输入
IV + P1 P2 P3输出C1 C2 C3Each block depends on the previous one
常见错误
- A predictable IV enables chosen-plaintext attacks
- Use a random IV and transmit it with the ciphertext
- Lack of authentication invites padding attacks (e.g., POODLE)
- Use an AEAD mode or Encrypt-then-MAC
相关词条
ECB (Electronic Codebook)
ECB 模式逐块独立加密,相同明文块产生相同密文块,不安全,仅适用于单块或随机数据加密。 词汇表
CTR (Counter Mode)
CTR 模式将分组密码转为流密码,加密递增计数器生成密钥流与明文异或,支持并行与随机访问,但不提供完整性。 词汇表
GCM (Galois/Counter Mode)
GCM 是结合 CTR 加密与 GHASH 认证的 AEAD 模式,同时提供机密性与完整性,是 TLS 1.2/1.3 的首选模式。 词汇表
Mode of Operation
工作模式是分组密码处理任意长度数据的方案,定义如何将多块明文链接加密,常见有 ECB、CBC、CTR、GCM 等。 词汇表
IV (Initialization Vector)
IV(初始化向量)是分组密码模式中引入随机性的输入,使相同明文在不同加密中产生不同密文。 词汇表