Zum Hauptinhalt springen

1. Executive Summary (Zusammenfassung)

Dieses Dokument beschreibt den MD5-Message-Digest-Algorithmus (MD5 Message-Digest Algorithm). Der Algorithmus nimmt eine Nachricht beliebiger Länge als Eingabe und erzeugt als Ausgabe einen 128-Bit-„Fingerabdruck (Fingerprint)" oder „Message-Digest (Message Digest)" der Eingabe. Es wird vermutet, dass es rechnerisch nicht durchführbar ist, zwei Nachrichten mit demselben Message-Digest zu erzeugen oder eine Nachricht mit einem vorgegebenen Ziel-Message-Digest zu erzeugen. Der MD5-Algorithmus ist für digitale Signaturanwendungen (Digital Signature Applications) vorgesehen, bei denen eine große Datei auf sichere Weise „komprimiert" werden muss, bevor sie mit einem privaten Schlüssel (Private Key) in einem Public-Key-Kryptosystem wie RSA verschlüsselt wird.

Der MD5-Algorithmus ist so konzipiert, dass er auf 32-Bit-Maschinen recht schnell ist. Darüber hinaus benötigt der MD5-Algorithmus keine großen Substitutionstabellen (Substitution Tables); der Algorithmus kann sehr kompakt codiert werden.

Der MD5-Algorithmus ist eine Erweiterung des MD4-Message-Digest-Algorithmus [1,2]. MD5 ist etwas langsamer als MD4, aber „konservativer" im Design. MD5 wurde entwickelt, weil man das Gefühl hatte, dass MD4 möglicherweise schneller zur Verwendung übernommen wurde, als es durch die vorhandene kritische Überprüfung gerechtfertigt war; weil MD4 so konzipiert wurde, dass es außergewöhnlich schnell ist, befindet es sich „am Rande" in Bezug auf das Risiko erfolgreicher kryptanalytischer Angriffe. MD5 geht etwas zurück und opfert ein wenig Geschwindigkeit für eine viel größere Wahrscheinlichkeit ultimativer Sicherheit. Es enthält einige Vorschläge verschiedener Gutachter und enthält zusätzliche Optimierungen. Der MD5-Algorithmus wird zur Überprüfung und möglichen Annahme als Standard in die öffentliche Domäne gestellt.

Für OSI-basierte Anwendungen ist die Objektkennung (Object Identifier) von MD5:

md5 OBJECT IDENTIFIER ::=
iso(1) member-body(2) US(840) rsadsi(113549) digestAlgorithm(2) 5}

Im X.509-Typ AlgorithmIdentifier [3] sollten die Parameter für MD5 den Typ NULL haben.