Hash-Algorithmen

Stell dir vor, du willst deinem Freund eine wichtige Nachricht schicken, und du willst sichergehen, dass diese intakt ankommt und niemand deine Nachricht ändert.

Wie stellst du nun sicher, dass deine Nachricht, die du über das Internet verschickst, intakt bei deinem Freund angekommen ist, also bei der Übertragung nicht aus Versehen oder mit Absicht verändert wurde? Eine Möglichkeit wäre, die Datei mehrfach zu senden und alle Versionen miteinander zu vergleichen. Nur wenn alle Versionen gleich sind, kann dein Freund davon ausgehen, dass die Nachricht richtig übertragen wurde. Aber was macht man, wenn dies nicht der Fall ist? Dann könnte man die Variante nehmen, die am häufigsten vorkommt oder die Datei erneut mehrfach senden. Da das sehr ineffizient und nicht besonders sicher ist, hat man sich stattdessen etwas Anderes, viel Eleganteres einfallen lassen. Nämlich sogenannte Hash-Algorithmen. Der Name mag unscheinbar klingen, aber in Wirklichkeit steckt jede Menge Arbeit und Mathematik hinter diesen Algorithmen. Ein solcher Algorithmus hasht Daten, das bedeutet, er fasst sie zusammen. Diese Zusammenfassung heißt in der Fachsprache Hash oder auch Hashwert. Denn in Wahrheit ist ein Hash, wie alle Daten auf einem Computer, nur eine lange Zahlenkolonne, wie auch der Ursprungstext. Ein solcher Algorithmus muss für dieselbe Eingabe (also zum Beispiel ein Text oder eine Zahl) immer die gleiche Ausgabe geben, und es darf nicht möglich sein den Original-Text anhand des Hashwertes zu errechnen. Auf beiden Seiten kann so ein Hash der Nachricht erzeugt werden und diese beiden Hashes können dann miteinander verglichen werden. Beides passiert automatisch, wenn man zum Beispiel eine E-Mail schreibt.

In der Praxis sieht das dann so aus: Person A möchte Person B eine wichtige E-Mail schicken. Um sicher zu gehen, dass Person B die E-Mail intakt bekommen hat, wird der E-Mail automatisch der Hash der Nachricht beigelegt. Wenn Person B nun die E-Mail empfangen hat, nutzt diese automatisch denselben Algorithmus, um den Text, den sie empfangen hat, selbst zu hashen und mit dem Hash, den sie von Person A erhalten hat, abzugleichen. Wenn diese identisch sind, weiß Person B, dass der Brief nicht verändert wurde. Denn wenn die E-Mail verändert worden wäre, wäre der Hash ein ganz anderer und beide würden nicht übereinstimmen.

Nun kann man anmerken, dass derjenige, der den Brief beim Übermitteln ändern möchte, ja auch einfach den Hash mitändern könnte. Um dieses Problem zu lösen, kann man den Brief und den Hash verschlüsseln, um sicherzugehen, dass der Hash original ist. Auf Verschlüsselungen, insbesondere asymmetrische Verschlüsselungen, die hier eine wichtige Rolle spielt, bin ich in einem anderen Artikel eingegangen.

von Conrad Klugkist

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert