Dienstag, 18. November 2014

Diffie–Hellman Schlüsselaustausch

Das heutige Thema ist der Diffie-Hellman-Schlüsselaustausch oder auch Diffie-Hellman-Merkle-Schlüsselaustausch. Dies ist ein Schlüsselaustauschprotokoll.

What's the purpose of this algorithm, when is it used?

Zweck des Algorithmus:


Mit diesem Protokoll erzeugen zwei Kommunikationspartner einen geheimen Schlüssel. Diesen kennen nur sie. Dieser Schlüssel wird üblicherweise verwendet, um verschlüsselte Nachrichten mittels eines symmetrischen Kryptosystems zu übertragen.


What is a one way function?

Einwegfunktion:


Eine „one way function“ (zu Deutsch Einwegfunktion) ist eine mathematische Funktion, die zwar „leicht” zu berechnen ist, aber „schwer” umzukehren. In einem erweiterten Sinn werden auch Funktionen so bezeichnet, zu denen bisher keine in angemessener Zeit praktisch ausführbare Umkehrung bekannt ist. Sie bilden die Grundlage in vielen Verschlüsselungsverfahren in der Kryptologie.


How does the algorithm work?

Funktionsweise:

Anhand des Beispiels Alice und Bob wird nun die Funktionsweise erklärt. Die zwei Kommunikationspartner Alice und Bob wollen über ein unsicheres Medium, etwa eine Kabel- oder Funkverbindung, verschlüsselt kommunizieren. Dazu soll ein symmetrisches Kryptosystem eingesetzt werden, für das beide jedoch zunächst einen gemeinsamen geheimen Schlüssel benötigen. Über den Diffie-Hellman-Schlüsselaustausch gelangen sie beide zu einem solchen Schlüssel.
  1. Die Kommunikationspartner einigen sich zunächst auf eine zyklische Gruppe primer Ordnung p und einen Erzeuger g dieser Gruppe. Diese Parameter brauchen nicht geheim zu bleiben und können daher auch über ein unsicheres Medium übertragen werden.
  2. Beide Kommunikationspartner erzeugen jeweils eine geheimzuhaltende Zufallszahl a bzw. b aus der Menge {1,…,p-1}a und b werden nicht übertragen, bleiben also dem jeweiligen Kommunikationspartner, aber auch potenziellen Lauschern, unbekannt.
  3. Die Kommunikationspartner berechnen A=ga modp bzw. B=gb modp. Nun werden A und B über das unsichere Medium übertragen.
  4. Die Kommunikationspartner berechnen nun K=Ba modp bzw. K=Ab modp. Das Ergebnis K ist für beide Partner gleich und kann als Schlüssel für die weitere Kommunikation verwendet werden.

Dass beide Kommunikationspartner denselben Wert für K berechnen, zeigen die folgenden beiden Gleichungen:
K=Ba modp = (gb modp)a modp = gba modp = gab modp
K= Ab modp = (gb modp)a modp = gab modp




What is clock arithmetic, which characteristics does it have?

Clock Arithmetik:


Die “clock arithmetic” (in Deutsch Kongruenz) ist in der Zahlentheorie eine Beziehung zwischen ganzen Zahlen.  Man nennt zwei Zahlen kongruent bezüglich eines Moduls (eine weitere Zahl), wenn sie bei Division durch den Modul denselben Rest haben. Das ist genau dann der Fall, wenn sie sich um ein ganzzahliges Vielfaches des Moduls unterscheiden. Stimmen die Reste nicht überein, so nennt man die Zahlen inkongruent bezüglich des Moduls.

Zwei Zahlen a und b heißen kongruent modulo m, wenn m die Differenz a –b teilt.
Zwei Zahlen a und b heißen inkongurent modulo m, wenn m die Differenz a – b nicht teilt.


What is the discrete logarithm problem?

Das Diskreter-Logarithmus-Problem:


Während die Exponentialfunktion mit Hilfe entsprechender Verfahren sehr effizient berechnet werden kann, ist die Berechnung diskreter Logarithmen bei geeigneter Wahl der relevanten Größen ein schwer zu lösender Problem (Diskreter-Logarithmus-Problem, kurz DLP). Für dieses ist bis heute kein effizienter Algorithmus bekannt. Aufgrund dieser Asymmetrie findet der diskrete Logarithmus in der Kryptografie vielfach Verwendung.
Das Diffie-Hellman-Verfahren stellt eine anschauliche Anwendungsmöglichkeit des DLP (Diskreter-Logarithmus-Problem) dar. Das DLP  wird verwendet, den sicheren Austausch des geheimen Schlüssels durchzuführen. Die Sicherheit des Diffie-Hellman-Verfahren beruht auf der Schwierigkeit, derartige Logarithmen bei geeigneter Wahl der Zahlenwerte zu berechnen. Ist ein Angreifer in der Lage, das DLP zu lösen, kann er den geheimen Schlüssel berechnen. Bisher ist die Lösung des DLP die einzige bekannte anwendbare Methode, um das Diffie-Hellman-Problem zu lösen und damit den geheimen Schlüssel zu erfahren.


Calculate the private shared key, when Alice selects 56 and Bob selects 23 as a random number.

Beispiel:


Nun wird der Private Schlüssel anhand des Beispiels von Alice und Bob berechnet. Es werden sehr kleine Zahlen benutzt. In der tatsächlichen Anwendung werden Zahlen mit mehreren hundert Stellen benutzt.

  1. Alice und Bob einigen sich auf p=71 und g=2.
  2. Alice wählt die Zufallszahl a=56. Bob wählt die Zufallszahl b=23.
  3. Alice berechnet A = ga modp = 25 und sendet A an Bob.
  4. Bob berechnet B = gb modp = 29 und sendet B an Alice.
  5. Alice berechnet K = Ba modp = 5.
  6. Bob berechnet K = Ab modp = 5.
  7. Beide erhalten das gleiche Ergebnis K = 5.


Ein eventuell vorhandener Mittelsmann oder Lauscher könnte zwar die Zahlen 71, 2, 25 und 29 mithören, das eigentliche gemeinsame Geheimnis von Alice und Bob K = 5 bleibt ihm aber verborgen. K = 5 kann somit als Schlüssel für die nachfolgende Kommunikation verwendet werden.



What is authentication? Does the Diffie-Hellman key exchange provide authentication?

Authentifizierung: 


Der Begriff Authentifizierung ist vom Englischen Verb authenticate abgeleitet, was auf Deutsch sich als echt erweisen, sich verbürgen, glaubwürdig sein bedeutet.

Das Diffie-Hellman-Protokoll sieht keine Authentisierung der Partner vor. Daher ist es anfällig für die Man-In-The-Middle-Attack.  Ist ein Angreifer in der Lage, sich aktiv in die Kommunikation zwischen den beiden Partnern einzuschleifen, so kann er gegenüber beiden vorgeben, der jeweils andere Partner zu sein und so selbst mit beiden ein gemeinsames Geheimnis vereinbaren. Daher wird in der Praxis bei diesem Verfahren immer zusammen mit einem zusätzlichen Authentisierungsverfahren verwendet, in der Regel auf Basis von digitalen Signaturen.




Keine Kommentare:

Kommentar veröffentlichen