8.2. A Very High Security Cryptographic Key (非常に高いセキュリティの暗号鍵)
8.2. A Very High Security Cryptographic Key (非常に高いセキュリティの暗号鍵)
2 つの当事者間の対称暗号化/復号化に非常に高いセキュリティの鍵が必要であると仮定します。また, 敵が通信を観察でき, 使用されているアルゴリズムを知っていると仮定します。ランダムな可能性のフィールド内で, 敵は使用中のものを見つけることを期待して鍵値を試すことができます。さらに, 敵ができる最善のことは鍵のブルートフォース試行であると仮定します。
8.2.1. Effort per Key Trial (鍵試行ごとの労力)
各鍵を試すのにどれだけの労力がかかりますか? 非常に高いセキュリティのアプリケーションでは, 低い労力値を仮定するのが最善です。単一の鍵を試すのに明らかに数万のコンピュータサイクル以上かかる場合でも, はるかに少ない労力で鍵値の巨大なブロックをテストできるパターンがあるかもしれません。したがって, おそらく鍵ごとに 200 サイクル以下を仮定するのが最善です。(これには明確な下限はありません。コンピュータは多数のビットで並列に動作し, 貧弱な暗号化アルゴリズムは多くの鍵または鍵のグループさえ並列にテストすることを可能にするかもしれないためです。ただし, ある値を仮定する必要があり, 仮想的な高セキュリティタスクに合理的に強力なアルゴリズムが選択されたことを期待できます。)
敵が高度に並列なプロセッサまたは大規模なワークステーションネットワークを指揮できる場合, 今日おそらく 1 秒あたり 10^11 サイクルは最小の仮定です。数年先を見据えると, 少なくとも 1 桁の改善があるはずです。したがって, 1 秒あたり 10^10 鍵, または 1 時間あたり 3.610^12, または 1 週間あたり 610^14, または 1 か月あたり 2.4*10^15 をチェックできると仮定するのが合理的です。これは, 1 か月で見つからないようにするために, 鍵に最低 63 ビットのランダム性が必要であることを意味します。それでも数年後には, 非常に決意があり resourceful な敵が 2 週間で鍵を破る可能性があり, 平均して, 彼らは鍵の半分だけを試す必要があります。
これらの質問は, Business Software Alliance が後援した "Minimal Key Lengths for Symmetric Ciphers to Provide Adequate Commercial Security: A Report by an Ad Hoc Group of Cryptographers and Computer Scientists" [KeyStudy] で詳細に検討されています。それは, 1995 年の非常に高いセキュリティのための合理的な鍵長は 75 から 90 ビットの範囲にあり, 暗号化のコストは鍵サイズによってあまり変わらないため, 90 ビットを推奨すると結論付けました。これらの推奨事項を更新するには, ムーアの法則 [MOORE] に対して年間 2/3 ビットを追加するだけです。これは, 2004 年の決定に変換され, 合理的な鍵長は 81 から 96 ビットの範囲にあります。実際, 今日では, AES で 128 ビット (またはそれ以上) の鍵や triple-DES で実効長 112 ビットの鍵など, 96 ビットを超える鍵を使用することがますます一般的になっています。
8.2.2. Meet-in-the-Middle Attacks (中間一致攻撃)
選択された平文または既知の平文とその結果の暗号化テキストが利用可能である場合, 暗号化アルゴリズムの構造がそれを許可する場合, "中間一致" 攻撃が可能です。(既知の平文攻撃では, 敵は暗号化されているメッセージのすべてまたは一部 (おそらくいくつかの標準ヘッダーまたはトレーラーフィールド) を知っています。選択された平文攻撃では, 敵はテキストが非常に興味深いため敵によって暗号化されたチャネルを介して送信される, 敵によって "漏洩" された刺激的なテキストである可能性があるため, 選択された平文を暗号化させることができます。
中間一致攻撃の過度に単純化された説明は次のとおりです: 敵は既知または選択された平文をすべての可能な前半鍵で半暗号化し, 出力をソートし, 次にすべての後半鍵で暗号化されたテキストを半復号化できます。一致が見つかった場合, 完全な鍵を半分から組み立て, メッセージの他の部分または他のメッセージを復号化するために使用できます。最良の場合, このタイプの攻撃は, 敵が必要とする作業の指数を半減させることができますが, 非常に大きいが大体一定の労力を追加します。したがって, この攻撃を実装できる場合, [KeyStudy] 分析に基づいて, 2004 年には非常に強力な鍵のランダム性の量を最低 192 ビット (96*2) に倍増する必要があります。
このランダム性の量は, 米国国防総省がパスワード生成のために推奨する入力のものをはるかに超えており, ユーザータイピングタイミング, ハードウェア乱数生成, または他のランダム性のソースを必要とする可能性があります。
中間一致攻撃は, 暗号アルゴリズムをこの方法で分解できることを前提としています。うまくいけば, 現代のアルゴリズムにはこの弱点はありませんが, それを確信していない場合や, 鍵が使用されるアルゴリズムさえわからない場合があるかもしれません。基本アルゴリズムが中間一致攻撃の対象ではない場合でも, 基本アルゴリズムを 2 回 (または 2 つの異なるアルゴリズムを連続して) 異なる鍵で適用することによってより強力なアルゴリズムを生成しようとすると, 予想されるよりも追加されるセキュリティが少なくなります。そのような複合アルゴリズムは中間一致攻撃の対象となります。
中間一致攻撃を実装するには膨大なリソースが必要かもしれませんが, それらはおそらく主要国の国家安全保障サービスの範囲内です。本質的にすべての国が他の国のトラフィックをスパイしています。
8.2.3. Other Considerations (その他の考慮事項)
[KeyStudy] は, 専用のコード破壊ハードウェアの可能性と適切な安全マージンを持つことも考慮しています。
上記のような鍵長の計算は議論の余地があり, 使用中の暗号アルゴリズムに関するさまざまな仮定に依存していることに注意してください。一部のケースでは, アルゴリズム破壊技術と使用中のアルゴリズムの強度についての深い知識を持つ専門家は, 上記で導出された 192 ビット鍵サイズの半分未満で満足できる可能性があります。
保守的な設計原則のさらなる例については, [FERGUSON] を参照してください。