Zum Hauptinhalt springen

RFC 1321 - Der MD5-Message-Digest-Algorithmus

  • Status: Informational
  • Veröffentlicht: April 1992
  • Stream: IETF
  • Errata: Keine Errata

Status dieses Memorandums​

Dieses Memorandum stellt Informationen für die Internet-Community bereit. Es spezifiziert keinen Internet-Standard. Die Verbreitung dieses Memorandums ist unbegrenzt.


Danksagungen​

Wir möchten Don Coppersmith, Burt Kaliski, Ralph Merkle, David Chaum und Noam Nisan für zahlreiche hilfreiche Kommentare und Vorschläge danken.


Inhaltsverzeichnis​

Anhänge​

Zusätzliche Abschnitte​


Verwandte Ressourcen​



2. Terminology and Notation (Terminologie und Notation)​

In diesem Dokument ist ein „Wort (Word)" eine 32-Bit-Größe und ein „Byte (Byte)" eine 8-Bit-Größe. Eine Bitfolge kann auf natürliche Weise als Bytefolge interpretiert werden, wobei jede aufeinanderfolgende Gruppe von acht Bits als Byte mit dem höchstwertigen Bit (Most Significant Bit) jedes Bytes zuerst aufgelistet wird. Ebenso kann eine Bytefolge als Folge von 32-Bit-Wörtern interpretiert werden, wobei jede aufeinanderfolgende Gruppe von vier Bytes als Wort mit dem niedrigstwertigen Byte (Least Significant Byte) zuerst angegeben wird.

Sei x_i „x Index i". Wenn der Index ein Ausdruck ist, umgeben wir ihn mit geschweiften Klammern, wie in x_{i+1}. Ebenso verwenden wir ^ für Exponenten (Potenzierung), sodass x^i x hoch i bezeichnet.

Das Symbol „+" bezeichnet die Addition von Wörtern (d. h. Modulo-2^32-Addition). X <<< s bezeichnet den 32-Bit-Wert, der durch zirkuläres Verschieben (Rotation) von X um s Bitpositionen nach links erhalten wird. not(X) bezeichnet das bitweise Komplement von X, und X v Y bezeichnet das bitweise ODER von X und Y. X xor Y bezeichnet das bitweise XOR von X und Y, und XY bezeichnet das bitweise UND von X und Y.



4. Summary (Zusammenfassung)​

Der MD5-Message-Digest-Algorithmus ist einfach zu implementieren und liefert einen „Fingerabdruck" oder Message-Digest einer Nachricht beliebiger Länge. Es wird vermutet, dass die Schwierigkeit, zwei Nachrichten mit demselben Message-Digest zu finden, in der Größenordnung von 2^64 Operationen liegt, und dass die Schwierigkeit, eine Nachricht mit einem gegebenen Message-Digest zu finden, in der Größenordnung von 2^128 Operationen liegt. Der MD5-Algorithmus wurde sorgfältig auf Schwachstellen untersucht. Es handelt sich jedoch um einen relativ neuen Algorithmus, und weitere Sicherheitsanalysen sind natürlich gerechtfertigt, wie bei jedem neuen Vorschlag dieser Art.



5. Differences Between MD4 and MD5 (Unterschiede zwischen MD4 und MD5)​

Die folgenden sind die Unterschiede zwischen MD4 und MD5:

  1. Eine vierte Runde wurde hinzugefügt.

  2. Jeder Schritt hat jetzt eine eindeutige additive Konstante.

  3. Die Funktion g in Runde 2 wurde von (XY v XZ v YZ) zu (XZ v Y not(Z)) geändert, um g weniger symmetrisch zu machen.

  4. Jeder Schritt fügt jetzt das Ergebnis des vorherigen Schritts hinzu. Dies fördert einen schnelleren „Lawineneffekt".

  5. Die Reihenfolge, in der Eingangswörter in den Runden 2 und 3 zugegriffen werden, wurde geändert, um diese Muster weniger ähnlich zueinander zu machen.

  6. Die Verschiebungsbeträge in jeder Runde wurden ungefähr optimiert, um einen schnelleren „Lawineneffekt" zu erzielen. Die Verschiebungen in verschiedenen Runden sind unterschiedlich.



Security Considerations (Sicherheitsüberlegungen)​

Das in diesem Memorandum diskutierte Sicherheitsniveau wird als ausreichend angesehen, um sehr sichere hybride digitale Signaturschemata zu implementieren, die auf MD5 und einem Public-Key-Kryptosystem basieren.