Ledgerデバイスが24単語のリカバリーフレーズを生成する仕組み

リカバリーフレーズは、暗号資産を管理するための鍵です。そのため、リカバリーフレーズは長く、誰にも推測できないものでなければなりません。リカバリーフレーズはパスワードやPINとは異なり (Ledgerデバイスにはすでに、アクセスを保護するためのPINがあります) 、すべての暗号化データの基礎となるものです。デバイスの初回セットアップ時にランダム生成されるリカバリーフレーズを紙に書き留めて、安全に保管にしましょう。リカバリーフレーズは、デバイスを復元しなければならなくなった際に必要となります。

Ledgerは、すべてのデバイスにおけるリカバリーフレーズの生成と解釈にBIP 39と呼ばれる規格を使用しています。BIP 39は、他にも多くの階層型決定性ウォレットで使われている業界標準規格です。Ledgerデバイスがデフォルトで使用するBIP 39シードのタイプは、具体的にはBIP 39ワードリスト (英語) の2048単語のみで構成される24単語のニーモニックです。BIP 39の24単語ニーモニックシードの生成方法は以下のとおりです。

  1. デバイスは、デバイスのセキュアエレメントに内蔵されている真性乱数発生器 (TRNG) を使用して、256個のランダムビットのシーケンスを生成します。
  2. 最初の256ビットのSHA-256ハッシュの先頭8ビットが末尾に追加され、264ビットになります。
  3. 全264ビットは、11ビット x 24グループに分割されます。
  4. 11ビットの各グループは、0〜2047の範囲の数値として解釈され、BIP39ワードリストのインデックスとなり、それに基づいて24単語が導出されます。

この処理の結果、デバイスは2256個のニーモニックシードの組み合わせの中から、1個のニーモニックシードを生成します (これは、存在し得る115 792 089 237 316 195 423 570 985 008 687 907 853 269 984 665 640 564 039 457 584 007 913 129 639 936個のニーモニックシートのうちの1個ということになります) 。

なお、最初の23単語は完全にランダムですが、最後の単語は3つのランダムビットとSHA-256ハッシュから計算された8ビットから派生します。つまり、最後の単語はチェックサムとして機能することが可能です。そのため、復元中に不正なシードがデバイスに入力されると、デバイスはそのシードが無効であることを検出することができます。

誰かが私のシードを推測することは可能ですか?

24単語のニーモニックシードには、2256通りの組み合わせが存在します。ちなみに、地球上に存在する原子の数はおよそ2166個と推定されています。誰かがお客様のシードを推測できる可能性は、ほぼ不可能と断言できるほど天文学的に小さいことがお分かりいただけるでしょう。

この記事は役に立ちましたか?