Cryptology Academy · レッスン

MD5:歴史、用途、破られた理由

MD5の内部構造と、廃止に至った衝突攻撃を学びます。

レッスン 2/413 ステップ

「MD5:歴史、用途、破られた理由」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

ようこそ

MD5はかつて最も広く使われていたハッシュ関数でした。しかし現在、セキュリティ目的では完全に破られています。その理由と、何が問題だったのかを見ていきましょう。

MD5の概要

MD5(Message Digest 5)は、Ron Rivestによって1991年に設計されました。128ビット(16バイト)のハッシュを生成します。出力例: MD5('hello') = 5d41402abc4b2a76b9719d911017c592

MD5アルゴリズムの構造

MD5は512ビットのブロックを使うMerkle-Damgård構造を採用しています。各ブロックは、16個の操作からなる4ラウンドを通過します。操作にはビット単位のAND、OR、XOR、NOT、加算、左ローテーションを使用します。

PythonでのMD5

import hashlib hash = hashlib.md5(b'hello').hexdigest() print(hash) # 5d41402abc4b2a76b9719d911017c592 print(len(hash)) # 32 hex chars = 128 bits

過去の用途

MD5は、ファイルの完全性検証、パスワード保存、SSL証明書、デジタル署名、コード署名に使われていました。高速であることが普及の理由でした。

最初の亀裂:差分攻撃(1996年)

1996年、Hans Dobbertin氏がMD5の圧縮関数で衝突を発見しました。これは危険な兆候でしたが、MD5はその後も何年にもわたって広く使われ続けました。

完全衝突:Wang氏ら(2004年)

2004年、Xiaoyun Wang氏のチームが、数秒で生成できる完全なMD5衝突を発見しました。これにより、異なる2つのファイルが同じ値にハッシュされる可能性が生じました。衝突耐性の観点では、MD5は公式に役目を終えました。

Flameマルウェア(2012年)

FlameマルウェアはMD5の衝突を利用して、Microsoftのコード署名証明書を偽造しました。これにより、悪意のあるソフトウェアがMicrosoftによって正当に署名されたように見えました。

セキュリティ以外でのMD5の用途

MD5は、セキュリティを目的としないチェックサム(衝突攻撃が問題にならないファイルダウンロードの検証など)や、非暗号学的ハッシュテーブルには現在でも使用できます。ただし、セキュリティ用途には決して使わないでください。

パスワード保存の失敗

MD5で保存されたパスワードは簡単に解読されます。MD5ハッシュ用の巨大なレインボーテーブルが存在するためです。ソルトなしのMD5('password')は常に同じハッシュになります。CrackStationは毎秒数十億件を解読できます。

MD5からの移行

MD5は、一般的な完全性の確認にはSHA-256、新しい設計にはSHA-3、パスワードにはbcryptまたはArgon2、メッセージ認証にはHMAC-SHA256に置き換えてください。例外はありません。

クイックチェック

MD5がセキュリティ用途から廃止されたのはなぜですか?

まとめ

セキュリティ用途におけるMD5は、もはや安全ではありません。次はSHA-1とSHA-2ファミリーを学び、その後に続いた改良について理解します。
無料で開始

AI チューターと学ぶ Cryptology Academy — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
67
レッスン
261

よくある質問

「MD5:歴史、用途、破られた理由」レッスンは無料ですか?

はい。「MD5:歴史、用途、破られた理由」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「MD5:歴史、用途、破られた理由」で何を学びますか?

MD5の内部構造と、廃止に至った衝突攻撃を学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「MD5:歴史、用途、破られた理由」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 優れたハッシュ関数の条件
  2. MD5:歴史、用途、破られた理由
  3. SHA-1とSHA-2ファミリーの解説
  4. ハッシュの用途:チェックサム、HMAC、Git
← Cryptology Academyに戻る