Der Hashwert als Fingerabdruck
Eine Hashfunktion \(H\) berechnet aus einer beliebig langen Nachricht \(m\) einen kurzen Prüfwert \(H(m)\), den Hashwert — den Fingerabdruck der Nachricht.
- Feste Länge:SHA-256 liefert immer 256 Bit (64 Hex-Ziffern) — für ein Wort ebenso wie für ein ganzes Buch.
- Lawineneffekt:Ein einziges geändertes Zeichen ergibt einen völlig anderen Hashwert.
- Einwegfunktion:Aus dem Hashwert lässt sich die Nachricht nicht zurückrechnen.
- Kollisionsresistenz:Zwei verschiedene Nachrichten mit gleichem Hashwert sind praktisch nicht zu finden.
aca9317f66e499af…Der Hashwert hat 64 Hex-Ziffern, hier stehen nur die ersten 16.
6573f6f1720e1e3a…Nur die Ziffer 5 wurde zur 6 — trotzdem stimmt keine der ersten 16 Stellen mehr überein.
Etwa die Hälfte aller Bits kippt. Am Hashwert erkennt man sofort, dass sich die Nachricht geändert hat.
Signieren und prüfen
Alice will Bob beweisen, dass eine Nachricht von ihr stammt und unverändert ankommt.
- Signieren (Alice):Hashwert \(H(m)\) bilden und mit dem eigenen privaten Schlüssel verschlüsseln — das Ergebnis ist die Signatur \(s\). Nachricht und Signatur zusammen verschicken.
- Prüfen (Bob):\(s\) mit Alices öffentlichem Schlüssel entschlüsseln, \(H(m)\) selbst berechnen, beide Werte vergleichen.
- Gleich:Integrität (unverändert), Authentizität (von Alice) und Nichtabstreitbarkeit (nur Alice besitzt den privaten Schlüssel).
- Verschieden:Nachricht verändert oder falscher Schlüssel → Signatur ungültig.
- Nicht vertraulich:Die Nachricht selbst bleibt lesbar; für Geheimhaltung muss zusätzlich verschlüsselt werden.
Alice berechnet den Fingerabdruck ihrer Nachricht \(m\).
Alice sendet \(m\) und \(s\) an Bob.
Das kann jeder, denn der öffentliche Schlüssel ist bekannt.
Bob hasht \(m\) selbst. Stimmen beide Werte überein, ist die Nachricht echt und unverändert.
Die Bank hat Alices signierten Überweisungsauftrag erhalten. Ändere als Angreifer Empfänger, Betrag oder Zweck — per Klick auf ein Feld oder mit Tab und Enter bzw. den Pfeiltasten — und vergleiche die beiden Fingerabdrücke Bit für Bit. Probiere danach die beiden Angriffe unter der Bühne, einzeln und zusammen.
Halte fest: Schon ein einziges geändertes Zeichen macht die Signatur ungültig, und eine passende Signatur zu einem neuen Text kann nur erzeugen, wer den privaten Schlüssel besitzt. Das hilft aber nur, wenn der öffentliche Schlüssel zum Prüfen wirklich dem Absender gehört.
Signatur: Hashwert der Nachricht, verschlüsselt mit dem privaten Schlüssel des Absenders.
Allgemeine Hinweise
Schlüssel nicht vertauschen
Geheim verschicken: mit dem öffentlichen Schlüssel des Empfängers verschlüsseln. Signieren: mit dem privaten Schlüssel des Absenders.
Warum erst hashen?
Asymmetrische Verfahren sind langsam. Signiert wird deshalb nur der kurze Hashwert — gleich schnell, ob die Nachricht eine Zeile oder ein Gigabyte lang ist.
Echter Schlüssel nötig
Eine gültige Prüfung zeigt nur: Die Signatur passt zu diesem öffentlichen Schlüssel. Ob er wirklich Alice gehört, muss zusätzlich gesichert werden.
