Aller au contenu principal
Cryptographie

RIPEMD-160

RIPEMD-160 est une fonction de hachage produisant un condensat de 160 bits. Bitcoin l'utilise après SHA-256 pour générer des adresses (HASH160). Elle est moins répandue que SHA-2 mais résistante aux collisions. Son intérêt : produire des adresses plus courtes que SHA-256 seul.

Origine

RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest, 160 bits) a été conçu en 1996 à l'Université KU Leuven (Belgique) par Hans Dobbertin, Antoon Bosselaers et Bart Preneel. Il s'inscrit dans le projet européen RIPE et a été pensé comme alternative ouverte aux fonctions américaines de NIST (SHA-1, SHA-2). Sa structure interne dérive de MD4.

Caractéristiques techniques

| Paramètre | Valeur | |-----------|--------| | Sortie | 160 bits / 20 octets | | Taille de bloc | 512 bits | | Rounds | 80 (deux pipelines parallèles de 5×16) | | Sécurité collision | ~2⁸⁰ (théorique), pas de collision pratique connue | | Sécurité préimage | ~2¹⁶⁰ |

Contrairement à SHA-1 (cassé en collisions en 2017), RIPEMD-160 résiste toujours en pratique. Aucune collision n'a été publiée.

Usage dans Bitcoin

Bitcoin utilise RIPEMD-160 en combinaison avec SHA-256 dans la primitive HASH160 :

HASH160(x) = RIPEMD-160(SHA-256(x))

Cette double primitive sert à :

  • Générer les adresses P2PKH : HASH160(pubkey) → préfixe 1....
  • Générer les adresses P2SH : HASH160(redeemScript) → préfixe 3....
  • L'output P2WPKH SegWit v0 : 20 octets directement issus de HASH160.

Le choix d'enchaîner les deux fonctions est une "défense en profondeur" : même si l'une d'elles présentait une faiblesse, l'autre tiendrait. C'est une décision de design de Satoshi sans équivalent dans les autres protocoles.

Pourquoi 160 bits

Avec 160 bits, on a 2¹⁶⁰ ≈ 1.46 × 10⁴⁸ adresses possibles, suffisamment pour exclure tout risque de collision en pratique. Une adresse Bitcoin compressée tient en 25 octets (un préfixe + 20 octets de hash + 4 octets de checksum), encodée en Base58Check en ~34 caractères. Avec un hash de 256 bits, l'adresse serait plus longue, sans gain de sécurité utile.

Évolution avec SegWit et Taproot

  • P2WPKH : continue à utiliser HASH160 (20 octets).
  • P2WSH : utilise SHA-256 simple (32 octets, plus de RIPEMD-160).
  • P2TR (Taproot) : abandonne complètement RIPEMD-160 ; l'output est la pubkey tweakée directement.

RIPEMD-160 reste donc gravé dans Bitcoin pour les adresses legacy et SegWit v0, mais disparaît de la nouvelle génération.

À retenir

RIPEMD-160 est un héritage européen précieux de la cryptographie des années 1990, choisi par Satoshi pour sa robustesse et son indépendance vis-à-vis du NIST. Il restera dans Bitcoin tant que des adresses P2PKH et P2WPKH circuleront.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.