MD2
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

この項目では、コンピュータ用語について説明しています。タンパク質については「リンパ球抗原96」をご覧ください。

MD2一般
設計者ロナルド・リベスト
初版発行日1989年8月[1]
シリーズMD2, MD4, MD5, MD6
詳細
ダイジェスト長128 bits
ラウンド数18

MD2(Message Digest Algorithm 2)とは、1989年ロナルド・リベストが開発した暗号学的ハッシュ関数[1][2]。このアルゴリズムは8ビットコンピュータ向けに最適化されている。MD2 の仕様は RFC 1319 で示されている。MD2は既に安全でないことが示されているが、 2014年現在もRSA暗号と共に公開鍵証明書を発行する公開鍵基盤として使われ続けている。
概要

任意のメッセージのハッシュ値が、コンピュータ上のブロック長(128ビット/16バイト)の倍数になるようパディングされ、16バイトのチェックサムを追加した状態で計算される。実際の計算では、48バイトの補助ブロックと円周率の小数部分の数列から間接的に生成された256バイトのSテーブルを使用する。そのアルゴリズムは、処理される16個の入力バイトそれぞれについて、補助ブロックの各バイトを18回並べ替えるループを使用する。パディングされたメッセージの全ブロックの処理が終わると、補助ブロックの最初の不完全ブロックがそのメッセージのハッシュ値になる。

Sテーブルの値を16進数で表すと次のようになる。0x29, 0x2E, 0x43, 0xC9, 0xA2, 0xD8, 0x7C, 0x01, 0x3D, 0x36, 0x54, 0xA1, 0xEC, 0xF0, 0x06, 0x13, 0x62, 0xA7, 0x05, 0xF3, 0xC0, 0xC7, 0x73, 0x8C, 0x98, 0x93, 0x2B, 0xD9, 0xBC, 0x4C, 0x82, 0xCA, 0x1E, 0x9B, 0x57, 0x3C, 0xFD, 0xD4, 0xE0, 0x16, 0x67, 0x42, 0x6F, 0x18, 0x8A, 0x17, 0xE5, 0x12, 0xBE, 0x4E, 0xC4, 0xD6, 0xDA, 0x9E, 0xDE, 0x49, 0xA0, 0xFB, 0xF5, 0x8E, 0xBB, 0x2F, 0xEE, 0x7A, 0xA9, 0x68, 0x79, 0x91, 0x15, 0xB2, 0x07, 0x3F, 0x94, 0xC2, 0x10, 0x89, 0x0B, 0x22, 0x5F, 0x21,0x80, 0x7F, 0x5D, 0x9A, 0x5A, 0x90, 0x32, 0x27, 0x35, 0x3E, 0xCC, 0xE7, 0xBF, 0xF7, 0x97, 0x03, 0xFF, 0x19, 0x30, 0xB3, 0x48, 0xA5, 0xB5, 0xD1, 0xD7, 0x5E, 0x92, 0x2A, 0xAC, 0x56, 0xAA, 0xC6, 0x4F, 0xB8, 0x38, 0xD2, 0x96, 0xA4, 0x7D, 0xB6, 0x76, 0xFC, 0x6B, 0xE2, 0x9C, 0x74, 0x04, 0xF1, 0x45, 0x9D, 0x70, 0x59, 0x64, 0x71, 0x87, 0x20, 0x86, 0x5B, 0xCF, 0x65, 0xE6, 0x2D, 0xA8, 0x02, 0x1B, 0x60, 0x25, 0xAD, 0xAE, 0xB0, 0xB9, 0xF6, 0x1C, 0x46, 0x61, 0x69, 0x34, 0x40, 0x7E, 0x0F, 0x55, 0x47, 0xA3, 0x23, 0xDD, 0x51, 0xAF, 0x3A, 0xC3, 0x5C, 0xF9, 0xCE, 0xBA, 0xC5, 0xEA, 0x26, 0x2C, 0x53, 0x0D, 0x6E, 0x85, 0x28, 0x84, 0x09, 0xD3, 0xDF, 0xCD, 0xF4, 0x41, 0x81, 0x4D, 0x52, 0x6A, 0xDC, 0x37, 0xC8, 0x6C, 0xC1, 0xAB, 0xFA, 0x24, 0xE1, 0x7B, 0x08, 0x0C, 0xBD, 0xB1, 0x4A, 0x78, 0x88, 0x95, 0x8B, 0xE3, 0x63, 0xE8, 0x6D, 0xE9, 0xCB, 0xD5, 0xFE, 0x3B, 0x00, 0x1D, 0x39, 0xF2, 0xEF, 0xB7, 0x0E, 0x66, 0x58, 0xD0, 0xE4, 0xA6, 0x77, 0x72, 0xF8, 0xEB, 0x75, 0x4B, 0x0A, 0x31, 0x44, 0x50, 0xB4, 0x8F, 0xED, 0x1F, 0x1A, 0xDB, 0x99, 0x8D, 0x33, 0x9F, 0x11, 0x83, 0x14
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 はもはや安全な単方向のハッシュ関数とは言えない」

2008年、273 の圧縮関数評価と等価な時間複雑性および 273 のメッセージブロックのメモリ容量による原像攻撃が示された[3]

2009年、263.3 の圧縮関数評価と等価な時間複雑性および 252 のハッシュ値のメモリ容量による衝突攻撃で MD2 の脆弱性が示された。これは265.5の圧縮関数評価が必要と見積もられている誕生日攻撃よりも若干よい値である[4]

2009年、OpenSSLGnuTLSNetwork Security Services においてMD2を使用不可にするセキュリティアップデートが発行された[5]
参考文献

Burt Kaliski, .mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}
RFC 1319 - MD2 Message Digest Algorithm, April 1992.

N. Rogier, Pascal Chauvaud, The compression function of MD2 is not collision free, Selected Areas in Cryptography - SAC'95 Ottawa, Canada, May 18?19, 1995 (workshop record).

N. Rogier, Pascal Chauvaud, MD2 is not Secure without the Checksum Byte, Designs, Codes and Cryptography, 12(3), pp245–251, 1997.

Frederic Muller, The MD2 Hash Function is Not One-Way, ASIACRYPT 2004, pp214–229.

Lars R. Knudsen and John Erik Mathiassen, Preimage and Collision Attacks on MD2. FSE 2005.

脚注^ a b John Linn, RFC 1115 - Privacy Enhancement for Internet Electronic Mail: Part III?Algorithms, Modes, and Identifiers, Section 4.2, August 1989, Source by Ron L. Rivest October, 1988.
^ “ ⇒What are MD2, MD4, and MD5?”. Public-Key Cryptography Standards (PKCS): PKCS #7: Cryptographic Message Syntax Standard: 3.6 Other Cryptographic Techniques: 3.6.6 What are MD2, MD4, and MD5?. RSA Laboratories. 2011年4月29日閲覧。
^ Soren S. Thomsen (2008). ⇒An improved preimage attack on MD2. ⇒http://eprint.iacr.org/2008/089.pdf
^http://www.springerlink.com/content/qn746388035614r1/
^CVE-2009-2409

関連項目

ハッシュ関数

MD4

MD5

Secure Hash Algorithm

外部リンク

RFC 1319, The MD2 Message-Digest Algorithm

RFC 6149, MD2 to Historic Status

Online MD2 Calculator over HTTPS

Serversniff.net 文字列の MD2 などのハッシュ値を計算するオンラインツール

テキスト、16進、2進、Base64などの相互変換と同時にMD2その他のハッシュ値を計算するオンラインツール ⇒[1]










暗号学的ハッシュ関数メッセージ認証コード
セキュリティ要約(英語版)
一般的関数

MD5

SHA-1

SHA-2

SHA-3/Keccak

SHA-3最終候補(英語版)

BLAKE

Grostl(英語版)

JH(英語版)

Skein(英語版)

Keccak (勝者)

その他の関数

FSB(英語版)

ECOH(英語版)

GOST(英語版)

HAS-160(英語版)

HAVAL(英語版)

Kupyna(英語版)

LMハッシュ

MDC-2(英語版)

MD2

MD4

MD6(英語版)

N-Hash(英語版)

RadioGatun

RIPEMD

SipHash(英語版)

Snefru(英語版)

Streebog(英語版)

SWIFFT(英語版)

Tiger(英語版)

VSH(英語版)

WHIRLPOOL


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:17 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef