Auf einen Blick

  • Problem: Symmetrische Verschlüsselung braucht einen sicheren Kanal zur Schlüsselverteilung – der oft nicht existiert.
  • Diffie-Hellman (DH): Zwei Parteien vereinbaren über einen unsicheren Kanal einen gemeinsamen Schlüssel, ohne ihn je zu übertragen.
  • Grundlage: Diskretes Logarithmusproblem (DLP) – aus $g^a \bmod p$ den Exponenten $a$ zu berechnen ist hart.
  • Formel: $K = g^{ab} \bmod p = A^b \bmod p = B^a \bmod p$.
  • Schwäche: Ohne Authentizität ist DH anfällig für Man-in-the-Middle-Angriffe.
  • Varianten: ECDH (elliptische Kurven, kürzere Schlüssel) und ephemeres DH (Perfect Forward Secrecy).

Kernkonzepte

Das Schlüsselverteilungsproblem

Symmetrische Verfahren wie AES sind schnell und sicher – wenn beide Parteien denselben geheimen Schlüssel haben. Aber wie tauscht man diesen Schlüssel aus, wenn der Kommunikationskanal selbst unsicher ist? Persönliche Übergabe skaliert nicht (bei $n$ Teilnehmern braucht man $\binom{n}{2} = \frac{n(n-1)}{2}$ Schlüssel).

Die geniale Idee von Diffie & Hellman (1976): Man tauscht den Schlüssel gar nicht aus – man berechnet ihn auf beiden Seiten separat, sodass er nur den beiden Beteiligten bekannt ist.

Diffie-Hellman-Schlüsselaustausch

Öffentliche Parameter (dürfen alle wissen):

  • eine große Primzahl $p$
  • ein Generator (primitives Element) $g \in \mathbb{Z}_p^*$

Ablauf:

  1. Alice wählt geheim $a \in \{1, \dots, p-2\}$ und berechnet $A = g^a \bmod p$. Sie sendet $A$ an Bob.
  2. Bob wählt geheim $b \in \{1, \dots, p-2\}$ und berechnet $B = g^b \bmod p$. Er sendet $B$ an Alice.
  3. Alice berechnet $K = B^a \bmod p$.
  4. Bob berechnet $K = A^b \bmod p$.

Beide erhalten denselben Wert, denn:

$$K = B^a = (g^b)^a = g^{ab} = (g^a)^b = A^b \pmod{p}$$

Ein Angreifer sieht nur $p, g, A, B$ – aus diesen Werten $a$ oder $b$ zu berechnen ist das diskrete Logarithmusproblem.

Diskretes Logarithmusproblem (DLP)

Gegeben $g, p, y = g^x \bmod p$. Gesucht: $x$.

Für kleine $p$ trivial (Brute-Force), aber für $p$ mit 2048+ Bit praktisch nicht lösbar. Die besten bekannten Algorithmen (Index-Calculus) haben subexponentielle Laufzeit.

Merke
Die Sicherheit von DH steht und fällt mit der Härte des DLP – und damit mit der Größe von $p$.

Man-in-the-Middle-Angriff

Klassisches DH bietet keine Authentizität. Ein Angreifer Mallory kann sich in die Mitte setzen:

  • Alice sendet $A = g^a$ → Mallory fängt ab, sendet $A' = g^m$ an Bob.
  • Bob sendet $B = g^b$ → Mallory fängt ab, sendet $B' = g^m$ an Alice.
  • Alice und Mallory teilen $K_{AM} = g^{am}$.
  • Bob und Mallory teilen $K_{BM} = g^{bm}$.

Mallory entschlüsselt, liest mit, verschlüsselt neu – niemand merkt es.

Gegenmaßnahmen: Authentisierung der öffentlichen Werte, z. B. durch digitale Signaturen (RSA, DSA) oder Zertifikate (X.509). → Authenticated Diffie-Hellman.

ECDH – Elliptic Curve Diffie-Hellman

DH lässt sich auf jeder zyklischen Gruppe definieren, in der das DLP schwer ist. Statt $\mathbb{Z}_p^*$ verwendet ECDH die Gruppe der Punkte einer elliptischen Kurve.

  • Statt $A = g^a \bmod p$ berechnet man $A = a \cdot G$ (Skalarmultiplikation eines Basispunkts $G$).
  • Gemeinsamer Schlüssel: $K = a \cdot B = b \cdot A = (ab) \cdot G$.
  • Vorteil: bei gleicher Sicherheit deutlich kürzere Schlüssel (256 Bit ECDH ≈ 3072 Bit klassisches DH).

Perfect Forward Secrecy (PFS)

Bei ephemerem DH (DHE / ECDHE) werden $a$ und $b$ pro Sitzung neu und zufällig gewählt – und nach Sitzungsende gelöscht.

Effekt: Wird der Langzeitschlüssel eines Servers später kompromittiert, sind bereits abgefangene und gespeicherte Sitzungen weiterhin geschützt, weil die Session-Keys nicht rekonstruierbar sind.

Aus diesem Grund verwendet TLS 1.3 ausschließlich ephemere Verfahren (ECDHE).

Merksätze

DH-Formel
Alice sendet $A = g^a \bmod p$, Bob sendet $B = g^b \bmod p$. Gemeinsamer Schlüssel: $K = g^{ab} \bmod p$.
Was ist öffentlich, was geheim
Öffentlich: $p, g, A, B$. Geheim: $a, b, K$. Aus den öffentlichen Werten kann niemand $K$ berechnen – solange das DLP hart bleibt.
DH liefert Schlüssel, keine Nachricht
Diffie-Hellman ist kein Verschlüsselungsverfahren. Es tauscht nur einen Schlüssel aus. Dieser wird dann meist als AES-Schlüssel für die symmetrische Sitzung genutzt.
MITM-Anfälligkeit
Unauthentifiziertes DH ist blind. Ohne Signatur oder Zertifikat schmuggelt sich jeder Angreifer in die Leitung ein.
Sichere Primzahl
Wählt man $p = 2q + 1$ mit $q$ prim (sog. sichere Primzahl), so hat die Untergruppe von $g$ Ordnung $q$ oder $2q$. Damit vermeidet man kleine Untergruppen, die Angriffe erleichtern würden.
ECDH schlägt DH bei gleicher Sicherheit
256-Bit-ECDH liefert ähnliche Sicherheit wie 3072-Bit-DH – bei einem Bruchteil des Rechenaufwands.

🖊️ Handrechnung – DHKE Schritt für Schritt

Karte 1 · Der DHKE-Ablauf in Miller-Notation

Öffentliche Parameter sind eine Primzahl $p$ und ein Erzeuger $s$ (Primitivwurzel modulo $p$). Miller schreibt $s$ statt $g$ und benutzt für die öffentlichen Werte griechische Buchstaben.

  1. Vereinbarung: Alice und Bob einigen sich öffentlich auf $p$ und $s$.
  2. Alice: wählt ihre geheime Zahl $a$ und berechnet $\varepsilon = s^a \bmod p$.
  3. Bob: wählt seine geheime Zahl $b$ und berechnet $\vartheta = s^b \bmod p$.
  4. Austausch: Alice sendet $\varepsilon$ an Bob, Bob sendet $\vartheta$ an Alice.
  5. Gemeinsamer Schlüssel: $K = \vartheta^{\,a} \bmod p = \varepsilon^{\,b} \bmod p$.
Öffentlich (jeder darf sehen) Geheim (nur der Besitzer)
$p$, $s$, $\varepsilon$, $\vartheta$ $a$ (bei Alice), $b$ (bei Bob), $K$ (bei beiden)

Karte 2 · Warum funktioniert das? Korrektheitsbeweis

Beide Seiten kommen auf denselben Wert, weil das Kommutativgesetz im Exponenten gilt:

$$\vartheta^{\,a} = (s^b)^a = s^{ab} = (s^a)^b = \varepsilon^{\,b} \pmod{p}.$$

Alice rechnet $\vartheta^{\,a}$, Bob rechnet $\varepsilon^{\,b}$ – beide Ausdrücke sind gleich $s^{ab} \bmod p$. Ein Lauscher sieht nur $\varepsilon$ und $\vartheta$, müsste aber $a$ oder $b$ aus $\varepsilon = s^a \bmod p$ zurückrechnen (diskreter Logarithmus).

Karte 3 · Primitivwurzel-Test

Variante 1 – Brute-Force (Millers Rezept, Folie S.70)

  1. $x := 1$, $n := 1$
  2. $x := x \cdot s \bmod p$, $n := n + 1$
  3. falls $x \neq 1$ → zurück zu (2)
  4. falls $n = p$ → $s$ ist Primitivwurzel von $p$

Miller merkt an: leider für grosse Zahlen sehr aufwändig.

Variante 2 – Sichere Primzahl ($p = 2q+1$ mit $q$ prim)

  • $|\{\text{PW}\}| = \varphi(p-1) = q-1$
  • falls $s^2 \equiv 1 \bmod p$ oder $s^q \equiv 1 \bmod p$ → keine Primitivwurzel
  • sonst → Primitivwurzel

Konkretes Beispiel – $s=3$ ist Primitivwurzel von $p=7$

Wir potenzieren $3$ modulo $7$ und beobachten, ob alle Werte $\{1,\dots,6\}$ erzeugt werden:

$$3^1 \equiv 3,\ 3^2 \equiv 2,\ 3^3 \equiv 6,\ 3^4 \equiv 4,\ 3^5 \equiv 5,\ 3^6 \equiv 1 \pmod{7}.$$

Alle $6 = p-1$ Restklassen kommen genau einmal vor → $3$ ist Primitivwurzel von $7$.

Gegenbeispiel – $s=2$ ist keine Primitivwurzel von $p=7$

$$2^1 \equiv 2,\ 2^2 \equiv 4,\ 2^3 \equiv 1 \pmod{7}.$$

Schon nach drei Schritten wiederholt sich der Zyklus, es werden nur $\{1,2,4\}$ erzeugt. $2$ hat Ordnung $3 \neq p-1 = 6$ → keine Primitivwurzel.

Karte 4 · Klausur-Aufgabe komplett gelöst – $p=17$, $s=7$, $a=5$, $b=6$

(a) Ist $s = 7$ eine Primitivwurzel von $p = 17$?

Brute-Force nach Variante 1: berechne $7^n \bmod 17$ für $n = 1, \dots, 16$.

$n$ $7^n \bmod 17$ Rechnung
17$7$
215$49 = 2\cdot17 + 15$
33$15\cdot7 = 105 = 6\cdot17 + 3$
44$3\cdot7 = 21 = 17 + 4$
511$4\cdot7 = 28 = 17 + 11$ → $\varepsilon$
69$11\cdot7 = 77 = 4\cdot17 + 9$ → $\vartheta$
712$9\cdot7 = 63 = 3\cdot17 + 12$
816$12\cdot7 = 84 = 4\cdot17 + 16$
910$16\cdot7 = 112 = 6\cdot17 + 10$
102$10\cdot7 = 70 = 4\cdot17 + 2$
1114$2\cdot7 = 14$
1213$14\cdot7 = 98 = 5\cdot17 + 13$
136$13\cdot7 = 91 = 5\cdot17 + 6$
148$6\cdot7 = 42 = 2\cdot17 + 8$
155$8\cdot7 = 56 = 3\cdot17 + 5$
161$5\cdot7 = 35 = 2\cdot17 + 1$

Alle $16 = p-1$ Restklassen $\{1,\dots,16\}$ werden getroffen, $7^{16} \equiv 1$ erst am Schluss. → $s = 7$ ist Primitivwurzel von $p = 17$, die Parameter sind geeignet.

(b) Öffentliche Werte und gemeinsamer Schlüssel

Aus der Tabelle lesen wir ab:

$$\varepsilon = 7^5 \bmod 17 = 11, \qquad \vartheta = 7^6 \bmod 17 = 9.$$

Alice rechnet $K = \vartheta^{\,a} = 9^5 \bmod 17$ per Square-and-Multiply:

$$9^2 = 81 \equiv 13,\quad 9^4 = 13^2 = 169 \equiv 16,\quad 9^5 = 9^4 \cdot 9 = 16 \cdot 9 = 144 \equiv 8 \pmod{17}.$$

Bob rechnet $K = \varepsilon^{\,b} = 11^6 \bmod 17$:

$$11^2 = 121 \equiv 2,\quad 11^4 = 2^2 = 4,\quad 11^6 = 11^4 \cdot 11^2 = 4 \cdot 2 = 8 \pmod{17}.$$

$K = 8$

(c) Verschiebe-Chiffre mit $k = 8$ auf m = NOTSECRET

Alphabet A=0, …, Z=25, jeder Buchstabe $+8 \bmod 26$:

Klartext N O T S E C R E T
Index 13 14 19 18 4 2 17 4 19
$+8 \bmod 26$ 21 22 1 0 12 10 25 12 1
Chiffrat v w b a m k z m b

c = vwbamkzmb

(d) Brute-Force-Angriff: aus $\varepsilon = 11$ die geheime Zahl $a$ zurückrechnen

Der Angreifer testet $a \in \{2, 3, \dots, 15\}$, ob $7^a \equiv 11 \bmod 17$ gilt. Aus der Tabelle in (a) sieht man: $7^5 \equiv 11$ – also enthüllt $a = 5$. Bei $p = 17$ genügen also höchstens $14$ Versuche. In realen Anwendungen ist $p$ jedoch mehrere hundert Stellen lang; dann ist das Bruteforcen nicht mehr durchführbar.

(e) Warum sind $a = 1$ und $a = p-1 = 16$ verboten?

  • $a = 1$: dann ist $\varepsilon = s^1 = s$, also gleich dem öffentlich bekannten Erzeuger. Ein Angreifer sieht auf einen Blick, dass $a = 1$ ist.
  • $a = p-1 = 16$: nach dem kleinen Satz von Fermat gilt $s^{p-1} \equiv 1 \bmod p$, also $\varepsilon = 1$. Auch das ist sofort erkennbar.

Zulässig sind daher nur geheime Exponenten $a \in \{2, 3, \dots, p-2\}$.

Karte 5 · Ägyptisches Potenzieren (Square-and-Multiply)

Miller nennt das Verfahren ägyptisches Potenzieren. Man schreibt den Exponenten binär, liest ihn von links (MSB) nach rechts (LSB), quadriert bei jedem Schritt und multipliziert zusätzlich mit $s$, wenn das aktuelle Bit $1$ ist. Nach jedem Schritt reduziert man modulo $p$.

Rezept

  1. Setze $r := 1$.
  2. Für jedes Bit des Exponenten (von MSB nach LSB): $r := r^2 \bmod p$; falls Bit $=1$, zusätzlich $r := r \cdot s \bmod p$.
  3. Am Ende ist $r = s^a \bmod p$.

Mini-Beispiel – $7^5 \bmod 17$

Der Exponent $5 = 101_2$ hat die Bits MSB $1, 0, 1$ LSB.

Bit Quadrieren Multiplizieren (falls Bit=1) $r \bmod 17$
1 (MSB) $1^2 = 1$ $1 \cdot 7 = 7$ 7
0 $7^2 = 49 \equiv 15$ 15
1 (LSB) $15^2 = 225 \equiv 4$ $4 \cdot 7 = 28 \equiv 11$ 11

Ergebnis: $7^5 \bmod 17 = 11$ – stimmt mit der Tabelle aus Aufgabe (a) überein.

Karte 6 · Middle-Person-Attacke

Miller nennt den Angriff Middle-Person-Attacke (nicht MITM). Der Angreifer Mallory setzt sich unbemerkt in die Leitung zwischen Alice und Bob und führt zwei getrennte DHKE-Läufe: einen mit Alice (in dem er sich als Bob ausgibt) und einen mit Bob (als Alice).

  1. Mallory wählt eine eigene geheime Zahl $x$ und berechnet $\varepsilon_M = s^x \bmod p$.
  2. Alice sendet $\varepsilon$ Richtung Bob, Mallory fängt ab und schickt Alice sein $\varepsilon_M$ zurück. Alice glaubt, das sei $\vartheta$ von Bob, und rechnet $K_{A} = \varepsilon_M^{\,a} = s^{xa}$.
  3. Umgekehrt genauso mit Bob: Mallory schickt ihm $\varepsilon_M$ statt Alices $\varepsilon$; Bob rechnet $K_{B} = \varepsilon_M^{\,b} = s^{xb}$.
  4. Mallory kennt $x$ und aus dem echten $\varepsilon, \vartheta$ berechnet er $\varepsilon^{\,x} = s^{ax}$ (denselben Schlüssel wie Alice) und $\vartheta^{\,x} = s^{bx}$ (denselben wie Bob). Er entschlüsselt alles, liest mit und re-verschlüsselt an den jeweils anderen weiter.
Miller-Zitat
Alice weiss nicht, ob sie den Schlüssel mit Bob oder mit einem Angreifer tauscht.

Abwehr: Öffentliches Schlüsselverzeichnis (Repository der $\varepsilon$-Werte). Miller weist aber darauf hin, dass auch dieses Repository selbst angreifbar ist – die eigentliche Lösung ist eine authentifizierte Variante wie signiertes bzw. stationäres DH.

Karte 7 · DHE (Ephemeral) und Perfect Forward Secrecy

Miller-Definition
DHE (Ephemeral Diffie-Hellman): die Parameter $a$ und $b$ werden jeweils neu und zufällig gewählt. Dies ermöglicht die sogenannte Perfect Forward Secrecy.

Was heisst Perfect Forward Secrecy? Ein Angreifer, der später den Langzeit-Schlüssel (z.B. den privaten RSA-Schlüssel eines Servers) erbeutet, kann damit trotzdem keine alten Sitzungen entschlüsseln, weil der Sitzungsschlüssel $K$ ausschliesslich aus den flüchtigen (ephemeralen) $a$ und $b$ abgeleitet wurde – und die sind nach dem Ende der Sitzung gelöscht worden.

Klausur-Frage (Übungsaufg. 17): Lässt sich Perfect Forward Secrecy bei RSA-Schlüsseltausch erreichen? Antwort: nein, weil das RSA-Schlüsselpaar statisch ist. Wer später den privaten Schlüssel bekommt, kann alle mit ihm ausgetauschten Sitzungsschlüssel rückwirkend entschlüsseln. PFS liefert ausschliesslich ephemerales DH (DHE bzw. ECDHE).

Karte 8 · Klausur-Checkliste für eine DHKE-Aufgabe

  1. Parameter notieren: $p$, $s$, $a$, $b$ – Miller-Notation verwenden, nicht $g, A, B$.
  2. Primitivwurzel prüfen (Variante 1 Brute-Force, für sichere Primzahlen Variante 2).
  3. $\varepsilon = s^a \bmod p$ und $\vartheta = s^b \bmod p$ ausrechnen, per ägyptischem Potenzieren.
  4. Gemeinsamen Schlüssel $K$ von beiden Seiten rechnen und vergleichen ($\vartheta^{\,a}$ vs. $\varepsilon^{\,b}$).
  5. Anschluss-Teilaufgaben: Verschiebe-Chiffre mit $k = K$, Brute-Force auf $a$, verbotene Exponenten.

Typische Fallen:

  • Notation vergessen: $s$ statt $g$, $\varepsilon$ statt $A$, $\vartheta$ statt $B$.
  • Bit-Reihenfolge beim Square-and-Multiply verwechselt – Miller liest von MSB nach LSB.
  • Kleiner Satz von Fermat übersehen: $a = p-1$ ist verboten, weil $\varepsilon = 1$ wird.
  • $a = 1$ verboten, weil $\varepsilon = s$ verrät den geheimen Exponenten direkt.
  • Modulo-Reduktion nach jedem Schritt vergessen – Zahlen explodieren sonst.
Kern-Merksatz
DHKE tauscht keinen Schlüssel, sondern lässt beide Seiten denselben ausrechnen: aus je einem Geheimnis $a$ bzw. $b$ und dem öffentlichen Gegenwert $\vartheta$ bzw. $\varepsilon$ entsteht $K = s^{ab} \bmod p$ – sicher gegen passives Mitlesen (diskreter Logarithmus), aber nur ohne Authentifizierung angreifbar durch Middle-Person. Ephemeral gewählte $a, b$ liefern Perfect Forward Secrecy.

🧮 Rechenaufgaben mit Lösung

Klick auf eine Aufgabe, um den vollständigen Lösungsweg zu sehen.

Aufgabe 1 · DH mit $p=23,\ g=5,\ a=6,\ b=15$
Alice und Bob verwenden Diffie-Hellman mit den öffentlichen Parametern $p = 23$ und $g = 5$. Alice wählt $a = 6$, Bob wählt $b = 15$. Berechne $A$, $B$ und den gemeinsamen Schlüssel $K$. Verifiziere, dass $A^b \equiv B^a \pmod{p}$.

Schritt 1 · $A = g^a \bmod p = 5^6 \bmod 23$

Wir zerlegen den Exponenten in Zweierpotenzen (Square-and-Multiply):

$5^1 \equiv 5 \pmod{23}$
$5^2 = 25 \equiv 25 - 23 = 2 \pmod{23}$
$5^4 = (5^2)^2 = 2^2 = 4 \pmod{23}$
$5^6 = 5^4 \cdot 5^2 = 4 \cdot 2 = 8 \pmod{23}$

A = 8

Schritt 2 · $B = g^b \bmod p = 5^{15} \bmod 23$

$15 = 8 + 4 + 2 + 1$, also $5^{15} = 5^8 \cdot 5^4 \cdot 5^2 \cdot 5^1$.

$5^8 = (5^4)^2 = 4^2 = 16 \pmod{23}$
$5^{15} = 16 \cdot 4 \cdot 2 \cdot 5$
$= 64 \cdot 10 = 640$
$640 \bmod 23:\ 23 \cdot 27 = 621,\ 640 - 621 = 19$

B = 19

Schritt 3 · $K = B^a \bmod p = 19^6 \bmod 23$

Trick: $19 \equiv -4 \pmod{23}$, also $19^6 \equiv (-4)^6 = 4^6$.

$4^2 = 16$
$4^4 = 16^2 = 256 \equiv 256 - 11\cdot 23 = 256 - 253 = 3 \pmod{23}$
$4^6 = 4^4 \cdot 4^2 = 3 \cdot 16 = 48 \equiv 48 - 46 = 2 \pmod{23}$

K = 2

Schritt 4 · Verifikation $A^b \bmod p = 8^{15} \bmod 23$

$8 = 2^3$, also $8^{15} = 2^{45}$. Nach dem kleinen Fermat gilt $2^{22} \equiv 1 \pmod{23}$, aber die Ordnung von 2 ist kleiner:

$2^{11} = 2048;\ 23 \cdot 89 = 2047 \Rightarrow 2^{11} \equiv 1 \pmod{23}$
$2^{45} = 2^{44} \cdot 2 = (2^{11})^4 \cdot 2 \equiv 1^4 \cdot 2 = 2 \pmod{23}$

Beide Wege ergeben $K = 2$ ✓

Gemeinsamer Schlüssel K = 2

Aufgabe 2 · DH mit $p=17,\ g=3,\ a=4,\ b=6$
Berechne $A$, $B$ und $K$ für einen DH-Austausch mit $p = 17$, $g = 3$, Alice $a = 4$, Bob $b = 6$.

Schritt 1 · $A = 3^4 \bmod 17$

$3^2 = 9$
$3^4 = 9^2 = 81$
$81 \bmod 17:\ 17 \cdot 4 = 68,\ 81 - 68 = 13$

A = 13

Schritt 2 · $B = 3^6 \bmod 17$

$3^6 = 3^4 \cdot 3^2 = 13 \cdot 9 = 117$
$117 \bmod 17:\ 17 \cdot 6 = 102,\ 117 - 102 = 15$

B = 15

Schritt 3 · $K = B^a \bmod p = 15^4 \bmod 17$

$15 \equiv -2 \pmod{17}$
$15^2 \equiv (-2)^2 = 4 \pmod{17}$
$15^4 = (15^2)^2 = 4^2 = 16 \pmod{17}$

K = 16

Schritt 4 · Verifikation $A^b = 13^6 \bmod 17$

$13 \equiv -4 \pmod{17}$
$13^2 \equiv 16 \equiv -1 \pmod{17}$
$13^6 = (13^2)^3 \equiv (-1)^3 = -1 \equiv 16 \pmod{17}$

Beide Seiten ergeben $K = 16$ ✓

Aufgabe 3 · Wieviele mögliche Werte für $a$ bei $p=23$?
Bei $p = 23$ – wie viele theoretisch mögliche geheime Werte $a$ gibt es? Warum ist diese Zahl in der Praxis irrelevant?

Rechnung

Der geheime Exponent $a$ wird aus $\{1, 2, \dots, p-2\}$ gewählt:

$|\{1, \dots, p-2\}| = p - 2 = 23 - 2 = 21$

Die effektive Anzahl unterschiedlicher Ergebnisse $g^a$ wird durch die Ordnung von $g$ bestimmt (Teiler von $p-1 = 22$).

Praktische Einordnung

21 Möglichkeiten sind trivial durch Ausprobieren (Brute-Force) angreifbar. In der Realität wählt man Primzahlen mit 2048 Bit oder mehr, was $\approx 2^{2048}$ mögliche Exponenten ergibt – für klassische Computer unerreichbar.

Theoretisch 21 Werte – praktisch braucht man ≥ 2048 Bit.

Aufgabe 4 · Warum sichere Primzahlen $p = 2q + 1$?
Erkläre, warum in der Praxis oft eine „sichere Primzahl" $p = 2q + 1$ (mit $q$ ebenfalls prim) verwendet wird.

Struktur der multiplikativen Gruppe

Die Gruppe $\mathbb{Z}_p^*$ hat Ordnung $p - 1$. Ihre Untergruppen haben Ordnungen, die Teiler von $p-1$ sind.

Problem bei „normalen" Primzahlen

Ist $p-1$ hochzusammengesetzt (z. B. $p-1 = 2 \cdot 3 \cdot 5 \cdot \dots$), gibt es viele kleine Untergruppen. Der Pohlig-Hellman-Algorithmus reduziert das DLP dann auf viele kleine DLPs → deutlich einfacher.

Sichere Primzahl

Bei $p = 2q + 1$ mit $q$ prim gilt:

$p - 1 = 2q$ hat nur die Teiler $\{1, 2, q, 2q\}$

Es existieren nur Untergruppen der Ordnung 1, 2, $q$ oder $2q$. Wählt man $g$ mit Ordnung $q$, ist das DLP immer von Ordnung $q$ – keine kleinen Untergruppen zum Ausbeuten.

Sichere Primzahlen verhindern Pohlig-Hellman-Angriffe durch fehlende kleine Untergruppen.

Aufgabe 5 · Man-in-the-Middle mit $p=23,\ g=5$, Mallory $m=3$
Alice ($a=6$) und Bob ($b=15$) tauschen wie in Aufgabe 1 Schlüssel. Mallory schmuggelt sich dazwischen mit eigenem $m = 3$. Was sind $K_{AM}$ und $K_{BM}$?

Schritt 1 · Mallorys öffentlicher Wert $M = g^m \bmod p$

$M = 5^3 = 125 \bmod 23$
$23 \cdot 5 = 115,\ 125 - 115 = 10$

Mallory schickt $M = 10$ an beide Parteien statt der echten $A, B$.

Schritt 2 · Schlüssel Alice ↔ Mallory: $K_{AM} = M^a \bmod p$

$K_{AM} = 10^6 \bmod 23$
$10^2 = 100 \equiv 100 - 4\cdot 23 = 100 - 92 = 8$
$10^4 = 8^2 = 64 \equiv 64 - 2\cdot 23 = 18$
$10^6 = 10^4 \cdot 10^2 = 18 \cdot 8 = 144 \equiv 144 - 6\cdot 23 = 144 - 138 = 6$

$K_{AM} = 6$

Schritt 3 · Schlüssel Bob ↔ Mallory: $K_{BM} = M^b \bmod p$

$K_{BM} = 10^{15} \bmod 23$
$10^8 = (10^4)^2 = 18^2 = 324 \equiv 324 - 14\cdot 23 = 324 - 322 = 2$
$10^{15} = 10^8 \cdot 10^4 \cdot 10^2 \cdot 10^1 = 2 \cdot 18 \cdot 8 \cdot 10 = 2880$
$2880 \bmod 23:\ 23 \cdot 125 = 2875,\ 2880 - 2875 = 5$

$K_{BM} = 5$

Schritt 4 · Fazit

Alice glaubt, mit Bob den Schlüssel $K_{AM} = 6$ zu teilen. Bob glaubt, mit Alice den Schlüssel $K_{BM} = 5$ zu teilen. Beide teilen tatsächlich einen Schlüssel mit Mallory. Mallory entschlüsselt Alice-Nachrichten mit 6, liest sie, verschlüsselt sie neu mit 5 und leitet sie an Bob weiter (und umgekehrt).

Ohne Authentizität ist DH gebrochen.

Aufgabe 6 · Ephemeres DH-Beispiel und PFS
Alice und Bob nutzen für Sitzung 1 die Werte $p=23,\ g=5,\ a_1 = 6,\ b_1 = 15$ (Ergebnis $K_1 = 2$). Für Sitzung 2 wählen sie $a_2 = 4,\ b_2 = 7$. Berechne den Sitzungsschlüssel $K_2$ und erkläre den PFS-Effekt.

Schritt 1 · $A_2 = 5^4 \bmod 23$

$5^2 = 25 \equiv 2$
$5^4 = 2^2 = 4$

$A_2 = 4$

Schritt 2 · $B_2 = 5^7 \bmod 23$

$5^7 = 5^4 \cdot 5^2 \cdot 5 = 4 \cdot 2 \cdot 5 = 40$
$40 \bmod 23 = 40 - 23 = 17$

$B_2 = 17$

Schritt 3 · $K_2 = B_2^{a_2} \bmod p = 17^4 \bmod 23$

$17 \equiv -6 \pmod{23}$
$17^2 \equiv 36 \equiv 36 - 23 = 13$
$17^4 = 13^2 = 169 \equiv 169 - 7\cdot 23 = 169 - 161 = 8$

$K_2 = 8$

Schritt 4 · PFS-Effekt

$K_1 = 2$ und $K_2 = 8$ sind völlig unabhängig. Werden $a_1, b_1$ nach Sitzung 1 gelöscht, kann selbst ein Angreifer mit späterer voller Kontrolle über den Server $K_1$ nicht rekonstruieren – die aufgezeichnete Sitzung bleibt geheim. Genau das leistet Perfect Forward Secrecy.

Aufgabe 7 · Square-and-Multiply für $g=7,\ x=13,\ p=19$
Berechne $7^{13} \bmod 19$ mit Square-and-Multiply. Dies ist der typische Rechenschritt in DH.

Schritt 1 · Binärdarstellung des Exponenten

$13 = 8 + 4 + 1 = (1101)_2$

Schritt 2 · Zweierpotenzen von 7 modulo 19

PotenzWertmod 19
$7^1$77
$7^2$49$49 - 2\cdot 19 = 11$
$7^4$$11^2 = 121$$121 - 6\cdot 19 = 7$
$7^8$$7^2 = 49$11

Schritt 3 · Multiplikation gemäß Bitmuster

$7^{13} = 7^8 \cdot 7^4 \cdot 7^1 = 11 \cdot 7 \cdot 7 = 11 \cdot 49$
$11 \cdot 49 = 539$
$539 \bmod 19:\ 19 \cdot 28 = 532,\ 539 - 532 = 7$

$7^{13} \bmod 19 = 7$

Übungsfragen

F1Was ist das diskrete Logarithmusproblem (DLP)?
Gegeben sind eine Primzahl $p$, ein Generator $g \in \mathbb{Z}_p^*$ und ein Wert $y = g^x \bmod p$. Gesucht ist der Exponent $x$. Für kleine $p$ ist das trivial; für kryptographisch relevante Größen (≥ 2048 Bit) ist es rechnerisch nicht in vernünftiger Zeit lösbar. Auf dieser Härte basiert die Sicherheit von Diffie-Hellman, ElGamal und DSA.
F2Warum funktioniert der DH-Schlüsselaustausch mathematisch?
Die Potenzoperation ist kommutativ in den Exponenten: $(g^a)^b = g^{ab} = (g^b)^a$. Alice und Bob berechnen daher denselben Wert $g^{ab} \bmod p$, obwohl jeder nur seinen eigenen Exponenten kennt. Nach außen sichtbar sind nur $g^a$ und $g^b$ – aus diesen $g^{ab}$ abzuleiten ist das Computational Diffie-Hellman Problem (eng verwandt mit DLP).
F3Was ist ein Man-in-the-Middle-Angriff auf DH und wie schützt man sich?
Klassisches DH überträgt $A$ und $B$ ungesichert. Ein Angreifer Mallory fängt beide ab, sendet stattdessen eigene Werte $M = g^m$ an beide Seiten und teilt so je einen separaten Schlüssel mit Alice ($g^{am}$) und Bob ($g^{bm}$). Er wird zum unsichtbaren Vermittler und liest alles mit.

Schutz: Authentifiziertes DH – die öffentlichen Werte werden signiert (RSA/DSA/ECDSA) oder mittels X.509-Zertifikaten verifiziert. TLS macht genau das.
F4Was bedeutet ephemeres DH?
„Ephemer" heißt „vergänglich". Die geheimen Exponenten $a$ und $b$ werden für jede Sitzung neu und zufällig erzeugt und nach Sitzungsende vernichtet. Kürzel: DHE (Diffie-Hellman Ephemeral) bzw. ECDHE (elliptische Kurve). Zweck ist Perfect Forward Secrecy: Selbst wenn der Langzeitschlüssel des Servers später kompromittiert wird, bleiben früher aufgezeichnete Sitzungen unentschlüsselbar.
F5Warum liefert DH keinen Nachrichten-Austausch, sondern nur einen Schlüssel?
DH ist ein reines Key-Agreement-Protokoll. Es erlaubt nur, sich auf einen gemeinsamen Wert zu einigen. Um Nachrichten zu übertragen, wird dieser Wert anschließend als symmetrischer Schlüssel (typisch AES) verwendet, mit dem die eigentliche Kommunikation ver- und entschlüsselt wird. DH ergänzt symmetrische Verfahren – es ersetzt sie nicht.
F6Ist der DH-Schlüssel geheim, obwohl A und B öffentlich übertragen werden?
Ja. Ein Angreifer sieht $p, g, A = g^a, B = g^b$, kann daraus aber weder $a$ noch $b$ noch $K = g^{ab}$ berechnen – solange das DLP hart ist. Die Geheimhaltung beruht nicht auf Verheimlichung von $A$ und $B$, sondern auf der mathematischen Einwegfunktion der modularen Exponentiation.
F7Wie hängt die Sicherheit von DH von der Größe von $p$ ab?
Direkt und stark. Die Laufzeit der besten Angriffe (Number Field Sieve, Index Calculus) ist subexponentiell in $\log p$. Praktisch:
  • 1024 Bit: heute unsicher (staatliche Angreifer können brechen)
  • 2048 Bit: aktueller Minimalstandard
  • 3072 / 4096 Bit: langfristig sicher
Zusätzlich zur Größe zählt die Qualität: $p$ sollte eine sichere Primzahl sein, und der Generator $g$ sollte eine große Primordnung besitzen.
F8Was ist der Unterschied zwischen klassischem DH und ECDH?
Beide beruhen auf demselben Prinzip (Kommutativität von Exponentiation), aber in unterschiedlichen Gruppen:
  • Klassisch: multiplikative Gruppe $\mathbb{Z}_p^*$ – Operation ist Multiplikation modulo $p$.
  • ECDH: Punkte auf einer elliptischen Kurve – Operation ist Punktaddition.
In der elliptischen Kurve ist das analoge Problem (ECDLP) noch härter als in $\mathbb{Z}_p^*$. Deshalb liefern schon 256 Bit ECDH-Schlüssel Sicherheit vergleichbar mit 3072 Bit klassischem DH – kürzere Schlüssel, geringere Rechenlast, weniger Bandbreite.
F9Kann ein passiver Lauscher (nur mithören, nicht ändern) DH brechen?
Nein – solange das DLP hart ist. Passives Mithören liefert nur $p, g, A, B$. Aus diesen $K = g^{ab}$ zu gewinnen, ist genau das Computational Diffie-Hellman Problem. Erst ein aktiver Angreifer (MITM) kann DH ohne Authentizität brechen.
F10Warum wird der DH-Wert oft nicht direkt als AES-Schlüssel genutzt?
$K = g^{ab} \bmod p$ ist eine Zahl im Bereich $[0, p-1]$, oft 2048 Bit groß und statistisch nicht ideal verteilt (nicht uniform in $\{0,1\}^{256}$). Man wendet daher eine Key Derivation Function (KDF) wie HKDF an, die aus $K$ einen kryptographisch hochwertigen Schlüssel z. B. für AES-256 ableitet. Zusätzlich kann pro Zweck (Verschlüsselung, MAC) ein eigener Sub-Schlüssel erzeugt werden.