本文へスキップ
ecdsa.com

ヘッジ付き署名(hedged signatures)

署名ごとの nonce を、秘密鍵とメッセージに新しい乱数を加えて導出する署名方法で、乱数生成器と決定的な導出のどちらか一方が攻撃されても方式の安全性が保たれます。
別表記hedged signinghedged ECDSAsynthetic noncedeterministic signatures with noise

完全にランダムな nonce は、乱数生成器が弱いと壊滅的に破綻します。完全に決定的な nonce(RFC 6979、EdDSA)では、同じメッセージが 2 回署名される間にフォールトを誘発できる攻撃者が、2 つの出力を比較して鍵を復元できます。また、nonce がまったく同じ値で繰り返されるため、一部のサイドチャネル攻撃も容易になります。ヘッジでは、鍵、メッセージ、新しいランダムなバイト列の PRF として nonce を計算するため、どちらか一方の入力だけでも nonce の秘密が保たれます。

FIPS 204 は、ML-DSA でヘッジ付き署名をデフォルトにしています。承認済みの RBG から得た 32 バイトの rnd を鍵およびメッセージと一緒にハッシュし、オプションの決定的なバリアントでは rnd をすべてゼロにします。同じ検証者がどちらも受け入れます(§3.4)。ECDSA については、RFC 6979 §3.6 が導出に追加データを含めることを認めており、BIP-340 は 32 バイトの補助的な乱数を混ぜることを推奨しています。@noble/curves はこれを extraEntropy として提供しています。

ヘッジ付き署名は他の署名と見分けがつかないため、検証者がそれを知ることも気にすることもありません。変わるのは署名者側での破綻のしかたであり、物理的な攻撃にさらされるハードウェアウォレットや HSM がこの方式を好んで採用するのはそのためです。

規格と参考文献

すべての用語