Diffie Hellman Schlüsselübergabeprotokoll

Page Shortcuts

Geschichte

Die Diffie Hellman Methode, entiwckelt von Whitfield Diffie und Martin Hellman im Jahre 1976, ist eine der ersten praktischen Beispiele eines public key exchanges (Schlüsselübergabe über ein öffentliches Netzwerk).

Früher wurden physische Schlüsselübergaben (beispielsweise per Post) unternommen, damit niemand den Schlüssel kennt.

Gebrauch

Das Diffie Hellman Schlüsselübergabeprotokoll wird gebraucht, um Keys auszutauschen, mit denen Nachrichten ver- und entschlüsselt werden.

Hierbei liegt das Hauptproblem darin, dass zwei Clients den gleichen Schlüssel zum ver- und entschlüsseln brauchen, diesen aber nicht öffentlich verfügbar machen wollen, da ansonsten andere Personen im Netzwerk dessen Nachrichten entschlüsseln könnten.

Funktionsweise

Das Grundkonzept basiert darauf, dass es keinen Unterschied macht, um welche Potenz eine Zahl zuerst erhebt wird, da (na)b = (nb)a = nab = nba

Die Situation ist folgende: Zwei Partien, Alice und Bob möchten einen gemeinsamen Schlüssel generieren und ihn über das Internet versenden, ohne dass jemand anderes ihn kennt.

Zu Beginn wird eine Konstante p und g bestummen, wobei p eine grosse Nummer (meist 512 Bit) ist und g eine Primitivwurzel Modulo p. Diese zwei Nummern müssen nicht geheim gehalten werden.

Als Nächstes generieren Alice und Bob je eine Konstante, a und b, wobei 1 ≤ a ≤ p - 1 und 1 ≤ b ≤ p - 1.

Nun sendet Alice Bob ga % p und Bob Alice gb % p.

Alice berechnet nun (gb % p)a % p und Bob (ga % p)b % p.

Da (ab % n)c % n = abc % n, haben nun beide die gleiche Zahl gab % p bzw gba % p.

Lediglich g, p, ga % p und gb % p wurden über das Internet versendet. Mit diesen Informationen ist es unmöglich, gab % p zu berechnen.

Schwachpunkte

Das Diffie Hellman Protokoll ist anfällig für eine Man-In-The-Middle-Attacke.

Hierbei gibt sich ein Angreifer für Alice als Bob und für Bob als Alice aus. Somit kann der Angreifer ein gemeinsamer Schlüssel mit Alice und Bob generieren, Alice und Bob jedoch wissen nicht, dass ihre Schlüsselübergaben mit einem Angreifer, anstatt Alice bzw. Bob stattgefunden haben.

Der Angreifer kann nun die Nachrichten von Alice mit dem Schlüssel, welche der Angreifer mit ihr teilt, entschlüsseln. So sieht er die entschlüsselte Nachricht von Alice. Diese verschlüsselt der Angreifer wieder mit dem Schlüssel, welcher er mit Bob teilt. Die verschlüsselte Nachricht sendet der Angreifer dann an Bob weiter.

Somit hat der Angreifer gerade eine eigentlich geheime Nachricht von Alice an Bob lesen können und keiner der zwei Partien hat etwas davon mitbekommen.

Diese Vorgehensweise kann auch in die andere Richtung gehen, so, dass der Angreifer die Nachricht von Bob abfängt, entschlüsselt und dann wieder verschlüsselt an Alice sendet.

Demonstration

Gerade laufender Prozess

Alice

p:

g:

a:

b:

ga:

gb:

gab:

Öffentlich

p:

g:

a:

b:

ga:

gb:

gab:

Bob

p:

g:

a:

b:

ga:

gb:

gab: