RIPEMD

RIPEMD (RACE Integrity Primitives Evaluation Message Digest) は、1996年にルーヴェン・カトリック大学のHans Dobbertin、Antoon Bosselaers、Bart Preneelによって開発された暗号学的ハッシュ関数である。RIPEMDはMD4の設計原理に基づいたものであり、SHA-1と同程度のパフォーマンスを有している。
SHA-1やSHA-2がNSAによって開発されたのと対照的に、RIPEMDはオープンな学術コミュニティによって開発され、特許による制限を受けない。RIPEMD-160は、オリジナルのRIPEMDでは128ビットであるハッシュ長を160ビットにしたうえで改良を加えたものであり、RIPEMDのファミリーの中で最も広く用いられているが、SHA-1ほどは用いられていない。
160ビットだけでなく128、256、320ビットの変種もあり、それぞれRIPEMD-128、RIPEMD-256、RIPEMD-320と呼ばれている。128ビットであるRIPEMD-128は、同じく128ビットでありセキュリティ面での問題点が発見されていたオリジナルのRIPEMDを置き換えることのみを意図したものである。256および320ビットであるRIPEMD-256、RIPEMD-320はハッシュの衝突の可能性を小さくするのみであり、原像攻撃への耐性といったセキュリティレベルはRIPEMD-128やRIPEMD-160と同程度である。
2004年8月に、オリジナルのRIPEMDについてハッシュの衝突が報告された。これはRIPEMD-160などには影響を及ぼさない。
RIPEMD-160 のハッシュ値.
RIPEMD-160によるハッシュ値は、十六進法で40桁となる。以下は、43バイトのASCII文字列を入力とした時のRIPEMD-160によるハッシュ値である。
 RIPEMD-160("The quick brown fox jumps over the lazy dog") =
 37f332f68db77bd9d7edd4969571ad671cf9dd3b
入力メッセージのわずかな違いも、出力されるハッシュ値には大きな違いをもたらす。d を c に変えた場合には以下のようになる。
 RIPEMD-160("The quick brown fox jumps over the lazy cog") =
 132072df690933835eb8b6ad0b77e7b6f14acad7
空の入力に対するハッシュ値は以下のようになる。
 RIPEMD-160("") = 
 9c1185a5c5e9fc54612808977ee8f548b2258d31
実装ライブラリ.
RIPEMDをサポートしているライブラリは以下の通り。