Warum asymmetrische Verfahren?

Wir haben AES als ein sicheres symmetrisches Verfahren kennen gelernt. D.h. der Schlüssel zum Ver- und Entschlüsseln ist der gleiche.

Wie sollen wir jedoch vorgehen, wenn wir einem weit entfernt wohnenden Menschen sensible Daten über das Internet zukommen lassen wollen?

Wir müssten ihm den Schlüssel mitteilen. Tun wir dies über einen unsicheren Kanal, z.B. über das Internet, können wir uns die Verschlüsselung sparen, denn der Schlüssel kann abgefangen werden. Wir müssten uns persönlich treffen, um den Schlüssel auszutauschen oder einen sicheren Kanal haben. In dem Fall bräuchten wir aber die Verschlüsselung nicht. Gelingt es uns, sicher einen Schlüssel auszutauschen, dann könnten wir ja gleich den Klartext sicher austauschen.

Wir haben es hier mit dem sogenannten Schlüsseltausch-Problem zu tun.

Nun könnte man sagen, wir brauchen den Schlüssel ja nur einmal mitteilen, z.B. bei einem persönlichen Treffen und dann können wir ja einige Zeit sicher kommunizieren.

Leider ist auch das wenig praktikabel, wenn man über die Anzahl der benötigten Schlüssel nachdenkt.

Anzahl der benötigten Schlüssel bei symmetrischer Verschlüsselung

Wollen z.B. 20 Menschen miteinander sicher kommunizieren, braucht die erste Person von jeder weiteren Person einen gemeinsamen geheimen Schlüssel. Das macht insgesamt, da jede Person 19 Schlüssel braucht, 20*19/2. Nach dieser Zählweise haben wir alle Schlüssel doppelt gezählt, wir müssen also noch durch 2 teilen.

Allgemein: Bei n Personen sind dies n*(n-1)/2 Schlüssel. Da ja nun über das Internet nicht nur 20 Personen miteinander kommunizieren, sondern sehr viele, wäre das ein Schlüsselchaos. Es wäre niemals möglich all die benötigten Schlüssel sicher auszutauschen

Gäbe es nur symmetrische Verschlüsselung, müsste ich mit jedem Online-Shop bei dem ich etwas kaufe vorher auf sicherem Weg einen Schlüssel austauschen!

Anzahl benötigter Schlüssel bei asymmetrischer Verschlüsselung

Würde es gelingen, einen Verschlüsselungsalgorithmus zu entwerfen, bei dem der Schlüssel zum Verschlüsseln ein anderer wäre als der zum Entschlüsseln, sodass man mit dem Verschlüsselungs-Schlüssel nichts anfangen kann, nicht den Klartext rekonstruieren kann, dann bräuchte jeder Teilnehmer nur ein Schlüsselpaar: einen öffentlichen Schlüssel, mit dem alle, die mir mailen wollen, die Nachrichten an mich verschlüsseln und einen geheimen Schlüssel, mit dem nur ich die Nachrichten, die an mich gerichtet sind, lesen kann.

Wie kann man sich asymmetrische Verschlüsselung vorstellen?

Bildlich gesprochen können wir uns asymmetrische Verschlüsselung so vorstellen: Ich habe sehr, sehr viele identische Vorhängeschlösser (öffentlicher Schlüssel). Jedoch nur ich allein habe den Schlüssel, mit dem man die Vorhängeschlösser öffnen kann (geheimer Schlüssel). Da man mit dem Vorhängeschloss nur Dinge verschließen kann, jedoch nichts öffnen kann, kann ich völlig gefahrlos meine Vorhängeschlösser im Internet als Download anbieten (Keyserver). Niemand kann damit etwas öffnen, was für mich bestimmt ist, aber jeder kann mir eine Nachricht schicken, die nur ich lesen kann.

Wie soll man solch ein Vorhängeschloss bauen?

Kryptologen haben lange daran geforscht, solche Schlüsselpaare zu entwerfen. Was man dazu benötigt, ist eine mathematische Einwegfunktion, also etwas was in der einen Richtung ohne großen Aufwand funktioniert, was man aber nur sehr schwer rückgängig machen kann

Aufgabe 1

Multipliziere die Zahlen 1013 und 1019. (Du darfst hierfür einen Taschenrechner verwenden.)

Aufgabe 2

Die Zahl 2 551 181 ist auch auf dem selben Wege entstanden: zwei natürliche Zahlen wurden multipliziert. Bestimme mithilfe eines Taschenrechners die beiden Zahlen!

P.S.: Falls es nicht klappt, nicht traurig sein, sondern über das Wort "Einwegfunktion" meditieren. ;o)

In den Übungen haben wir einen solche Einwegfunktion gefunden. Es ist das Faktorisieren von Zahlen. Dafür gibt es noch keine schnellen Verfahren, d.h. keine die schneller sind, als die möglichen Kandidaten durchzuprobieren. - Siehe das Sieb des Eratosthenes.

Das RSA-Kryptosystem

RSA, benannt nach seinen Entwicklern Rivest, Shamir und Adleman, ist der erste asymmetrische Verschlüsselungs-Algorithmus, der veröffentlicht wurde.

RSA basiert auf der oben benannten mathematischen Einwegfunktion, der Multiplikation von großen Primzahlen.

Das Schlüsselpaar erzeugen

Hierfür braucht man zwei riesige Primzahlen p und q. Diese müssen geheim bleiben. Teil des öffentlichen Schlüssels ist N=p*q. Dieses N muss mindestens eine Größe von 10^130 haben, damit das Verfahren sicher ist. Das N wird bekannt gegeben, jedoch p und q nicht.

Die Verschlüsselung

Bei den Berechnungen des Geheimtextes spielt die sogenannten "Uhrenarithmetik" (Fachbegriff: Modulo-Rechnung) eine große Rolle. Wenn es jetzt 11 Uhr ist, zeigt die Uhr in 2 Stunden eine 1. Also auf dem Ziffernblatt gilt 11+2 = 1. Bei allen Berechnungen wird also nur der Rest nach Division durch 12 angegeben, der Modul ist auf der Uhr 12. Bei der Verschlüsselung ist der Modul das N.

Wer sich mehr für die sehr spannende Mathematik hinter RSA interessiert, kann hier weiterlesen.

Sicherheit

Solange niemand in der Lage ist, sehr große Zahlen zu faktorisieren und niemand in Besitz des geheimen Schlüssels gelangt, ist RSA sicher.

Es wäre denkbar, dass Mathematiker in den nächsten Jahren neue zahlentheoretische Gesetzmäßigkeiten entdecken, sodass man mit weniger Aufwand als bisher große Zahlen faktorisieren könnte. Ab diesem Zeitpunkt wäre RSA nicht mehr sicher.

Billigster Angriff auf RSA

Der billigste Angriff auf RSA ist ein Man-in-the-Middle-Angriff. Mallory (so heißt immer der "Böse"), fängt die öffentlichen Schlüssel ab, wenn Alice und Bob diese tauschen und gibt stattdessen seinen eigenen öffentlichen Schlüssel weiter. Alice und Bob verschlüsseln dann mit dem Schlüssel von Mallory. Dieser fängt alle Nachrichten ab, entschlüsselt diese und verschlüsselt sie wiederum mit den öffentlichen Schlüsseln von Alice und Bob.

Gelingt es Mallory, alle Nachrichten abzufangen, merken Alice und Bob nichts davon, dass jemand die Konversation mitliest.

Zum Schutz vor diesem Angriff gibt es die Möglichkeit, öffentliche Schlüssel zu signieren. Das bedeutet, dass Internetnutzer, die sich davon überzeugt haben, dass der Schlüssel einer anderen Person echt ist, dessen Echtheit bestätigen. Von der Echtheit können sie überzeugt sein, z.B. indem sie den Schlüssel persönlich (!), also ohne Netzwerkverbindung, von dem Besitzer erhalten haben oder den Fingerprint per Telefon verglichen haben.

Jeder Schlüssel hat einen 20 Byte langen Fingerprint. Stimmt dieser überein ist der Schlüssel mit an Sicherheit grenzender Wahrscheinlichkeit nicht gefälscht.

Im Alltag

Phil Zimmermann entwickelte ein Programm "Pretty Good Privacy", PGP, das zum Ziel hat, dass sichere Mail-Kommunikation für jeden möglich sein sollte - auch ohne Informatikstudium. Diese Software gibt es als leicht zu bedienendes Plugin für Mozilla Thunderbird.

Zuerst brauchen wir also das kostenlose Email-Programm Thunderbird. Dies ist eine Open-Source-Alternative zu Outlook. Wie man das Programm installiert, wird in diesen Youtube-Tutorial erklärt.

Anschließend ist das PGP-Plugin für Thunderbird zu installieren.

Schlüsselpaar erzeugen

Hier wird gezeigt, wie man mit Enigmail ein Schlüsselpaar erzeugt. Der Rechner sucht dabei nach sehr großen Primzahlen p und q. Diese werden auf der Festplatte gespeichert. Mithilfe dieser beiden Zahlen kann man die Nachrichten entschlüsseln. Deshalb müssen diese Zahlen, der geheime Schlüssel, durch eine Passphrase geschützt werden. Hier gilt das gleiche, wie bereits bei AES erklärt.

Wie können die anderen mir jetzt verschlüsselte Mitteilungen senden?

Dazu müssen die anderen den öffentlichen Schlüssel kennen. Diesen kann man auf einen Keyserver laden. Hier wird gezeigt, wie man den eigenen Schlüssel auf einen Keyserver laden kann. Und hier gibt es eine Anleitung, wie man Schlüssel von einem Keyserver downloaden kann.

Aufgabe 3

Installiert auf eurem privaten Rechner Enigmail, erzeugt ein Schlüsselpaar, ladet euren öffentlichen Schlüssen auf einen Keyserver, und schickt mir eine verschlüsselte Nachricht, an die euer öffentlicher Schlüssel angehängt ist.

Aufgabe 4

Erkläre deinem Opa, was asymmetrische Verschlüsselung ist und wozu man das braucht.

Aufgabe 5

Jetzt will auch dein Opa verschlüsselt kommunizieren. Erkläre ihm, wie er das machen kann und worauf er achten muss.

Es folgt das Thema Schlüssel signieren.