Symmetrische Verschlüsselung ist wunderbar, wenn Alice & Bob einen gemeinsamen Schlüssel haben. Aber wie sollen die beiden einen Schlüssel vereinbaren, wenn sie nur einen unsicheren Übertragungskanal haben? Wie können sie verhindern, dass Eve ihre Nachricht abhört?
Mögliche Lösungen:
Im Internet senden wir nur ungern Schlösser um die Welt. Stattdessen nutzen wir ein mathematisches Verfahren, das ähnliche Eigenschaften hat:
Die meistgenutzte Funktion ist die Primzahl-Faktorisierung:
Probiere es aus:
Wie lange hast du, um 41 * 83
zu berechnen?
Wie lange hast du, um die Zahl 2881
in seine Primfaktoren zu zerlegen?
Wie lange für
145906768007583323230186939349070635292401872375357164399581
871019873438799005358938369571402670149802121818086292467422
828157022922076746906543401224889672472407926969987100581290
103199317858753663710862357656510507883714297115637342788911
463535102712032765166518411726859837988672111837205085526346
618740053
?
Entscheidend für die Sicherheit: Das Problem der Primzahl-Faktorisierung ist NP-Vollständig. Wird die Schlüssellänge verdoppelt, so wird die Faktorisierung nicht nur doppelt so schwierig, auch nicht viermal so schwierig, sondern exponentiell schwieriger. Das heisst, dass sich die Schwierigkeit jedesmal verdoppelt, wenn auch die Zahl nur um eine einzige Stelle anwächst. Wenn du dich an das exponentielle Wachstum der Covid-Infektionen erinnerst, weisst du, dass damit sehr schnell riesengrosse Werte erreicht werden.
Die Mathematik hinter der asymmetrischen Verschlüsselung lassen wir zur Seite. Wir merken uns nur, dass es zum Verschlüsseln reicht, die grosse Zahl zu kennen, aber für die Entschlüsselung deren Primfaktoren bekannt sein müssen.
Die asymmetrische Verschlüsselung beruht darauf, dass jeder Teilnehmer ein Schlüsselpaar (key pair) erzeugt: den geheimen Schlüssel (private key) und den öffentlichen Schlüssel (public key). Weil für die Entschlüsselung ein anderer Schlüssel notwendig ist, heisst das Verfahren asymmetrisch.
Alice verwendet nun Bobs öffentlichen Schlüssel (= ein offenes Vorhängeschloss), um ihre Nachricht zu verschlüsseln. Sie sendet die verschlüsselte Nachricht an Bob, der als einziger den geheimen Schlüssel hat und die Nachricht entziffert.
Fragen
Wie weiss Alice, dass sie wirklich Bobs öffentlichen Schlüssel hat?
Asymmetrische Verschlüsselung ist grossartig, aber im vergleich zu symmetrischer viel langsamer. Dies gilt vor allem, wenn wir grosse Datenmengen verschlüsseln müssen. Gibt es einen Weg, die Geschwindigkeit der symmetrischen mit der asymmetrischen zu kombinieren?
Alice und Bob verwenden das asymmetrische Verfahren nur, um einen symmetrischen Schlüssel auszuhandeln. Dieser Session Key ist nur ein paar Dutzend Zeichen lang. Anschliessend wird der Rest der Verbindung mit dem Session Key symmetrisch verschlüsselt.
Zur Verschlüsselung geht Alice wie folgt vor:
Wie geht nun Bob vor, um den Klartext herauszufinden?
Dieses Verfahren wird vom Browser mit HTTPS angewandt: der Browser handelt mit dem Server mittels asymmetrischer Verschlüsselung einen temporären session key aus, der dann für die Übertragung der Webseite verwendet wird.