6: Public-Key Kryptographie (Grundidee) Ein Teil des Schlüssels ist nur dem Empfänger bekannt. Der auch dem Sender bekannte Teil kann sogar veröffentlicht werden. Man spricht dann von einem Schlüsselpaar. Schlüsselpaar: öffentlicher (P K) und geheimer Schlüssel (SK) Kein sicherer Kanal benötigt Jeder kann mit P K verschlüsseln, Nur mit SK kann entschlüsselt werden I. A. ineffizienter als symmetrische Kryptographie Alice Bob C = E P KB (M) (P K A, SK A ) (P K B, SK B ) 187 6: Public-Key Krypto
6: Public-Key Kryptographie (Beispiel: RSA) ( Diskrete Strukturen) 1 Wähle große Primzahlen p und q; berechne n := pq 2 wähle e Zϕ(n) ; berechne d: ed 1 (modϕ(n)). 3 Schlüssel: Tripel (e, d, n); öffentlich: (e, n) geheim: d 4 Verschlüsselungsfunktion E: E (e,n) (x) = x e mod n 5 Entschlüsselungsfunktion D: D (e,d,n) (y) = y d mod n 188 6: Public-Key Krypto
Vorstellbare Angriffe auf RSA 1 Faktorisieren von n. (Gilt als extrem schwierig!) 2 Berechnen von ϕ(n). (Dann kann man n faktorisieren Tafel!) 3 Ermitteln eines d mit x ed x ed x (modn); nicht notwendigerweise d = d. (Wg. ed = kϕ(n) + 1 erhält man Information über ϕ(n).) 4 Berechnen der e-ten Wurzel modulo n ( RSA-Wurzel ). (Vermutlich ebenso schwierig wie die Faktorisierung.) 5 Iteriertes Verschlüsseln des Kryptogramms. (Erfordert mit überwältigender Wahrscheinlichkeit astronomisch viele Iterationen nächste Folie.) 189 6: Public-Key Krypto
Iteriertes Verschlüsseln Geg. y Z n, wende den folgenden Algorithmus an: x := y. Solange x e y mod n: x := x e mod n. Gib x aus. (Offenbar: y x e (mod n).) It. Verschl. terminiert nach endlicher Zeit. (Warum?) In der Praxis: endliche Zeit fast immer überwältigend groß. Geg.: e = 17, n = 2773, y = 2209; ges: x mit E(x) = y? E(2209) = 2209 17 = 1504 E(1504) = 1504 17 = 2444 E(2444) = 244 17 = 470 E( 470) = 470 17 = 2209 Heureka! Es ist x = 470. 190 6: Public-Key Krypto
6.1: Das Rabin-Kryptosystem Wie RSA, aber e = 2. Algorithmische Grundlage: Für zusammengesetztes n ist es extrem schwierig, die Gleichung x 2 y (mod n) zu lösen. Wenn man die Primteiler p und q von n kennt, kann man die Quadratwurzeln x p und x q (mod p bzw. mod q) effizient berechnen: x p 2 y (mod p) und x q 2 y (mod q). Mit dem Chinesischen Restsatz kann man x effizient berechnen, wenn man x p und x q kennt. 191 6: Public-Key Krypto 6.1: Rabin
Quadratwurzeln modulo einer Primzahl Sei p > 2 prim. Entweder, p 3 (mod 4) oder p 1 (mod 4). In beiden Fällen kann man Quadratwurzeln mod p effizient berechnen. Wir betrachten nur den (mathemtisch einfacheren) Fall p 3 (mod 4). Sei a Z p. Gesucht: x mit x 2 a mod p. Da p prim ist, gilt ϕ(p) = p 1. Sei ggt(p, x) = 1. Nach dem kleinen Satz v. Fermat gilt Daraus folgt: x p 1 1 a (p 1)/2 (mod p). x 2 a 1 a a (p 1)/2 a a (p+1)/2 a 2(p+1)/4 (a 2 ) (p+1)/4 (mod p). Also gilt x = a (p+1)/4 (mod p) oder x = a (p+1)/4 (mod p). 192 6: Public-Key Krypto 6.1: Rabin
Ein Spezialfall des Chinesischen Restsatzes Satz 16 Seien m = m 1 m 2 mit ggt(m 1, m 2 ) = 1; y 1 = m 1 2 (mod m 1 ), und y 2 = m1 1 (mod m 2 ). Für a 1, a 2 Z und x = a 1 y 1 m 2 + a 2 y 2 m 1 gilt: x a 1 (mod m 1 ) und x a 2 (mod m 2 ). Beweis Es ist 1 mod m 1 0 mod m 1 {}}{{}}{ x = a 1 y 1 m 2 + a 2 y 2 m 1, also x a 1 1 + 0 a 1 mod m 1. Analog x a 2 mod m 2. Nutzen für Rabin: m 1 = p, m 2 = q, x p y 1 m 2 + x q y 2 m 1 = x. 193 6: Public-Key Krypto 6.1: Rabin
Rabin (Grundlagen) Für ungerade Primzahlen p q und n = pq gilt: Sei y Z p. Die Gleichung y = x 2 (modp) hat entweder gar keine oder genau zwei Lösungen, denn wenn y x 2 (mod p), dann y ( x) 2 (mod p). Sei y Z n. Die Gleichung y x 2 (mod n) hat entweder keine oder genau vier Lösungen x in Z n: 1 Eine Gleichung der Form y x 2 mod p ( ) bzw. y x 2 mod q ( ) hat entweder keine oder genau zwei Lösungen. 2 Hat (mindestens) eine der Gleichungen ( ) und ( ) keine Lösung, dann hat die Gleichung y = x 2 mod n auch keine. 3 Sonst ergibt jede Kombination je einer Lösung mod p und mod q (mit Hilfe des Chin. Restsatzes) eine Lösung mod n. 194 6: Public-Key Krypto 6.1: Rabin
Rabin (Definition) 1 Wie RSA: p, q und n = pq. 2 Verschlüsselungsfunktion E: E[x] = x 2 mod n. 3 Entschlüsselungsoperation D??? 195 6: Public-Key Krypto 6.1: Rabin
Rabin Entschlüsselung Gegeben ein Chiffretext y. Berechne die beiden Lösungen der Gleichung y x 2 (mod p). Berechne die beiden Lösungen der Gleichung y x 2 (mod q). Berechne daraus die vier Lösungen der Gleichung y x 2 (mod n). Welche Lösung nehmen wir denn nun? Entscheide, welche der vier Lösungen richtig ist. (Z.B. mit Hilfe einer Prüfsumme.) Strenggenommen ist D gar keine Funktion! 196 6: Public-Key Krypto 6.1: Rabin
Rabin (Sicherheitsbeweis) Satz 17 Seien n = pq ein Rabin-Modulus und A ein Algorithmus zur Berechnung von Quadratwurzeln modulo n. Der folgende Algorithmus liefert mit mindestens der Wahrscheinlichkeit 0.5 einen Primfaktor von n: 1 Wähle zufällig r Z n. 2 Berechne y = r 2 mod n. 3 Berechne t = ggt(y, n). Wenn t > 1, gib t aus. stop 4 Rufe A auf zur Berechnung von x mit x 2 y mod n. 5 Ist x ±r, gib 1 aus. Sonst gib ggt(x + r, n) aus. stop Beweis-Skizze: ( Tafel) 197 6: Public-Key Krypto 6.1: Rabin
6.2: Elektronischer Münzwurf Aufgabenstellung für ein kryptographisches Protokoll: Ein Disput zwischen Alice und Bob soll durch einen Münzwurf entschieden werden ( Kopf Alice gewinnt, Zahl Bob gewinnt). Kann man so etwas auch über Telefon oder Internet machen? (Das ist natürlich leicht, wenn beide Beteiligte sich auf die Ehrlichkeit des Gegenübers verlassen... ) 198 6: Public-Key Krypto 6.2: Elektr. Münzwurf
Münzwurf-Protokoll 1 Alice wählt Primzahlen p und q. Alice Bob: n = pq. (Intention: Bob gewinnt Bob findet Teiler t n, 1 < t < n.) 2 Bob wählt zufällig x Z n. Ist ggt(x, n) > 1 hat Bob bereits gewonnen. Sonst: Bob Alice: y = x 2 mod n. 3 Alice berechnet r 1,..., r 4 mit ( ) r i 2 y (mod n). Alice Bob: r {r i } (zufällig gewählt). 4 Bob rechnet nach, ob ( ) gilt. 5 Ist r ±x mod n, gewinnt Bob: ggt(r + x, n) {p, q}. 6 Kann Bob keinen Faktor p bzw. q angeben, muss Alice dies tun. Sie gewinnt nur, wenn n = pq gilt und p und q teilerfremd sind. Andernfalls verliert sie. 199 6: Public-Key Krypto 6.2: Elektr. Münzwurf
Kann Alice (unentdeckt) betrügen? Es gilt x {r i }. Sonst hat Alice keine Informationen über x. Ist n eine Primzahl(potenz), kann Alice im letzten Schritt selbst keine passenden Faktoren p und q angeben. Wählt Alice n als das Produkt mehrerer (verschiedener) Primzahlen, steigen Bobs Chancen, einen geeigneten Teiler t zu finden. Der Wert r ist tatsächlich eine Quadratwurzel von y (mod n). (Andernfalls würde Bob das beim Nachrechnen entdecken.) 200 6: Public-Key Krypto 6.2: Elektr. Münzwurf
Kann Bob betrügen? Bob kann versuchen, mehr als zwei Quadratwurzeln von y (modn) zu finden. Ebensogut kann er n faktorisieren. Ansonsten hat er keinen Einfluss darauf, welche Quadratwurzel r {r i } Alice ihm schickt. 201 6: Public-Key Krypto 6.2: Elektr. Münzwurf
6.3: Digitale Unterschriften Unterschrift von Hand : Physikalische Verbindung mit dem unterschriebenen Dokument (beides steht auf dem gleichen Blatt). Fälschen erfordert einiges Geschick (wenn die Fälschung bei einer gründlichen Prüfung nicht auffallen soll... ). Kopieren einer Unterschrift ist nicht möglich (Fotokopien und Faxe haben einen geringeren Beweiswert als Originale). 202 6: Public-Key Krypto 6.3: Digitale Unterschriften
Beispiel RSA-Modulus n = pq, öffentl. Exponent e, Verschlüsselungsoperation E geheimer Exponent d, Entschlüsselungsoperation D m Z n gilt ( Satz??): Für alle E(D(m)) = m, d.h. (m d ) e m (mod n). D.h., wenn man zuerst die geheime ( Signier -)Operation anwendet, und dann die öffentliche Operation (die Verifikation ), dann erhält man die ursprüngliche Nachricht. RSA-Modulus n = pq, öffentl. Exponent e, Verifikation E = V geheimer Exponent d, Signier-Operation D = S 203 6: Public-Key Krypto 6.3: Digitale Unterschriften
6.4: Diskrete Logarithmen( Diskrete Strukturen) Diffie-Hellman Schlüsselaustausch: Diskreter Logarithmus: Primzahl p und Generator g festgelegt. Alice: wählt a als geheimen Schlüssel öffentlicher Schlüssel: A = g a mod p. Bob: wählt b als geheimen Schlüssel öffentlicher Schlüssel: B = g b mod p. Geheimer Sitzungsschlüssel: K = g ab mod p. gegeben: Y g x (mod p); berechne : x Diffie-Hellman Problem : Gegeben A und B, berechne K. 204 6: Public-Key Krypto 6.4: Diskrete Logarithmen
ElGamal Verschlüsselung Schlüsselerzeugung Primzahl p und Generator g entweder extern festgelegt, oder Teil des öffentlichen Schlüssels wichtig: g ist erzeugendes Element der Gruppe Z p, d.h., alle i {1,..., p 1} können in der Form mit j N dargestellt werden geheim: a öffentlich: A = g a mod p. i = g j mod p 205 6: Public-Key Krypto 6.4: Diskrete Logarithmen
ElGamal Verschlüsselung Ver- und Entschlüsseln Verschlüsseln: Nachricht M Z p wähle b zufällig Chiffretext: (C 1, C 2 ) mit C 1 = g b mod p und C 2 = M A b mod p Entschlüsseln: ( Tafel) 206 6: Public-Key Krypto 6.4: Diskrete Logarithmen
Bemerkungen Chiffretexte sind doppelt so lang wie Klartexte. Wenn man zweimal die gleiche Nachricht M verschlüsselt, erhält man mit hoher Wahrscheinlichkeit zwei verschiedene Chiffretexte (im Unterschied zu RSA und Rabin). Es gibt auch ElGamal Unterschriften. Die Sicherheit der ElGamal Verschlüsselung beruht auf der Härte des Diffie-Hellman Problems. Unterschied zwischen Diffie-Hellman und ElGamal: Diffie-Hellman: g ist erzeugendes Element irgend einer Untergruppe von Z p. ElGamal: g ist erzeugendes Element der ganzen Gruppe Z p. Wichtig für die Effizienz praktischer Implementationen! 207 6: Public-Key Krypto 6.4: Diskrete Logarithmen
6.5: Sicherheitsparameter kurzfristig für mehrere Jahrzehnte Symmetrische Kryptosysteme 80 bit 100 bit RSA/Rabin n > 2 1300 n > 2 2500 Diffie-Hellman p > 2 1300 p > 2 2500 ord(g) > 2 160 ord(g) > 2 200 ElGamal p > 2 1300 p > 2 2500 ord(g) = p 1 ord(g) = p 1 208 6: Public-Key Krypto 6.5: Sicherheitsparameter
6.6: Schlussbemerkungen Sie sollten in der Lage sein, beispielhaft zu erläutern, wie Public-Key-Kryptographie grundsätzlich funktioniert, das RSA- Kryptosysstem als Chiffre zu erklären (auch die Schlüsselerzeugung), RSA-Beispiele mit kleinen Zahlen zu berechnen, Fragen zu Sicherheit und Korrektheit des RSA Kryptosytems zu beantworten, und all diese Erkenntnisse auf andere Public-Key Kryptosysteme zu übetragen, insbesondere auf: Rabin, das geschilderte Münzwurfprotokoll, digitale Unterschriften und Kryptosysteme, deren Sicherheit auf der vermuteten Schwierigkeit basiert, diskrete Logarithmen zu berechnen. 209 6: Public-Key Krypto 6.6: Schlussbemerkungen