跳到主要内容
ecdsa.com

对冲签名

一种签名方式:每次签名的 nonce 由私钥和消息连同全新的随机性一起派生,因此即使随机数生成器或确定性派生过程之一受到攻击,方案仍然安全。
其他写法hedged signinghedged ECDSAsynthetic noncedeterministic signatures with noise

纯随机的 nonce 遇到弱随机数生成器会造成灾难性后果;纯确定性的 nonce(RFC 6979、EdDSA)则有另一个问题:如果攻击者能在同一消息被签名两次时引发故障,就可以比较两次输出并恢复密钥;而且由于 nonce 完全重复,某些侧信道攻击也更容易实施。对冲(hedging)把 nonce 计算为密钥、消息和全新随机字节的 PRF,因此单凭其中任何一种输入,就足以使 nonce 保持秘密。

FIPS 204 将对冲签名设为 ML-DSA 的默认方式:来自经批准的 RBG 的 32 字节 rnd 与密钥和消息一起计算哈希,可选的确定性变体则把 rnd 设为全零;同一个验证器两种签名都接受(§3.4)。对于 ECDSA,RFC 6979 §3.6 允许在派生中加入附加数据,BIP-340 建议混入 32 字节的辅助随机数,@noble/curves 则以 extraEntropy 参数提供这一功能。

对冲签名与其他签名看起来没有区别,验证者既不知道也无需关心。改变的是签名者的故障特征,这也是面临物理攻击的硬件钱包和 HSM 更倾向于采用它的原因。

标准与参考资料

全部术语