Teresa
Aus ProgrammingWiki
Archivierte Version vom 2025-04-13T09:40:39+00:00. Aktuelle Version
Inhaltsverzeichnis |
Hashfunktionen
- Definition
Eine Hashfunktion oder auch Steuerwertfunktion ist ein Algorithmus der beliebig große Eingabedaten (z.B Passwörter, Dateien oder Texte) in eine feste, meist kürzere Zeichenkette (den sogenannten Hashwert oder Digest) umwandelt.
Eigenschaften
Determinismus: Die gleiche Eingabe liefert immer den gleichen Hashwert. Beispiel: „Hallo“ → immer e4d909c2..., egal wann oder wo.
Kollisionresistenz: Es sollte extrem schwierig sein, zwei unterschiedliche Eingaben zu finden, die den gleichen Hashwert erzeugen. Beispiel: „Hallo“ ≠ „Hallo!“ → komplett unterschiedliche Hashwerte.
Einwegfunktion: Man kann den ursprünglichen Input nicht aus dem Hashwert zurückrechnen. Beispiel: Aus e4d909c2... lässt sich nicht auf „Hallo“ zurückschließen.
Effizienz: Die Hashfunktion sollte schnell berechnet werden können – auch bei großen Datenmengen.
Surjektivität: Kein Ergebniswert (Hashwert) soll unmöglich sein, jedes Ergebnis (jeder Hashwert im definierten Wertebereich) soll tatsächlich vorkommen können.
Anwendungen
Digitale Unterschrift
Die digitale Signatur stützt auf den Gebrauch eines Hashing-Algorithmus, kombiniert mit einem asymmetrischen Verschlüsselungsalgorithmus (z.B. RSA). So wird ein Bericht unterschrieben:
- Der Absender berechnet erst den "Digest"-Wert (Hash 1) des Originalberichts mithilfe eines Hashing-Algorithmus.
- Anschließend verschlüsselt er diesen Digest-Wert über asymmetrische Verschlüsselung durch Verwendung eines persönlichen Schlüssels.
- Schließlich fügt er diesem letzten Ergebnis seine Identifikationsangaben hinzu, verfasst in einem Zertifikat. Er versendet alles (unverschlüsselten Bericht, verschlüsselten Digest und Zertifikat) an den Empfänger.
Der Empfänger des Berichts kann diese Technik umgekehrt anwenden, um die Gültigkeit der Signatur zu überprüfen:
- Er berechnet selbst den Digest-Wert (Hash 1) des empfangenen Berichts.
- Er holt das Zertifikat ab, um die Identität des vermutlichen Absenders und seinen öffentlichen Schlüssel zu bestimmen; er benutzt diesen öffentlichen Schlüssel, um den Digest (Hash 2) mittels desselben asymmetrischen Verschlüsselungsalgorithmus wie der Absender zu benutzen.
- Er vergleicht den Digest-Wert (Hash 1), den er berechnet hat, mit dem der Signatur (Hash 2): Die Übereinstimmung zwischen den Werten (Hash 1 und Hash 2) der zwei Digest-Werte garantiert die Echtheit des Berichts.

