Kryptografische Protokolle Lerneinheit 4: Schl¨usselvereinbarung Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2015 31.5.2015 Einleitung Einleitung In dieser Lerneinheit werden Protokolle zur Vereinbarung von Schl¨usseln durchgenommen. Die Lerneinheit gliedert sich in folgende Abschnitte: • Diffie-Hellman Schl¨usselaustausch • Berechnung von erzeugenden Elementen • Sichere Primzahlen • No-Key Protokoll von Shamir Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 2 / 23 Diffie-Hellman Protokoll Diffie-Hellman Protokoll • Das Protokoll wurde von Whitfield Diffie und Martin Hellman im Jahr 1976 vorgestellt • Alice und Bob handeln einen Schl¨ussel aus, ohne diesen zu u¨bertragen • Die Sicherheit des Protokolls beruht auf dem Diskreter-Logarithmus Problem • Voraussetzung: Alice und Bob einigen sich im Vorfeld auf eine Primzahl p und ein erzeugendes Element α von Z∗p • Die Parameter p und α m¨ussen nicht geheim gehalten werden Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 3 / 23 Diffie-Hellman Protokoll Ablauf Ablauf des Diffie-Hellman Protokolls Vorbereitung: Alice und Bob einigen sich auf eine Primzahl p und ein erzeugendes Element α von Z∗p Ablauf: 1. Alice w¨ahlt zuf¨allig ein a ∈ Z∗p , berechnet yA = αa mod p. Anschließend sendet sie yA an Bob 2. Bob w¨ahlt zuf¨allig ein b ∈ Z∗p , berechnet yB = αb mod p. Anschließend sendet er yB an Alice 3. Alice berechnet kA = yBa mod p und Bob berechnet kB = yAb mod p Ergebnis: Wenn das Protokoll ordnungsgem¨aß durchl¨auft, dann sind kA und kB identisch, denn yBa ≡ (αb )a ≡ (αa )b ≡ (yA )b Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle (mod p) Schl¨ usselvereinbarung 4 / 23 Diffie-Hellman Protokoll Ablauf Ablauf des Diffie-Hellman Protokolls (Forts.) Sei p eine Primzahl und α ein Generator von Z∗p Alice Bob W¨ahlt zuf¨allig ein a ∈ Z∗p W¨ahlt zuf¨allig ein b ∈ Z∗p αa mod p αb mod p αab mod p Geheimer Schl¨ussel Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 5 / 23 Diffie-Hellman Protokoll Ablauf Beispiel zum DH Schlu¨sselaustausch Angenommen, p = 27803 und α = 5 sind die ¨offentlichen Parameter f¨ur einen DH Schl¨usselaustausch. Alice w¨urfelt a = 21131 und berechnet 521131 mod 27803 = 21420. Anschließend sendet sie Bob diesen Wert. Bob w¨urfelt b = 17555 und berechnet 517555 mod 27803 = 17100. Diesen Wert sendet er an Alice. Alice und Bob berechnen schließlich den geheimen Schl¨ussel 2142017555 mod 27803 = 1710021131 mod 27803 = 11134. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 6 / 23 Diffie-Hellman Protokoll Man-In-The-Middle Attacke Man-In-The-Middle Attacke ∗ αa mod p Alice αa mod p Oskar b∗ α Bob b mod p α mod p • Oskar sitzt “zwischen” Alice und Bob und fungiert als Vermittlungsstelle. • Oskar ersetzt die Teilschl¨ussel von Alice und Bob durch seine eigenen. • Alice und Bob k¨onnen zwar ihre Daten mit dem ausgehandelten Schl¨ussel verschl¨usseln, aber keiner kann die Daten des anderen entschl¨usseln. • Oskar kann alle Daten ver- bzw. entschl¨usseln und entsprechend weiterleiten. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 7 / 23 Diffie-Hellman Protokoll Station-To-Station Protokoll Verbessertes Verfahren Idee: Einsatz von Pr¨ufsummen oder Signaturen Modifiziertes Protokoll: Sei p eine Primzahl und α ein Generator von Z∗p Alice Bob αa αb , signB (mB , αa , αb ) signA (mA , αa , αb ) Alle Berechnungen verstehen sich modulo p mA und mB stehen f¨ ur den Signaturschl¨ ussel von Alice bzw. Bob Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 8 / 23 Diffie-Hellman Protokoll Station-To-Station Protokoll Verbessertes Verfahren (Forts.) • Bei dem Protokoll handelt es sich um eine Vereinfachung des Station-To-Station Protokolls • Modifikation: Alice und Bob signieren die zu u¨bertragenden Daten • Konsequenzen: . Alice und Bob k¨onnen u¨berpr¨ufen, ob die Daten korrekt u¨bertragen wurden . Oskar kann die Nachrichten nicht umbemerkt ver¨andern, da er die Signaturschl¨ussel von Alice und Bob nicht kennt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 9 / 23 Diffie-Hellman Protokoll Sichere Primzahlen Gefahren bei der Parameterwahl Beobachtung: • Die Generierung von p und α ist kritisch f¨ur die Sicherheit des Diffie-Hellman Protokolls • Ist α kein erzeugendes Element, sondern ein Element mit niedriger Ordnung, dann kann Oskar eine Brute-Force Attacke ausf¨uhren ¨ • Die Uberpr¨ ufung, dass α ein erzeugendes Element von Z∗p ist, ist aufw¨andig, wenn man nicht die Primfaktorzerlegung von ϕ(p) kennt L¨osung: Einsatz einer sicheren Primzahl Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 10 / 23 Diffie-Hellman Protokoll Sichere Primzahlen Sichere Primzahlen Definition. Eine sichere Primzahl ist eine hinreichend große Primzahl p mit der Eigenschaft, dass p = 2q + 1 f¨ur eine Primzahl q Ist p eine sichere Primzahl, dann hat Z∗p folgende Untergruppe: • die triviale Untergruppe {1} • die Untergruppe {1, p − 1} mit 2 Elementen • die Untergruppe mit q Elementen • Z∗p mit 2q Elementen Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 11 / 23 Diffie-Hellman Protokoll Generierung der ¨ offentlichen Parameter Wie erzeugt man einen Generator? Hilfreiche Fakten: • Ist Z∗n eine zyklische Gruppe, dann ist die Anzahl ihrer Generatoren gleich φ(φ(n)). F¨ur eine Primzahl p ist die Anzahl der Generatoren von Z∗p gleich φ(p − 1). • Man kann beweisen, daß φ(n) ≥ n/6 ln(ln(n)) f¨ur alle n. Wenn man also zuf¨allig ein Element α aus Z∗n zieht, dann ist die Chance gut, daß α ein Generator ist. • Die Zahl α ∈ Z∗n ist ein Generator von Z∗n genau dann, wenn αφ(n)/p 6≡ 1 (mod n) f¨ur alle Primteiler p von φ(n). Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 12 / 23 Diffie-Hellman Protokoll Generierung der ¨ offentlichen Parameter Algorithmus zur Generatorerzeugung RandomGenerator(p, p1 , e1 , p2 , e2 , . . . , pk , ek ) Input: Primzahl p, Primfaktorzerlegung p1e1 p2e2 . . . pkek von φ(p) Output: Generator α von Z∗p 1 found := false; 2 while (found = false) do 3 α := Random(2, p − 1); 4 found := true; 5 for i := 1 to k do 6 b := αp−1/pi mod p; 7 if (b = 1) then found := false; 8 return α; Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 13 / 23 Diffie-Hellman Protokoll Generierung der ¨ offentlichen Parameter Berechnung der DH-Parameter GenerateDHParams(n, s) Input: Nat¨urliche Zahl n, Qualit¨atsparameter s Output: n-bit Primzahlen p, q mit p = 2q + 1, Generator α von Z∗p 1 found := false; 2 while (found = false) do 3 p := Random(2, 2n − 1); 4 if p ungerade then 5 q := (p − 1)/2; 6 found := MillerRabinTest(p, s) and MillerRabinTest(q, s); 7 α = RandomGenerator(p, 2, 1, q, 1) 8 return (p, q, α); Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 14 / 23 Diffie-Hellman Protokoll Einsatz einer kleinerern Untergruppe Einsatz einer kleineren Untergruppe • Nachteil der Verwendung einer sicheren Primzahl ist der hohe Aufwand bei der Berechnung der modularen Exponentiationen • Ist p eine n-Bit Primzahl (und somit q eine (n − 1)-Bit Primzahl), dann ben¨otigt eine modulare Exponentation im Mittel 3n/2 Multiplikationen • Ein g¨angiger Ansatz zur Verminderung des Aufwands besteht im Einsatz einer Primzahl p der Form p = Nq + 1, wobei q eine Primzahl ist • Ist p = Nq + 1, dann hat Z∗p eine Untergruppe der Gr¨oße q. Das Element α wird so gew¨ahlt, dass es genau diese Untergruppe erzeugt Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 15 / 23 Diffie-Hellman Protokoll Einsatz einer kleinerern Untergruppe Einsatz einer kleineren Untergruppe Erzeugung der Parameter: 1. Generiere zuf¨allig eine Primzahl q mit 2255 < q < 2256 2. Generiere zuf¨allig eine große gerade Zahl N und u¨berpr¨ufe, ob p = Nq + 1 eine Primzahl ist. Wiederhole diesen Schritt, bis eine Primzahl gefunden wird 3. Generiere zuf¨allig eine Zahl a ∈ {1, 2, . . . , p − 1} und berechne α = aN mod p. α hat die Ordnung q, falls . α 6≡ 1 (mod p), und . αq ≡ 1 (mod p) Wiederhole diesen Schritt, bis ein passender Wert f¨ur α gefunden wird 4. Lege (p, q, α) als ¨offentliche Parameter f¨ur das Diffie-Hellman Protokoll fest Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 16 / 23 Diffie-Hellman Protokoll Einsatz einer kleinerern Untergruppe Wahl der Gr¨oße von p Frage: Wieviele Bits sollte N bzw. p haben? Dilemma: • Je gr¨oßer p ist, um so sicherer ist das Diskreter-Logarithmus Problem • Je gr¨oßer p ist, um so aufw¨andiger ist die Berechnung der modularen Exponentation Ansatz: Einsatz der Formeln von A. Lenstra und E. Verheul1 , mit denen man passende Schl¨ussell¨angen berechnen kann 1 A. Lenstra, E. Verheul: Selecting Cryptographic Key Sizes. Journal of Cryptography 14(4):255-293, 2001. Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 17 / 23 Diffie-Hellman Protokoll Einsatz einer kleinerern Untergruppe Wahl der Gr¨oße von p (Forts.) Ziel: Wahl der Schl¨ussell¨ange in Abh¨angigkeit von der Schutzdauer der verschl¨usselten Daten in Jahren Ergebnis: Schl¨ ussell¨ ange 2048 Bit 3072 Bit 4096 Bit Schutz bis zum Jahr 2022 2038 2050 Warnung: Derartige Absch¨atzungen sind mit Vorsicht zu genießen Online-Berechnung u¨ber die Web-Page http://www.keylength.com Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 18 / 23 No-Key Protokoll von Shamir Das No-Key Protokoll von Shamir Frage: Wie kann Alice an Bob eine geheime Nachricht senden, ohne dass beide einen Schl¨ussel vereinbaren? Antwort: Alice und Bob setzen das No-Key Protokoll von Shamir zum Versand der Nachricht ein. Shamir’s Idee: Verwende die diskrete Exponentialfunktion f (a, x) = x a mod p als symmetrische Verschl¨usselungsfunktion Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 19 / 23 No-Key Protokoll von Shamir Shamir’s No-Key Protokoll (Vorbereitung) • Alice und Bob einigen sich auf eine große Primzahl p. Diese Zahl muss nicht geheim gehalten werden. • Der Nachrichtenraum ist Z∗p . • Alice w¨ahlt ein Zahlenpaar (a, a 0 ) so daß a · a 0 ≡ 1 (mod p − 1). • Bob w¨ahlt ein Zahlenpaar (b, b 0 ) so daß b · b 0 ≡ 1 (mod p − 1). 0 0 • F¨ur alle s ∈ Z∗p gilt: s aa ≡ s bb ≡ s (mod p). Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 20 / 23 No-Key Protokoll von Shamir Shamir’s No-Key Protokoll (Ablauf) Alice Bob a Berechnet x = s mod p x Berechnet y = x b mod p y 0 Berechnet z = y a mod p z 0 Berechnet s = z b mod p 0 Es gilt: z b mod p ≡ s aba 0b 0 0 0 ≡ (|{z} s aa )bb ≡ s (mod p) =s Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 21 / 23 No-Key Protokoll von Shamir Beispiel fu¨r das No-Key Protokoll • Alice und Bob einigen sich im Vorfeld auf die Primzahl p = 113. • Alice w¨ahlt als Schl¨usselpaar (a, a 0 ) = (47, 31), Bob das Schl¨usselpaar (b, b 0 ) = (61, 101). Es gilt: 47 · 31 ≡ 1 61 · 101 ≡ 1 (mod 112) (mod 112) ¨ • Ubertragung der Nachricht s = 20: 1. Alice Bob: 2047 mod 113 = 58 2. Bob Alice: 5861 mod 113 = 3 3. Alice Bob: 331 mod 113 = 47 • Bob berechnet s = 47101 mod 113 = 20 Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 22 / 23 Zusammenfassung Zusammenfassung • Das Diffie-Hellman Protokoll erm¨oglicht die Vereinbarung eines geheimen Schl¨ussels u¨ber einen unsicheren Kanal • Mittels sicherer Primzahlen l¨asst sich das Diffie-Hellman Protokoll weiter verbessern • Die von Diffie und Hellman vorgestellten Techniken werden in zahlreichen weiteren Protokollen eingesetzt • Die Erfindung des Diffie-Hellman Protokolls gilt als die Geburtsstunde der Public Key Kryptografie Prof. Dr. C. Karg (HS Aalen) Kryptografische Protokolle Schl¨ usselvereinbarung 23 / 23
© Copyright 2024