MD4

Da Wikipedia, l'enciclopedia libera.
Un'operazione dell'MD4: l'MD4 consiste di 48 di queste operazioni, raggruppate in tre blocchi da 16 operazioni ciascuno. F è una funzione non lineare; una funzione F è usata in ogni passaggio. Mi indica un blocco da 32 bit del messaggio in input, Ki indica una costante a 32 bit, differente per ogni operazione.

L'MD4 è una funzione crittografica di hashing scritta da Ronald Rivest del MIT nel 1990. L'MD4 è utilizzato per la generazione di un message digest (o "impronta del messaggio", una stringa di lunghezza fissa) di 128 bit da un messaggio di lunghezza variabile. L'algoritmo ha influenzato successivi codici quali l'MD5, l'SHA ed il RIPEMD.

L'algoritmo non è sicuro ed il suo uso è pertanto sconsigliato in applicazioni in cui si richiede un elevato grado di sicurezza.

Hash dell'MD4[modifica | modifica wikitesto]

Gli hash a 128 bit (16 byte) dell'MD4 sono normalmente rappresentati come numeri esadecimali a 32 cifre. Ecco un esempio di un hash dell'MD4:

MD4("The quick brown fox jumps over the lazy dog") 
 = 1bee69a46ba811185c194762abaeae90

Come per ogni funzione di hash, anche nel caso dell'MD4 la modifica anche minima del messaggio di input comporta lo stravolgimento dell'hash. Nel caso seguente è stata cambiata la lettera d con la lettera c:

MD4("The quick brown fox jumps over the lazy cog") 
 = b86e130ce7028da59e672d56ad0113df

Questo è invece l'hash di una stringa di lunghezza zero:

MD4("") = 31d6cfe0d16ae931b73c59d7e0c089c0

Utilizzo[modifica | modifica wikitesto]

L'algoritmo è utilizzato come somma di controllo per verificare l'integrità dei dati e, sui sistemi Windows NT, per calcolare i digest delle password. Una versione modificata dell'MD4 è usata dal popolare programma EDonkey2000 come identificativo univoco dei file presenti nel network.

L'MD4 è anche utilizzato nel protocollo di sincronizzazione di file e cartelle Rsync.

Sicurezza[modifica | modifica wikitesto]

Nel 1991 Den Boer e Bosselaers dimostrarono che l'MD4 soffriva di debolezze progettuali. A causa di ciò, Rivest rilasciò nello stesso anno una versione migliorata dell'algoritmo denominata MD5. Tali debolezze furono poi sfruttate da Hans Dobbertin nel 1996 per attaccare l'algoritmo e trovare la prima collisione, vale a dire la generazione di un identico hash partendo da due messaggi differenti. Nel 2004 Wang Xiaoyun, insieme ad altri crittoanalisti, ha trovato un attacco di collisione molto efficiente all'MD4 e ad altri algoritmi di hash (MD5, HAVAL-128 e RIPEMD)[1], grazie al quale è possibile violare l'MD4 in pochi istanti.

Voci correlate[modifica | modifica wikitesto]

Note[modifica | modifica wikitesto]

  1. ^ Collisioni per le funzioni di Hash MD4/MD5/HAVAL-128 e RIPEMD (in inglese)

Collegamenti esterni[modifica | modifica wikitesto]

Attacchi di collisione[modifica | modifica wikitesto]