メインコンテンツにスキップ

ホーム MD5

MD5

(メッセージダイジェスト、ハッシュ値、チェックサム)

MD5の定義

MD5は、メッセージやファイルなどの入力データの完全性を検証するために使われる暗号ハッシュ関数です。 MD5は、ユニークな固定サイズの出力(ハッシュ値またはダイジェストとして知られている)を生成することによって、元のデータへの変更や修正を検出します。 MD5は、ダウンロードしたファイルの完全性の検証からパスワードの安全な保管まで、さまざまな目的で使用されてきました。 しかし、長年のうちにサイバー犯罪者たちはMD5のいくつかのセキュリティ上の脆弱性を発見し、悪用してきました。

MD5の仕組み

  • MD5は入力データを128ビットの固定値に変換します。
  • データを512ビットのブロックに分割します。 最後のブロックが正確に512ビット長でない場合、MD5はそうなるまで余分なビットをパッドします。
  • MD5アルゴリズムは、データを保持するために128ビットのバッファを作成します。
  • アルゴリズムは各512ビットのデータブロックを処理し、それに応じてバッファを更新します。 この処理は、16回ずつ4ラウンドに分けて行われます。
  • すべてのブロックが処理された後、結果として得られるバッファは、入力データに対する128ビットのハッシュ値となります。
  • ハッシュ値は入力データに固有です。 データに変更があれば、ハッシュ値も変更されます。
  • MD5は、元のデータの値が受信したデータのハッシュ値と一致するかどうかを検証します。

MD5のセキュリティ脆弱性とインシデント

  • 不正なCA証明書に使用されるMD5の衝突(2008年)。 研究者たちは、MD5衝突攻撃を使って不正なCA証明書を生成できることを示しました。
  • Flameマルウェア攻撃(2012年)。 この高度なマルウェアにより、イラン当局は石油ターミナルをインターネットから切断する事態に至りました。