Nonce
Nonce(number used once)是加密中仅使用一次的值,与 IV 类似但强调唯一性而非随机性,常用于流密码与 AEAD。
用途
确保同一密钥下每次加密产生不同密钥流,防止 two-time pad 攻击。
机制
Nonce 在密钥生命周期内必须唯一(不重复)。可为计数器(确定性)或随机值。CTR/GCM/ChaCha20 用 nonce 生成密钥流。GCM 96 位 nonce 最常见。nonce 重复会导致灾难性安全失效。
用例
- AES-GCM 消息加密
- ChaCha20-Poly1305 加密算法
- TLS 记录序列号
- WireGuard nonce 计数器
示例
- 输入
nonce=0,1,2... (counter)输出a unique nonce per messageDeterministic and unique
常见错误
- Nonce reuse replays the keystream and breaks authentication
- Use a monotonic counter or a long enough random nonce
相关词条
IV (Initialization Vector)
IV(初始化向量)是分组密码模式中引入随机性的输入,使相同明文在不同加密中产生不同密文。 词汇表
GCM (Galois/Counter Mode)
GCM 是结合 CTR 加密与 GHASH 认证的 AEAD 模式,同时提供机密性与完整性,是 TLS 1.2/1.3 的首选模式。 词汇表
CTR (Counter Mode)
CTR 模式将分组密码转为流密码,加密递增计数器生成密钥流与明文异或,支持并行与随机访问,但不提供完整性。 词汇表
ChaCha20
ChaCha20 是 Daniel Bernstein 设计的流密码,基于 ARX(加-轮-异或)操作,常与 Poly1305 组成 AEAD,是 AES-GCM 的高性能替代。 词汇表