暗号学において、弱い鍵とは、特定の暗号で使用されると、暗号が望ましくない動作をする鍵のことです。弱い鍵は通常、全体の鍵空間のごく一部を占めるため、乱数生成によって作成された暗号鍵がセキュリティ上の問題を引き起こす可能性は非常に低いと言えます。しかし、暗号には弱い鍵がないことが望ましいと考えられています。弱い鍵のない暗号は、フラットな鍵空間、つまり線形の鍵 空間を持つと言われています。
歴史的起源
事実上すべてのローターベースの暗号機 (1925 年以降) には実装上の欠陥があり、その結果、相当数の弱いキーが作成されることになります。最近のブロック暗号やストリーム暗号と同様に、一部のローター マシンでは弱いキーに関する問題が他のマシンよりも多く発生します。
最初のストリーム暗号機もローター マシンであり、従来のローター マシンと同様に弱いキーの問題がいくつかありました。T52 は、弱いキーの問題を抱えたそのようなストリーム暗号機の 1 つでした。
イギリス軍が初めて T52 通信を検出したのは 1942 年の夏と秋でした。1 つのリンクはシチリア島とリビアの間で、コード名は「スタージョン」、もう 1 つはエーゲ海からシチリア島へのもので、コード名は「マッケレル」でした。両方のリンクのオペレーターは、同じマシン設定で複数のメッセージを暗号化する習慣があり、大量の深度が生成されました。
T52 には、T52a と T52b (電気ノイズ抑制のみが異なる)、T52c、T52d、T52e など、いくつかの (ほとんど互換性のない) バージョンがありました。T52a/b と T52c は暗号学的に弱いものでしたが、最後の 2 つはより高度なデバイスでした。車輪の動きは断続的で、車輪を進めるかどうかの決定は、車輪自体から入力データを受け取る論理回路によって制御されていました。
さらに、いくつかの概念的な欠陥(非常に微妙なものも含む)が排除されました。そのような欠陥の 1 つは、キーストリームを固定ポイントにリセットする機能であり、これにより、規律のないマシン オペレーターによるキーの再利用が発生していました。
DES の弱い鍵
ブロック暗号 DES には、「弱いキー」と「半弱いキー」と呼ばれる特定のキーがいくつかあります。これらは、DES の暗号化モードが DES の復号化モード (ただし、キーが異なる可能性もある) と同じように動作するキーです。
動作中、秘密の56ビットキーはDESキースケジュールに従って16個のサブキーに分割され、16回のDESラウンドのそれぞれで1つのサブキーが使用されます。DESの弱いキーは16個の同一のサブキーを生成します。これはキー(16進数で表現)が次の場合に発生します。[1]
- 交互の 1 + 0 (0x0101010101010101)
- 'F' + 'E' の交互 (0xFEFEFEFEFEFEFEFEFE)
- '0xE0E0E0E0F1F1F1F1'
- '0x1F1F1F1F0E0E0E0E'
実装でパリティ ビットを考慮しない場合、反転されたパリティ ビットを持つ対応するキーも弱いキーとして機能する可能性があります。
- すべてゼロ (0x00000000000000000)
- すべて 'F' (0xFFFFFFFFFFFFFFFF)
- '0xE1E1E1E1F0F0F0F0'
- '0x1E1E1E1E0F0F0F0F'
弱いキーを使用すると、 DESキー スケジュールのPermuted Choice 1 (PC-1)の結果、ラウンド キーはすべて 0、すべて 1、または 0 と 1 が交互に並ぶパターンのいずれかになります。
すべてのサブキーは同一であり、DES はFeistel ネットワークであるため、暗号化機能は自己反転します。つまり、一度暗号化すると安全に見える暗号文が生成されますが、二度暗号化すると元の平文が生成されます。
DES には半弱鍵もあり、これは 2 つの異なるサブキーのみを生成し、それぞれがアルゴリズムで 8 回使用されます。つまり、これらはK 1とK 2のペアで提供され、次の特性を持ちます。
ここで、 E K (M) は、キーKでメッセージ Mを暗号化する暗号化アルゴリズムです。6 つの半弱いキー ペアがあります。
- 0x011F011F010E010E および 0x1F011F010E010E01
- 0x01E001E001F101F1 および 0xE001E001F101F101
- 0x01FE01FE01FE01FE および 0xFE01FE01FE01FE01
- 0x1FE01FE00EF10EF1 および 0xE01FE01FF10EF10E
- 0x1FFE1FFE0EFE0EFE および 0xFE1FFE1FFE0EFE0E
- 0xE0FEE0FEF1FEF1FE および 0xFEE0FEE0FEF1FEF1
また、48個の弱い鍵が存在し、それらからは16個のサブキーしか生成されない。これらはNISTの出版物に掲載されている。[2]
これらの弱いキーと半弱いキーは、DES の「致命的な欠陥」とは見なされていません。DES には 2 56 (7.21 × 10 16、約 72 京) のキーがあり、そのうち 4 つは弱いキーで、12 は半弱いキーです。これは、可能なキー空間のごく一部であるため、ユーザーは心配する必要はありません。必要な場合は、キーの生成時に弱いキーまたは半弱いキーをチェックできます。これらは非常に少なく、簡単に認識できます。ただし、すべてのDESキーがブルートフォース攻撃で解読できるため、現在 DES は一般的な使用には推奨されていません。Deep Crackマシンが数日単位でそれらを解読していたのは数十年前であり、コンピューターがそうする傾向があるように、最近のソリューションはその時間スケールでは非常に安価です。進歩の例は、Deep Crack の記事にあります。
弱い鍵を持つアルゴリズムのリスト
- DES については、上記で詳しく説明しました。
- RC4の弱い初期化ベクトルは、攻撃者が既知平文攻撃を仕掛けることを可能にし、 WEP [3]やARC4 DMRA DMRのセキュリティを侵害するために広く使用されてきました。
- IDEA。 IDEA の弱いキーは、選択平文攻撃で識別可能です。 これによって、平文ビットと暗号文ビットの XOR 合計の関係が予測可能になります。 これらのキーのリストはありませんが、その「構造」によって識別できます。
- Blowfish。Blowfish の弱い鍵は、悪い S ボックスを生成します。これは、Blowfish の S ボックスが鍵依存だからです。Blowfish のラウンド数を減らしたバージョンに対する選択平文攻撃は、弱い鍵の使用によって容易になります。これは、完全な 16 ラウンドの Blowfish では問題になりません。
- GMAC。AES -GCM 構築で頻繁に使用されます。弱いキーは、認証キー H のグループ順序によって識別できます (AES-GCM の場合、H はゼロ ブロックを暗号化することによって暗号化キーから導出されます)。
- RSAとDSA。2012年 8 月、Nadia Heninger、Zakir Durumeric、Eric Wustrow、J. Alex Halderman は、評価した TLS 証明書が鍵生成時のエントロピー不足のために鍵を共有しており、公開鍵のみを知っていても TLS および SSH ホストの DSA および RSA 秘密鍵を取得できることを発見しました。[4]
設計目標として弱いキーはなし
'フラット' キー空間 (つまり、すべてのキーが同等に強力) を持つことは、常に暗号設計の目標です。DES の場合と同様に、少数の弱いキーは、それらがすべて識別されているか識別可能である限り許容されることがあります。未知の弱いキーを持つアルゴリズムは、あまり信頼されません。[引用が必要]
弱いキーを誤って使用することに対する主な 2 つの対策:
- 生成されたキーを既知の弱いキーのリストと照合するか、弱いキーの拒否をキーのスケジュールに組み込みます。
- 弱いキーの数が(キースペースのサイズと比較して)非常に少ないことが分かっている場合、キーを均一にランダムに生成すると、そのキーが弱い確率が(既知の)非常に小さい数になることが保証されます。
弱い鍵が多数あることは、あらゆる暗号設計において重大な欠陥です。ランダムに生成された鍵が弱い鍵になる可能性が (おそらく高すぎるほど) 高く、その鍵で暗号化されたメッセージのセキュリティが損なわれるからです。また、そのような場合には、ランダムに生成された鍵の弱点をチェックするのに時間がかかるため、「効率」を重視して近道をしたくなるでしょう。
ただし、弱い鍵は、安全な暗号ハッシュ関数を構築することを目的とした動作モードでブロック暗号が使用される場合など、攻撃者が使用する鍵をある程度制御できる場合に問題となることが多くなります(例: Davies-Meyer )。
参照
参考文献
- ^ FIPS、NBS データ暗号化標準の実装と使用に関するガイドライン、FIPS-PUB 74、http://www.itl.nist.gov/fipspubs/fip74.htm
- ^ NIST、トリプルデータ暗号化アルゴリズム(TDEA)ブロック暗号に関する勧告、特別出版物800-67、14ページ
- ^ Fluhrer, S.、Mantin, I.、Shamir, A. RC4 のキー スケジューリング アルゴリズムの弱点、第 8 回暗号化の特定分野に関する年次ワークショップ (2001 年 8 月)、http://citeseer.ist.psu.edu/fluhrer01weaknesses.html
- ^ 「研究論文 - factorable.net」。factorable.net 。 2020年6月26日閲覧。
