Der MD5-Hashalgorithmus ist eine Einweg-kryptografische Funktion, die eine Nachricht beliebiger Länge als Eingabe akzeptiert und als Ausgabe einen Digest-Wert fester Länge zurückgibt, der zur Authentifizierung der ursprünglichen Nachricht verwendet wird.
Die MD5-Hash-Funktion wurde ursprünglich für die Verwendung als sicherer kryptografischer Hash-Algorithmus zur Authentifizierung digitaler Signaturen entwickelt. MD5 wurde für andere Zwecke als als nicht kryptografische Prüfsumme zur Überprüfung der Datenintegrität und zur Erkennung unbeabsichtigter Datenbeschädigung veraltet.Obwohl MD5-Hashing ursprünglich als Algorithmus zur Authentifizierung kryptografischer Nachrichten für die Verwendung im Internet entwickelt wurde, wird es für die Verwendung als kryptografische Prüfsumme nicht mehr als zuverlässig angesehen, da Forscher Techniken demonstriert haben, mit denen MD5-Kollisionen auf kommerziellen Standardcomputern problemlos erzeugt werden können.Ronald Rivest, Gründer von RSA Data Security und Professor am MIT, entwarf MD5 als Verbesserung zu einem früheren Message Digest Algorithmus, MD4. Er beschrieb es in Internet Engineering Task Force RFC 1321, „Der MD5 Message-Digest-Algorithmus“, schrieb er:
Der Algorithmus nimmt als Eingabe eine Nachricht beliebiger Länge und erzeugt als Ausgabe einen 128-Bit- ‚Fingerabdruck‘ oder ‚Message Digest‘ der Eingabe. Es wird vermutet, dass es rechnerisch unmöglich ist, zwei Nachrichten mit demselben Nachrichtendigest oder eine beliebige Nachricht mit einem bestimmten vordefinierten Zielnachrichtendigest zu erzeugen. Der MD5-Algorithmus ist für digitale Signaturanwendungen gedacht, bei denen eine große Datei auf sichere Weise komprimiert werden muss, bevor sie mit einem privaten (geheimen) Schlüssel unter einem Public-Key-Kryptosystem wie RSA verschlüsselt wird.Die IETF schlägt vor, dass MD5-Hashing weiterhin zum Integritätsschutz verwendet werden kann, und stellt fest: „Wo die MD5-Prüfsumme inline mit dem Protokoll nur zum Schutz vor Fehlern verwendet wird, ist eine MD5-Prüfsumme immer noch eine akzeptable Verwendung.“ Es fügte jedoch hinzu, dass „jede Anwendung und jedes Protokoll, das MD5 für jeden Zweck verwendet, die erwarteten Sicherheitsdienste aus ihrer Verwendung von MD5 klar angeben muss.“
Message Digest algorithm characteristics
Message Digests, auch bekannt als Hash-Funktionen, sind Einwegfunktionen; Sie akzeptieren eine Nachricht beliebiger Größe als Eingabe und erzeugen als Ausgabe eine Nachricht fester Länge message Digest.
MD5 ist der dritte Message-Digest-Algorithmus, der von Rivest entwickelt wurde. Alle drei (die anderen sind MD2 und MD4) haben ähnliche Strukturen, aber MD2 wurde für 8-Bit-Maschinen optimiert, im Vergleich zu den beiden späteren Formeln, die für 32-Bit-Maschinen optimiert sind. Der MD5-Algorithmus ist eine Erweiterung von MD4, die die kritische Überprüfung als schnell, aber möglicherweise nicht absolut sicher befunden hat. Im Vergleich dazu ist MD5 nicht ganz so schnell wie der MD4-Algorithmus, bot aber viel mehr Sicherheit bei der Datensicherheit.
Funktionsweise von MD5
Der MD5 Message Digest Hashing-Algorithmus verarbeitet Daten in 512-Bit-Blöcken, die in 16 Wörter mit jeweils 32 Bit unterteilt sind. Die Ausgabe von MD5 ist ein 128-Bit-Message-Digest-Wert.
Die Berechnung des MD5-Digest-Werts erfolgt in separaten Stufen, die jeden 512-Bit-Datenblock zusammen mit dem in der vorhergehenden Stufe berechneten Wert verarbeiten. Die erste Stufe beginnt mit den Message Digest-Werten, die unter Verwendung aufeinanderfolgender hexadezimaler numerischer Werte initialisiert werden. Jede Stufe umfasst vier Message-Digest-Durchläufe, die Werte im aktuellen Datenblock und Werte aus dem vorherigen Block bearbeiten. Der endgültige Wert, der aus dem letzten Block berechnet wird, wird zum MD5-Digest für diesen Block.
MD5-Sicherheit
Das Ziel jeder Message-Digest-Funktion ist es, Digests zu erzeugen, die zufällig erscheinen. Um als kryptografisch sicher zu gelten, sollte die Hash-Funktion zwei Anforderungen erfüllen: Erstens, dass es für einen Angreifer unmöglich ist, eine Nachricht zu generieren, die einem bestimmten Hash-Wert entspricht; und zweitens, dass es für einen Angreifer unmöglich ist, zwei Nachrichten zu erstellen, die denselben Hash-Wert erzeugen.
MD5-Hashes gelten nicht mehr als kryptografisch sicher und sollten nicht für die kryptografische Authentifizierung verwendet werden.Im Jahr 2011 veröffentlichte die IETF den RFC 6151 „Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms“ (Aktualisierte Sicherheitsüberlegungen für den MD5-Message-Digest und die HMAC-MD5-Algorithmen), in dem eine Reihe von jüngsten Angriffen auf MD5-Hashes angeführt wurde, insbesondere eine, die Hash-Kollisionen in einer Minute oder weniger auf einem Standard-Notebook erzeugte und eine andere, die auf einem 2,66-GHz-Pentium-4-System eine Kollision in nur 10 Sekunden erzeugen konnte. Infolgedessen schlug die IETF vor, dass neue Protokolldesigns MD5 überhaupt nicht verwenden sollten und dass die jüngsten Forschungsangriffe gegen den Algorithmus „ausreichenden Grund geliefert haben, die Verwendung von MD5 in Anwendungen zu eliminieren, bei denen Kollisionsresistenz erforderlich ist, wie z. B. digitale Signaturen.“