Warnung
Auf dieser Seite findet ihr das Skript von fts.
Verschlüsseln
Die Daten werden symmetrisch verschlüsselt, das ist schnell und sicher. Das einzige Problem ist der Austausch des symmetrischen Schlüssels, da dieser zum Entschlüsseln gebraucht wird:
- Alice erstellt einen zufälligen symmetrischen Sitzungsschlüssel
- Damit verschlüsselt sie den Klartext (blau)
- Damit nur Bob den Sitzungsschlüssel lesen kann, verschlüsselt Alice diesen asymmetrisch mit Bobs öffentlichen Schlüssel (grün)
Entschlüsseln
Der übermittelte Geheimtext besteht nun aus der symmetrisch verschlüsselten Nachricht und dem asymmetrisch verschlüsselten Sitzungsschlüssel.
- nur Bob kann den Sitzungsschlüssel mit seinem privaten Schlüssel asymmetrisch entschlüsseln (grün)
- jetzt hat Bob den von Alice erstellten Sitzungsschlüssel und kann die Nachricht (blau) nun symmetrisch entschlüsseln
Signieren
Bob will Charlie eine signierte Nachricht zustellen, so dass Charlie sicher sein kann, dass die Nachricht unverfälscht ist und wirklich von Bob stammt:
- Bob berechnet den Hashwert des Klartextes (orange)
- Er signiert den Hashwert mit seinem privaten Schlüssel und erhält so die Signatur (grün)
- Die Signatur wird an den Klartext angehängt und diese signierte Nachricht an Charlie geschickt
Signatur prüfen
Charlie erhält eine signierte Nachricht von Bob. Er kann die Nachricht lesen (diese ist nicht verschlüsselt). Er will aber zur Sicherheit die Signatur überprüfen:
- Charlie enschlüsselt die Signatur asymmetrisch mit Bobs öffentlichem Schlüssel (grün)
- So erhält Charlie den von Bob berechneten Hashwert (orange)
Dieser Hashwert sagt aber noch nicht viel aus. Charlie muss ihn noch überprüfen:
- Charlie berechnet selbst den Hashwert aus dem Klartext
- Charlie vergleicht nun seinen selbst berechneten Hashwert mit dem entschlüsselten Hashwert den Bob vor dem Senden der Nachricht berechnet hat
Wenn beide Hashwerte übereinstimmen, dann ist alles OK:
- Die Nachricht stammt von Bob – denn nur Bob kennt seine eigenen privaten Schlüssel und kann die Nachricht signieren
- Die Nachricht ist unverfälscht – denn hätte jemand den Klartext zwischen Senden und Empfangen verändert, so würden die Hashwerte nicht übereinstimmen
Signieren und Verschlüsseln
Wir können nun durch Kombinieren von Signieren und Verschlüsseln erreichen, dass eine Nachricht beim Übertragen nicht gelesen werden kann und dass der Empfänger (Alice), sicher sein kann, dass die Nachricht von Charlie stammt und unverfälscht angekommen ist: