it-swarm.com.de

"Diffie-Hellman Key Exchange" in einfachem Englisch

Kann mir jemand erklären, was Diffie-Hellman Key Exchange in einfachem Englisch ist? Ich habe auf einer nicht-technischen Nachrichtenseite gelesen, dass Twitter gerade diese Technologie implementiert hat, mit der zwei Personen verschlüsselte Nachrichten über einen nicht gesicherten Kanal austauschen können. Wie ist das (wenn das stimmt)?

262
user15119

Diffie-Hellman ist eine Möglichkeit, ein gemeinsames Geheimnis zwischen zwei Personen so zu erzeugen, dass das Geheimnis durch Beobachtung der Kommunikation nicht gesehen werden kann. Das ist ein wichtiger Unterschied: Sie sind nicht teilen Informationen während des Schlüsselaustauschs, Sie sind erstellen einen Schlüssel zusammen.

Dies ist besonders nützlich, da Sie diese Technik verwenden können, um mit jemandem einen Verschlüsselungsschlüssel zu erstellen und dann Ihren Datenverkehr mit diesem Schlüssel zu verschlüsseln. Und selbst wenn der Verkehr aufgezeichnet und später analysiert wird, gibt es absolut keine Möglichkeit herauszufinden, was der Schlüssel war, obwohl die Börsen, die ihn erstellt haben, möglicherweise sichtbar waren. Hier kommt das perfekte Vorwärtsgeheimnis her. Niemand, der den Datenverkehr zu einem späteren Zeitpunkt analysiert, kann einbrechen, da der Schlüssel nie gespeichert, nie übertragen und nirgendwo sichtbar gemacht wurde.

Die Art und Weise, wie es funktioniert, ist ziemlich einfach. Ein Großteil der Mathematik ist die gleiche wie in der Krypto mit öffentlichen Schlüsseln, da eine Trapdoor-Funktion verwendet wird. Und während das diskrete Logarithmusproblem traditionell verwendet wird ( x)y mod p business) kann der allgemeine Prozess so geändert werden, dass auch die Kryptographie mit elliptischen Kurven verwendet wird .

Obwohl die gleichen Grundprinzipien wie bei der Kryptografie mit öffentlichen Schlüsseln verwendet werden, handelt es sich um eine asymmetrische Kryptografie ( not ), da während des Austauschs nie etwas verschlüsselt oder entschlüsselt wird. Es ist jedoch ein wesentlicher Baustein und war tatsächlich die Basis, auf der später asymmetrische Krypto aufgebaut wurde.

Die Grundidee funktioniert folgendermaßen:

  1. Ich habe eine Primzahl p und eine Zahl g Koprime zu p-1 und sag dir, was sie sind.
  2. Sie wählen dann eine Geheimnummer ( a ), aber Sie sagen es niemandem. Stattdessen berechnen Sie gein mod p und sende mir das Ergebnis zurück. (Wir nennen das [~ # ~] a [~ # ~] , da es von a ).
  3. Ich mache das Gleiche, aber wir nennen meine Geheimnummer b und die berechnete Nummer [~ # ~ ] b [~ # ~] . Also berechne ich gb mod p und senden Sie das Ergebnis (genannt " [~ # ~] b [~ # ~] ")
  4. Jetzt nimmst du die Nummer, die ich dir geschickt habe und machst genau die gleiche Operation mit it . Das ist also B.ein mod p .
  5. Ich mache die gleiche Operation mit dem Ergebnis, das Sie mir gesendet haben, also: A.b mod p .

Die "Magie" hier ist, dass die Antwort, die ich in Schritt 5 bekomme, die gleiche Zahl ist, die Sie in Schritt 4 erhalten haben. Jetzt ist es nicht wirklich magisch, es ist nur Mathe und es kommt runter zu einer ausgefallenen Eigenschaft von Modulo-Exponenten. Speziell:

(gein mod p)b mod p = Gab mod p
(gb mod p)ein mod p = Gba mod p

Was bedeutet, wenn Sie genauer hinschauen, dass Sie die gleiche Antwort erhalten, egal in welcher Reihenfolge Sie die Potenzierung durchführen. Also mache ich es in einer Reihenfolge und Sie tun es in der anderen. Ich weiß nie, welche Geheimnummer Sie verwendet haben, um zum Ergebnis zu gelangen, und Sie wissen nie, welche Nummer ich verwendet habe, aber wir kommen immer noch zum gleichen Ergebnis.

Dieses Ergebnis, diese Nummer, auf die wir beide in Schritt 4 und 5 gestoßen sind, ist unser gemeinsamer geheimer Schlüssel. Wir können dies als unser Passwort für AES oder Blowfish oder jeden anderen Algorithmus verwenden, der gemeinsame Geheimnisse verwendet. Und wir können sicher sein, dass niemand außer uns den Schlüssel kennt, den wir gemeinsam geschaffen haben.

372
tylerl

Die anderen Antworten erklären hervorragend die Mathematik hinter dem Schlüsselaustausch. Wenn Sie eine bildlichere Darstellung wünschen, gibt es nichts Schöneres als die hervorragende Paint-Analogie, die im Diffie-Hellman-Schlüsselaustausch Wikipedia-Eintrag gezeigt wird:


DH key exchange image

Bild ist gemeinfrei

147
Duncan Jones

Diffie-Hellman ist ein Algorithmus, mit dem ein gemeinsames Geheimnis zwischen zwei Parteien hergestellt wird. Es wird hauptsächlich als Methode zum Austausch von Kryptografieschlüsseln zur Verwendung in symmetrischen Verschlüsselungsalgorithmen wie AES verwendet.

Der Algorithmus an sich ist sehr einfach. Nehmen wir an, Alice möchte ein gemeinsames Geheimnis mit Bob aufbauen.

  1. Alice und Bob vereinbaren im Voraus eine Primzahl p und eine Basis g. Nehmen wir für unser Beispiel an, dass p=23 und g=5.
  2. Alice wählt eine geheime Ganzzahl a, deren Wert 6 ist, und berechnet A = g^a mod p. In diesem Beispiel hat A den Wert 8.
  3. Bob wählt eine geheime ganze Zahl b, deren Wert 15 ist, und berechnet B = g^b mod p. In diesem Beispiel hat B den Wert 19.
  4. Alice sendet A an Bob und Bob sendet B an Alice.
  5. Um das gemeinsame Geheimnis zu erhalten, berechnet Alice s = B^a mod p. In diesem Beispiel erhält Alice den Wert s=2
  6. Um das gemeinsame Geheimnis zu erhalten, berechnet Bob s = A^b mod p. In diesem Beispiel erhält Bob den Wert s=2.

Der Algorithmus ist sicher, da die Werte von a und b, die zum Ableiten von s erforderlich sind, überhaupt nicht über die Leitung übertragen werden.

38
user10211

Wenn Sie eine einfachere Erklärung von DH im Klartext wünschen, die auch von nicht-technischen Personen leicht verstanden werden kann, gibt es die Analogie der doppelt gesperrten Box.

  1. Alice steckt ein Geheimnis in eine Schachtel und schließt es mit einem Vorhängeschloss ab, das sie als einzigen Schlüssel öffnen kann. Sie schickt die Schachtel dann zu Bob.

  2. Bob erhält die Schachtel, setzt ein zweites Vorhängeschloss auf, an dem nur er den Schlüssel hat, und schickt es zurück an Alice.

  3. Alice entfernt ihr Schloss und schickt die Schachtel ein zweites Mal an Bob.

  4. Bob entfernt sein Schloss, öffnet die Schachtel und hat Zugang zu dem Geheimnis, das Alice ihm geschickt hat.

Da die Box während des Transports immer mindestens ein Schloss hatte, hat Eve nie die Möglichkeit zu sehen, was sich in der Seite befindet, und das Geheimnis zu stehlen: In diesem Fall ein kryptografischer Schlüssel, der zum Verschlüsseln des Restes der Kommunikation von Alice und Bob verwendet wird.

Das Schlüsselaustauschproblem

Eine sichere Verbindung erfordert den Austausch von Schlüsseln. Die Schlüssel selbst müssten jedoch über eine sichere Verbindung übertragen werden.

Es gibt zwei mögliche Lösungen:

  1. tauschen Sie den Schlüssel aus, indem Sie die Schlüssel physisch treffen und freigeben.
  2. Irgendwie hat sich ein gemeinsames Geheimnis auf einem öffentlichen unsicheren Kanal etabliert. Dies ist leichter gesagt als getan, und die erste derartige Implementierung ist das Diffie-Hellman-Schema.

Eigenschaften

Diffie-Hellman verwendet eine mathematische Funktion mit folgenden Eigenschaften:

  1. Es ist EINFACH, f[x] Zu berechnen (aus x)
  2. Es ist SCHWER, f[x] Zu invertieren, um x zu erhalten.
  3. Es ist EINFACH, S aus A und f[B] Zu berechnen.
  4. Es ist EINFACH, S aus B und f[A] Zu berechnen.
  5. Es ist SCHWER, S ohne A oder B zu berechnen (auch mit f[A] Und f[B])

Wie das DH-Schema funktioniert

  1. Alice kommt mit einer Zufallszahl heraus A. Sie berechnet f[A] Und sendet f[A] An Bob. Alice gibt sie niemals preis A, nicht einmal an Bob.
  2. Bob kommt mit einer anderen Zufallszahl heraus B. Er berechnet f[B] Und sendet f[B] An Alice. Bob gibt seine B niemals preis, nicht einmal Alice.
  3. Alice berechnet S mit A und f[B]. Bob berechnet S mit B und f[A]
  4. Mallory, die abhört, hat nur f[A] Und f[B], Daher ist es für sie SCHWER, S zu berechnen.
  5. Alice und Bob teilen nun ein gemeinsames Geheimnis, das als Schlüssel zum Herstellen einer sicheren Verbindung verwendet werden kann (oder um einen Schlüssel zu finden).

Randnotiz:

Das Diffie-Hellman-Schema bietet keinerlei Authentifizierung. Es erlaubt nur 2 anonymen Parteien, ein gemeinsames Geheimnis zu teilen. Aber soweit Alice weiß, könnte sie dem Teufel (anstelle von Bob) die Hand geben. Aus diesem Grund muss mindestens eine Partei authentifiziert werden.

Beispiel: SSL (https), der Webserver wird mithilfe von PKI (Public Key Infrastructure) authentifiziert, und anschließend wird eine sichere Verbindung (D-H) zwischen der Website und dem Client hergestellt. Da die Website authentifiziert wurde, kann der Kunde der Website vertrauen, aber die Website kann dem Kunden nicht vertrauen. Es ist jetzt sicher für den Client, seine eigenen Authentifizierungsdetails auf der Webseite anzugeben.

26
aiao

Das Sichern von Daten über das Internet erfordert normalerweise zwei Schutzmaßnahmen:

  • Vertraulichkeit - Sicherstellen, dass niemand außer den vorgesehenen Empfängern die Daten lesen kann
  • Integrität - Sicherstellen, dass niemand die Daten während der Übertragung ändern oder manipulieren kann

Die Vertraulichkeit wird mit Symmetric Encryption und die Integrität mit Message Authentication Code (MAC) bereitgestellt.

Sowohl Symmetric Encryption als auch MACs erfordern, dass beide Parteien identische und geheime Schlüssel haben (Ein "Schlüssel" in diesem Sinne ist einfach eine Zahl, die in eine Binärzahl umgewandelt wird.).

Das Problem ist dann Wie stellen beide Parteien identisch und geheim Schlüssel über das Internet her? (oder ein anderes unsicheres Medium). Dies ist als " das Schlüsselaustauschproblem" bekannt.

Eine der Lösungen für dieses Problem ist der Diffie-Hellman-Algorithmus.


Mit Diffie-Hellman können zwei Parteien ein gemeinsames Geheimnis über ein unsicheres Medium aufbauen. Oder einfacher gesagt ...

Stellen Sie sich vor, Sie und Ihr Freund standen in einem überfüllten Raum, umgeben von zweifelhaft aussehenden Menschen. Angenommen, Sie und Ihr Freund müssen sich auf eine identische Nummer einigen, möchten aber nicht, dass jemand im Raum weiß, um welche Nummer es sich handelt. Diffie-Hellman würde es Ihnen und Ihrem Freund ermöglichen, einige Zahlen geschickt auszutauschen und aus diesen Zahlen eine andere Zahl zu berechnen, die identisch ist. Und obwohl jeder im Raum hörte, wie die Nummern ausgetauscht wurden, haben sie keine Möglichkeit, die endgültige Nummer zu bestimmen, zu der Sie und Ihr Freund gekommen sind.

Ein Beispiel dafür ist im Bild unten zu sehen. Alice und Bob werden den Diffie-Hellman-Schlüsselaustausch verwenden, um ein gemeinsames Geheimnis zu etablieren.

(Diffie-Hellman Key Exchange -- pracnet.net/crypto

Jeder, der das Gespräch "mithört", "hört" nur die Nummern, die in der Mitte ausgetauscht wurden: 13, 6, 2, 9. Es gibt keine einheitliche Möglichkeit, diese vier Zahlen zu kombinieren, um das endgültige gemeinsame Geheimnis zu erreichen: 3 ohne einen der privaten Werte von Alice oder Bob zu kennen (5 oder 4) die nie geteilt wurden.

Das ist die Schönheit von Diffie-Hellman.

Die im obigen Beispiel verwendeten Zahlen sind klein, um die Mathematik einfach zu halten. In Wirklichkeit sind (oder sollten) Zahlen, die in modernen Diffie-Hellman-Börsen verwendet werden, mindestens 2048 Bit lang - was ungefähr 617 Stellen zum Ausschreiben erfordern würde !!


Nach Abschluss des Diffie-Hellman-Schlüsselaustauschs besitzen beide Parteien nun einen identischen Wert, der nur jeder Partei bekannt ist.

Dieser Wert wird zum "Ausgangspunkt", von dem aus zusätzliche Schlüssel generiert werden können.

Wir haben bereits erwähnt, dass für symmetrische Verschlüsselungs- und Nachrichtenauthentifizierungscodes jeweils ein geheimer Schlüssel erforderlich ist. Nehmen Sie Ihr DH Shared Secret und kombinieren Sie es mit einigen anderen Werten. Jetzt haben Sie die Verschlüsselungs- und MAC-Schlüssel, die Sie benötigen.

Der zusätzliche Vorteil besteht darin, dass das Kombinieren von Werten zum Erstellen von Schlüsseln einfach ist. Dies kann so oft wie nötig durchgeführt werden.

Tatsächlich generieren viele Sicherheitsprotokolle (SSL/TLS, IPsec usw.) einen Schlüsselsatz, um den Datenverkehr zu sichern in jede Richtung - insgesamt vier Schlüssel (MAC + Verschlüsselung in eine Richtung, MAC + Verschlüsselung in die andere Richtung). Alle vier Schlüssel werden aus demselben anfänglichen Startwert generiert, der von Diffie-Hellman abgeleitet ist.

10
Eddie

Diffie-Hellman ist ein mathematischer Algorithmus zum Austausch eines gemeinsamen Geheimnisses zwischen zwei Parteien. Dieses gemeinsame Geheimnis kann verwendet werden, um Nachrichten zwischen diesen beiden Parteien zu verschlüsseln. Beachten Sie, dass der Diffie-Hellman-Algorithmus keine Authentifizierung zwischen diesen beiden Parteien bietet.

5
Lucas Kauffman

Die Diffie-Hellman-Videos von Computerphile sind absolut spektakulär, wenn es um Erklärungen für diesen Schlüsselaustausch geht. Ihr Video " Secret Key Exchange (Diffie-Hellman) " ist ziemlich gründlich, aber ihre Erklärung der Mathematik hinter DH ist die beste, die mir bisher in einem Medium begegnet ist (und sicherlich besser als was ich persönlich hier für dich schreiben könnte). Schau hier .

2
securityOrange

Im Klartext ohne Verwendung eines mathematischen Ausdrucks wie in den obigen Antworten ist Diffie-Hellman Key Exchange Eine Erfindung von Diffie und Hellman.

Die Erfindung handelt von einer Möglichkeit für zwei Personen, sich auf dieselbe Nummer zu einigen. Diese gemeinsam vereinbarte Nummer wird dann für die von den beiden Personen gewünschten Zwecke verwendet. Wenn Sie beispielsweise die Schritte DH Key Exchange Befolgt haben, ist das Endergebnis, dass beide Personen jetzt unter derselben Nummer ankommen. Keine der beiden Personen hat die Kontrolle über diese gemeinsame Nummer. Die Erfindung DH Key Exchange Garantiert nur, dass beide Personen zu einer gemeinsamen Nummer gelangen. Eine beispielhafte Verwendung, sobald diese gemeinsame Zahl erreicht ist, besteht darin, die Buchstaben des Alphabets unter Verwendung dieser Zahl weiterzuleiten. Wenn die gemeinsame Zahl beispielsweise 5 ist, wird der Buchstabe A zu F, der Buchstabe B zu G usw. beim Senden einer Nachricht. Die andere Person, die die Nachricht empfängt, wird dann jeden Buchstaben der Nachricht rückwärts lesen, um sie zu lesen.

Person-A Und person-B Konnten nicht nur laut sprechen, um sich auf eine gemeinsame Nummer zu einigen, da ein dritter person-C Sie hören wird. Wenn person-C Die vereinbarte Nummer kennt, kann er auch die geheime Nachricht lesen. Der DH Key Exchange Erfordert immer, dass es immer einen dritten person-C Gibt, der die Nachrichten zwischen person-A Und person-B Abhören kann Drei-Personen-Szenario ist der gesamte Zweck der Erfindung, wie person-C dazu gebracht werden kann, die geheimen codierten Nachrichten zwischen person-A Und person-B.

In den ersten Schritten von DH Key Exchange Senden person-A Und person-B Einige Nummern hin und her und in dieser frühen Phase kann person-C Diese ersten Nachrichten lesen. In der zweiten Phase senden person-A Und person-B Verschlüsselte Nachrichten, die person-C Nicht mehr lesen können. Trotz der Tatsache, dass person-C Die ersten Nachrichten während der ersten Schritte hören kann, kann person-C Nicht die vereinbarte Nummer erreichen, die person-A Und person-B Jetzt haben.

Diffie und Hellman wurden 2015 für diese Erfindung mit dem Turing Award Ausgezeichnet.

0
typelogic

Ich habe dies einmal als Konzept eines Vortrags geschrieben, den ich nie gehalten habe. Es zeigt eine echte Kryptographie mit einem Mathematikniveau, das jeder nach der High School machen kann.

Da es als Vortrag geschrieben ist, ist dies Diffie-Hellman in einfachem Englisch!

Hallo du! Lassen Sie uns einen verschlüsselten Kanal einrichten. Ich schicke dir meinen Schlüssel und du schickst mir deinen, und dann können wir uns privat unterhalten.

Was hast du gesagt? Jeder kann uns hören? Ja das ist kein problem

Wir können Diffie-Hellman verwenden. Denken Sie nur an eine Zufallszahl und erhöhen Sie 5 hoch dieser Zufallszahl. Teilen Sie das Ergebnis durch 23 und nehmen Sie den Rest. Gib mir das. Die ursprüngliche Zufallszahl sollten Sie geheim halten, die anderen Zahlen sind alle öffentlich bekannt.

Ihr Rest ist 8? Okay. Mein Rest ist 10. Erhöhen Sie nun meinen Rest wieder auf die Potenz Ihrer geheimen Zufallszahl, dividieren Sie erneut durch 23 und nehmen Sie den Rest. Das Gleiche, einfach peasy. Ich werde dasselbe mit Ihrer Nummer und meiner geheimen Zufallszahl machen.

Hast du das Ergebnis? Großartig, ich auch! Ich weiß, dass du 6 hast, genau wie ich, und doch hätte das niemand in diesem Raum berechnen können. Sie hätten jede mögliche Kombination ausprobieren können, bis sie die Zufallszahlen gefunden hätten, die mit dem übereinstimmen, was sie gehört haben (8 von Ihrer Seite und 10 von meiner), aber es gibt keine Möglichkeit, dies effizienter zu berechnen, als alle Möglichkeiten auszuprobieren. Wir hätten das Ergebnis 6 als Passwort verwenden können. Trotz des Austauschs hätte niemand das von uns verwendete Passwort gekannt. Aber es ist ein sehr schwaches Passwort. Das nächste Mal sollten wir größere Zahlen wählen und einen Taschenrechner verwenden, um ein längeres und stärkeres Passwort zu erstellen.

Beachten Sie, dass dies funktioniert hat, weil wir uns sehen können. Ich weiß, dass nicht jemand anderes spricht, wenn Sie mir sagen, dass Ihre Nummer 8 ist, weil ich sehen kann, wie sich Ihre Lippen bewegen. Im Internet könnte jemand Angriffe dagegen starten, indem er vorgibt, die andere Seite zu sein, und uns falsche Zahlen gibt. Wie wir diese Angriffe verhindern, ist ein Thema für einen anderen Tag.

0
Luc

Ziel von Diffie-Hellman : Teilen Sie heimlich eine Nummer zwischen zwei Parteien über einen offenen Kanal.

Erinnern Sie sich zuerst von der Schule an diese Potenzierungsregeln: (xᵃ)ᵇ=xᵃᵇ=xᵇᵃ, Z. (2³)⁴=(2⁴)³=4096. Die Idee ist, dass, wenn Alice x und xᵃ An Bob sendet, weder Bob noch sonst jemand a berechnen kann. Es ist leicht zu sagen, was 2³ ist, aber bei 8 ist es schwer zu sagen, zu welcher Kraft 2 gebracht werden muss, um 8 zu erhalten. Es läuft also auf Folgendes hinaus:

  1. Alice und Bob einigen sich auf eine Nummer x, die jedem bekannt sein kann, sagen wir 2
  2. Alice generiert a=3 Und sendet 2³=8 An Bob
  3. Bob generiert die Nummer b=4 Und sendet 2⁴=16 An Alice
  4. Alice berechnet 16³=4096 Und Bob berechnet 8⁴=4096

Also kennen sowohl Alice als auch Bob 4096, aber niemand sonst kennt a und b, kann also xᵃᵇ nicht berechnen.

In Wirklichkeit ist die Berechnung von Logarithmen nicht so kompliziert. Aber es wird kompliziert, sobald modulare Arithmetik enthalten ist.