コンテンツへスキップ
uencoder

鍵を分割するために Shamir の秘密分散を使う

Shamir の秘密分散は、秘密を n 個のシェアに分割し、そのうち任意の k 個で復元できます。キーエスクロー、分散保管、単一障害点の解消に役立ちます。

  1. 1

    Shamir の秘密分散 (SSS) は、有限体上の多項式補間に基づきます。秘密 S をしきい値 k で n 者に分散するには、f(0) = S となる次数 k-1 のランダム多項式 f を生成します。各参加者は i = 1..n に対する f(i) を受け取ります。任意の k 個のシェアがあれば f を再構成でき、したがって S を復元できます。k-1 個では何も分かりません。

  2. 2
    ランダムバイトジェネレーター →

    多項式のランダム係数を生成します。定数項が秘密で、他の係数はすべてランダムです。CSPRNG を使ってください。セキュリティは係数のランダム性に依存します。

  3. 3
    剰余べき乗計算ツール →

    相異なる点で多項式を評価してシェアを作ります。各シェアは (x, f(x)) という組で、x は点のインデックスです。k 個のシェアから秘密を再構成するには、ラグランジュ補間を使います。

  4. 4

    ユースケース: 暗号鍵を複数の受託者に分割して保管 (例: 5 個中 3 個で復元)、マスターキーの分散バックアップ、暗号資産ウォレットのソーシャルリカバリー。しきい値 k が信頼モデルを決めます。k が大きいほどより多くの参加者の協力が必要になり、k が小さいほど復元は速いものの安全性は下がります。

よくある質問

しきい値 k とは何ですか?
k は、秘密を再構成するために必要な最小シェア数です。k=3、n=5 なら、5 個のうち任意の 3 個で秘密を復元できますが、2 個では何も分かりません。信頼モデルに基づいて k を選んでください。何人の参加者が協力すべきか、いくつの障害を許容できるかが基準です。
SSS は情報理論的に安全ですか?
はい。k 個未満のシェアでは、すべての可能な秘密が等確率になります。計算能力に関係なく、情報漏れはありません。これは、量子コンピューターで破られる可能性がある計算量的セキュリティ (例: RSA) よりも強い保証です。

関連ツール