RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem RSA-Verfahren Herwig Stütz 2007-11-23 Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Überblick 1 RSA-Verfahren Vorbereitung Das Verfahren Korrektheit Beispiel 2 Schnelle Ver- / Entschlüsselung Schnelle modulare Exponentiation Chinesischer Restsatz 3 Zusammenhang mit dem Faktorisierungsproblem Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Allgemeines Public-Key Methode Rivest, Shamir und Adleman 1977 Sicherheit des Verfahrens beruht auf Schwierigkeit der Primfaktorenzerlegung Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Eulersche φ-Funktion Definition (φ-Funktion) Die Eulersche φ-Funktion wird definiert durch: φ : N → N, φ(n) = |{1 ≤ k ≤ n|ggT (k, n) = 1}| Lemma (Eigenschaften der φ-Funktion) Sei n ∈ N und p Primzahl. Dann gelten φ(nm) = φ(n)φ(m) Multiplikativität φ(p) = p − 1 Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Theorem (Kleiner Satz von Fermat) Sei G eine endliche Gruppe und a ∈ G . Dann gilt a|G | = eG . Beweis. Seien g1 , . . . , g|G | die Elemente von G . Es gilt (ag1 )(ag2 ) · . . . · (ag|G | ) = g1 g2 · . . . · g|G | da die (agi ) nur eine Permutation der gi sind. Nun kann man die a herausziehen und die gi kürzen: a|G | = eG . Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Folgerung Für den Spezialfall G = (Zn , ·) mit |G | = φ(n) ergeben sich: 1 Ist n eine natürliche Zahl, dann gilt aφ(n) ≡ 1 2 mod n für ggT (a, n) = 1. Ist p prim und a beliebig, dann gilt ap ≡ a Herwig Stütz mod p RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Begriffe RSA-Modul: n Private-Key: d Public-Key: (n, e) Klartext: m Geheimtext: c Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Ver- und Entschlüsselung Ver- und Entschlüsselung c ≡ me mod n m ≡ cd mod n Herwig Stütz RSA-Verfahren Vorbereitung Das Verfahren Korrektheit Beispiel RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Schlüsselerzeugung Wähle Primzahlen p und q Setze n = pq Private-Key: Wähle d so, dass 0 < d < φ(n) und ggT (d, φ(n)) = 1 Public-Key: Wähle e so, dass 0 < e < φ(n) und Herwig Stütz ed ≡ 1 mod φ(n) RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Korrektheit von RSA Theorem (Korrektheit von RSA) Sei (n, e) ein öffentlicher Schlüssel, und d der entsprechende private Schlüssel im RSA-Verfahren. Dann gilt (me )d ≡ m mod n für jede natürliche Zahl m. Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Korrektheit von RSA Beweis. Da ed ≡ 1 mod (p − 1)(q − 1) ist, gibt es eine ganze Zahl l , so dass ed = 1 + l (p − 1)(q − 1) ist. Daher ist (me )d = med = m1+l(p−1)(q−1) = m(m(p−1) )l(q−1) ≡ m und auch (me )d ≡ m Herwig Stütz mod q. RSA-Verfahren mod p RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Beweis. Weil p 6= q folgt dann (me )d ≡ m mod n für ggT (m, n) = 1. Wenn ggT (m, n) > 1, so ist n ein Teiler von m und somit ist die Kongruenz auf beiden Seiten 0. Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vorbereitung Das Verfahren Korrektheit Beispiel Beispiel Wählen p = 29, q = 37 also n = 1073. Wählen Private-Key d = 59 ggT (59, 1036) = 1 Berechnen Public-Key e = 868. Nachricht m = 525 Also ist c = me mod n = 525868 mod 1073 = 308 m = cd mod n = 30859 mod 1073 = 525 Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Schnelle modulare Exponentiation Chinesischer Restsatz Schnelle modulare Exponentiation Zu berechnen x e mod n e = bk 2k + bk−1 2k−1 + · · · + b1 21 + b0 20 k +b k−1 +···+b 21 +b 20 1 0 k−1 2 x e = x bk 2 = k Y i =0 Herwig Stütz RSA-Verfahren i x2 bi RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Schnelle modulare Exponentiation Chinesischer Restsatz Beispiel Zu berechnen sei x 11 mod n mit x = 47 und n = 58: e3 e2 e1 e0 : : : : 1 0 1 1 x x2 (x 2 )2 x ((x 2 )2 x)2 x =x = x2 = x5 = x 11 Herwig Stütz 472 mod 58 52 · 47 mod 58 152 · 47 mod 58 RSA-Verfahren = 47 =5 = 15 = 19 RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Schnelle modulare Exponentiation Chinesischer Restsatz Chinesischer Restsatz Theorem (Chinesischer Restsatz) Seien n1 , n2 , . . . , nr r natürliche Zahlen größer 1, die zueinander relativ prim sind, also ggT (ni , nj ) = 1 für i 6= j, und seien a1 , a2 , . . . , ar beliebige natürliche Zahlen. Dann existiert eine Lösung zu der Kongruenz x ≡ ai mod ni i = 1, 2, . . . , r Existieren 2 Lösungen x und x ′ , so gilt x ≡ x ′ mod N mit N = n1 n2 · · · nr Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Schnelle modulare Exponentiation Chinesischer Restsatz Chinesischer Restsatz Beweis. Sei N = n1 · . . . · nr und sei Nk = N/nk . Deshalb gilt ggT (Nk , nk ) = 1. Also gilt ∀Nk ∃Nk′ : Nk Nk′ ≡ 1 mod nk , da die nk teilerfremd sind. Nun sei x = a1 N1 N1′ + a2 N2 N2′ + . . . + ar Nr Nr′ . Da nun Ni ≡ 0 mod nk für i 6= k folgt x ≡ ak Nk Nk′ mod nk . Seien x und y zwei Lösungen des System, dann gilt x ≡ y mod nk für alle k. Und da die nk paarweise relativ prim sind, gilt x ≡ y mod N. Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Faktorisierung von n =⇒ RSA ist unsicher d ist bekannt =⇒ n kann mit probabilistischen Algorithmus faktorisiert werden Methode zur Berechnung von d ohne Faktorisierung von n?? Vermutung Jede Methode, das RSA-Kryptosystem zu brechen ist mindestens gleichschwer wie die Zerlegung in Primfaktoren. Herwig Stütz RSA-Verfahren RSA-Verfahren Schnelle Ver- / Entschlüsselung Zusammenhang mit dem Faktorisierungsproblem Vielen Dank für die Aufmerksamkeit! Herwig Stütz RSA-Verfahren