AES-GCM
AES-GCM 是什么?
AES-GCM一种认证加密模式,将 AES 的计数器模式与基于 GHASH 的认证标签结合,在一次运算中同时提供机密性和完整性。
AES-GCM(伽罗瓦计数器模式)是 NIST SP 800-38D 标准化的带关联数据的认证加密(AEAD)模式。它使用 AES(128 位分组,128/192/256 位密钥)的 CTR 模式进行加密,并通过 GF(2^128) 上的 GHASH 函数对密文和附加认证数据(AAD)生成 128 位认证标签。一次运算即可同时获得机密性和完整性,而且由于计数器模式完全可并行化并受益于 AES-NI 硬件指令,AES-GCM 成为 TLS 1.2/1.3(RFC 5288、RFC 8446)、IPsec、SSH 和 802.11ac 的默认选择。
它最致命的弱点是 nonce 重用会导致灾难性失效。GCM 的认证是一个多项式 MAC,其求值所用的密钥由加密全零块派生而来;在同一密钥下重复使用 96 位 nonce 会产生两段密文,其标签方程让攻击者得以解出该认证密钥(即 Antoine Joux 描述的**“禁忌攻击”(forbidden attack)**)。一旦恢复出该密钥,攻击者就能为任意消息伪造有效标签。这并非纸上谈兵:2016 年的 Nonce-Disrespecting Adversaries 研究(Böck、Zauner、Devlin、Somorovsky、Jovanovic,USENIX WOOT)扫描全互联网后发现有 184 台 HTTPS 服务器重复使用 nonce——其中包括金融机构——彻底破坏了其连接的真实性,此外还有超过 70,000 台服务器使用随机 nonce,在长会话中存在碰撞风险。
防御措施:使用确定性或基于计数器的 nonce,绝不使用随机 nonce;限制每个密钥下的数据量(NIST 限制约为 2³² 个分组);或采用抗 nonce 误用的模式,如 AES-GCM-SIV(RFC 8452)。
flowchart TD K[AES 密钥] --> CTR N[96 位 nonce/IV] --> CTR[AES-CTR 加密] P[明文] --> CTR CTR --> C[密文] C --> G[GHASH over GF 2^128] AAD[附加认证数据] --> G G --> T[128 位认证标签] C --> OUT[密文 + 标签] T --> OUT N -. 同密钥下重用 .-> X[禁忌攻击:<br/>恢复认证密钥并伪造标签]
● 示例
- 01
TLS 1.3 密码套件 TLS_AES_128_GCM_SHA256。
- 02
云 KMS 服务中的磁盘加密与逐记录加密。
● 常见问题
AES-GCM 是什么?
一种认证加密模式,将 AES 的计数器模式与基于 GHASH 的认证标签结合,在一次运算中同时提供机密性和完整性。 它属于网络安全的 密码学 分类。
AES-GCM 是什么意思?
一种认证加密模式,将 AES 的计数器模式与基于 GHASH 的认证标签结合,在一次运算中同时提供机密性和完整性。
如何防御 AES-GCM?
针对 AES-GCM 的防御通常结合技术控制与运营实践,详见上方完整定义。
AES-GCM 还有哪些其他名称?
常见的别称包括: 伽罗瓦/计数器模式, AES-128-GCM, AES-256-GCM。