密钥长度为 128、192 或 256 位。使用标准的 96 位 IV 时,计数器使每条消息最多可加密 2³² − 2 个分组(约 64 GiB)。SP 800-38D 要求同一密钥下 IV 永不重复,并把随机生成的 96 位 IV 限制为每个密钥最多调用 2³² 次,因此长期使用的密钥要么采用计数器,要么更换密钥。
重复使用 nonce 会带来灾难性后果:它会泄露两段明文的异或值,还能让攻击者恢复 GHASH 密钥,从而为该密钥下的任意消息伪造标签。短于 128 位的标签会削弱抗伪造能力,最好避免使用。AES-GCM-SIV(RFC 8452)是它的抗误用变体。
借助 AES 指令和无进位乘法指令,AES-GCM 的速度极快:在 Apple M4 Max 的单个核心上,OpenSSL 3.6.5 处理 16 KiB 缓冲区时,AES-128-GCM 的加密速度约为 10.4 GB/s,AES-256-GCM 约为 8.8 GB/s。标识符:TLS 1.3 套件 TLS_AES_128_GCM_SHA256(0x1301)和 TLS_AES_256_GCM_SHA384(0x1302),JWE 的 enc 值 A128GCM 和 A256GCM,密钥包装 A256GCMKW,WebCrypto 的 AES-GCM。