MD5

読み:エムディーファイヴ
外語:MD5: Message Digest 5
品詞:名詞

一方向ハッシュ関数の一つで、1991(平成3)年にRSA暗号のRon Rivestにより開発された。

原文の長さに関係なく、128ビットの固定長データ列を生成する。

この関数の具体的なアルゴリズムはRFC 1321外部リンクで規定されている。

特徴

このハッシュ値には、次のような特徴がある。

  • ハッシュ値から原文を得ることはできない
  • 異なる原文から同一のハッシュ値が得られる可能性は非常に低い
  • 僅かな原文の差でも、出力されるハッシュ値は大きく異なったものになる

MD4との違い

MD5は、MD4と比較して次のような特徴がある(RFC 1321 第5章)。

  1. 4番目のラウンドが追加された。
  2. 現在の各ステップはユニークな付加的定数を持っている。
  3. ラウンド2の機能gは、gをあまり均整がとれた状態にしないように、(XY ∨ XZ ∨ YZ) から (XZ ∨ Y not(Z)) に変更された。
  4. 現在の各ステップに、前のステップの結果を加える。これは、更に速い「なだれ効果」を促進する。
  5. ラウンド2と3でアクセスされるオーダは、これらのパターンが相互に少なくなるように、変更された。
  6. 更に速い「なだれ効果」をもたらすために、各ラウンドにおけるシフト量は、かなり最適化された。シフト量はラウンドごとに異なる。

同一性確認(改竄されてないことの確認)や認証などの標準として広く利用されることになるが、1992(平成4)年に弱点が発見された。

その後はNSA主導で開発されたSHA-1、そしてその更に後継へと主役の座を明け渡している。

主な用例として、次のようなものがある。