Lektion
Die Theorie — Diffie–Hellman: Ein Geheimnis in aller Öffentlichkeit
Beim Diffie–Hellman-Schlüsselaustausch vereinbaren zwei Parteien eine geheime Zahl über einen Kanal, den jeder mitlesen kann. Öffentlich legen sie eine Primzahl p und eine Basis g fest. Jede Seite wählt einen privaten Exponenten, veröffentlicht g hoch diesen Exponenten mod p und potenziert die Zahl der Gegenseite mit dem eigenen Geheimnis: (gᵇ)ᵃ = (gᵃ)ᵇ = gᵃᵇ mod p. Um das zu knacken, muss man einen diskreten Logarithmus lösen: Finde zu gegebenem A = gᵃ mod p ein x mit gˣ ≡ A (mod p). Diffie und Hellman hielten 1976 fest, dass sie keinen Weg sahen, das gemeinsame Geheimnis ohne diesen Logarithmus aus den öffentlichen Zahlen zu gewinnen – und ebenso wenig einen Beweis hatten, dass es keinen solchen Weg gibt. Die Ordnung von g ist das kleinste n ≥ 1 mit gⁿ ≡ 1 (mod p); g heißt Erzeuger, wenn seine Ordnung genau p − 1 beträgt.
Was die einzelnen Symbole bedeuten
p- der Primzahlmodul, öffentlich
g- die Basis, öffentlich
a, b- Alices und Bobs private Exponenten
A, B- ihre öffentlichen Zahlen, gᵃ mod p und gᵇ mod p
x- der von Eve gefundene Exponent; jedes x mit gˣ ≡ A genügt, sie bestimmt also a modulo der Ordnung von g
ord(g)- die Ordnung von g: Anzahl der verschiedenen Werte, die das gemeinsame Geheimnis annehmen kann
- Setzt voraus
- p ist eine Primzahl von 5 bis 1.999, g eine beliebige Basis von 2 bis p − 2, und a sowie b liegen zwischen 1 und p − 2. Als Versuch zählt jeder Vergleich einer berechneten Potenz mit dem Zielwert; beide Zählungen schließen den erfolgreichen Treffer ein. Jede Ziffer bei Pohlig–Hellman wird ermittelt, indem die Kandidaten der Reihe nach getestet werden – genau so beschreiben Pohlig und Hellman das Vorgehen für kleine Faktoren. Für große Faktoren skizzieren sie ein Verfahren, das Speicher gegen Laufzeit abwägt; die Seite verzichtet darauf. Diffie und Hellmans eigenes Rechenbeispiel nutzte eine Primzahl von etwa 200 Bit, für die sie den Aufwand eines Logarithmus auf rund 2¹⁰⁰ Operationen bezifferten.
Aufgabe vollständig gelöst
-
Alices Geheimnis bei p = 101 aufdecken 5 Schritte
Alice und Bob wählen p = 101 und g = 2. Eve sieht A = 12 sowie B = 53. Bestimme mit Pohlig–Hellman ein x mit 2ˣ ≡ 12 (mod 101), zähle die Versuche und berechne mit x das gemeinsame Geheimnis. Gib anschließend an, welchen Aufwand derselbe Angriff bei p = 65.537 erfordern würde.
-
100 = 2² · 5², folglich ist x durch x mod 4 und x mod 25 eindeutig bestimmt. Die Ordnung von 2 teilt 100. Da 2⁵⁰ = 100 und 2²⁰ = 95 beide ungleich 1 sind, ist die Ordnung 100 selbst: 2 ist ein Erzeuger.
-
Modulo 4 ist γ = 2⁵⁰ = 100 ≡ −1. Die erste Binärziffer: 12⁵⁰ = 100, also d = 1 im zweiten Versuch. Herausrechnen: 12 · 2⁻¹ = 12 · 51 = 612 ≡ 6, und 6²⁵ = 100, womit auch die nächste Ziffer 1 ist, wieder im zweiten Versuch. x ≡ 1 + 1 · 2 = 3 (mod 4).
-
Modulo 25 ist γ = 2²⁰ = 95 mit den Potenzen 1, 95, 36, 87, 84. Die erste Ziffer zur Basis 5: 12²⁰ = 95, also d = 1 im zweiten Versuch. Herausrechnen: 6⁴ = 1.296 ≡ 84, somit ist die nächste Ziffer 4, im fünften Versuch. x ≡ 1 + 4 · 5 = 21 (mod 25).
-
Unter 100 lassen die Zahlen 21, 46, 71 und 96 bei Division durch 25 den Rest 21; von diesen ergibt nur 71 den Rest 3 mod 4. Also ist x = 71, nach 2 + 2 + 2 + 5 = 11 Versuchen, während der Maximalaufwand 2·2 + 2·5 = 14 beträgt. Brute-Force hätte 0 bis 71 durchprobiert, also 72 Versuche gebraucht. Das gemeinsame Geheimnis lautet 53⁷¹ mod 101 = 35.
-
65.537 = 2¹⁶ + 1 ist prim, und p − 1 = 2¹⁶. Pohlig–Hellman ermittelt die sechzehn Binärziffern nacheinander mit je zwei Kandidaten: im schlechtesten Fall 32 Versuche, wo Brute-Force bis zu 65.536 Versuche brauchen könnte. Pohlig und Hellman behandelten genau diesen Fall p = 2ⁿ + 1 noch vor dem allgemeinen Verfahren.
Antwort
x = 71 nach 11 Versuchen (im ungünstigsten Fall 14), und das gemeinsame Geheimnis lautet 35. Bei p = 65.537 erfordert der Angriff höchstens 32 Versuche. Die Seite endet bei 1.999, diese Zahl entstammt also der Rechnung und keinem Durchlauf.
-
Lernpfad
Wie Chiffren gebrochen werden
Quellen (2)
- The exchange itself, the definition's sentence that its authors could see no way round a logarithm and had no proof, and the 200-bit example in `assumes`: Whitfield Diffie and Martin E. Hellman, "New Directions in Cryptography," IEEE Transactions on Information Theory 22(6), 644–654, November 1976. §III, p. 649.
- The second insight's quotation, the digit-by-digit search the page runs, and the worked problem's p = 2ⁿ + 1: Stephen C. Pohlig and Martin E. Hellman, "An Improved Algorithm for Computing Logarithms over GF(p) and Its Cryptographic Significance," IEEE Transactions on Information Theory 24(1), 106–110, January 1978. §III–IV, pp. 107–110.