MD4
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
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
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
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.
Note
- ^ Collisioni per le funzioni di Hash MD4/MD5/HAVAL-128 e RIPEMD Archiviato l'11 settembre 2010 in Internet Archive. (in inglese)
Voci correlate
Collegamenti esterni
- RFC 1320 - Descrizione dell'MD4 fatta da Ron Rivest (in inglese)
- Sulla sicurezza delle modalità di crittazione dell'MD4, dell'MD5 e dell'HAVAL (in inglese)
- Attacco di collisione migliorato all'MD4 (in inglese)
- Implementazione dell'MD4 JavaScript, PHP e online
Attacchi di collisione
- Un attacco agli ultimi due passaggi dell'MD4 (in inglese)
- Un attacco di collisione all'MD4 (in inglese)
- Generatore rapido di collisioni per MD4 (sorgente in C)
V · D · M | |
---|---|
Funzioni di hash principali | MD5 · SHA-1 · SHA-2 · SHA-3 |
Altre funzioni | GOST · HAS-160 · HAVAL · LM hash · MDC-2 · MD2 · MD4 · N-Hash · RIPEMD · RadioGatún · Snefru · Tiger · Whirlpool |
Algoritmi di MAC | DAA · CBC-MAC · HMAC · OMAC/CMAC · PMAC · UMAC · Poly1305-AES |
Attacchi | Collisione hash · Attacco del compleanno · Attacco preimmagine · Tabella arcobaleno · Attacco del canale laterale · Attacco a forza bruta |
Varie | Effetto valanga · Costruzione Merkle-Damgård · NESSIE · NIST hash function competition |
Portale Crittografia · Progetto Crittografia · Hash crittografici · MAC |