RIPEMD


RIPEMD is a family of cryptographic hash functions developed in 1992 and 1996. There are five functions in the family: RIPEMD, RIPEMD-128, RIPEMD-160, RIPEMD-256, and RIPEMD-320, of which RIPEMD-160 is the most common.
The original RIPEMD, as well as RIPEMD-128, is not considered secure because 128-bit result is too small and also because of design weaknesses. The 256- and 320-bit versions of RIPEMD provide the same level of security as RIPEMD-128 and RIPEMD-160, respectively; they are designed for applications where the security level is sufficient but longer hash result is necessary.
While RIPEMD functions are less popular than SHA-1 and SHA-2, they are used, among others, in Bitcoin and other cryptocurrencies based on Bitcoin.

History

The original RIPEMD function was designed in the framework of the EU project RIPE in 1992. Its design was based on the MD4 hash function. In 1996, in response to security weaknesses found in the original RIPEMD, Hans Dobbertin, Antoon Bosselaers and Bart Preneel at the COSIC research group at the Katholieke Universiteit Leuven in Leuven, Belgium published four strengthened variants: RIPEMD-128, RIPEMD-160, RIPEMD-256, and RIPEMD-320.
In August 2004, a collision was reported for the original RIPEMD. This does not apply to RIPEMD-160.

RIPEMD-160 hashes

The 160-bit RIPEMD-160 hashes are typically represented as 40-digit hexadecimal numbers. The following demonstrates a 43-byte ASCII input and the corresponding RIPEMD-160 hash:
RIPEMD-160 =
37f332f68db77bd9d7edd4969571ad671cf9dd3b
RIPEMD-160 behaves with the desired avalanche effect of cryptographic hash functions :
RIPEMD-160 =
132072df690933835eb8b6ad0b77e7b6f14acad7
The hash of a zero-length string is:
RIPEMD-160 =
9c1185a5c5e9fc54612808977ee8f548b2258d31

Implementations

Below is a list of cryptography libraries that support RIPEMD :