Il RIPEMD è un algoritmo crittografico di hashing ideato da Hans Dobbertin, Antoon Bosselaers e Bart Preneel, tutti membri del gruppo di ricerca COSIC alla Katholieke Universiteit Leuven, sita nella città belga di Lovanio, e pubblicato per la prima volta nel 1994. Il RIPEMD nacque come alternativa europea ad altre funzioni di hash di provenienza americana come l'MD4 e l'MD5.

Ne esistono diverse versioni, ognuna con differenti lunghezze dell'hash: di queste la più utilizzata è quella denominata RIPEMD-160.

Il RIPEMD ed i suoi successori

modifica

Già nel 1995 Hans Dobbertin trovò delle collisioni in 2 dei 3 passaggi dell'algoritmo. Fu così che il gruppo di sviluppo si mise nuovamente al lavoro e pubblicò nel 1996 una versione modificata del codice originale che non soffriva delle debolezze segnalate da Dobbertin. Questa funzione, come la prima, produceva un hash di 128 bit di lunghezza e fu perciò chiamata RIPEMD-128.

Contemporaneamente furono prodotte anche altre versioni, tutte con hash più lunghi dei canonici 128 bit adottati fino ad allora dato che l'evoluzione tecnologica aveva dimostrato che un hash di tale lunghezza non era più capace di resistere ad un attacco a forza bruta condotto da un super-computer. L'algoritmo senz'altro più noto ed usato è quella denominato RIPEMD-160, che genera in output un hash di 160 bit. Gli altri algoritmi sono noti come RIPEMD-256 e RIPEMD-320 con hash di 256 e 320 bit, rispettivamente evoluzione del RIPEMD-128 e del RIPEMD-160. Rispetto a questi ultimi, però, non hanno livelli di sicurezza maggiori ma presentano solo una diminuita possibilità di avere collisioni accidentali.

Hash del RIPEMD-160

modifica

Esempi di hash a 160 bit del RIPEMD-160 (rappresentati come numeri esadecimali a 40 cifre):

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

Ecco come varia l'hash cambiando una sola lettera del messaggio (una d con una c):

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

Questo è invece l'hash per una stringa di lunghezza nulla:

 RIPEMD-160("") = 
 9c1185a5c5e9fc54612808977ee8f548b2258d31

Sicurezza

modifica

Gli algoritmi della famiglia RIPEMD sono stati sviluppati in ambito accademico, in contrasto con quelli sviluppati dal National Security Agency (SHA). Nonostante questo, il RIPEMD-160 è meno diffuso di SHA-1 e questo può aver comportato l'essere stato meno studiato di quest'ultimo. A tutt'oggi, però, non risulta che il RIPEMD-160 sia stato violato.

Nel 2004, Xiaoyun Wang ed il suo gruppo di lavoro hanno pubblicato uno studio in cui riportavano le collisioni trovate nel RIPEMD originale ed in altri algoritmi di hash (PDF).

Il significato del nome

modifica

Il nome è un multi-acronimo: RIPEMD sta, infatti, per RIPE Message Digest; RIPE sta per RACE Integrity Primitives Evaluation, il nome del progetto di ricerca di primitive crittografiche all'interno del RACE, acronimo di Research and Development in Advanced Communications Technologies, un programma europeo atto allo studio dell'espansione delle comunicazioni ad alta banda e dei servizi annessi, lanciato nel 1988 e terminato nel 1992. All'interno del RACE si formarono varie branche, tra cui quella per lo sviluppo di tecniche di crittografia per la protezione delle trasmissioni di dati sensibili. Il RIPEMD emerse proprio durante questi studi.

Collegamenti esterni

modifica