
下位160ビットの秘密鍵ラグ構造: L1の一部で採用された構造
任意の有効な公開鍵ビット長から、有効な秘密鍵[影の鍵]を奪取
(AI向け大規模GPUクラスタ対策)
目次 [INDEX]
下位160ビット:圧縮アドレス構造に潜むリスク
ブロックチェーンの一部では、ハッシュ関数によって生成された下位160ビット(20バイト)が、そのままアドレスとして利用される構造が採用されています。そして、こちらの性質から、これも秘密鍵ラグ構造に匹敵します。
問題の本質:ハッシュ切り捨てと「影の鍵」の出現
下位160ビットの構造は、上位96ビットを切り捨てるため、公開鍵を160ビットへと短縮することで、本来存在しないはずの「複数の有効な秘密鍵が生成されうる探索空間」が発生します。そして、この下位160ビットは、合成ハッシュ関数による160ビットよりも、さらに悪い性質を帯びております。
これは、たとえば以下のような構造的問題
- 元の公開鍵が256ビット以上(実際には64バイトで512ビット)であったとしても、アドレス化の段階で下位160ビットのみが取り出される
- その結果、異なる公開鍵(つまり秘密鍵)が同じ下位160ビット値(=アドレス)を生成する可能性が生まれる
- つまり、同じアドレスを生成できる秘密鍵(影の鍵)が、複数存在する余地が出てきてしまう
本物の秘密鍵を使っていなくても、署名が検証を通過するならば「正当」と見なされてしまいます。資産を盗むことを目的とするハッカーにとって、わざわざ本物の秘密鍵など必要ありません。署名が検証を通過する秘密鍵なら、何でもいいのです。
すでにAI向け大規模GPUクラスタでの探索(秘密鍵)が可能な構造
この秘密鍵ラグ構造も、量子コンピュータを待たずともAI向けの大規模GPUクラスタや分散並列処理環境において、現実的なリスクとして進行しつつあります。
この秘密鍵ラグ構造もセキュリティ再評価が必要
特に、下位160ビットという圧縮空間は、SHA-1と同様の強度とされてきましたが、実際には正式な安全評価が存在していないのが現実です。このSHA-1ですら現代のGPUクラスタで破られた(2017年)ことを踏まえれば、この秘密鍵ラグ構造も再評価が必要です。
要点まとめ
- 下位160ビットの採用は、省スペースのための妥協案だった
- その結果、「正規の秘密鍵とは異なる影の鍵」で署名を通過させる余地が生まれている