Digitale Unterschrift/Signatur

Eine Unterschrift dient dazu, die Echtheit (Authentizität) eines Dokumentes zu gewähren. Mit Hilfe eines Schlüsselpaares eines asymmetrischen Kryptosystems lässt sich eine digitale Unterschrift generieren: Dazu verschlüsselt der Absender die Nachricht mit seinem privaten Schlüssel. Der Empfänger kann diese Nachricht entschlüsseln, wenn er den öffentlichen Schlüssel des Absenders besitzt. Da der öffentliche Schlüssel allen und der private Schlüssel nur dem Absender bekannt ist, kann also sichergestellt werden, dass die Nachricht von genau dieser Person ist.

Quelle: https://de.wikipedia.org/wiki/Datei:Orange_blue_digital_signature_de.svg

Mit PGP z.B. kann man E-Mails entweder nur signieren, also eine digitale Unterschrift hinzufügen, oder eben verschlüsseln. Beim Signieren braucht der Empfänger keinen eigenen Schlüssel. Beim Verschlüsseln wird meistens gleich auch noch signiert, damit die Authentizität gewährleistet ist.

Hash

In der Praxis wird mit einer Hashfunktion1 ein sogenannter Fingerabdruck (Hashwert) der Nachricht generiert. Dieser ist viel kleiner als die gesamte Nachricht, identifiziert die Nachricht aber fast eindeutig.

Fingerabdruck erstellen

Der Fingerabdruck wird dann mit dem privaten Schlüssel verschlüsselt und gilt als Signatur. Der Empfänger kann denselben Fingerabdruck aus der Nachricht erstellen und ihn mit der entschlüsselten Signatur vergleichen. So wird nicht nur sichergestellt, dass der Absender korrekt ist, sondern auch, dass die Nachricht nicht verfälscht wurde.

Signieren mit Hash

Natürlich kann die digitale Unterschrift auch bei einer verschlüsselten Nachricht eingesetzt werden, was in der Praxis normalerweise der Falls ist.

Signieren und Verschlüsseln

Vom Klartext wird ein Hashwert generiert. Dieser wird mit dem privaten Schlüssel des Absenders «verschlüsselt». So kommt man zur signierten Nachricht. Diese signierte Nachricht kann man nun mit dem öffentlichen Schlüssel des Empfängers verschlüsseln.

Der Empfänger kann die Nachricht mit seinem privaten Schlüssel entschlüsseln. Die entschlüsselte signierte Nachricht kann er verifizieren, indem er selbst den Hash der Nachricht erzeugt und diesen mit der mit dem öffentlichen Schlüssel des Absenders entschlüsselten Signatur vergleicht.


  1. Auch Streuwertfunktion genannt. Erzeugt aus einer grossen Definitionsmenge eine kleine Zielmenge. Die Funktion ist nicht injektiv. Zwei ähnliche aber nicht identische Inputs liefern aber einen anderen Output. Bekannte Hashfunktionen sind MD5 und SHA