Was ist der Diffie-Hellman-Schlüsselaustausch?

Von Manuel Koppo

Der Diffie-Hellman Schlüsselaustausch war das erste Public Key Protokoll, mit dessen Hilfe zwei Kommunikationsparteien einen gemeinsamen geheimen Schlüssel über einen öffentlichen Kanal austauschen konnten.
Besonders außergewöhnlich am Diffie-Hellman Verfahren ist, dass die beiden Parteien davor kein Shared Secret auf einem geschützten Kanal austauschen müssen.

 

Das Diffie-Hellman Protokoll wurde 1976 von den beiden in Stanford tätigen Kryptographen Whitfield Diffie und Martin Hellman vorgestellt vorgstellt. Es handelt sich dabei um ein Protokoll, mit dessen Hilfe zwei Kommunikationsparteien über einen öffentlichen Kanal, wie beispielsweise das Internet ,einen gemeinsamen Schlüssel vereinbaren können.

Welches Problem löst der Diffie-Hellman Schlüsselaustausch ?

Der Diffie-Hellman Schlüsselaustausch löst das sogenannte Schlüsseltauschproblem. Das taucht immer dann auf, wenn 2 Kommunikationsparteien verschlüsselt miteinander kommunizieren wollen.
Grundsätzlich brauchen wir einfach ein Verschlüsselungsverfahren um eine private Kommunikation gewährleisten zu können. Jedes Verschlüsselungsverfahren benötigt mindestens einen Schlüssel, welcher für die Verschlüsselung und Entschlüsselung genutzt werden kann. Bis 1976 waren alle Verschlüsselungsverfahren symmetrisch, das bedeutet beide Kommunikationsparteien haben den selben Schlüssel verwendet .
Das Problem hierbei ist, dass der Schlüssel auch irgendwie übertragen werden muss. Wenn dieser nun unverschlüsselt übertragen wird können Angreifer den Schlüssel verwenden um in Zukunft auch die verschlüsselten Übertragungen zu entschlüsseln. Alternativ könnten wir natürlich den Schlüssel verschlüsseln und dann übertragen. Allerdings hätten wir dann wieder das selbe Problem.. Wir müssten den Schlüssel  zur Entschlüsselung des verschlüsselten Schlüssels(den wir eigentlich wollen) übertragen. Das würde also in einer Endlosschleife enden. <= Schlüsseltauschproblem

Genau dieses Problem hat der Diffie-Hellman Schlüsseltausch damals durch die Erfindung der asymmetrischen Verschlüsselung gelöst.
Die Kommunikationsparteien erzeugen eigene Schlüssel, welche aus einem geheimen Teil(Private Key) und einem Öffentlichen Teil(Public Key )bestehen.

Ablauf des Diffie-Hellman Schlüsselaustauschs:

Im folgenden Beispiel haben wir die 2 Kommunikationsparteien Alice und Bob.

– Die beiden einigen sich auf zwei Primzahl aus den Ganzzahlen( = {…, -3,-2,-1,0,+1,+2,+3…}).
Diese gemeinsam ausgewählten Elemente bezeichnen wir im folgenden als g und p.

– Danach wählen beide Kommunikationsparteien jeweils eine geheime Primzahl aus den Ganzzahlen.
Das ausgewählte Element von Alice bezeichnen wir im folgenden als a und das Element von Bob als b.

Als nächstes übermittelt:

Alice an Bob ga mod p = A
Bob an Alice gb mod p = B

mod ist hier die Abkürzung für Modulo = Division mit Rest

Danach können sowohl Alice als auch Bob mit folgender Rechnung ihren gemeinsamen Schlüssel für die zukünftige Kommunikation berechnen:

Alice berechnet:  Ba mod p  = K
Bob berechnet:   Ab mod p  = K

Das wichtige hierbei ist Alice kann durch die Modulorechnung niemals mit Sicherheit sagen welchen Wert der Private Key von Bob hat. Umgekehrt wird Bob natürlich auch nicht den Wert des Private Keys von Alice erfahren, da es unendlich viele Möglichkeiten gibt.

In den ersten Momenten ist das etwas scher vorstellbar, aber es funktioniert tatsächlich.
Hier ein kleine Beispiel mit niedrigen Zahlen:

Alice und Bob einigen sich auf p = 7; g = 11

Alice wählt als als Public Key a = 13
Bob wählt als Public Key b = 5

Alice rechnet A aus durch 1113 mod 7 = 4 = A
Bob rechnet B aus durch
115 mod 7 = 2 = B

Alice schickt an Bob A & Bob schickt an Alice B

Jetzt können beide Kommunikationsparteien den gemeinsamen geheimen Schlüssel berechnen:

Alice berechnet:  213  mod 7 = 2  = K
Bob berechnet:   45    mod 7  = 2 = K

Das Ergebnis dieser Rechnung ist nun der gemeinsame geheime Schlüssel, welchen Sie zur Verschlüsselung bzw Entschlüsslung verwenden können.

In meinem Beispiel kann man jetzt natürlich ganz simpel durch ausprobieren eine Lösung finden, aber in der Praxis verwendet man natürlich wesentlich höhere Zahlen. Dadurch wird es unglaublich viel Zeit in Anspruch nehmen alle Möglichkeiten durchzuprobieren ( Bruteforce ).

Hinterlasst mir eure Anregungen zum Beitrag  und Fragen zum Thema Diffie-Hellman Schlüsselaustausch gerne hier in den Kommentaren.