プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ暗号化規格(DES)の弱点とは?設計上の問題点を徹底解説

DES(データ暗号化規格)の主な弱点

DES(Data Encryption Standard)は長年広く使われてきた共通鍵暗号方式ですが、その設計にはいくつかの弱点が指摘されています。ここでは、暗号設計上の問題点と暗号鍵に関する脆弱性について詳しく解説します。

暗号設計上の弱点

S-box(Sボックス)の弱点

S-boxの設計については、以下の3つの弱点が発見されています。

  • S-box 4の出力ビットの相関:一部の入力ビットを組み合わせることで、最初の出力ビットと同じ方法で最後の3つの出力ビットを変更することが可能です。
  • 同一出力を生む入力の存在:特別に選ばれた2つの異なる入力が、同じ出力を生成する場合があります。
  • 限られた範囲での同一出力:隣接するわずか3つのS-box内のビットを変換するだけで、1ラウンドで同じ出力を得ることができます。

D-box(Dボックス)の弱点

D-boxの設計に関しては、以下の疑問点と弱点が確認されています。

  • 初期順列・最終順列の目的不明:暗号処理の冒頭と末尾に行われる順列の存在意義が明確になっていません。
  • 拡大順列におけるビットの重複:関数内部の拡大順列では、各4ビット列のうち1番目と4番目のビットが重複して使用されています。

暗号鍵に関する弱点

鍵長の問題――最大の脆弱性

専門家の間で最も深刻な弱点とされるのが、56ビットという鍵長です。総当たり攻撃(ブルートフォースアタック)を行う場合、攻撃者は最大で256個の鍵を試す必要があります。

  • 当時の技術水準では毎秒約100万個の鍵を検証できたため、シングルプロセッサのコンピュータで全鍵空間を探索するには100年以上かかると考えられていました。
  • しかし、100万個のチップによる並列処理が可能な専用マシンを作れば、全鍵空間を約20時間で検証できる計算になります。
  • DESが登場した当初、そのようなコンピュータの価格は数百万ドルでしたが、コストは急速に低下していきました。実際、1998年には112時間で鍵を特定することに成功した専用マシンが開発されています。
  • さらに、インターネット経由でも並列処理は実現可能です。1997年には、ネットワークに接続された3500台のコンピュータを用いて、RSAワークショップが提示した鍵を120日で発見した事例があります。鍵空間を全マシンで分割し、それぞれが担当範囲を探索する方式でした。
  • この計算式に基づけば、4万2000台規模のコンピュータを擁する組織であれば、わずか10日で鍵を発見できることになります。

弱い鍵(Weak Keys)の存在

256個の候補鍵のうち、4つは「弱い鍵」と呼ばれる特別な鍵に該当します。弱い鍵とは、パリティドロップ操作を経た後に、すべて0、すべて1、あるいは半分が0で半分が1となるような鍵のことです。

このような弱い鍵から生成される16個のラウンド鍵は、互いに同一のパターンを持つという特徴があります。例えば、ある弱い鍵から生成される16個のラウンド鍵はすべて0で構成され、別の弱い鍵からは半分0・半分1のパターンが生まれます。

この現象が起こる理由は、鍵生成アルゴリズムがまず暗号鍵を左右2つの半分に分割するためです。ブロックがすべて0またはすべて1で構成されている場合、シフト操作や順列操作を施してもブロックの中身は一切変化しないため、同一のラウンド鍵が繰り返し生成されてしまいます。

  1. DES(データ暗号化規格)の2つの重要な特性とは?アバランシェ効果と完全性を徹底解説

    DES(Data Encryption Standard:データ暗号化標準)は、ブロック暗号の一種です。その暗号化手順は、初期置換と最終置換として定義される2つの置換(Pボックス)と、16回のFeistelラウンドで構成されています。各ラウンドでは、暗号鍵から事前に定められたアルゴリズムに従って生成された、それぞれ異なる48ビットのラウンド鍵が必要となります。DES関数は48ビットの鍵を使用し、右側の32ビット(RI-1)から32ビットの出力を作り出します。DESが持つ2つの重要な特性DESには、暗号の安全性を支える上で欠かせない2つの特性があります。それが「アバランシェ効果」と「完全性」です

  2. 情報セキュリティにおける暗号化の種類とは?基本から主要な方式まで徹底解説

    暗号化(Encryption)とは、ファイルやメールメッセージなどのデータを、復号鍵なしでは読み取れない形式である「暗号文」に変換する処理のことです。これにより、あらかじめ決められた受信者以外が情報を読み取ることを防ぎます。復号(Decryption)はその逆のプロセスであり、暗号化されたデータを元の平文(プレーンテキスト)の状態へ戻す操作を指します。また、暗号技術における「鍵」とは、暗号化・復号アルゴリズムで使用される大量のビット列のことです。暗号化では、その方式に応じて情報が数字・文字・記号などさまざまな形で表現されます。暗号技術分野の専門家の中には、データの暗号化や、暗号化されたデータを