MD4
MD4メッセージダイジェストアルゴリズム は1990年に[Ronald Rivest]によって開発された暗号ハッシュ関数です。ダイジェストの長さは128ビットです。このアルゴリズムは、MD5、SHA-1、RIPEMDアルゴリズムなどの後の設計に影響を与えました。頭字語の「MD」は「Message Digest」の略です。
MD4のセキュリティはひどく損なわれています。 MD4に対する最初の完全な衝突攻撃は1995年に発表され、その後いくつかの新しい攻撃が公開されています。 2007年時点で、攻撃は2つ未満のMD4ハッシュ操作で衝突を生成する可能性があります。
セキュリティ[編集]
MD4の弱点は、1991年に発行された論文でDen BoerとBosselaersによって実証されました。最初の完全なMD4 [衝突攻撃]は1995年に[Hans Dobbertin]によって発見されました。時間。 2004年8月、 Wang et al。 MD4 / MD5 / SHA-1 / RIPEMDファミリの後のハッシュ関数設計に対する攻撃と並んで、非常に効率的なコリジョン攻撃を発見しました。この結果は、Sasakiらによって後に改良され、衝突を生成することは現在、それを検証するのと同じくらい安い(数マイクロ秒)。 2011年に、RFC 6150はRFC 1320(MD4)が歴史的なものであると述べています(旧式)。
MD4ハッシュ[編集]
128ビット(16バイト)のMD4ハッシュ(「メッセージダイジェスト」とも呼ばれる)は、通常、32桁の[16進数]の数字で表されます。以下は、43バイトのASCII入力とそれに対応するMD4ハッシュを示しています。
MD4(「茶色のキツネが怠惰なOGに飛び乗る」) = 1bee69a46ba811185c194762abaeae90
メッセージ内の小さな変化でさえ(圧倒的な確率で)完全に異なるハッシュになります。 &lt; tt&gt; d&lt; / tt&gt; to c </ tt>:
MD4(「茶色のキツネが怠惰なOGに飛び乗る」) = b86e130ce7028da59e672d56ad0113df
長さゼロの文字列のハッシュは次のとおりです。
MD4( "")= 31d6cfe0d16ae931b73c59d7e0c089c0
MD4テストベクトル[編集]
以下のテストベクタは、RFC 1320(The MD4 Message-Digest Algorithm)
MD4( "")= 31d6cfe0d16ae931b73c59d7e0c089c0 MD4( "a")= bde52cb31de33e46245e05fbdbd6fb24 MD4( "abc")= a448017aaf21d8525fc10ae87aa6729d MD4(「メッセージダイジェスト」)= d9130a8164549fe818874806e1c7014b MD4( "abcdefghijklmnopqrstuvwxyz")= d79e1c308aa5bbcdeea8ed63df412da9 MD4( "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")= 043f8582f241db351ce627e153e7f0e4 MD4( "12345678901234567890123456789012345678901234567890123456789012345678901234567890")= e33b4ddc9c38f2199c3e7b164fcc0536
MD4衝突の例[編集]
Let:
k1 = 839c7a4d7a92cb67a5d59ea5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b23ba6318ed45e51fe39708bf9427e9c3e8b9 k2 = 839c7a4d7a92cb678a5d59aa5a7573c8a74deb366c3dc20a083b69f5d2a3bb3719dc69891e9f95e809fd7e8b23ba6318ed45e51fe39708bf9427e9c3e8b9
k1≠k2であるが、MD4(k1)= MD4(k2)= 4d7e6a1defa93d2dde05b45d864c429b
2つの16進数のk1とk2は、入力文字列の1バイトを定義します。その長さは64バイトです。