MD5 は、1990 年代初頭に科学者の Ronald L. Rivest によって作成された 128 ビットのハッシュ アルゴリズムです。 MD5 という略語は、メッセージ ダイジェスト バージョン 5 を表します。
MD5 暗号化はハッシュに基づいており、信頼性をさらに検証するために「フィンガープリント」または「サム」の形成が含まれます。 この方法を使用すると、情報の整合性とパスワード ハッシュの保存を検証できます。
MD5 の歴史
メッセージ ダイジェスト アルゴリズム (MD5) の歴史は、MIT 教授 Ronald L. Rivest が時代遅れの MD4 に代わる新しいアルゴリズムの作成について報告した 1991 年に始まります。 MD4 に関しては、ドイツの暗号学者ハンス ドッベルティンが後に書いたように、確かに多くの欠点が見つかりました。
Rivest は、RFC 1321 で新しい MD5 アルゴリズムについて説明しました。
このアルゴリズムの研究は、研究者の Bert den Boer と Anton Bosselars によって継続され、1993 年に、異なる初期化ベクトルが同じメッセージ ダイジェストと一致する場合に、MD5 で擬似衝突が発生する可能性を証明しました。
さらに、1996 年にハンス ドッベルティンは MD5 で衝突を発見したと主張しました。 当時、Hans Dobbertin、Anton Bosselars、および Whirlpool の Bart Prenel が開発した RIPEMD-160 暗号化ハッシュ関数や、Vincent Raymen と Paulo Barreto が開発した SHA-1 暗号化ハッシュ アルゴリズムなど、より好ましいハッシュ アルゴリズムが知られるようになりました。
MD5 のハッシュ サイズ (128 ビット) は比較的小さいため、誕生日攻撃の可能性について話題になっています。 2004 年に Jean-Luc Cook によって立ち上げられた MD5CRK プロジェクトは、誕生日攻撃を使用したアルゴリズムの脆弱性を研究することを目的としていました。 しかし、5 か月後の 2004 年 8 月 17 日、Lai Xuejia 率いる中国の暗号学者グループがアルゴリズムの脆弱性を発見したため、プロジェクトは縮小されました。
2005 年 3 月、数学者で暗号学者の Benne de Weger、Arjen Lenstra、Wang Xiaoyun は、同じハッシュと異なる公開鍵を持つ 2 つの X.509 ドキュメントを作成しました。
1 年後の 2006 年 3 月、チェコの暗号学者 Vlastimil Klima によって、単純なコンピュータでわずか 1 分で衝突を判定できるアルゴリズムが公開されました。 このアルゴリズムは「トンネリング」方式として知られるようになりました。
作業結果の分析の結果、2008 年に米国土安全保障省国家サイバー セキュリティ局 (US-CERT) の部門は、開発に携わったすべての人に次のことを勧告しました。多くのソフトウェア、Web サイト、およびネットワーク ユーザーは、アプリケーションの目的に関係なく、MD5 アルゴリズムの使用を停止します。 このような推奨の理由は、研究の過程で彼が証明した信頼性のなさでした。
2010 年 12 月、中国の暗号学者 Tao Xie 氏と Feng Denguo 氏は、512 ビット (1 ブロック) のメッセージ衝突を発見しました。 以前は、衝突は 2 ブロック以上の長さのメッセージでのみ検出されていました。 その後、Mark Stevens も同じ MD5 ハッシュを使用してブロックを公開することで同様の結果を達成しました。 彼は、このタイプの衝突を取得するためのアルゴリズムも開発しました。
MD5 アルゴリズムの開発の歴史に終止符を打った最後の文書は、コメント要求 - RFC 6151 でした (RFC は Internet Engineering Council (IETF) によって開発された公式文書であり、特定のアルゴリズムの仕様について説明しています)テクノロジー)、実際には MD5 を安全でないハッシュ アルゴリズムとして認識しました。 この文書では、これを放棄し、代替として SHA-2 ファミリの暗号アルゴリズムを選択することを推奨しています。
ここで説明する MD5 アルゴリズムは、ファイルの整合性をチェックし、Web アプリケーション データベースにパスワードを保存するために使用される最初のアルゴリズム標準の 1 つであると考えられています。
しかし、実際には、比較的単純な機能、短い出力長、実行される操作の単純さは、このアルゴリズムの利点であると同時に、欠点にもなります。MD5 は、ハッキングされやすく、保護の程度が低いアルゴリズムを指します。誕生日攻撃に対して。