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.