Tangemの秘密鍵用エントロピー生成方法とは?
この記事は次の言語でご利用いただけます:
シードレスモードの場合、Tangem WalletはSecure Elementに内蔵されたハードウェアのTrue Random Number Generator(真性乱数生成器)からエントロピーを取得します。このチップはドイツBSI PTG.2(AIS 31)規格で認証されています。
シードフレーズを利用する場合は、監査済みの乱数生成方式でエントロピーを作成します:
- Androidの場合、暗号学的に安全な擬似乱数生成器(CSPRNG)であるSecureRandomを使用し、その出力はBoringSSL/Conscrypt経由でカーネルのエントロピープールに送られます。このプールは割り込みタイミングやセンサー、SoCのハードウェアTRNGなどからシードされるため、攻撃者が鍵情報を予測・再現することはできません。
- iOSの場合は、システム提供のSecRandomCopyBytes APIを利用し、暗号鍵生成に適した安全な乱数を生成します。エントロピーはSecure EnclaveのハードウェアTRNG由来です。
仮想通貨ウォレットにおけるエントロピーとは?
エントロピーとは、ウォレットが秘密鍵を生成する際に使う「純粋なランダム性」のことです。ビット数で表され、ビット数が多いほど生成可能な鍵の空間が広がります。
ウォレットはセットアップ時に一度だけエントロピーを生成し、その後の鍵やアドレス、署名はすべて固定の数学的ルールから導出されるため、新たなランダム性は加わりません。
このため、鍵生成時のエントロピーがそのまま永続的に影響します。エントロピーが低いと、いくら後から工夫しても導出されたニーモニックの強度は上がりません。
秘密鍵にはどれだけのエントロピーが必要?
十分なエントロピーがない場合、攻撃者は鍵生成過程のパターンや偏りを利用して、総当たりよりもはるかに効率的に鍵を推測できてしまいます。
秘密鍵は、どんな攻撃者から見ても完全にランダムに見える必要があります。エントロピーが低いと、実質的な探索空間が大幅に縮小し、天文学的に困難な問題が現実的な計算力や分析で解けるものになってしまいます。
実際には、高品質なエントロピー源から暗号学的に安全な乱数生成器へとランダム性が供給されます。もしエントロピー源が弱い(例:タイムスタンプやプロセスID、ノイズ不足など)場合、生成された秘密鍵に隠れた規則性が生じます。
実際に過去の事例では、デバイスの乱数生成器のシード不足によりBitcoinの秘密鍵が推測され、大規模な鍵の盗難が発生したこともあります。
十分なエントロピーがあれば、鍵の安全性は暗号アルゴリズム本来の強度と一致します。たとえばsecp256k1(Bitcoinなどで使用)のような楕円曲線鍵では、数学的攻撃に対して約128ビットの安全性があり、秘密鍵も最低限それだけのエントロピーが必要です。
Tangemはシードレスモードでどのようにエントロピーを生成する?
シードレスモードでは、Tangem CardがSecure Elementチップ内で秘密鍵を生成します。このチップにはハードウェアのTrue Random Number Generatorが内蔵されており、熱雑音や発振器ジッターなど物理現象から乱数を生成します。具体的な手順は以下の通りです。
Step 1: The TRNG samples physical noise.
ハードウェアのTrue Random Number Generatorは、シリコン内の予測不可能な変動(トランジスタレベルの熱雑音、量子効果による電子ノイズ、高周波発振器のジッターなど)からエントロピーを取得します。この段階の出力はバイアスや相関を含む生のビット列です。
Step 2: Conditioning removes the bias. TRNGは暗号ハッシュやホワイトニング処理などのアルゴリズムでパターンを除去し、全ての値が均等に現れるように出力を整えます。また、生データに対して連続的なヘルステストを実施し、ノイズ源が劣化した場合は動作を停止します。この工程はStep 1と合わせて、CC EAL認証済みライブラリで実行され、チップ組み込みで改変されません。
Step 3: The chip extracts 256 bits. 条件を満たした出力から256ビット分を抽出します。この値が秘密鍵候補となります。
Step 4: The chip validates the candidate against the curve order. 楕円曲線の秘密鍵は、所定範囲内のスカラー値でなければなりません。secp256k1の場合、鍵は1以上n-1以下(nは基点のオーダー、2^256未満)の整数です。
0やn以上の候補は無効とされ、チップは再度抽出を行います(この確率は約2^-128と極めて低いです)。
Step 5: The value becomes the master key. このステップでシードレス方式が実現します。256ビットの値がそのままマスタープライベートキーとなり、ニーモニックは生成されません。
Step 6: The chip computes the public key. プライベートキーにsecp256k1の生成点Gを掛けてパブリックキーを算出します(この処理は一方向性で不可逆です)。
Step 7: Addresses are derived from public keys. Bitcoinの場合、指定パスの圧縮パブリックキーをSHA-256、次にRIPEMD-160で20バイトのハッシュに変換し、そのエンコード方法でアドレスタイプが決まります。
BIP-84パスの鍵はbech32エンコードのP2WPKHアドレス、BIP-44パスの鍵はBase58CheckエンコードのP2PKHアドレスになります。パスが異なれば異なる鍵・アドレスが生成されます。
Step 9: The private key stays in protected memory. 秘密鍵はチップ内の保護領域から一切外に出ません。トランザクション署名もチップ内で完結し、鍵自体がスマートフォンやアプリ、インターネットに渡ることはありません。
Tangemはシードフレーズ生成時にどうエントロピーを扱う?
シードフレーズモードでは、Tangemアプリがスマートフォン上でニーモニックを生成します。アプリはプラットフォームの暗号学的乱数生成器(iOSはSecRandomCopyBytes、AndroidはSecureRandom)からランダムバイトを取得します。
どちらも暗号学的に安全な擬似乱数生成器で、シードはOSのエントロピープール(デバイス起動時や利用中にハードウェアエントロピー源から充填)から供給されます。
アプリはこれらのバイトをBIP-39規格に従って単語に変換します。チェックサムを付与し、11ビットごとに区切って2048語リストからマッピングします。12語で128ビット、24語で256ビットのエントロピーを表現します。
シードレスモードは、誰かに見つかったり写真を撮られたり破棄されたりする「書き出したフレーズ」による最大の紛失リスクを排除します。一方、シードフレーズモードは他のウォレットへの移行性を持ちますが、チップ外に鍵のコピーが生まれる点がリスクとなります。
ユーザー自身がエントロピーを検証できないのはなぜ?
40ビットのエントロピーで作られた鍵も256ビットのエントロピーで作られた鍵も、見た目やアドレス、単語数は同じです。
家庭で実行できる検査方法は存在しません。そのため、エントロピーの欠陥が製品出荷後も長年見逃されることがあります。検証は購入前に、公開された監査やメーカーからの技術的な説明で確認する必要があります。
エントロピー攻撃はどのように行われる?
攻撃者が公開アドレスから秘密鍵を直接計算することはできません。これは離散対数問題の解決を意味し、現実的な規模では不可能です。
しかしエントロピーが弱い場合、攻撃者は乱数生成器が生み出せる鍵候補の範囲を総当たりし、それぞれのアドレスを導出してブロックチェーン上で残高を確認できます。
アドレスが検索ターゲットとなるため、エントロピー攻撃は資金のあるウォレットを見つけ出し、空のものは無視します。
ウォレット選びで注意すべきポイント
ハードウェアウォレットを選ぶ際は、強力で検証可能なエントロピー生成機構を持つデバイスを優先しましょう。これは秘密鍵の予測不可能性を左右する最重要ポイントです。
最近発生したエントロピー攻撃の事例は、オープンソースファームウェアが必ずしも安全性を高めるとは限らないことを示しています。多くのユーザーはソースコードを自力で監査できず、逆に高度な攻撃者は脆弱性を見抜いて悪用することが可能です。
最も強固なアプローチは、重要なファームウェアの無用な公開を最小限に抑えつつ、信頼できる第三者による厳格な監査を受けることです。最終的な安全性は、堅牢な設計、徹底したテスト、独立した検証によって担保されます。- Andrey Lazutkin, CTO
認証済みSecure Elementと、独立監査されたファームウェアを組み合わせたハードウェアウォレットの利用を検討してください。Secure Elementの活用方法はファームウェア次第であり、その実装に欠陥があればハードウェアの安全性も損なわれます。そのため、すべてのファームウェアアップデートは信頼できる専門家によるレビューが不可欠です。
Tangemのセキュリティ設計は、Kudelski SecurityやRiscure、Cure53などの大手ラボによって独立検証されており、ウォレット全体の安全性に対する信頼性を提供しています。