MD2
出典: フリー百科事典『ウィキペディア(Wikipedia)』
'MD2(Message Digest Algorithm 2)とは、1989年にロナルド・リベストが開発した暗号用ハッシュ関数。このアルゴリズムは 8ビットコンピュータ向けに最適化されている。MD2 の仕様は RFC 1319 で示されている。その後、MD4、MD5、SHAといったハッシュ関数アルゴリズムが登場しているが、2004年、 MD2 は RSA暗号と共に公開鍵証明書を発行する公開鍵基盤として使われ続けていた。
目次 |
[編集] 概要
任意のメッセージのハッシュ値が、コンピュータ上のブロック長(128ビット/16バイト)の倍数になるようパディングされ、16バイトのチェックサムを追加した状態で計算される。実際の計算では、48バイトの補助ブロックと円周率の小数部分の数列から間接的に生成された 256バイトのテーブルを使用する。パディングされたメッセージ全体が処理されると、補助ブロックの最初の不完全ブロックがそのメッセージのハッシュ値となる。
[編集] MD2 ハッシュ値
128ビット(16バイト)の MD2 のハッシュ値(これを message digests とも呼ぶ)は、通常 32桁の16進数で表される。以下に 43バイトの ASCIIを入力として MD2 のハッシュ値を得る様子を示す。
MD2("The quick brown fox jumps over the lazy dog") = 03d85a0d629d2c442e987525319fc471
メッセージに微妙な修正を施した場合でも、完全に異なるハッシュ値が生成される。ここでは、dog が cog に修正されている。
MD2("The quick brown fox jumps over the lazy cog") = 6b890c9292668cdbbfda00a4ebf31f05
長さ 0 のメッセージのハッシュ値は次のようになる。
MD2("") = 8350e5a3e24c153df2275c9f80692773
[編集] セキュリティ
Rogier と Chauvaud (1997年) は MD2 の圧縮関数でのコリジョンを見出した。ただし、彼らも MD2 全体への攻撃には成功しなかった。
2004年、2104 の圧縮関数と等価な時間複雑性のプレイメージ攻撃で MD2 の脆弱性が明らかとなった(Muller、2004年)。「MD2 はもはや安全な単方向のハッシュ関数とは言えない」
[編集] 参考文献
- Burt Kaliski, MD2 Message Digest Algorithm, April 1992.
- Frédéric Muller, The MD2 Hash Function is Not One-Way, ASIACRYPT 2004, pp214–229.
- N. Rogier and Pascal Chauvaud, MD2 is not Secure without the Checksum Byte, Designs, Codes and Cryptography, 12(3), pp245–251, 1997.
- Lars R. Knudsen and John Erik Mathiassen, Preimage and Collision Attacks on MD2. FSE 2005.
[編集] 外部リンク
- Serversniff.net 文字列の MD2 などのハッシュ値を計算するオンラインツール
- テキスト、16進、2進、Base64などの相互変換と同時にMD2その他のハッシュ値を計算するオンラインツール [1]