RIPEMD

RIPEMD(RACE Integrity Primitives Evaluation Message Digest)は、1996年にベルギーのルーヴェン・カトリック大学COSICに所属するHans Dobbertin、Antoon Bosselaers、Bart Preneelによって開発された暗号学的ハッシュ関数です。この関数は、MD4の設計原理をベースにしており、SHA-1と同程度のパフォーマンスを実現しています。特筆すべきは、SHA-1やSHA-2がアメリカ国家安全保障局(NSA)によって開発されたのに対し、RIPEMDはオープンな学術コミュニティによって開発され、特許による制約を受けない点です。

RIPEMDには複数のバリエーションが存在しますが、その中でもRIPEMD-160が最も広く利用されています。RIPEMD-160は、オリジナルのRIPEMDのハッシュ長である128ビットを160ビットに拡張し、改良を加えたものです。しかし、SHA-1ほど広く普及しているわけではありません。

RIPEMDの他のバリエーションとしては、128ビットのRIPEMD-128、256ビットのRIPEMD-256、そして320ビットのRIPEMD-320があります。RIPEMD-128は、オリジナルのRIPEMDの代替として開発されたものであり、セキュリティ上の問題点が指摘されていたオリジナルのRIPEMDを置き換えることを目的としています。一方で、RIPEMD-256およびRIPEMD-320は、ハッシュの衝突の可能性を低減することを目的としており、原像攻撃への耐性といったセキュリティレベルは、RIPEMD-128やRIPEMD-160と同程度です。

2004年8月には、オリジナルのRIPEMDにおいてハッシュの衝突が発見されました。しかし、この発見はRIPEMD-160などの他のバリエーションには影響を及ぼしていません。

RIPEMD-160のハッシュ値



RIPEMD-160によるハッシュ値は、16進数で40桁となります。以下に、43バイトのASCII文字列を入力とした際のRIPEMD-160によるハッシュ値の例を示します。


RIPEMD-160("The quick brown fox jumps over the lazy dog") =
37f332f68db77bd9d7edd4969571ad671cf9dd3b


また、入力メッセージにわずかな違いがあるだけで、出力されるハッシュ値は大きく変化します。例えば、上記の例で「dog」を「cog」に変えると、以下のようになります。


RIPEMD-160("The quick brown fox jumps over the lazy cog") =
132072df690933835eb8b6ad0b77e7b6f14acad7


さらに、空の入力に対するハッシュ値は以下の通りです。


RIPEMD-160("") =
9c1185a5c5e9fc54612808977ee8f548b2258d31


実装ライブラリ



RIPEMDをサポートしているライブラリは以下の通りです。

Botan
Bouncy Castle
Cryptlib
Crypto++
Libgcrypt
Mbed TLS
Nettle
OpenSSL
wolfSSL


関連項目



暗号学的ハッシュ関数

脚注




外部リンク



RIPEMD-160: A Strengthened Version of RIPEMD (RIPEMD-160の仕様と参照実装)
RIPEMD-160 Ecrypt page

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。