[[netzwerk:tls_ssl_zertifikate|zurück]] ====== Diffie-Hellman-Schlüsselaustausch ====== Der **Diffie-Hellman-Schlüsselaustausch** (DHKE) ist ein kryptografisches Verfahren zum **sicheren Austausch eines gemeinsamen Schlüssels** über eine unsichere Verbindung. Es dient als Grundlage für viele verschlüsselte Kommunikationsprotokolle (z. B. HTTPS, SSH, VPNs). ===== Ziel ===== Zwei Parteien (z. B. Alice und Bob) möchten einen **gemeinsamen geheimen Schlüssel** erzeugen – über eine öffentliche Verbindung –, ohne dass ein Angreifer (z. B. Eve) diesen Schlüssel berechnen kann. ===== Grundidee ===== Beide Parteien wählen einen privaten Schlüssel und berechnen daraus einen öffentlichen Schlüssel, den sie austauschen. Mit dem jeweils empfangenen öffentlichen Schlüssel berechnen sie dann denselben geheimen Schlüssel. ===== Mathematische Grundlage ===== * Es wird eine große Primzahl $p$ und eine Basis $g$ (mit $1 < g < p$) öffentlich vereinbart. * Die Berechnungen basieren auf **modularer Exponentiation**: $( a^b \mod p )$ * Sicherheit basiert auf dem **diskreten Logarithmusproblem** (schwer zu lösen). ===== Beispielrechnung ===== **Öffentliche Parameter:** * Primzahl $( p = 23 )$ * Basis $( g = 5 )$ **Private Schlüssel:** * Alice wählt $( a = 6 )$ (geheim) * Bob wählt $( b = 15 )$ (geheim) **Öffentliche Schlüssel:** * Alice berechnet: $( A = g^a \mod p = 5^6 \mod 23 = 8 ) $ * Bob berechnet: $( B = g^b \mod p = 5^{15} \mod 23 = 19 ) $ **Austausch:** * Alice sendet $( A = 8 )$ an Bob * Bob sendet $( B = 19 )$ an Alice **Gemeinsamer geheimer Schlüssel:** * Alice berechnet: $( s = B^a \mod p = 19^6 \mod 23 = 2 )$ * Bob berechnet: $( s = A^b \mod p = 8^{15} \mod 23 = 2 )$ **Ergebnis:** * Beide Seiten besitzen nun denselben geheimen Schlüssel: **$( s = 2 )$** ===== Sicherheit ===== Ein Angreifer kennt: * $( p, g, A, B )$ Aber nicht: * $( a )$ oder $( b )$ Das Berechnen von $( a )$ aus $( A = g^a \mod p )$ ist **mathematisch extrem aufwendig** (diskreter Logarithmus). Deshalb kann der gemeinsame Schlüssel nicht einfach abgeleitet werden. < a2s > .--------------------------------------------------------------------. |[lc] Diffie-Hellman: Ablaufdiagramm | | | | Alice Bob Eve (Angreifer) | | | | | | | | | +--- öffentl. p=23, g=5 -->| |. | | | |. | | | | a = 6 (geheim) | | | | | A = g^a mod p = 8 | | | | +--- A = 8 --------------->| | | | | | b = 15 (geheim) | | | | | B = g^b mod p = 19 | | | |<-------------- B = 19 ---+ | | | | | | | | | s = B^a mod p = 2 | | | | | | s = A^b mod p = 2 | | | | | | | | +----> Gemeinsamer geheimer Schlüssel s = 2 <---------+ | | | | | | | | | | | | | Eve kennt nur p, g, A, B —> kein Zugriff auf s) | | | | '--------------------------------------------------------------------' [lc]: {"fill":"LemonChiffon","a2s:delref":true} **Hinweis:** Obwohl alle übertragenen Werte ($p$, $g$, $A$, $B$) öffentlich sind, ist der geheime Schlüssel $s$ sicher, **solange $a$ oder $b$ geheim bleiben**. Die Sicherheit beruht auf der Schwierigkeit des diskreten Logarithmusproblems. ===== Anwendungsbeispiele ===== * TLS / HTTPS (z. B. in Browsern) * SSH * IPsec VPNs * PGP/GnuPG * Signal, WhatsApp, Matrix ===== Schwächen & Schutzmaßnahmen ===== * **Nicht authentifiziert**: Anfällig für "Man-in-the-Middle"-Angriffe. * Lösung: Kombinieren mit Zertifikaten oder digitalen Signaturen. ===== Varianten ===== * **ECDH**: Elliptic Curve Diffie-Hellman – gleiche Idee, effizienter, moderner. * **DHE-RSA**: Authentifizierte Variante mit RSA-Zertifikaten. ===== Zusammenfassung ===== ^ Schritt ^ Beschreibung ^ | 1 | Öffentliche Werte wählen $(p \ ,\ g)$ | | 2 | Jeder wählt geheimen Exponenten $a$, $b$ | | 3 | Öffentliche Schlüssel berechnen: $A = g^a mod p$, $B = g^b mod p$ | | 4 | Schlüssel austauschen | | 5 | Gemeinsamen Schlüssel berechnen: $s = B^a mod p$ = $A^b mod p$ | | ✅ | Beide Seiten besitzen denselben geheimen Schlüssel | ---- {{avatar>lars|Lars.Weiss@gmail.com?l|Lars Weiß}} //[[Lars.Weiss@gmail.com|Lars Weiß]] 07.08.2025 11:27// ----