Der Diffie-Hellman-Schlüsselaustausch (Diffie-Hellman Key Exchange, DH) ist ein kryptografisches Verfahren, das es zwei Parteien ermöglicht, einen gemeinsamen geheimen Schlüssel über einen unsicheren Kommunikationskanal auszutauschen, ohne dass sie jemals den geheimen Schlüssel direkt übertragen. Dieser gemeinsame Schlüssel kann dann für die Verschlüsselung der Kommunikation zwischen den beiden Parteien verwendet werden. Hier ist eine vereinfachte Erklärung, wie der Diffie-Hellman-Schlüsselaustausch funktioniert:
- Parameterwahl: Bevor der Schlüsselaustausch beginnt, werden einige öffentliche Parameter festgelegt. Diese Parameter umfassen eine große Primzahl (oft als “p” bezeichnet) und eine primitive Wurzel dieser Primzahl (oft als “g” bezeichnet). Diese Parameter sind für beide Parteien öffentlich verfügbar.
- Schlüsselerzeugung: Jede der beiden Parteien wählt geheim eine private Zahl. Diese privaten Zahlen werden oft als “a” und “b” bezeichnet. Diese Zahlen sind geheim und werden nie übertragen oder offengelegt.
- Berechnung des öffentlichen Teils: Jede Partei berechnet ihren öffentlichen Teil, indem sie die Parameter p und g sowie ihre private Zahl verwendet. Partei A berechnet A = g^a mod p, während Partei B B = g^b mod p berechnet.
- Austausch der öffentlichen Teile: Partei A sendet ihren berechneten öffentlichen Teil A an Partei B, und Partei B sendet ihren berechneten öffentlichen Teil B an Partei A. Diese öffentlichen Teile werden über den unsicheren Kommunikationskanal übertragen und können von jedem abgefangen werden.
- Berechnung des gemeinsamen Schlüssels: Nachdem beide Parteien die öffentlichen Teile des anderen erhalten haben (A von Partei A und B von Partei B), können sie den gemeinsamen geheimen Schlüssel berechnen. Partei A berechnet den gemeinsamen Schlüssel K = B^a mod p, während Partei B K = A^b mod p berechnet. Da die Modulo-Operationen kommutativ sind, erhalten beide Parteien denselben gemeinsamen Schlüssel K.
Der gemeinsame Schlüssel K kann nun von beiden Parteien für die Verschlüsselung und Entschlüsselung von Nachrichten verwendet werden. Das Besondere am Diffie-Hellman-Verfahren ist, dass selbst wenn ein Angreifer die öffentlichen Teile A und B abfängt, es sehr schwer ist, den privaten Schlüssel “a” oder “b” zu berechnen und somit den gemeinsamen Schlüssel K zu erhalten, da dies das Diskrete-Logarithmus-Problem involviert, das sehr rechenaufwändig ist, wenn die gewählten Primzahlen groß genug sind.