Modul 03
4. Sicherheit im Internet
4.5. Asymmetrische Verschlüsselung
Asymmetrische Verschlüsselungsverfahren verwenden im Unterschied zu symmetrischen Verfahren zwei verschiedene Schlüssel. Der sogenannte öffentliche Schlüssel wird zur Verschlüsselung genutzt und kann jedem zugänglich gemacht werden, den privaten Schlüssel zur Entschlüsselung behält man jedoch für sich.
Jeder, der uns eine Nachricht schicken möchte, erhält ein Vorhängeschloss aber keinen Schlüssel.
Wir behalten den einzigen (privaten) Schlüssel.
Mit dem Vorhängeschloss kann der Sender eine Schatulle abschließen. Da niemand außer uns einen Schlüssel hat, kann auch niemand anderes die Schatulle öffnen.
Genau wie wir die Vorhängeschlösser beliebig verteilen können, können wir auch unseren öffentlichen Schlüssel beliebig verteilen (und natürlich auch auf unsere Website stellen).
Asymmetrische Verschlüsselung ausprobieren
Ein bekanntes asymmetrisches Verschlüsselungsverfahren ist das RSA Verfahren. Es kann beispielsweise im HTTPS-Protokoll eingesetzt werden.
Wir wollen das RSA-Verfahren nutzen, um zu verdeutlichen, was es heißt, zwei verschiedene Schlüssel zu nutzen.
Hinweis: Die Schlüsselgröße ist in bits angegeben. Wie Sie wissen, bedeutet 512 bits, dass unser Schlüssel eine binär kodierte Zahl aus 512 Nullen und Einsen ist.
Verwenden Sie den jeweils passenden Schlüssel aus dem Schlüsselgenerator, um die Nachricht zu ver- und wieder zu entschlüsseln! Probieren Sie auch was passiert, wenn Sie eine verschlüsselte Botschaft wie bei einem symmetrischen Verfahren erneut "verschlüsseln"!
RSA: Nachrichten ver- und entschlüsseln
Um einen Text zu verschlüsseln gehen Sie wie folgt vor:
- Geben Sie einen Text in das linke Feld "Klartext" ein. Dies ist der Text, den Sie verschlüsseln wollen.
- Kopieren Sie dann Ihren öffentlichen Schlüssel in das Feld Schlüssel bei der RSA-Verschlüsselung.
- Klicken Sie auf verschlüsseln.
Um einen Text zu entschlüsseln, gehen Sie wie folgt vor:
- Kopieren Sie den soeben verschlüsselten Text in das rechte Feld "Geheimtext". Dies ist der Text, den Sie entschlüsseln wollen.
- Kopieren Sie dann Ihren privaten Schlüssel in das Feld Schlüssel bei der RSA-Entschlüsselung.
- Klicken Sie auf entschlüsseln.
Ausblick
Asymmetrische Verschlüsselung umdrehen
Es ist auch möglich, den privaten Schlüssel zur Verschlüsselung und den öffentlichen Schlüssel zur Entschlüsselung zu verwenden. Auf den ersten Blick würde man meinen, dass das kein sonderlich kluger Schachzug wäre. Es ist aber nützlich, um Dokumente digital zu signieren.
Eine Nachricht, die ein Sender mit seinem privaten Schlüssel verschlüsselt, kann von jedem durch den öffentlichen Schlüssel entschlüsselt werden. Erhält er damit eine sinnvolle Nachricht, so kann er sich sicher sein, dass diese Nachricht wirklich nur von der Person mit dem passenden privaten Schlüssel stammen kann.
Würden mehr Firmen und Menschen Ihre E-Mails signieren, wäre auch das Problem mit Phishing nicht mehr so groß.
Programmtipp: E-Mail Verschlüsselung
Mit OpenPGP haben auch Sie die Möglichkeit Ihre E-Mails zu verschlüsseln und zu signieren. Das Programm ist unter einer freien Lizenz erhältlich (und damit natürlich auch kostenlos) und für alle Betriebssysteme verfügbar. Für viele verbreitete Mailprogramme (z.B. Thunderbird) gibt es zudem Plugins.
Exkurs: Warum ist RSA sicher?
Die Sicherheit des Verfahrens basiert im Wesentlichen darauf, dass es fast unmöglich ist, den privaten Schlüssel aus dem öffentlichen Schlüssel zu berechnen.
Das Verfahren baut darauf, dass sich zwei Primzahlen (also Zahlen, die größer als 1 sind und nur durch 1 und sich selbst teilbar sind) sehr einfach multiplizieren lassen, es aber fast unmöglich ist herauszufinden, welche zwei Zahlen multipliziert wurden, wenn man nur das Ergebnis sieht.
Der Taschenrechner an unserem Computer wird mit der folgenden Aufgabe kein Problem haben (Multiplikation):
9348710885874036955876811214244387500490756669712290689357397524542160856902387
072041122117698240864443774750279927325834930771334379494488417008329541473
(das ist eine Zahl!)
mal
12499131211674312952337953811852184324109467987539620251564955913244262930814526
986809514805307540465131054187794651372536839345854795704108684893310620601
(das ist eine Zahl!)
(Die Zahlen haben wir uns nicht selbst ausgedacht, sondern hiermit gefunden.
Das Ergebnis mittels Taschenrechner:
116850764022547591167774970358776359629952930987837832238524056794165893502
49930290285473964469996715469060085130213612673790385900365882215049157674
8189125808078711556009646992394596624437427568131258478484992463297158115
485597381834137762017197016652809977351377615285606561425675239976594398011567397685273
(das ist eine Zahl!)
Nur mit dem Ergebnis herauszufinden, welche zwei Zahlen multipliziert wurden (Faktorisierung), ist nicht nur für uns Menschen, sondern auch für unsere heutigen Computer so schwer, dass diese Überlegung die Grundlage des RSA-Verfahrens bildet.
Wie schwer etwas für einen Computer ist, bedeutet in etwa, wie lange muss der Computer dafür rechnen. Die folgende Animation stellt die benötigte Zeit für die Multiplikation und die Faktorisierung von Zahlen (abhängig von ihrer Länge in bits) gegenüber.
Hinweis: Natürlich sind aber noch ein paar mehr Schritte notwendig, um von zwei Primzahlen zu einem öffentlichen und einem privaten Schlüssel zu gelangen. Aber diese Details brauchen wir an dieser Stelle nicht zu kennen.