Entry № 836
随机数(Nonce)
随机数(Nonce) 是什么?
随机数(Nonce)提供给密码学算法的 "一次性数值",用于保证新鲜性,防止重放或密钥/IV 重用。
Nonce 是一个在某个密钥的有效期内绝不重复的输入,被对称加密、AEAD 模式、签名方案及认证协议用来保证每次操作的唯一性。在 AES-GCM、ChaCha20-Poly1305 等 AEAD 模式中,nonce 通常为 96 位,可由随机数生成或确定性计数器构造;同一个密钥下重用 AES-GCM 的 nonce 会同时摧毁机密性与认证性。Nonce 也出现在 TLS 握手、OAuth/OIDC 挑战、Bitcoin 区块头以及 ECDSA 等签名方案中——在 ECDSA 里重用 nonce 会泄露私钥。最佳实践是采用足够长的随机 nonce 或严格单调递增的计数器,在无法排除碰撞时改用抗误用模式(AES-GCM-SIV、XChaCha20-Poly1305 等)。
● 示例
- 01
TLS 1.3 通过将序列号与方向相关的 IV 进行 XOR 来派生每条记录的 AEAD nonce。
- 02
2010 年 PlayStation 3 的 ECDSA 私钥被恢复,原因是 Sony 重用了签名时的 nonce。
● 常见问题
随机数(Nonce) 是什么?
提供给密码学算法的 "一次性数值",用于保证新鲜性,防止重放或密钥/IV 重用。 它属于网络安全的 密码学 分类。
随机数(Nonce) 是什么意思?
提供给密码学算法的 "一次性数值",用于保证新鲜性,防止重放或密钥/IV 重用。
如何防御 随机数(Nonce)?
针对 随机数(Nonce) 的防御通常结合技术控制与运营实践,详见上方完整定义。
随机数(Nonce) 还有哪些其他名称?
常见的别称包括: 一次性数值, 密码学随机数。