Zum Inhalt springen

Message-Digest Algorithm 4

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 17. Juni 2007 um 01:13 Uhr durch Speck-Made (Diskussion | Beiträge) (hat „Message Digest Algorithm 4“ nach „Message-Digest Algorithm 4“ verschoben). Sie kann sich erheblich von der aktuellen Version unterscheiden.

MD4 (engl. Message Digest Algorithm 4) wurde 1990 von Ronald L. Rivest veröffentlicht. Der MD4 Hash-Algorithmus 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.

Trotz aller Sorgfalt im Design zeigte sich bald, dass das Verfahren unsicher ist. Als besonders problematisch stellte sich die mangelnde Kollisionsbeständigkeit 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:

 md4("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern") =
 3270fd28f1b28cd219bb946bd372fc00

Eine kleine Änderung der Nachricht erzeugt (mit sehr großer Wahrscheinlichkeit) einen komplett anderen Hash. Mit Frank statt Franz ergibt sich:

 md4("Frank jagt im komplett verwahrlosten Taxi quer durch Bayern") =
 c95704f5b2928c67a0970a576cebc589

Der Hash eines Stringes der Länge Null ist:

 md4("") = 31d6cfe0d16ae931b73c59d7e0c089c0

Siehe auch

  • RFC 1320: The MD4 Message-Digest Algorithm
  • Jacksum - ein Programm zur Berechnung und Verifizierung von Hash-Werten (plattformunabhängig, Open Source)


Vorlage:Navigationsleiste Hash-Algorithmen