Diffie-Hellman-Schlüsselaustausch

Einführung

Der Diffie-Hellman-Schlüsselaustausch ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann. Der dadurch vereinbarte Schlüssel kann anschließend für eine symmetrische Verschlüsselung verwendet werden.

Grundidee

Die Mathematik hinter dem Algorithmus ist leider nicht ganz einfach zu verstehen. Dafür gibt es aber eine schöne Analogie mit Farben, die man zum Verständnis nutzen kann (Quelle https://www.inf-schule.de/kommunikation/kryptologie/modernechiffriersysteme/exkurs_diffie).

Quelle: https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch

Der Ablauf:

  1. Alice und Bob einigen sich auf eine gemeinsame (öffentliche) Farbe.

  2. Jeder wählt sich zudem eine geheime weitere Farbe.

  3. Alice und Bob mischen sich aus ihrer geheimen und der öffentlichen Farbe eine weitere Farbe.

  4. Sie schicken jeweils die neu gemischte Farbe zu ihrem Kommunikationspartner.

  5. Am Ende mischt jeder seine geheime Farbe in die zuvor ausgetauschten Mischfarbe.

Die gemeinsame Farbe am Ende des Prozesses besteht also aus drei gemischten Farben. Und Eve in der Mitte?

Sie hat nur die öffentliche Farbe und zwei gemischte Farben. Es ziemlich schwierig, aus einer Mischfarbe zu erkennen, welche Ausgangsfarben genau darin stecken.

Mathematische Funktionsweise

Die beiden Kommunikationspartner Alice und Bob wollen über ein unsicheres Medium verschlüsselt kommunizieren. Dazu soll ein symmetrisches Kryptosystem eingesetzt werden, für das beide jedoch zunächst einen gemeinsamen geheimen Schlüssel benötigen. Das Kommunikationsprotokoll sorgt dafür, dass sie einen geheimen Schlüssel berechnen können, ohne dass die beiden Kommunikationspartner diesen Austauschen müssen und Dritte (Eve) diesen erfahren können. Den auf diese Weise errechneten Schlüssel können sie dann in Zukunft verwenden, um verschlüsselt mit einem symmetrischen Kryptosystem zu kommunizieren (Quelle: https://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch#Funktionsweise).

Ablauf

1. Alice und Bob einigen sich zunächst öffentlich auf eine große Primzahl p und eine natürliche Zahl g, die kleiner als p ist.

2. Alice und Bob erzeugen jeweils eine geheimzuhaltende Zufallszahl (privater Schlüssel) a (für Alice) bzw. b (für Bob) aus der Menge {1,2,..,p-1}. a und b werden nicht übertragen, bleiben also potenziellen Lauschern, aber auch dem jeweiligen Kommunikationspartner, unbekannt. Nur Alice kennt die Zahl a und nur Bob kennt die Zahl b .

3. Alice berechnet mit ihrer geheimen Zahl den öffentlichen Schlüssel A = ga mod p und schickt A an Bob. Bob berechnet mit seiner geheimen Zahl den öffentlichen Schlüssel B= gb mod p und schickt B an Alice.

4. Alice erhält B von Bob und berechnet mit ihrem privaten Schlüssel a die Zahl K1= Ba mod p. Bob berechnet mit dem erhaltenen A und seinem privaten Schlüssel b ebenfalls die Zahl K2= Ab mod p.

Dass beide Kommunikationspartner denselben Wert für K berechnen, zeigen die folgenden beiden Gleichungen unter Berücksichtigung der Potenzgesetze:

K2=Ab mod p =(ga mod p)b mod p =(ga)b mod p =gab mod p

K1=Ba mod p =(gb mod p)a mod p =(gb)a mod p =gba mod p

Da die Multiplikation kommutativ ist, gilt des Weiteren gba mod p = gab mod p und somit K1=K2.

Alice und Bob erhalten also nach ihren jeweiligen Berechnungen die genau gleiche Zahl, nämlich den geheimen Schlüssel K=K1=K2.