秘密分散問題
秘密を単純に分割する方法が安全でない理由を理解します。
「秘密分散問題」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。
問題
存続させ、緊急時にはアクセスできるようにしながら、決して一人の人間によって侵害されてはならないマスターキーがあるとします。どのように保存すればよいでしょうか。完全な鍵を複数人に渡すと、そのうち誰か一人が悪用できます。1つのコピーだけを保管すると、単一障害点が生まれます。
単純な分割では不十分
128ビットの鍵を2つの64ビット部分に分割し、それぞれを2人に渡す方法は賢そうに見えますが、安全ではありません。各部分によって総当たり攻撃のコストが2^128から2^64に下がるためです。攻撃者が一人を侵害すると、64ビット分先行できます。
望ましい性質
適切な秘密分散方式には、次の性質が必要です。(1) しきい値: n個のシェアのうち任意のk個で秘密を復元できること。(2) 安全性: (k-1)個のシェアからは秘密についての情報が一切漏れないこと。(3) 完全性: 計算量に関する仮定を必要としないこと。
現実世界での動機
Bitcoinウォレット、HSMマスターキー、認証局の秘密鍵、核兵器の発射コード、暗号資産取引所のコールドウォレットは、いずれもしきい値アクセスを必要とします。単一の鍵を失うことは壊滅的です。一人の内部関係者による侵害も同様に壊滅的です。
XORによる2-of-2秘密分散
2者間で秘密Sを分散するには、ランダムなRを生成します。参加者1にはshare1=Rを、参加者2にはshare2=S XOR Rを渡します。復元時は、share1 XOR share2 = R XOR (S XOR R) = Sとなります。どちらのシェアも単独では完全にランダムで、Sについて何も明らかにしません。
XOR秘密分散の限界
XOR秘密分散は完全な2-of-2方式ですが、k-of-nのしきい値方式には一般化できません。任意の3個のシェアで秘密を復元でき、任意の2個からは何も分からない3-of-5方式は作れません。これを解決するのが多項式補間です。
情報理論的安全性
完全秘匿性とは、k個未満のシェアが秘密について持つ相互情報量がゼロであることです。これは計算量的安全性よりも強く、計算能力に制限のない攻撃者であっても、k-1個のシェアからは何も知ることができません。
実際の応用
AWS CloudHSMはM-of-Nクォーラム認証を使用します。PGPの鍵エスクローではマスターキーを分割します。暗号資産のカストディ事業者(Fireblocks、BitGo)は、ホットウォレット鍵にMPCまたはShamir秘密分散を使用します。認証局のオフライン鍵では5-of-7の鍵セレモニーが使用されます。
セレモニーの設計
鍵セレモニーとは、マスターキーを生成して分割するための、正式で監査可能なプロセスです。例として、安全な部屋に7人の鍵保有者が集まり、それぞれが1つのシェアを格納したハードウェアトークンを受け取ります。ビデオで記録し、2人の監査担当者が立ち会い、各工程を文書化します。
しきい値方式とマルチシグ
秘密分散では完全な秘密を復元します(復元時に単一障害点となるリスクがあります)。マルチシグでは署名を分散し、各当事者が個別に署名してから署名を組み合わせます。しきい値署名(TSS)は、署名操作そのものに秘密分散を適用したものです。
最新の代替方式
セキュアマルチパーティ計算(MPC)では、復元の工程を完全に排除できます。各当事者は秘密を明らかにすることなく、シェアを使って共同で計算します。しきい値ECDSAとしきい値BLSは、本番のカストディシステムで導入されています。
確認問題
2-of-2 XOR秘密分散方式で、攻撃者が秘密を知るにはシェアがいくつ必要ですか。
まとめ
単純な鍵の分割は安全ではありません。適切な秘密分散には、完全秘匿性を備えたしきい値アクセスが必要です。XORは2-of-2を扱い、多項式補間はk-of-nを扱います。次は、Shamir秘密分散の数学について学びます。
AI チューターと学ぶ Cryptology Academy — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 67
- レッスン
- 261
よくある質問
「秘密分散問題」レッスンは無料ですか?
はい。「秘密分散問題」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。
「秘密分散問題」で何を学びますか?
秘密を単純に分割する方法が安全でない理由を理解します。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cryptology Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「秘密分散問題」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCryptology Academyレッスンでコードを書いて実行できますか?
はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。