Verschlüsselung und Signieren
Verschlüsselung
Verschlüsselung von Daten bedeutet grundsätzlich: Die Daten werden in eine nicht lesbare Form umgewandelt und können nur mit einem passenden Schlüssel wieder lesbar gemacht werden. Der Schlüssel ist im einfachsten Fall ein Passwort oder 1 geheimer Schlüssel, oder ein Schlüsselpaar (geheimer/öffentlicher Schlüssel). Der öffentliche Schlüssel wird üblicherweise in einem Zertifikat eingebettet bereitgestellt.
Daten können verschlüsselt werden, damit nur der berechtigte Empfänger sie entschlüsseln und lesen kann.
Die Ver- und Entschlüsselung erfolgt meist durch symmetrische Verfahren.
Zusätzlich kann dem Empfänger der Daten gezeigt werden, dass sie von einem integren Absender stammen und nicht verändert werden. Dazu werden die Daten signiert, was üblicherweise über eine asymmertrische Verschlüsselung funktioniert.
Signieren (Identitätsprüfung)
Damit die nichtabstreitbare Urheberschaft und Integrität einer Nachricht prüfbar ist (Integrität, Authenitizität), sollte sie mit einer Signatur versehen werden. Auch für eine Signatur wird eine Verschlüsselung verwendet, in diesem Fall eine asymmetrische Verschlüsselung. Der Sender benötigt den öffentlichen Schlüssel des Empfängers und der Empfänger benötigt den privaten Schlüssel, der zu diesem öffentlichen Schlüssel gehört. Zum Signieren verwendet der Sender seinen eigenen privaten Schlüssel. Der Empfänger kann mit dem zu diesem privaten Schlüssel gehörenden öffentlichen Schlüssel die Signatur überprüfen.
Die folgenden Schritte sind üblich:
Sender: Ermittelt einen eindeutigen Hash-Wert über die Daten (H)
Sender: Verschlüsselt den Hash-Wert mit privatem Schlüssel (He)
Empfänger: Berechnet ebenfalls den Hash-Wert und entschlüsselt den He mit öffentlichem Schlüssel und vergleicht die beiden Werte. Damit kann der Sender eindeutig identifiziert werden, sowie dass er im Besitz des privaten Schlüssels ist.
Hierzu sind sogenannte Hash-Verfahren notwendig: Ein Merkmal ist der eindeutige „Fingerabdruck“ der Daten (beispielsweise Quersumme der Daten). Die Hash-Funktionen sind sehr kollisionsarm, das heißt es ist sehr schwer, zwei unterschiedliche Daten zu einem einzelnen Hash-Wert zu finden/zu konstruieren.