Skip to main content

Message-Digest Algorithmus

Was ist ein Message-Digest Algorithmus?

Ein Message-Digest Algorithmus ist ein kryptografischer Algorithmus, der eine Nachricht mit beliebiger Länge als Eingabe akzeptiert und als Ausgabe einen Message-Digest mit einer festen Länge erzeugt. Der Message-Digest wird auch als “Hash”, “Hash-Wert” oder “Fingerprint” der Eingabe bezeichnet. Benannte Message-Digest Algorithm sind MD5 und MD6. Das “MD” steht für Message-Digest.

Anwendung des Message-Digest Algorithmus

Der MD5-Hash-Algorithmus ist eine unidirektionale kryptografische Funktion, deren Message-Digest zur Authentifizierung einer Nachricht verwendet wird. Die MD5-Hash-Funktion wurde ursprünglich als kryptografischer Hash-Algorithmus zur Authentifizierung digitaler Signaturen entwickelt. MD5-Digests wurden eingesetzt, um sicherzustellen, dass eine übertragene Datei den Empfänger unverändert erreicht hat.

Dateiserver stellen häufig eine vorberechnete MD5-Prüfsumme – bekannt als md5sum – für die Dateien bereit, sodass ein Benutzer die Prüfsumme der heruntergeladenen Datei mit der Datei vergleichen kann. Die meisten auf Unix basierenden Betriebssysteme enthalten MD5-Summen-Dienstprogramme. Windows-Benutzer können die mitgelieferte PowerShell-Funktion “Get-FileHash” verwenden, ein Microsoft-Hilfsprogramm installieren, oder Anwendungen von Drittanbietern verwenden. Android-ROMs verwenden ebenfalls diese Art Prüfsumme.

Die Funktionsweise des Message-Digest Algorithm MD5

In einem ersten Schritt wird die Eingabe vom Message-Digest Algorithmus für die weitere Verarbeitung vorbereitet. Der MD5-Algorithmus teilt die Eingabe zunächst in Blöcke von jeweils 512 Bit auf. 64 weitere Bits werden am Ende des letzten Blocks eingefügt. Diese 64 Bits werden verwendet, um die Länge der ursprünglichen Eingabe zu speichern. Wenn der letzte Block weniger als 512 Bits umfasst, werden einige zusätzliche Bits bis zum Ende mit Nullen aufgefüllt.

Als Nächstes wird jeder Block in 16 Wörter mit jeweils 32 Bits unterteilt. Diese werden als M0 bis M15 bezeichnet. Der Message-Digest Algorithmus MD5 verwendet einen Puffer, der aus vier Wörtern besteht, die jeweils 32 Bit lang sind. Der Puffer hat also insgesamt eine Größe von 128 Bit. Diese Wörter werden A, B, C und D genannt. Sie werden initialisiert als

  • A: 01 23 45 67
  • B: 89 ab cd ef
  • C: zB dc ba 98
  • D: 76 54 32 10

MD5 verwendet darüber hinaus eine Tabelle K, die 64 Elemente enthält. Die Elementnummer i ist als Ki angegeben. Die Tabelle wird vorab berechnet, um die Berechnungen insgesamt zu beschleunigen. Elemente der Tabelle werden mit der mathematischen Sinusfunktion berechnet:

Ki = abs (sin (i + 1)) * 232

Zusätzlich verwendet der Message-Digest Algorithmus MD5 vier Hilfsfunktionen, die jeweils drei 32-Bit-Wörter als Eingabe übernehmen und als Ausgabe wiederum ein 32-Bit langes Wort erzeugen. Die Hilfsfunktionen wenden die logischen Operatoren und (and), oder (or) nicht (not) und xor auf die Bits der Eingabe an:

  • F(X,Y,Z) = (X and Y) or (not(X) and Z)
  • G(X,Y,Z) = (X and Z) or (Y and not(Z))
  • H(X,Y,Z) = X xor Y xor Z
  • I(X,Y,Z) = Y xor (X or not(Z))

In einem nächsten Schritt wird der Inhalt der vier Puffer A, B, C und D durch den Message-Digest Algorithmus mit den Worten der Eingabe gemischt. Dabei werden die vier Hilfsfunktionen F, G, H und I verwendet. Die Vermischung erfolgt in vier sogenannten Runden mit jeweils 16 Operationen. Wenn der Message-Digest Algorithmus alle Runden durchgeführt hat, enthalten die Puffer A, B, C und D den MD5-Digest der ursprünglichen Eingabe.

Der MD5 Message-Digest Algorithmus gilt mittlerweile als unsicher, da es ohne großen Aufwand möglich ist, für verschiedene Eingaben identische Hash-Werte zu erzeugen.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG