In den 1970er Jahren erfanden Mathematiker und Informatiker Berechnungsmethoden, die für den Menschen komplex sind, für Computer und andere Automaten jedoch relativ einfach (wir werden darauf noch näher eingehen). Was wir als „Hash“ (Hash-Funktion) bezeichnen, lässt sich auf sehr einfache Weise zusammenfassen.
Einführung
- Sie erfassen einen sehr großes Element (bspw. ein Bild, ein Computerprogramm, den Inhalt Ihres Kassenbelegs, usw.) und Sie erhalten eine Art Fingerabdruck, beispielsweise einen Kurztext mit 512 Zeichen (für einen Computer ist es wirklich kurz).
- Wird wieder die exakt gleiche Eingabe durchgeführt, erhält man auch immer wieder denselben Fingerabdruck.
- Wird nur ein winziges Detail der Eingabedaten verändert, ist die Ausgabe, der Fingerabdruck, jedoch völlig anders.
- Ein Fingerabdruck von 512 Zeichen (technisch „hexadezimaler String“ genannt) hinterlässt Milliarden von Milliarden verschiedener Möglichkeiten: eine 1, gefolgt von 2.500 Ziffern, die milliardenfach größer ist als die Anzahl der Sterne im Universum oder die Anzahl der Sandkörner auf der Erde.
- Wenn die beiden aufgezählten Informationen miteinander in Verbindung gebracht werden, ist zu erkennen wie unwahrscheinlich es ist, dass zwei Eingaben denselben Fingerabdruck erzeugen.
- Und vor allem: Es ist eine Einbahnstraße! Für einen bestimmten Hash ist es unmöglich herauszufinden, welche Eingabedaten verwendet wurden. In gewisser Weise ist es für einen Computer sehr einfach. Ein paar Millionen Computer und mehrere Jahrzehnte lang Zeit. Dann können kontinuierlich alle Möglichkeiten getestet werden, um einen einzigen Hash zu entschlüsseln!
Beispiele?
Rund um ein technisches oder rechtliches Dokument haben Sie möglicherweise von MD5, SHA1, SHA2, oder ähnlichem gehört.
Und was nutzt das aus technischer Sicht?
Auf diese Weise können Sie überprüfen, ob etwas geändert wurde:
- Wenn ein winziges Detail auf einem Beleg geändert wird, führt das erneute Berechnen des Hashes zu einem völlig anderen Ergebnis. Damit ist die Änderung offensichtlich!
- Wenn nichts, absolut nichts geändert wird, führt das erneute Berechnen des Hashes zu einem exakt gleichen Ergebnis.
Damit ist bewiesen, dass der Beleg unverändert ist!
Und was nutzt es in der Praxis?
Es wird zum Komprimieren von Dateien wie zip verwendet: Beim zip-Format existiert der Hash des ursprünglichen Inhalts. Die zip-Datei wird dekomprimiert und der Hash wird neu berechnet. Wenn der originale und der neue Hash nicht übereinstimmen, gibt es ein Problem … Welches, ist nicht bekannt, aber es ist gut zu wissen, dass es ein Problem gibt.
Es wird für die Kommunikation zwischen Computern verwendet: Ein Computer sendet niemals Informationen, ohne ein zusätzliches Element anzuhängen (es kann ein Hash sein, aber es kann auch viel einfacher sein). Der Computer, der die Daten und das Zusatzelement empfängt, wiederholt die Berechnung des Elements: Wenn das Resultat ein anders ist, werden Sie automatisch aufgefordert, dieselben Daten erneut zu senden.
Hashing wird unter anderem auch für Blockchain, Login mit Passwort, unveränderliche Steuerbelege im Sinne des französischen Gesetzes „Betrugsbekämpfung“, für die elektronische Signatur, für die Datenspeicherung und noch vieles mehr verwendet.
Und es wird auch für das Verketten (das Chaining) verwendet. Aber darauf wird das fiskaltrust.Team in einem zukünftigen Artikel eingehen.