Die asymmetrische Verschlüsselung, auch Public Key Encryption genannt, ist ein wesentlicher Bestandteil, wenn es um den Schutz unserer Daten geht. Wir begegnen ihr täglich viele Male, ohne es zu bemerken. Sie kommt jedes Mal zur Anwendung, wenn wir eine gesicherte Webseite besuchen, eine Nachricht über einen Messaging-Dienst wie WhatsApp versenden oder eine verschlüsselte E-Mail erhalten. Doch wie funktioniert diese Art der Verschlüsselung?
Vorab ein Disclaimer: Im Internet gibt es eine ganze Reihe von Seiten, die dieses Verfahren in unterschiedlichen Detailgraden beantworten. Wir wollen mit diesem Beitrag das Grundprinzip so anschaulich wie möglich erklären, ohne dabei zu sehr ins Detail zu gehen. Für alle, die mehr über das Thema erfahren möchten, verlinken wir an diversen Stellen auf externe Seiten mit weiterführenden Informationen.
Wozu brauchen wir Verschlüsselung?
Bevor wir erläutern, wie die asymmetrische Verschlüsselung im Grundprinzip funktioniert, sollten wir uns nochmal bewusst machen, was diese Methode der modernen Kryptographie eigentlich macht: Sie verschlüsselt Daten.
Das heißt, sie verwandelt Klartext – Text den wir mit natürlicher Sprache lesen können – in verschlüsselten Text. Durch die Verschlüsselung wird aus dem Wort „Auto“ dann so etwas wie „06b9281e396db002010bde1de57262eb“. Das passiert durch mathematische Operationen mit den Bits – also den Einsen und Nullen in denen das Wort digital gespeichert wird.
Nachdem Text verschlüsselt wurde, kann er auf einem ungesicherten Weg (z. B. über das Internet) an andere Person versendet werden. Wird die Nachricht auf dem Weg dorthin von Dritten abgefangen, können diese mit dem kryptischen Inhalt in der Regel nicht viel anfangen. Die Nachricht ist für sie wertlos.
Genau das passiert heute auch dann, wenn wir eine Webseite besuchen, die über SSL/TLS verschlüsselt ist – also ein „https://“ vor der URL steht. Aktionen des Benutzers, wie z. B. der Klick auf einen Link oder die Eingabe in ein Webformular, werden verschlüsselt bevor sie an den Webserver versendet werden. Der Webserver muss die eingehende Anfrage erst entschlüsseln, bevor er sie verarbeiten kann. Die Antwort des Servers an den Benutzer wird dabei ebenfalls verschlüsselt, sodass die Kommunikation in beide Richtungen geheim bleibt.
Sowohl für das Verschlüsseln als auch das Entschlüsseln einer Nachricht braucht man aber etwas ganz Wesentliches: einen Schlüssel. Und genau um diesen Schlüssel geht es eigentlich bei der asymmetrischen Verschlüsselung.
Der Schlüssel
Stellen wir uns zunächst ein einfaches Szenario vor: Alice möchte eine Nachricht an ihren Freund Bob versenden. Die Nachricht ist vertraulich und soll deshalb verschlüsselt werden, damit sie auf dem Weg zu Bob durch das unsichere Internet von niemandem gelesen werden kann.
Alice und Bob benötigen beide einen Schlüssel, den sie für das verschlüsseln und entschlüsseln der Nachricht nutzen können. Doch wie tauschen sie diesen Schlüssel aus? Hierzu gibt es unter anderem die beiden folgenden Möglichkeiten:
Symmetrische Verschlüsselung
Alice denkt sich einen Schlüssel aus und teilt Bob diesen mit. Dies kann persönlich erfolgen, zum Beispiel bei einem gemeinsamen Treffen, oder über das Internet, zum Beispiel per E-Mail. Beide nutzen dann diesen gemeinsamen Schlüssel für die gegenseitige Kommunikation – man spricht auch von einem „Shared Secret“. Nur wer den Schlüssel hat, also das Shared Secret kennt, kann die Nachrichten der beiden lesen. Man spricht hierbei von symmetrischer Verschlüsselung.
Das Problem dabei: Alice und Bob müssen den Schlüssel über einen unsicheren Kommunikationsweg (wie z. B. das Internet) austauschen. Es kann passieren, dass jemand diese Nachricht mitliest und Kenntnis vom Shared Secret erlangt. Damit wären die Nachrichten von Alice und Bob für ihn nicht mehr geheim. Dieses Problem löst die asymmetrische Verschlüsselung.
Wer an dieser Stelle mehr über die Erstellung und den Austausch von geteilten Schlüsseln bei der symmetrischen Verschlüsselung erfahren möchte, findet unter den folgenden Links weiterführende Informationen:
Asymmetrische Verschlüsselung (Public Key Encryption)
Im Gegensatz zur symmetrischen Verschlüsselung werden bei der asymmetrischen Verschlüsselung zwei Schlüssel genutzt, die sich gegenseitig ergänzen. Jede Partei erzeugt einen Public Key, der für das Verschlüsseln von Nachrichten genutzt wird, und einen Private Key, der für das Entschlüsseln von Nachrichten verwendet wird. Beide zusammen ergeben ein Schlüsselpaar.
Alice und Bob, erzeugen nun beide ein solches Schlüsselpaar (insgesamt existieren also sogar vier Schlüssel). Beide haben nun jeweils einen Private Key, mit dem sie ihre Nachrichten verschlüsseln und einen Public Key, mit dem sie Nachrichten wieder entschlüsseln können.
Wichtig an dieser Stelle: Der Public Key von Alice entschlüsselt nur Nachrichten, die mit Ihrem eigenen Private Key verschlüsselt wurden. Das gleiche gilt für den Public Key von Bob.
Alice verschickt nun ihren Public Key an Bob. Bevor Bob eine Nachricht an Alice verschickt, verschlüsselt er diese mit dem Public Key von Alice. Nur Alice hat den Schlüssel, um diese Nachricht wieder zu entschlüsseln. Nicht einmal Bob kann das machen, aber nachdem er der Absender der Nachricht ist, kennt er den Inhalt.
Umgekehrt gilt das gleiche: Bob schickt seinen Public Key an Alice und sie verschlüsselt alle Nachrichten an Bob ausschließlich mit dessen Schlüssel. Nur Bob kann diese Nachrichten dann mit seinem Public Key wieder lesbar machen.
Das Problem der symmetrischen Verschlüsselung ist damit gelöst, denn es wird zwar ein Schlüssel auf einem unsicheren Weg ausgetauscht (der Public Key), dieser dient aber lediglich zum Verschlüsseln von Nachrichten und kann nicht dafür verwendet werden, diese zu entschlüsseln. Es ist also unrelevant, ob ein Dritter diesen Schlüsseln in die Hände bekommt.
Dieses einfache, aber sehr clevere Prinzip ermöglicht uns jeden Tag eine sichere Kommunkation im Internet.
Weiterführende Informationen
An diese Stelle haben wir aus Gründen der Einfachheit einige Dinge nicht erwähnt. Beispielsweise haben die beiden Schlüssel – Public Key und Private Key – eine mathematische Verbindung zueinander, die dafür sorgt, dass man vom Public Key (mit dem die Verschlüsselung stattfindet) nicht auf den Private Key schließen kann. Wer hierzu mehr erfahren möchte, findet nachfolgend einige Links zu anderen Seiten, auf denen die Public Key Encryption noch detaillierter beschrieben wird.