Diffie-Hellman Schlüsselaustausch

Diffie-Hellman Schlüsselaustausch (D-H) ist eine spezifische Methode, kryptografische Schlüssel auszutauschen. Es ist eines der frühsten praktischen Beispiele des innerhalb des Feldes der Geheimschrift durchgeführten Schlüsselaustausches. Die Diffie-Hellman Schlüsselaustauschmethode erlaubt zwei Parteien, die keine vorherigen Kenntnisse von einander haben, um einen geteilten heimlichen Schlüssel über einen unsicheren Kommunikationskanal gemeinsam zu gründen. Dieser Schlüssel kann dann an encrypt nachfolgende Kommunikationen mit einer symmetrischen Schlüsselziffer gewöhnt sein.

Das Schema wurde zuerst von Whitfield Diffie und Martin Hellman 1976 veröffentlicht, obwohl es später behauptet wurde, dass es ein paar Jahre früher innerhalb von GCHQ, dem britischen Signalgeheimdienst von Malcolm J. Williamson getrennt erfunden worden war, aber klassifiziert behalten wurde. 2002 hat Hellman vorgeschlagen, dass der Algorithmus Diffie-Hellman-Merkle Schlüsselaustausch als Anerkennung für den Beitrag von Ralph Merkle zur Erfindung der Geheimschrift des öffentlichen Schlüssels (Hellman, 2002) genannt wird.

Obwohl Diffie-Hellman Schlüsselabmachung selbst ein anonymes (nichtbeglaubigtes) Schlüsselabmachungsprotokoll ist, schafft sie die Grundlage für eine Vielfalt von beglaubigten Protokollen und wird verwendet, um vollkommene Vorwärtsgeheimhaltung in den ephemeren Weisen der Sicherheit der Transportschicht (verwiesen auf als EDH oder DHE abhängig vom Ziffer-Gefolge) zur Verfügung zu stellen.

Der Methode wurde kurz später durch RSA, eine andere Durchführung der öffentlichen Schlüsselgeheimschrift mit asymmetrischen Algorithmen gefolgt.

2002 hat Martin Hellman geschrieben:

, jetzt abgelaufen, beschreibt den Algorithmus und die Kredite Hellman, Diffie und Merkle als Erfinder.

Beschreibung

Diffie-Hellman gründet ein geteiltes Geheimnis, das für heimliche Kommunikationen durch das Austauschen von Daten über ein öffentliches Netz verwendet werden kann. Das folgende Diagramm illustriert die allgemeine Idee vom Schlüsselaustausch durch das Verwenden von Farben statt einer sehr hohen Zahl. Der Schlüsselteil des Prozesses ist, dass Alice Und Bob wert sind, malt ihr Geheimnis eine Mischung nur an. Schließlich erzeugt das einen identischen Schlüssel, der fast unmöglich ist, für eine andere Partei umzukehren, die in auf ihnen gehört haben könnte. Alice und Bob verwenden jetzt dieses allgemeine Geheimnis an encrypt und entschlüsseln ihre gesandten und erhaltenen Daten. Bemerken Sie, dass die gelbe Farbe bereits von Alice und Bob abgestimmt wird:

Hier ist eine Erklärung, die die Mathematik der Verschlüsselung einschließt:

Die einfachste und ursprüngliche, Durchführung des Protokolls verwendet die multiplicative Gruppe von ganzen Zahlen modulo p, wo p erst ist und g primitive Wurzel mod p ist. Hier ist ein Beispiel des Protokolls, mit nichtheimlichen Werten in und heimlichen Werten in:

| valign = "Boden" |

|

| }\

  1. Alice und Bob sind bereit, eine Primzahl = und Basis = zu verwenden.
  2. Alice wählt eine heimliche ganze Zahl =, sendet dann Bob = mod
  3. * = mod
* = mod
  1. * =
  2. Bob wählt eine heimliche ganze Zahl =, sendet dann Alice = mod
* = mod* = mod* =
  1. Alice rechnet = mod
* = mod* = mod* =
  1. Bob rechnet = mod
* = mod* = mod* =
  1. Alice und Bob teilen jetzt ein Geheimnis: =. Das ist, weil * dasselbe als * ist. So könnte jemand, der beide diese privaten ganzen Zahlen gewusst hatte, auch wie folgt gerechnet haben:
* = mod* = mod* = mod* = mod* =

Sowohl Alice als auch Bob haben denselben Wert erreicht, weil (g) und (g) gleicher mod p sind. Bemerken Sie, dass nur a, b und g = g mod p heimlich behalten werden. Alle anderen Werte - p, g, g mod p, und g mod p - werden im klaren gesandt. Sobald Alice und Bob das geteilte Geheimnis schätzen, das sie es als ein Verschlüsselungsschlüssel, bekannt nur ihnen verwenden können, um Nachrichten über denselben offenen Kommunikationskanal zu senden.

Natürlich wären viel größere Werte von a, b, und p erforderlich, um dieses Beispiel sicher zu machen, da es leicht ist, alle möglichen Werte von g mod 23 zu versuchen. Es gibt nur 23 mögliche ganze Zahlen als das Ergebnis von mod 23. Wenn p eine Blüte von mindestens 300 Ziffern waren, und a und b mindestens 100 Ziffern lange waren, dann konnten sogar die besten Algorithmen bekannt heute keinen gegebenen nur g, p, g mod p und g mod p sogar mit der ganzen Rechenmacht der Menschheit finden. Das Problem ist als das getrennte Logarithmus-Problem bekannt. Bemerken Sie, dass g überhaupt nicht groß zu sein braucht, und in der Praxis gewöhnlich entweder 2 oder 5 ist.

Hier ist eine allgemeinere Beschreibung des Protokolls:

  1. Alice und Bob einigen sich über eine begrenzte zyklische Gruppe G und ein Erzeugen-Element g in G. (Das wird gewöhnlich lange vor dem Rest des Protokolls getan; wie man annimmt, ist g von allen Angreifern bekannt.) Wir werden der Gruppe G multiplicatively schreiben.
  2. Alice pickt eine zufällige natürliche Zahl a auf und sendet g, um Sich Auf und ab zu bewegen.
  3. Bob pickt eine zufällige natürliche Zahl b auf und sendet g Alice.
  4. Alice rechnet (g).
  5. Bob rechnet (g).

Sowohl Alice als auch Bob sind jetzt im Besitz des Gruppenelements g, der als der geteilte heimliche Schlüssel dienen kann. Die Werte von (g) und (g) sind dasselbe, weil Gruppen assoziative Macht sind. (Siehe auch exponentiation.)

Um eine Nachricht M, gesandt als Mg zu entschlüsseln, muss Bob (oder Alice) zuerst (g) wie folgt rechnen:

Bob weiß G, b, und g. Ein Ergebnis von Gruppentheorie stellt das vom Aufbau von G, x = 1 für den ganzen x in G fest.

Bob rechnet dann (g) = g = g = gg = (g) g=1g=g = (g).

Wenn Alice Bob die encrypted Nachricht, das Mg sendet, wendet Bob (g) an und erlangt Mg (g) = M (1) = M wieder.

Karte

Hier ist eine Karte, um zu helfen, zu vereinfachen, wer was weiß. (Vorabend ist ein Lauscher - sie beobachtet, was zwischen Alice und Bob gesandt wird, aber sie verändert den Inhalt ihrer Kommunikationen nicht.)

  • Lassen Sie = geteilter heimlicher Schlüssel. =
  • Lassen Sie = öffentliche Basis. =
  • Lassen Sie = öffentliche (erste) Zahl. =
  • Lassen Sie = der private Schlüssel von Alice. =
  • Lassen Sie = der öffentliche Schlüssel von Alice. = mod =
  • Lassen Sie = Bobs privater Schlüssel. =
  • Lassen Sie = Bobs öffentlicher Schlüssel. = mod =

| valign = "Spitze" |

| valign = "Spitze" || }\

Zeichen: Es sollte für Alice schwierig sein, für Bobs privaten Schlüssel oder für Bob zu lösen, um für den privaten Schlüssel von Alice zu lösen. Wenn es für Alice nicht schwierig ist, für Bobs privaten Schlüssel zu lösen (oder umgekehrt), kann Eve sie einfach eigen privat / öffentliches Schlüsselpaar einsetzen, Bobs öffentlichen Schlüssel in ihren privaten Schlüssel einstecken, geteilten heimlichen Schlüssel einer Fälschung erzeugen, und für Bobs privaten Schlüssel lösen (und Gebrauch dass, um für den geteilten heimlichen Schlüssel zu lösen. Eve kann versuchen, ein Publikum / privates Schlüsselpaar zu wählen, das es leicht für sie machen wird, für Bobs privaten Schlüssel zu lösen). Eine Demonstration von Diffie-Hellman (Zahlen verwendend, die für den praktischen Gebrauch zu klein sind), wird hier gegeben

Operation mit mehr als zwei Parteien

Diffie-Hellman Schlüsselabmachung wird auf das Vermitteln eines von nur zwei Teilnehmern geteilten Schlüssels nicht beschränkt. Jede Zahl von Benutzern kann an einer Abmachung durch das Durchführen von Wiederholungen des Abmachungsprotokolls und das Austauschen von Zwischendaten teilnehmen (der heimlich nicht selbst behalten zu werden braucht). Zum Beispiel konnte Alice, Bob, und Carol an einer Diffie-Hellman Abmachung wie folgt mit allen Operationen teilnehmen, die genommen sind, um modulo zu sein:

  1. Die Parteien einigen sich über die Algorithmus-Rahmen und.
  2. Die Parteien erzeugen ihre privaten Schlüssel, genannt, und.
  3. Alice schätzt und sendet es, um Sich Auf und ab zu bewegen.
  4. Bob schätzt und sendet es Carol.
  5. Carol schätzt und verwendet es als ihr Geheimnis.
Bob schätzt und sendet es Carol.
  1. Carol schätzt und sendet es Alice.
  2. Alice schätzt und verwendet es als ihr Geheimnis.
Carol schätzt und sendet es Alice. Alice schätzt und sendet es, um Sich Auf und ab zu bewegen.
  1. Bob schätzt und verwendet es als sein Geheimnis.

Ein Lauscher ist im Stande gewesen zu sehen, und, aber kann keine Kombination von diesen verwenden, um sich zu vermehren.

Um diesen Mechanismus zu größeren Gruppen zu erweitern, muss zwei Kernprinzipien gefolgt werden:

  • Mit einem "leeren" Schlüssel anfangend, der nur daraus besteht, wird das Geheimnis durch die Aufhebung des aktuellen Werts zur privaten Hochzahl jedes Teilnehmers einmal gemacht, in jeder Ordnung (gibt der erste derartige exponentiation den eigenen öffentlichen Schlüssel des Teilnehmers nach).
  • Jeder Zwischenwert (bis zu Hochzahlen habend, hat gegolten, wo die Zahl von Teilnehmern in der Gruppe ist), kann öffentlich offenbart werden, aber der Endwert (alle Hochzahlen angewandt gehabt), setzt das geteilte Geheimnis ein und muss folglich öffentlich nie offenbart werden. So muss jeder Benutzer ihre Kopie des Geheimnisses erhalten, indem er ihren eigenen privaten letzten Schlüssel anwendet (sonst es würde keinen Weg für den letzten Mitwirkenden geben, um den Endschlüssel seinem Empfänger mitzuteilen, weil dieser letzte Mitwirkende den Schlüssel ins sehr heimliche verwandelt hätte, hat die Gruppe schützen wollen).

Diese Grundsatz-Erlaubnis öffnet verschiedene Optionen, um zu wählen, in dem Ordnungsteilnehmer zu Schlüsseln beitragen. Die einfachste und offensichtlichste Lösung ist sich zu einigen die Teilnehmer in einem Kreis und Schlüssel zu haben, rotieren um den Kreis, bis schließlich zu jedem Schlüssel von allen Teilnehmern beigetragen worden ist (mit seinem Eigentümer endend) und jeder Teilnehmer zu Schlüsseln beigetragen hat (mit ihrem eigenen endend). Jedoch verlangt das, dass jeder Teilnehmer modularen exponentiations durchführt.

Durch die Auswahl einer optimaleren Ordnung und das Verlassen auf die Tatsache, dass Schlüssel kopiert werden können, ist es möglich, die Anzahl von modularem exponentiations zu vermindern, der von jedem Teilnehmer für das Verwenden eines Teilens durchgeführt ist und artige Annäherung zu überwinden, gegeben hier für acht Teilnehmer:

  1. Teilnehmer A, B, C und D führt jeder einen exponentiation durch, tragend; dieser Wert wird an E, F, G, und H gesandt. Dagegen erhalten Teilnehmer A, B, C und D.
  2. Teilnehmer A und B jeder führt einen exponentiation, das Tragen durch, das sie an C und D senden, während C und D, das Tragen dasselbe machen, das sie an A und B senden.
  3. Teilnehmer A führt einen exponentiation, das Tragen durch, das er an B sendet; ähnlich sendet B an A. C und D tun ähnlich.
  4. Teilnehmer A führt einen endgültigen exponentiation durch, das Geheimnis nachgebend, während B dasselbe macht, um zu kommen; wieder tun C und D ähnlich.
  5. Teilnehmer E durch H führen gleichzeitig dieselben Operationen mit als ihr Startpunkt durch.

Nach der Vollendung dieses Algorithmus werden alle Teilnehmer das Geheimnis besitzen, aber jeder Teilnehmer wird nur vier modulare exponentiations, aber nicht die durch eine einfache kreisförmige Einordnung einbezogenen acht durchgeführt haben.

Sicherheit

Das Protokoll wird sicher gegen Lauscher betrachtet, wenn G und g richtig gewählt werden. Der Lauscher ("Vorabend") würde das Diffie-Hellman Problem beheben müssen, um g zu erhalten. Das wird zurzeit schwierig betrachtet. Ein effizienter Algorithmus, um das getrennte Logarithmus-Problem zu beheben, würde es leicht machen, a oder b zu schätzen und das Diffie-Hellman Problem zu beheben, das und viele anderen öffentlichen Schlüssel cryptosystems unsicher machend.

Die Ordnung von G sollte erst sein oder einen großen Hauptfaktor haben, um Gebrauch des Pohlig-Hellman Algorithmus zu verhindern, a oder b zu erhalten. Deshalb ist eine Sophie Germain erster q wird manchmal verwendet, um p=2q+1, genannt eine sichere Blüte seit der Ordnung von G zu berechnen, dann nur durch 2 teilbar, und q. wird g dann manchmal gewählt, um die Untergruppe des Auftrags q von G, aber nicht G zu erzeugen, so dass das Symbol von Legendre von g nie das niedrige Ordnungsbit von a offenbart.

Wenn Alice und Bob Zufallszahlengeneratoren verwenden, deren Produktionen nicht völlig zufällig sind und einigermaßen vorausgesagt werden können, dann ist die Aufgabe von Eve viel leichter.

Die heimlichen ganzen Zahlen a und b werden am Ende der Sitzung verworfen.

Deshalb erreicht Diffie-Hellman Schlüsselaustausch allein trivial vollkommene Vorwärtsgeheimhaltung, weil kein langfristiges privates Texteingabe-Material besteht, um bekannt gegeben zu werden.

In der ursprünglichen Beschreibung stellt der Diffie-Hellman-Austausch allein Beglaubigung der kommunizierenden Parteien nicht zur Verfügung und ist so für einen Mann im mittleren Angriff verwundbar. Eine Person in der Mitte kann zwei verschiedenen Diffie-Hellman Schlüsselaustausch, ein mit Alice und anderem mit Bob, effektiv masquerading einsetzen, weil Alice, um Sich, und umgekehrt Auf und ab zu bewegen, dem Angreifer erlaubend, zu entschlüsseln (und zu lesen, oder Laden) dann re-encrypt die Nachrichten zwischen ihnen gegangen ist. Eine Methode, die kommunizierenden Parteien zu einander zu beglaubigen, ist allgemein erforderlich, um diesen Typ des Angriffs zu verhindern. Varianten von Diffie-Hellman, wie STS, können stattdessen verwendet werden, um diese Typen von Angriffen zu vermeiden.

Anderer Gebrauch

Kennwort-beglaubigte Schlüsselabmachung

Wenn Alice und Bob ein Kennwort teilen, können sie eine Kennwort-beglaubigte Schlüsselabmachung (PAKE) Form von Diffie-Hellman verwenden, um Mann in den mittleren Angriffen zu verhindern. Ein einfaches Schema ist, den Generator g das Kennwort zu machen. Eine Eigenschaft dieser Schemas ist, dass ein Angreifer nur ein spezifisches Kennwort auf jeder Wiederholung mit der anderen Partei prüfen kann, und so versorgt das System gute Sicherheit mit relativ schwachen Kennwörtern. Diese Annäherung wird in der ITU-T Empfehlung X.1035 beschrieben, die durch den G.hn verwendet wird, der nach Hause Standard vernetzt.

Öffentlicher Schlüssel

Es ist auch möglich, Diffie-Hellman als ein Teil einer öffentlichen Schlüsselinfrastruktur zu verwenden. Der öffentliche Schlüssel von Alice ist einfach. Um ihr eine Nachricht zu senden, wählt Bob einen zufälligen b, und sendet dann Alice (un-encrypted) zusammen mit der Nachricht encrypted mit dem symmetrischen Schlüssel. Nur Alice kann die Nachricht entschlüsseln, weil nur sie a hat. Ein vorgeteilter öffentlicher Schlüssel verhindert auch Mann in den mittleren Angriffen.

In der Praxis wird Diffie-Hellman auf diese Weise mit RSA nicht verwendet der dominierende öffentliche Schlüsselalgorithmus zu sein. Das ist größtenteils aus historischen und kommerziellen Gründen nämlich, dass RSA eine Zertifikat-Autorität geschaffen hat, die Verisign geworden ist. Diffie-Hellman kann nicht verwendet werden, um Zertifikate zu unterzeichnen, obwohl die Unterschrift-Algorithmen von ElGamal und DSA damit verbunden sind. Jedoch ist es mit MQV, STS und dem IKE Bestandteil des IPsec Protokoll-Gefolges verbunden, um Internetprotokoll-Kommunikationen zu sichern.

Siehe auch

Referenzen

  • Martin E. Hellman, Außenhof W. Diffie und Ralph C. Merkle, amerikanisches Patent #4,200,770, am 29. April 1980
  • Die Geschichte von Non-Secret Encryption JH Ellis 1987 (28K PDF Datei) (HTML-Version)
  • Die Ersten Zehn Jahre der Geheimschrift des Öffentlichen Schlüssels Whitfield Diffie, Verhandlungen des IEEE, vol. 76, Nr. 5, Mai 1988, Seiten: 560-577 (1.9 Mb PDF Datei)
  • Menezes, Alfred; van Oorschot, Paul; Vanstone, Scott (1997). Handbuch der Angewandten Geheimschrift Boca Raton, Florida: CRC Presse. Internationale Standardbuchnummer 0-8493-8523-7. (Verfügbar online)
  • Singh, Simon (1999) Das Codebuch: die Evolution der Geheimhaltung von Mary Queen von Schotten zur Quant-Geheimschrift New York: Doubleday internationale Standardbuchnummer 0-385-49531-5
  • Eine Übersicht der Öffentlichen Schlüsselgeheimschrift Martin E. Hellman, IEEE Kommunikationszeitschrift, Mai 2002, pp:42-49. (123 Kilobytes PDF Datei)

Links

,

Piter De Vries / Destry Fahrten wieder
Impressum & Datenschutz