Diffie-Hellman-Algorithmus: Übersicht & Implementierung in C

Google Translate Icon

Der Diffie-Hellman-Algorithmus wird verwendet, um ein gemeinsames Geheimnis zwischen zwei Parteien einzurichten, das für die geheime Kommunikation zum Austausch von Daten über ein öffentliches Netzwerk verwendet werden kann.

Bildliche Erklärung:

Der Prozess beginnt damit, dass sich die beiden Parteien, Alice und Bob, auf eine willkürliche Startfarbe einigen, die nicht geheim gehalten werden muss (aber jedes Mal anders sein sollte); in diesem Beispiel ist die Farbe gelb. Jeder von ihnen wählt eine geheime Farbe – Rot bzw. Aqua – die er für sich behält. Der entscheidende Teil des Prozesses ist, dass Alice und Bob nun ihre geheime Farbe mit ihrer gemeinsamen Farbe mischen, was zu Orange- bzw. Blau-Mischungen führt, und dann die beiden gemischten Farben öffentlich austauschen. Schließlich mischt jeder der beiden die Farbe, die er vom Partner erhalten hat, mit seiner eigenen Privatfarbe zusammen. Das Ergebnis ist eine endgültige Farbmischung (braun), die mit der Farbmischung des Partners identisch ist.

 
Diffie-Hellman_Key_Exchange

Für die Lauscherin Eve wäre es unmöglich, die gemeinsame geheime Farbe zu bestimmen.

Kryptografische Erklärung:

Der Algorithmus an sich ist sehr einfach. Nehmen wir an, Alice möchte mit Bob ein gemeinsames Geheimnis ergründen. Hier ist ein Beispiel für das Protokoll mit geheimen Werten red.

  1. Alice und Bob einigen sich darauf, eine Primzahl zu verwenden p = 23 und Basis g = 5. (Diese beiden Werte werden so gewählt, um sicherzustellen, dass das resultierende gemeinsame Geheimnis jeden Wert von 1 bis annehmen kann p–1).
  2. Alice wählt eine geheime ganze Zahl a = 6, sendet dann Bob EIN = ga Mod p (EIN = 56 Mod 23 = 8)
  3. Bob wählt eine geheime ganze Zahl b = 15, sendet dann Alice B = gb Mod p (B = 515 Mod 23 = 19)
  4. Alice rechnet s = Ba Mod p (s = 196 Mod 23 = 2)
  5. Bob rechnet s = EINb Mod p (s = 815 Mod 23 = 2)
  6. Alice und Bob teilen nun ein Geheimnis (die Nummer 2).

Die Nummer, die Alice in Schritt 4 erhält, ist die gleiche wie Bob in Schritt 5

Bob rechnet

Ab mod p = (ga mod p)b mod p = gab mod p

 
Alice rechnet

Ba mod p = (gb mod p)a mod p = gba mod p

 
Der Diffie-Hellman-Algorithmus wird hauptsächlich zum Austausch von Kryptografieschlüsseln zur Verwendung in symmetrischen Verschlüsselungsalgorithmen wie AES verwendet. Bitte beachten Sie, dass während des Schlüsselaustauschs keine Informationen weitergegeben werden. Hier erstellen die beiden Parteien gemeinsam einen Schlüssel.

 
Implementierung:

C


Herunterladen  Code ausführen

Ergebnis:

Alice’s secret key is 2
Bob’s secret key is 2

Das ist alles über den Diffie-Hellman-Algorithmus.

 
Bezug: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

Bewerte diese Nachricht

Durchschnittliche Bewertung 5/5. Stimmenzahl: 19

Bisher keine Stimmen! Seien Sie der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass dieser Beitrag für Sie nicht hilfreich war!

Sagen Sie uns, wie wir diesen Beitrag verbessern können?




Danke fürs Lesen.

Bitte nutzen Sie unsere Online-Compiler um Code in Kommentaren mit C, C++, Java, Python, JavaScript, C#, PHP und vielen weiteren gängigen Programmiersprachen zu posten.

Wie wir? Empfehlen Sie uns Ihren Freunden und helfen Sie uns zu wachsen. Viel Spaß beim Codieren :)



Abonnieren
Benachrichtigen von
guest
1 Kommentar
Am meisten gewählt
Neueste Älteste
Inline-Feedbacks
Alle Kommentare anzeigen
Folgen Sie diesem Link NICHT, sonst werden Sie von der Seite ausgeschlossen!