Erläuterungen
Was sind Checksummen?
Eine Checksumme ist eine Zahl, die aus einer Berechnung von Daten mittels unterschiedlicher Art und Weise (Kryptografie) erstellt wird. Diese Berechnungen haben einen konstanten Schlüssel, das heißt, alle Rechner, die eine Checksumme aus den gleichen Daten berechnen, ermitteln den selben Wert.
Mittels Checksummen lässt sich prüfen, ob Daten fast 100-prozentig erfolgreich übertragen wurden, sei es beim Kopieren oder über Netzwerk. Sie dienen zur Verifizierung. Kleinste Veränderungen an den Ursprungsdaten erzeugen eine komplett andere Hash. In einigen PeerToPeer-Anwendungen kommen Checksummen automatisch zum Einsatz. Nach Erhalt der Daten werden diese automatisch verifiziert.
Aus einer Checksumme kann man nicht direkt die ursprünglichen Daten wiederherstellen. Sie sind nicht rückübersetzbar. Deshalb sind Checksummen die ideale Weise für Benutzer- und Passwortverwaltung. Nirgends braucht man einen Benutzernamen oder ein Passwort zu speichern, und keiner kann diese Daten klauen. Hat ein Benutzer sein Passwort vergessen, selbst schuld. Hier hilft nur eine Neuanmeldung.
Die Qualität von Checksummen testet man mit den sogenannten Kollisionen. Als Kollision wird bezeichnet, wenn 2 oder mehrere Datenursprünge die gleiche Checksumme erzeugen. Bei einer kleinen Datenmenge ist so etwas unwahrscheinlich. Wird die Datenmenge größer, wird auch die Wahrscheinlichkeit auf eine Kollision größer.
Die XOR-Checksumme
Verrechnet man die alle Bytes von Daten mit der mathematischen XOR-Funktion, erhält man die XOR-Checksumme, welche 1 Byte (8 Bit) groß ist. Der Wert kann dezimal von 0 bis 255 betragen. Er wird in der Regel hexadezimal dargestellt, also 00 bis ff.
Die XOR-Checksumme prüft das Vorhandensein aller Zeichen, nicht deren Reihenfolge. Vertauscht man in den Ursprungsdaten 2 Zeichen miteinander, erhält man bereits eine Kollision.
Anwendung findet die XOR-Checksumme bei Verifizierungen von Daten zeilenweise. Beispiel: GPS-Empfänger senden die NMEA-Daten am Ende jeder Zeile mit der XOR-Checksumme. Die anwendende Software kann prüfen, ob die gesamte Zeile empfangen wurde. Zum Verifizieren größerer Daten ist die XOR-Checksumme aufgrund der hohen Kollisionswahrscheinlichkeit ungeeignet.
Der Vorteil der XOR-Checksumme besteht in der gering benötigten Rechenleistung zum Bilden und Verifizieren. Deshalb kann sie in Echtzeit bei Übertragungen (Streamen) auf schwachen Rechnern eingesetzt werden.
md5sum
Mit Beginn der Datenübertragung über das Internet wurde schnell klar, dass man eine bessere Checksumme zum Verifizieren braucht. Deshalb wurde zu Beginn der 1990er Jahre die md5sum eingeführt.
Sie erzeugt mittels eines kryptografischen Verfahrens eine 128 Bit (16 Bytes) große Checksumme. Somit verringert sich die Kollisionswahrscheinlichkeit auf etwa 0.003% gegenüber der XOR-Checksumme.
In heutiger Zeit erzeugen die Experten bereits nach wenigen Sekunden eine Kollision. Deshalb sollte md5sum in Zukunft nicht mehr angewendet werden. Man überlegt, die md5sum nicht mehr weiter zu beteitzustellen.
SHA1
Etwa zur gleichen Zeit führte man die SHA1 ein, was im Ergebnis eine 160-Bit-Checksumme (20 Bytes) erzeugt. Somit sank die Kollisionswahrscheinlichkeit auf etwa 3% gegenüber der md5sum.
Auch hier erzeugen heutzutage die Experten eine Kollision nach wenigen Sekunden. Deshalb sollte SHA1 auch in Zukunft nicht mehr eingesetzt werden.
SHA256
Wie der Name schon sagt, erzeugt SHA256 eine 256 Bit (32 Byte) große Checksumme. Somit verringert sich die Kollisionswahrscheinlichkeit auf ewa 0.01% gegenüber SHA1.
Wie auf verschiedenen Quellen zu lesen ist, ist es einigen Experten nach monate langer Rechenzeit auf mehreren Rechnern gelungen, eine einzige Kollision zu erzeugen. Einen Nachweis dafür kann ich nicht liefern.
Deshalb gilt heute SHA256 als relativ sicher und kann eingesetzt werden.
SHA512
Hier sinkt rein rechnerisch die Kollisionswahrscheinlichkeit auf etwa 0.006% gegenüber SHA256. Wer ganz sicher sein will, kann dieses Verfahren benutzen.
Möchte man SHA512 sehr oft einsetzen, sollte man bei schwächeren Rechnern die benötigte Rechenleistung und -zeit beachten.
Andere Verfahren zum Bilden von Checksummen
Es gibt viele andere Verfahren, die zum Bilden von Checksummen entworfen wurden. Die hier genannten Beispiele sind standardisiert.
Hashes von sha256, sha384 und sha512 gehören zur Klasse SHA-2. Inzwischen gibt es die Klasse SHA-3.
Man sollte beachten, dass der Empfänger von Daten in der Lage sein muss, die Daten zu verifizieren. Eine Installation weiterer Software wäre störend für den Empfänger. Im privaten Einsatz kann man durchaus andere Verfahren einsetzen.
zum Seitenanfang