RIPEMD

RIPEMD一般

設計者|  Hans Dobbertin, Antoon Bosselaers, Bart Preneel
初版発行日|  1996
認証|  RIPEMD-160: CRYPTREC（運用監視）

ダイジェスト長|  128, 160, 256, 320 bits
RIPEMD 160の圧縮関数のサブブロック

RIPEMD (RACE Integrity Primitives Evaluation Message Digest) は、1996年にルーヴェン・カトリック大学COSIC（英語版）の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についてハッシュの衝突が報告された[1]。これはRIPEMD-160などには影響を及ぼさない[2]。

## 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をサポートしているライブラリは以下の通り。

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

## 関連項目

[編集]

* 暗号学的ハッシュ関数

## 脚注

[編集]

1. ^ Xiaoyun Wang (2004年8月17日). “Collisions for Hash Functions MD4, MD5, HAVAL-128 and RIPEMD”. 2013年12月28日閲覧。
2. ^ Florian Mendel (2006年). “On the Collision Resistance of RIPEMD-160”. 2014年11月7日閲覧。

## 外部リンク

[編集]

* RIPEMD-160: A Strengthened Version of RIPEMD (RIPEMD-160 specification and reference implementation)
* RIPEMD-160 Ecrypt page

* 表
* 話
* 編
* 歴

暗号学的ハッシュ関数とメッセージ認証コード

セキュリティ要約（英語版）
一般的関数|

* MD5
* SHA-1
* SHA-2
* SHA-3/Keccak

SHA-3最終候補（英語版）|

* BLAKE
* Grøstl（英語版）
* JH（英語版）
* Skein（英語版）
* Keccak (勝者)

その他の関数|

* FSB（英語版）
* ECOH（英語版）
* GOST（英語版）
* HAS-160（英語版）
* HAVAL（英語版）
* Kupyna（英語版）
* LMハッシュ
* MDC-2（英語版）
* MD2
* MD4
* MD6（英語版）
* N-Hash（英語版）
* RadioGatún
* RIPEMD
* SipHash（英語版）
* Snefru（英語版）
* Streebog（英語版）
* SWIFFT（英語版）
* Tiger（英語版）
* VSH（英語版）
* WHIRLPOOL
* crypt(3)（英語版） (DES)

MACアルゴリズム|

* DAA（英語版）
* CBC-MAC
* HMAC
* OMAC（英語版）/CMAC
* PMAC（英語版）
* VMAC（英語版）
* UMAC（英語版）
* Poly1305

認証付き暗号モード|

* CCM
* CWC（英語版）
* EAX（英語版）
* GCM
* IAPM（英語版）
* OCB（英語版）

攻撃|

* 衝突攻撃（英語版）
* 原像攻撃
* 誕生日攻撃
* 総当たり攻撃
* レインボーテーブル
* サイドチャネル攻撃
* 伸長攻撃（英語版）
* 差分解読法

設計|

* アバランシェ効果（英語版）
* ハッシュ衝突
* Merkle–Damgård構成法（英語版）

標準化|

* CRYPTREC
* NESSIE
* NISTハッシュ関数コンベンション（英語版）
* NSA Suite B（英語版）
* CNSA

利用|

* ソルト
* キーストレッチ（英語版）
* メッセージ認証（英語版）

パスワードハッシュ関数|

* bcrypt
* PBKDF2
* scrypt
* Argon2
* Catena（英語版）
* Lyra2（英語版）
* Makwa（英語版）
* yescrypt
* Balloon（英語版）
* crypt（英語版）

* カテゴリ：ハッシュ関数・メッセージ認証コード・認証付き暗号

* 表
* 話
* 編
* 歴

* 暗号史
* 暗号解読
* Cryptography portal
* en:Outline of cryptography

* 共通鍵暗号
* ブロック暗号
* ストリーム暗号
* 暗号利用モード
* 公開鍵暗号
* 暗号学的ハッシュ関数
* メッセージ認証コード
* 認証付き暗号
* 乱数生成器
* ステガノグラフィー

カテゴリ