Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp Fakultät für Mathematik und Informatik Universität of Bremen Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel 3 Ringe und Körper 4 Randomisierter Primzahltest 5 Geheime Botschaften und RSA Edelkamp Einfache Kryptosysteme 2 Verschlüsselung Transposition: Skytale: Caesar-Chiffre: Substitution: Edelkamp Einfache Kryptosysteme 2 Dechiffrierung durch Häufigkeitsanalyse Edelkamp Einfache Kryptosysteme 3 Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel 3 Ringe und Körper 4 Randomisierter Primzahltest 5 Geheime Botschaften und RSA Edelkamp Einmalschlüssel 4 Visuelle Kryptographie [Moni Noar and Adi Shamir 1994] Edelkamp Einmalschlüssel 4 Zufallsrauschen [Moni Noar and Adi Shamir 1994] Edelkamp Einmalschlüssel 5 Überlagerung [Moni Noar and Adi Shamir 1994] Edelkamp Einmalschlüssel 6 Kodierung Edelkamp Einmalschlüssel 7 Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel 3 Ringe und Körper 4 Randomisierter Primzahltest 5 Geheime Botschaften und RSA Edelkamp Ringe und Körper 8 Ein Campus T-Shirt 5·9=1 Edelkamp Ringe und Körper 8 Rückseite in Z11 Edelkamp Ringe und Körper 9 Restklassen Zn = {0, 1, 2, . . . , n − 1} n prim ⇐⇒ Zn Körper Addition, Subtraktion, Vertauschung, Klammerung, eindeutiges multiplikatives Inverses, . . . ⇒ {a · 0, a · 1, a · 2, . . . , a · (n − 1)} = {0, 1, 2, . . . , (n − 1)} Beweis Annahme nein, dann a · b = a · c mit b 6= c (in Zn ), also a · (c − b) = x · n (in Z), alle a, b, c < n. Widerspruch zu n prim und Eindeutigkeit der Primfaktorzerlegung von x, a und (c − b). Edelkamp Ringe und Körper 10 (Kleiner) Satz von Fermat n prim ⇐⇒ an−1 = 1 für alle a 6= 0 (in Zn ) Beweis: 1 · 2 · . . . · (n − 1) = a · 1 · a · 2 . . . · a · (n − 1) = an−1 · (1 · 2 · . . . · (n − 1)) ⇒ a−1 = an−2 in Zn . Beispiel: 5−1 = 59 = ((52 )2 )2 · 5 = 9. Edelkamp Ringe und Körper 11 Satz von Euler φ(n) Anzahl teilerfremde Zahlen von n. ⇒ n = pq, p, q prim, ggT (p, q) = 1, dann φ(n) = (p − 1)(q − 1) Satz von Euler ggT (a, n) = 1 ⇒ aφ(n) = 1 (in Zn ) Beweis: Z∗n Menge multiplikativ modulo n invertierbarer Elemente r1 · r2 , . . . , rφ(n) r1 · r2 · . . . · rφ(n) = a · r1 · a · r2 . . . · a · rφ(n) = aφ(n) · (r1 · r2 · . . . · rφ(n) ) ⇒ aφ(n) = 1 (in Zn ). Beispiel: 7222 = ((74 )55 ) · 72 = 9 (in Z10 ). Edelkamp Ringe und Körper 12 Erlaubtes und Unerlaubtes n erlaubt, falls n und (n − 1)/2 ungerade Satz Sei n erlaubt. Dann 1 n prim ⇒ a(n−1)/2 = ±1 für alle a 6= 0 2 n nicht prim ⇒ a(n−1)/2 = ±1 für höchstens die Hälfte aller a 6= 0 Beweis, Teil 1: Sei b = a(n−1)/2 in Zn . Dann (b − 1)(b + 1) = b2 − 1 = an−1 − 1 = 0 also b = ±1. Edelkamp Ringe und Körper 13 Quadratwurzeln x Quadratwurzel, falls x 2 = a, bzw. (−x)2 = a ±x einzigen Quadratwurzeln von a (in Zn , n prim). Es gilt: a(n+1)/4 = (x 2 )(n+1)/4 = x (n−1)/2 · x = ±x Beispiel in Z11 : 6 kein Quadrat, da 6(n+1)/4 = 63 = 7, 72 6= 6 5 Quadrat, da 5(n+1)/4 = 53 = 4, 42 = 5 Edelkamp Ringe und Körper 14 Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel 3 Ringe und Körper 4 Randomisierter Primzahltest 5 Geheime Botschaften und RSA Edelkamp Randomisierter Primzahltest 15 Chinesischer Restsatz n = p · q, mit p und q prim folgt Zn ∼ Zp × Zq Beispiel 40 · 60 = 13 in Z77 : Mit 77 = 7 · 11 gilt: (5, 7) · (4, 5) = (6, 2) Nur möglich, falls n = p · q bekannt Satz Sei n erlaubt. Dann 1 n prim ⇒ a(n−1)/2 = ±1 für alle a 6= 0 2 n nicht prim ⇒ a(n−1)/2 = ±1 für höchstens die Hälfte aller a 6= 0 Beweis, Teil 2 (für n = p · q):. Idee: Ersetze Zn durch Zp × Zq Die beiden Zahlen ±1 entsprechen (1, 1) und (−1, −1). Edelkamp Randomisierter Primzahltest 15 Gute und schlechte Zahlenpaare (a1 , a2 ) in Zp × Zq gut, falls (a1 , a2 )(n−1)/2 = (1, 1) oder (a1 , a2 )(n−1)/2 = (−1, −1) Ist (a1 , a2 ) gut, dann ist (−a1 , a2 ) schlecht, da (a1 , a2 )(n−1)/2 = (1, −1) oder (a1 , a2 )(n−1)/2 = (−1, 1) gilt. Zp × Zq zerfällt somit in Teilmengen {(a1 , a2 ), (a1 , −a2 )}, von denen mindestens ein Element schlecht ist. Edelkamp Randomisierter Primzahltest 16 Statistischer Primzahltest (für erlaubte n, [Miller/Rabin, 1976, Solovay/Strassen, 1977]) 1 Wähle Zufallszahlen a1 , . . . , ak in {1, . . . , n − 1} 2 Berechne ai 3 (n−1)/2 Falls alle (n−1)/2 ai in Zn = ±1 entscheide n prim, ansonsten n nicht prim Falls n prim, dann Entscheidung richtig Falls n nicht prim, dann Entscheidung mit W’keit < 1/2k falsch. Annahme: Primalität kann effizient entschieden werden, aber Faktorisierung n = p · q (n ∼ 1000, p, q ∼ 500 Stellen), nicht. Edelkamp Randomisierter Primzahltest 17 Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel 3 Ringe und Körper 4 Randomisierter Primzahltest 5 Geheime Botschaften und RSA Edelkamp Geheime Botschaften und RSA 18 Einfaches Kryptosystem Darmstadt (DA), Bremen (HB) wollen kommunizieren, Dortmund (DO) hört alles mit. Geheimnis sei x 1 DA bildet n = p · q, sendet n zu HB 2 HB bildet x 2 in Zn und sendet es zu DA 3 DA berechnet Wurzeln, eine ist x in Zn Kenntnisstand DA kennt x 2 und n = p · q, kann x berechnen HB kennt n und x DO weiß n,x 2 aber kann x nicht berechnen. Verallgemeinerungen führen zu dem RSA-Verfahren und PGP. Edelkamp Geheime Botschaften und RSA 18 RSA [Rivest, Shamir, Adlemann, 1977] φ(n) = (p − 1)(q − 1), p, q prim, e teilerfremd zu φ(n) d invers zu e (in Zφ(n) ), mittels Euklidischen Algorithmus ggT (a, b) = ggT (b, a%b), ggT (b, 0) = b (rückwärts) berechnet e · d + k · φ(n) = 1 = ggT (e, φ(n)) Verschlüsselung (e öffentlicher Schlüssel): c = me (in Zn ) Entschlüsselung (d privater Schlüssel): m = c d (in Zn ) Schnelle Exponentiation: c d = c d/2 · c d/2 oder c d = c · c d−1 Edelkamp Geheime Botschaften und RSA 19 Korrektheit RSA Nach dem Satz von Euler gilt: de = 1 (in Zφ(n) ) ⇒ (md )e = mde = m1+kφ(n) = m · (mφ(n) )k = m · 1k = m (in Zn ). und (me )d = med = m1+kφ(n) = m · (mφ(n) )k = m · 1k = m (in Zn ). Edelkamp Geheime Botschaften und RSA 20 PGP [Phil Zimmermann, 1991] Edelkamp Geheime Botschaften und RSA 21