Diffie Hellman: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
=Prinzip= | =Prinzip= | ||
[[Datei:dh1.png|500px]] | [[Datei:dh1.png|500px]] | ||
+ | {{#drawio:dh-1}} | ||
=Beispiel= | =Beispiel= | ||
Zeile 19: | Zeile 20: | ||
*Bob berechnet <math>B = g^b\ \bmod\ p = 2^8\ \bmod\ 13 = 256 \bmod\ 13 = 9</math> | *Bob berechnet <math>B = g^b\ \bmod\ p = 2^8\ \bmod\ 13 = 256 \bmod\ 13 = 9</math> | ||
*Bob sendet <math>B</math> an Alice. | *Bob sendet <math>B</math> an Alice. | ||
− | *Alice berechnet <math>K_1 = B^a\ \bmod\ p = 9^5\ \bmod\ 13 = 3</math>. | + | *Alice berechnet <math>K_1 = B^a\ \bmod\ p = 9^5\ \bmod\ 13 = 58049 \bmod\ 13 = 3</math>. |
− | *Bob berechnet <math>K_2 = A^b\ \bmod\ p = 6^8\ \bmod\ 13 = 3</math>. | + | *Bob berechnet <math>K_2 = A^b\ \bmod\ p = 6^8\ \bmod\ 13 = 1679616 \bmod\ 13 = 3</math>. |
*Beide erhalten das gleiche Ergebnis <math>K = K_1 = K_2 = 3</math>. | *Beide erhalten das gleiche Ergebnis <math>K = K_1 = K_2 = 3</math>. | ||
Zeile 41: | Zeile 42: | ||
<math> </math> | <math> </math> | ||
− | =Perfect Forward | + | =Perfect Forward Secrecy= |
*Früher wurden neue Sitzungschlüssel aus den alten berechnet | *Früher wurden neue Sitzungschlüssel aus den alten berechnet | ||
*Das führte zu dem Problem das wenn ein Schlüssel geknackt wurde | *Das führte zu dem Problem das wenn ein Schlüssel geknackt wurde |
Aktuelle Version vom 16. März 2023, 11:14 Uhr
Grundlagen
- Der Diffie-Hellman-Schlüsselaustausch ist ein Protokoll zur Schlüsselvereinbarung.
- Es ermöglicht, dass zwei Kommunikationspartner über eine öffentliche, abhörbare Leitung einen gemeinsamen geheimen Schlüssel in Form einer Zahl vereinbaren können, den nur diese kennen und ein potenzieller Lauscher nicht berechnen kann.
- Der dadurch vereinbarte Schlüssel kann anschließend für ein symmetrisches Kryptosystem verwendet werden.
- Unterschiedliche Varianten des Diffie-Hellman-Merkle-Verfahrens werden heute für die Schlüsselverteilung in den Kommunikations- und Sicherheitsprotokollen des Internet eingesetzt.
Prinzip
Beispiel
Das folgende Beispiel dient zur Veranschaulichung und benutzt deshalb sehr kleine Zahlen. In der tatsächlichen Anwendung werden dagegen Prim Zahlen mit mindestens mehreren hundert Stellen benutzt.
Berechnung
- Alice legt die beiden öffentlichen Schlüssel und fest.
- p muss auf jedenfall eine Primzahl sein.
- Alice wählt die Zufallszahl als geheimen Schlüssel.
- Nun berechnet Alice
- Alice sendet an Bob.
- Bob wählt die Zufallszahl als geheimen Schlüssel
- Bob berechnet
- Bob sendet an Alice.
- Alice berechnet .
- Bob berechnet .
- Beide erhalten das gleiche Ergebnis .
Sicherheit
- Die Lauscherin Eve kann zwar die Zahlen 13, 2, 6 und 9 mithören,
- Das eigentliche gemeinsame Geheimnis von Alice und Bob bleibt ihr aber verborgen.
- kann als Schlüssel für die nachfolgende Kommunikation verwendet werden.
Lauschen
- Mit Hilfe der abgefangenen Nachrichten kann Eve immerhin die folgenden Gleichungen aufstellen:
- Daraus kann sie beispielsweise durch Ausprobieren die beiden geheimen Zahlen und bestimmen.
- Den vereinbarten Schlüssel von Alice und Bob kann sie nun mit
- berechnen.
- Wenn jedoch die Primzahl groß genug gewählt wird und
- ein Generator der Gruppe ist, ist es für Eve zu aufwändig,
- um alle Zahlen zwischen und durchzuprobieren,
- die als Resultat der modularen Potenz in Frage kommen
Perfect Forward Secrecy
- Früher wurden neue Sitzungschlüssel aus den alten berechnet
- Das führte zu dem Problem das wenn ein Schlüssel geknackt wurde
- Man den ganzen Datenverkerkehr wenn mitgeschnitten entschlüsseln konnte
- Mittlerweile werden Sitzungschlüssel mit dem Diffie-Hellman Verfahren erzeugt.
- Vorteil - Man kann wenn ein Sitzungsschlüssel gefunden nur einen Teil entschlüsseln.
Script zum berechnen
Videos
- Diffie-Hellman principle
https://www.youtube.com/watch?v=NmM9HA2MQGI
- Math part