本文へスキップ
ecdsa.com

シャミアの秘密分散

Adi Shamir が 1979年に考案した方式で、ランダムな多項式で秘密を n 個のシェアに分割します。任意の k 個で秘密を復元でき、k − 1 個からは何の情報も得られません。
別表記Shamir's secret sharingSSSsecret splittingm-of-n

秘密は、有限体上の次数 k − 1 のランダムな多項式の定数項です。各シェアは、互いに異なるゼロ以外の点でその多項式を評価した値で、任意の k 個のシェアからラグランジュ補間で定数項を復元できます。実装は通常 GF(2⁸) 上でバイト単位に処理するため、各シェアの長さは秘密の長さにインデックス分を加えたものになります。安全性は情報理論的で、k 個未満のシェアからは、計算能力にかかわらず何の情報も得られません。

素のシャミアの方式には完全性がありません。破損したシェアや悪意のあるシェアが混ざると、誤った秘密が気付かれないまま復元されます。そのため実用的な方式では、秘密のチェックサムやダイジェストを付加するか、検証可能な秘密分散(Feldman、Pedersen)を使います。また、分割時と復元時には、秘密全体が 1 か所に存在する瞬間が必要です。しきい値署名は、鍵を一切復元しないことでこれを回避します。

用途には、HSM や CA の鍵セレモニー(m-of-n のオペレーターカード)、ルート鍵やリカバリ鍵のバックアップ、SLIP-39 によるウォレットのバックアップ、HashiCorp Vault のアンシール鍵があります。シャミアの秘密分散ツールを使うと、ブラウザー内でローカルに秘密を分割・結合できます。

規格と参考文献

すべての用語