Was sind Prüfsummen?

Ohne in die mitunter komplexen mathematischen Hintergründe einzelner Algorithmen einzutauchen, soll der folgende Abschnitt einen Überblick der Technologie der Prüfsummen geben. Prüfsummen (engl. Digest) sind kryptografische Hash-Funktionen, die für eine feste Datenmenge stets denselben binären Wert liefert (Determinismus). Sind die Ergebnisse zweier Durchläufe unterschiedlich, so unterscheiden sich die überprüften Daten mit Sicherheit voneinander. Das Hash-Ergebnis wird in der Regel als hexadezimale Zeichenkette fester Länge weiterverarbeitet oder z.B. in Dateien im GNU- oder BSD-Format gespeichert.


Beispiel einer MD5-Prüfsumme (Hex-Ergebnis):

 

            23176e28d47e61777f6d246e459b795d


So bestehen die am häufigsten eingesetzten MD5-Prüfsummen stets aus insgesamt 16 binären Einzelwerten (Bytes), insgesamt sind die erzeugten hexadezimalen Zeichenketten somit 32 Zeichen lang. Die Ausgangsdaten können dabei beliebige Längen besitzen, es werden stets Ergebnisse einer festen Länge erzeugt. Dies ist insbesondere bei der Speicherung der Prüfsummen in Datenbanken oder Caches zweckmäßig, da der benötigte Speicherplatz sich bereits vor der Erzeugung exakt bestimmen lässt. Bei der Berechnung von Prüfsummen kommen unterschiedliche Verfahren zum Einsatz, die als Algorithmen bezeichnet werden. Die Algorithmen unterscheiden sich u.a. in der Länge der berechneten Prüfsummen.


Hash-Funktionen werden in vielfältigen Einsatzgebieten verwendet. Neben der Sicherstellung von Datenintegrität auf der Dateiebene lassen sich Hash-Funktionen insbesondere zur Kodierung von Passwörtern für Betriebssysteme und Datenbanken einsetzen. Um Passwörter nicht im Klartext auf unsicheren Datenträgern speichern zu müssen, werden stattdessen die Hash-Ergebnisse gesichert, wobei sich die ursprünglichen Passwörter bei der Verwendung von als sicher eingestuften Algorithmen wie z.B. RIPEMD-160 nicht rekonstruieren lassen.


Die folgende Tabelle zeigt die von der aktuellen Digester-Version unterstützten Algorithmen. Mit aufgeführt sind die Längen des jeweiligen Berechnungsergebnisses in Bytes sowie typische Laufzeiten (in Sekunden) zur Berechnung einer ca. 4 Gigabytes großen Referenzdatei. Die nachfolgenden Abschnitte geben Hinweise darauf, welcher Algorithmus für den einen oder anderen Zweck sinnvoll eingesetzt werden kann und wie man die Digester-Software zur Sicherstellung der Datenintegrität am besten verwendet.

 

 

Algorithmus Bytes    t/s Besonderheiten
MD2 16 1423    Konzipiert für 8 Bit-Computer
MD4 16 219 Einsatz für Passwort-Hashes unter Windows
MD5 16 63 Neben SHA-1 der gebräuchlichste Algorithmus
RIPEMD-128    16 74 Basiert auf Prinzipen des MD4
RIPEMD-160 20 100 Einsatz innerhalb von OpenPGP
RIPEMD-256 32 74 Variante von RIPEMD-128
RIPEMD-320 40 94 Variante von RIPEMD-128
SHA-1 20 107 Sehr häufig verwendet, entwickelt von der NSA
SHA-224 28 136 Entwickelt von der NSA
SHA-256 32 139 Entwickelt von der NSA
SHA-384 48 311 Entwickelt von der NSA
SHA-512 64 310 Entwickelt von der NSA
Tiger-192 24 291 Konzipiert für 64 Bits, Einsatz beim Gnutella File Sharing
Whirlpool 64 2082 Basiert auf Prinzipen des AES


Zu den angegebenen Laufzeiten ist zu ergänzen, dass die Digester-Software durch ein besonderes Multiplex-Verfahren beliebige Algorithmen parallel berechnen kann. Dabei werden die Zieldaten nur einmal gelesen. Auf diese Weise können zur Berechnung mehrere Algorithmen effizient parallel eingesetzt werden. Da in modernen Computern häufig die Festplatten die langsamsten Glieder in der Verarbeitungskette darstellen und die eigentlichen Berechnungen durch moderne Prozessoren quasi nebenbei zu erledigen sind, kann die Berechnung und Prüfung von Prüfsummen mit der Digester-Software sehr effizient durchgeführt werden. Dadurch eignet sich die Software besonders für die Verarbeitung großer Datenmengen, wobei die Anzahl der parallel verwendeten Algorithmen wenig Auswirkung auf die Performance hat.


Die nachfolgenden Abschnitte verwenden die Begriffe Originaldateien und Prüfsummendateien. Mit Originaldateien sind die Dateien gemeint, die zur Berechnung der Prüfsummen verwendet worden sind. Dies sind häufig Dateien auf FTP-Servern oder solche, die direkt von einer Backup-Software generiert wurden. Prüfsummendateien enthalten die Prüfsummen, die aus den Originaldateien berechnet wurden. Beim Vergleich der Prüfsummen in den Prüfsummendateien mit den berechneten Prüfsummen z.B. nach dem Herunterladen können Abweichungen festgestellt werden, die auf Übertragungsfehler oder manipulierte Daten hinweisen.

 

Weiterführende Links