Warum?
Das große Problem bei symmetrischen Verschlüsselungsverfahren, die Cäsar oder Vigenere ist der Schlüsselaustausch. Es ist halt einfach schwierig einen Schlüssel zu verteilen und dann auch noch sicher zu halten. Besonders ist uns ja bei Vigenere aufgefallen, dass es uns als Angreife mit steigender Menge an Nachrichten immer einfacher wird, den Schlüssel zu knacken. Daher wurden assymetrische Schlüsselverfahren entwickelt, in denen man einen öffentlichen Schlüssel and den Gegenüber geben kann und dieser muss nicht geheim gehalten werden. Diese Nachricht kann dann nur durch den geheimen privaten Schlüssel wieder entschlüsselt werden.
Ansatz
Am einfachsten ist dies mit dem Diffie-Hellman Protokoll veranschaulichbar indem man die Schlüssel durch Farben darstellt. Dabei haben die folgenden Farben folgende Funktionen:
- Hellblau ist eine gemeinsamme Farbe. Diese ist öffentlich und wird vorher abgesprochen
- Rot und Gelb sind die geheimen Farben. Diese behalten Bob und Alice ganz für sich.
- Blau und Grün sind die öffentlichen Farben/Schlüssel. Diese werden ausgetauscht.
- Braun ist der gemeinsamme geheime Schlüssel. Diesen haben nun sowohl Bob und Alice, aber keiner, der den Austausch abhört kommt darauf, solange das Verfahren richtig benutzt wird.
Die Annahme, ohne die das gesammte Verfahren nicht sicher ist ist, dass die Funktion zum Mischen der Farben nicht umkehrbar ist. Nicht umkehrbar kann hierbei aber auch einfach ein in nicht absehbarer Zeit knachbar sein bedeuten. Mit dem gemeinsammen geheimen Schlüssel kann nun symmetrisch die Kommunikation verschlüsselt werden z.B. mit Vigenere. Wäre die Einwegfunktion nicht umkehrbar, könnte man, da man Dunkelblau und Hellblau abfangen kann auch Rot berechnen. Daher ist es so wichtig eine gute Einwegfunktion zu haben.
Welche Einwegfunktion nun?
Dafür benutzten wir die Modulo Operation in Kombination mit Potenzen. Das ganze läuft folgendermaßen ab:
- Alice und bob einigen sich auf eine Primzahl p und eine natürliche Zahl n, wobei n < p gilt. Dies ist unser Hellblau
- Alice wählt eine geheime natürliche Zahl a, wobei a < p-1 und Bob wählt b < p-1. Dies sind Rot und Gelb.
- Alice berechnet A = g^a % p und schickt A an Bob. Also Berechnet Alice nun Blau
- Bob tut nun das selbe für Grün mit B = g^b % p
- Alice und Bob berechnen nun x = B^a bzw. x = A^b
Je größer die Primzahl p ist, desto sicherer ist das Verfahren, da nun mehr Primzahlen gebruteforced werden müssen.