Core Concepts
低エントロピーのRSA鍵生成により共通の素因数を持つRSA鍵が生成される可能性がある。提案するバイナリツリーバッチGCDアルゴリズムは、既存の最良のバッチGCDアルゴリズムよりも効率的に、これらの共通素因数を特定することができる。
Abstract
RSAは非常に成功した非対称暗号化アルゴリズムである。しかし、RSA鍵の生成時に低エントロピーが発生すると、一部のRSA鍵が共通の素因数を持つ可能性がある。この脆弱性を利用するのがバッチGCD攻撃である。
バッチGCD攻撃では、全てのRSA鍵の組み合わせについてGCD演算を行い、共通の素因数を特定する。既存の最良のバッチGCD手法は、まず積木を作り、次に剰余木を構築するというものである。
本研究では、新しいバイナリツリーバッチGCDアルゴリズムを提案する。このアルゴリズムは、ツリーの構築時にGCD演算を行うことで、共通素因数を効率的に特定できる。
提案アルゴリズムの計算量は、既存手法と同程度の漸近的な計算量スケーリングを持つが、共通素因数の数が少ない場合は大幅に高速化される。実装ではおよそ6倍の高速化が確認された。
Stats
2048ビットRSA鍵で2つの弱い鍵がある場合、提案手法は既存手法に比べ約6倍高速
2048ビットRSA鍵で100の弱い鍵がある場合、提案手法は既存手法に比べ約6倍高速
2048ビットRSA鍵で1000の弱い鍵がある場合、提案手法は既存手法に比べ約6倍高速