首页/安全/加密与证书速查/分组密码工作模式对照
加密算法基础95 条

分组密码工作模式对照

同一分组算法配不同模式,属性差别很大:是否需要 IV、能否并行、是否自带认证,直接决定适用场景与风险。

加密与证书速查安全更新于 2026-10-13

模式差异决定适用场景

同一个分组算法换一种工作模式,属性差别很大:是否需要 IV 或 nonce、能否并行、是否自带认证,这些差异直接决定适用场景与风险边界。选型时先问两个问题:需不需要认证(防篡改),以及数据形态是流式、随机访问还是固定块设备。回答完这两个问题,可选范围通常就只剩一两个了。

基本信息

ECB无 IV、无认证、加密可并行,不推荐用于新系统
CBC随机 IV、无认证、解密可并行,需配合 HMAC
CTR唯一计数器、无认证、可并行且支持随机访问
GCM96 位唯一 nonce、自带认证、可并行
CCM7-13 字节 nonce、自带认证,无线与物联网场景
XTS以扇区号作 tweak、不提供认证,用于块设备

常见模式对比

模式IV / nonce自带认证并行能力典型用途
ECB无无加密可并行不推荐用于新系统
CBC随机 IV无解密可并行遗留协议,需配合 HMAC
CTR唯一计数器无可并行、随机访问存储与协议数据面
GCM96 位唯一有可并行TLS、IPsec、存储
CCM7-13 字节有认证可流水无线、物联网
XTS扇区号 tweak无扇区级并行全盘与块设备加密

典型使用场景

  • 网络协议数据面:优先 GCM 或 ChaCha20-Poly1305
  • 全盘加密:选择 XTS 并接受其不提供完整性保护的取舍
  • 受限设备:选用 CCM 或 ChaCha20-Poly1305
  • 遗留系统维护:CBC 必须额外配 HMAC,不能只加密
  • 存储加密:CTR 支持随机访问,但完整性要自行校验

选型速记

选型速记
要认证 + 通用 → GCM / ChaCha20-Poly1305 / SM4-GCM
磁盘块设备 → XTS
受限设备 → CCM 或 ChaCha20-Poly1305
仅流式且能接受手工 MAC → CTR(必须配合 HMAC 与唯一计数器)
任何「无认证」模式用于网络数据都必须额外校验完整性,否则机密性可能被篡改攻击瓦解。
唯一性是调用方的责任:GCM 的 nonce 与 CTR 的计数器都要由实现保证不重复,库不会替你检查,重复使用会直接造成密钥流复用。
换模式等于换安全假设:从 CBC 切到 CTR 时若沿用可预测 IV 的旧习惯,会立刻产生漏洞,迁移前要重新审视随机源与计数逻辑。

易错点

  • 同一种算法换模式会改变安全假设:从 CBC 切到 CTR 时若沿用 IV 可预测的习惯会立刻产生漏洞
  • GCM 的 nonce 与 CTR 的计数器都由调用方负责唯一性,库不会替你检查
  • 把 ECB 用于结构化数据会泄露模式,即使是内部系统也不应使用
  • CBC 只加密不加 MAC,攻击者可篡改密文造成可预测的明文变化
  • 误以为 XTS 具备完整性保护:它能防读取但不能防篡改

数据来源与参考

  • NIST SP 800-38A(模式)
  • NIST SP 800-38D(GCM)
  • NIST SP 800-38E(XTS)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌