MD5 【Message Digest 5】
ハッシュ関数は入力データを元に規則性のない固定長のデータを算出する関数で、同じ入力値からは必ず同じ値が得られる一方、わずかでも入力値が異なるとまったく違う出力値になる。逆算不能な一方向関数を含み、ハッシュ値から入力値を割り出したり、同じハッシュ値となる別の入力値を生成することは困難となっている。
データの伝送や複製を行なう際、入力側と出力側でハッシュ値を求めて照合すれば同一性を簡単に確認でき、途中でデータの改竄や欠落、破損などが起こっていないことが分かる。暗号や認証、デジタル署名などの要素技術として様々な場面で利用されている。
MD5は1991年に考案されたアルゴリズムで、128ビット(16バイト)固定長のハッシュ値を算出する。テキスト(文字)として記載する際は「7f138a09169b250e9dcb378140907378」といったように4ビットずつ16進数の「0」から「f」に対応付け、32桁の英数字で表す記法がよく用いられる。
IETFによってRFC 1321として標準化され、古くからソフトウェアの配布などで利用者が受け取ったファイルが配布されているものに相違ないかを確かめるのによく利用された。LinuxなどのUNIX系OSでは「md5sum」あるいは「md5」というコマンドで指定したファイルのMD5ハッシュを算出することができる。
インターネットの普及期には暗号通信などにも広く応用されてきたが、近年ではコンピュータの性能向上や攻撃手法の研究の進展などで、同一のMD5ハッシュを持つ異なる原文のペアを効率よく探索する手法などが考案されている。セキュリティ用途で使用するのは十分安全とは言えなくなっており、SHA-2など後発のより安全なハッシュ関数に置き換えることが推奨されている。
(2022.9.7更新)