Message-Digest Algorithm 4
# Message-Digest Algorithm 4

MD4 (englisch Message-Digest Algorithm 4) ist eine 1990 von Ronald L. Rivest veröffentlichte kryptologische Hashfunktion. Sie wurde mit dem Anspruch entwickelt, auf 32-Bit-Rechnern besonders schnell zu laufen und gleichzeitig in der Implementierung einfach zu sein. Dabei sollten natürlich die grundlegenden Anforderungen an Hash-Funktionen erhalten bleiben. MD4 erzeugt einen Hashwert mit einer Länge von 128 Bit.

Es zeigte sich jedoch bald, dass das Verfahren unsicher ist. Als besonders problematisch stellte sich die mangelnde Kollisionssicherheit heraus. Im Cryptobytes Journal der Firma RSA wurde eine Methode veröffentlicht, welche innerhalb einer Stunde zwei bis auf ein Zeichen identische Nachrichten erzeugen konnte, die denselben Hashwert ergaben. Rivest selbst bestätigte die Unsicherheit im RFC 1321: The MD5 Message-Digest Algorithm, so dass selbst RSA vom Einsatz dieses Message-Digest abrät. MD4 wurde als Public Domain lizenziert, worauf wohl zurückzuführen ist, dass das verwendete Prinzip zur Basis weiterer Hash-Funktionen geworden ist.

## MD4-Hashes

Die 128 Bit langen MD4-Hashes (englisch auch message-digests) werden normalerweise als 32-stellige Hexadezimalzahl notiert. Folgendes Beispiel zeigt eine 59 Byte lange ASCII-Eingabe und den zugehörigen MD4-Hash:

Eine kleine Änderung der Nachricht erzeugt fast sicher einen komplett anderen Hash. Mit Frank statt Franz ergibt sich:

Der Hash einer Zeichenfolge der Länge Null ist:

Beispiel für eine Kollision:

Diese Zeichenfolgen unterscheiden sich an den mit '^' markierten Stellen. Zwei hex-Ziffern definieren jeweils ein Byte der 64 Byte langen MD4-Eingabe. Sie liefern beide den Hashwert:

