


MD2(Message Digest Algorithm 2)とは、1989年にロナルド・リベストが開発した暗号学的ハッシュ関数。このアルゴリズムは8ビットコンピュータ向けに最適化されている。MD2 の仕様は RFC 1319 で示されている。MD2は既に安全でないことが示されているが、 2014年現在もRSA暗号と共に公開鍵証明書を発行する公開鍵基盤として使われ続けている。任意のメッセージのハッシュ値が、コンピュータ上のブロック長(128ビット/16バイト)の倍数になるようパディングされ、16バイトのチェックサムを追加した状態で計算される。実際の計算では、48バイトの補助ブロックと円周率の小数部分の数列から間接的に生成された256バイトのSテーブルを使用する。そのアルゴリズムは、処理される16個の入力バイトそれぞれについて、補助ブロックの各バイトを18回並べ替えるループを使用する。パディングされたメッセージの全ブロックの処理が終わると、補助ブロックの最初の不完全ブロックがそのメッセージのハッシュ値になる。Sテーブルの値を16進数で表すと次のようになる。128ビット(16バイト)の MD2 のハッシュ値(これを "message digests" とも呼ぶ)は、通常32桁の16進数で表される。以下に 43バイトの ASCIIを入力として MD2 のハッシュ値を得る様子を示す。メッセージに微妙な修正を施した場合でも、完全に異なるハッシュ値が生成される。ここでは、dog が cog に修正されている。長さ 0 のメッセージのハッシュ値は次のようになる。Rogier と Chauvaud (1997年) は MD2 の圧縮関数でのコリジョンを見出した。ただし、彼らも MD2 全体への攻撃には成功しなかった。2004年、2 の圧縮関数評価と等価な時間複雑性の原像攻撃で MD2 の脆弱性が明らかとなった(Muller、2004年)。「MD2 はもはや安全な単方向のハッシュ関数とは言えない」2008年、2 の圧縮関数評価と等価な時間複雑性および 2 のメッセージブロックのメモリ容量による原像攻撃への耐性を持つようMD2が改良された。2009年、2 の圧縮関数評価と等価な時間複雑性および 2 のハッシュ値のメモリ容量による衝突攻撃で MD2 の脆弱性が示された。これは2の圧縮関数評価が必要と見積もられている誕生日攻撃よりも若干よい値である。2009年、OpenSSL、GnuTLS、Network Security Services においてMD2を使用不可にするセキュリティアップデートが発行された。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。