Vorlesung Mathematik 2 für Informatik Inhalt: I Modulare Arithmetik I Lineare Algebra I Vektoren und Matrizen I Lineare Gleichungssysteme I Vektorräume, lineare Abbildungen I Orthogonalität I Eigenwerte und Eigenvektoren Literatur Teschl/Teschl: Mathematik für Informatiker, Band 1, Kapitel 3, 9, 10, 11, 13 und 14 modular13.pdf, Seite 1 Modulare Arithmetik (Teschl/Teschl 3) Idee: Rechnen in einem endlichen Teilbereich der ganzen Zahlen basierend auf dem ModuloOperator, welcher mit Hilfe der Division mit Rest deniert wird. Da nur endlich viele Werte vorkommen, können dieses auf dem Computer exakt (ohne Rundungsfehler) dargestellt werden. Anwendungen u. a. bei Verschlüsselung von Daten modular13.pdf, Seite 2 Division mit Rest ≥ 2 gibt eindeutig 0 ≤ r < m sodass Zu ganzen Zahlen m und n mit m bestimmte Zahlen k , r ∈Z n mit = k · m + r. Dabei ist r der Divisionsrest, Notation r =n mod m (gesprochen n modulo m). Beispiele I 13 = 2 · 5 + 3, = 13 d. h. zu n Es folgt 13 I 1234 I −10 und m mod 5 =5 ist k =2 und r = 3. = 3. = 1 da 1234 = 137 · 9 + 1, 3 = 2, da −10 = −4 · 3 + 2. mod 9 mod modular13.pdf, Seite 3 Kongruenz Ganze Zahlen a und b heiÿen kongruent modulo m, wenn a Notation a ≡b mod m =b (mod m ) oder a mod m , =b (mod m ). Dies ist genau dann der Fall, wenn sich a und b um ein Vielfaches von m unterscheiden: a =b (mod m ) ⇔b−a =k ·m mit k ∈ Z. mod 7 =2 Beispiel I 16 = 30 (mod 7), da 16 mod 7 = 30 − 16 = 14 = 2 · 7. 5 = −7 (mod 4), da −7 − 5 = −3 · 4 (bzw. 5 − (−7) = +3 · 4) bzw. 30 I modular13.pdf, Seite 4 Rechnenregeln für Kongruenzen Ist a =c (mod m ) und b =d +b = a−b = a·b = a (mod m ), so gilt c c c + d (mod m) − d (mod m) · d (mod m) Beispiel Aus 12 12 = 22 = 2 (mod 10) und 23 = 13 = 3 · 23 = 276 = 22 · 13 = 286 = 2 · 3 = 6 (mod 10) folgt (mod 10) Der Beweis der Regeln erfolgt mit Hilfe der Denition: Ist c c = a + k1 · m und d = b + k2 · m, + d = a + b + (k1 + k2 ) · m, also c so folgt z. B. +d =a+b (mod m ). modular13.pdf, Seite 5 Anwendungen I Uhrzeit: 9 Uhr + 11 Stunden = 8 Uhr (9 9 Uhr plus 23 mal 17 Stunden = + 11 = 8 mod 12), 4 Uhr. I Wochentage (Rechnung modulo 7) I Teilbarkeitsregeln, z. B. eine Zahl ist genau dann durch 9 teilbar, wenn ihre Quersumme durch 9 teilbar ist I Prüfziern, z. B. ISBN-Nummer abc-d-efg-hijkl-p mit a + c + e + g + i + k + p + 3 · (b + d + f + h + j + l ) =0 mod 10. I Hashfunktionen, z. B. MD5Summe I Krytographie modular13.pdf, Seite 6 Beispiel Frage: Welcher Wochentag ist der 11.11.2222 ? Antwort: Von Montag, dem 7.10.2013 bis zum 11.11.2222 sind es 35 Tage plus 209 Jahre, von denen 50 Schaltjahre sind, also 34 + 210 · 365 + 50 Tage. Rechnung modulo 7 ergibt 35 + 209 · 365 + 50 = 0 + 6 · 1 + 1 = 7 = 0 (mod 7) Die Zahl der Tage ist also ein Vielfaches von 7, d. h. der 11.11.2222 ist ein Montag. modular13.pdf, Seite 7 m Der Restklassenring modulo Zu einem festen Modul m ∈N mit m ≥2 setzt man Zm = {0, 1, ..., m − 1} Addition, Subtraktion und Multiplkation auf Zm werden deniert durch a +b mod m, a −b mod m, und a ·b mod m. Diese Rechenoperationen werden als modulare Arithmetik bezeichnet. Beispiel In Z10 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 1 + 1 = 2, 2 − 8 = −6 6 + 7 = 13 mod 10 =4 mod 10 und 6 ist = 3, · 7 = 2. modular13.pdf, Seite 8 Bemerkung Formal kann Zm als Menge von Äquivalenzklassen betrachtet werden. Dazu stellt man fest, dass für einen gegebenen festen Modul m Kongruenz modulo m eine Äquivalenzrelation auf Z ist. Die Äquivalenzklassen bezüglich dieser Relation werden als Restklassen modulo m bezeichnet. Z. B. ist {..., −18, −8, 2, 12, 22, ...} eine Restklasse modulo 10. Jede Restklasse hat einen eindeutig bestimmten Repräsentanten zwischen 0 und m −1 (im Beispiel 2). modular13.pdf, Seite 9 Der Restklassenring kann nun deniert werden als Menge aller Resklassen modulo m: Zm = {0, 1, 2, ..., m − 1}, wobei jetzt jede Zahl als Repräsentant für ihre Restklasse steht. Aus den Rechenregeln folgt, dass sich bei Addition, Subtraktion und Multiplikation das Ergebnis nicht ändert, wenn eine Zahl durch ein anderes Element ihrer Restklasse ersetzt wird. Diese Eigenschaft erlaubt es, die modulare Arithmetik als Rechnen mit Restklassen zu interpretieren. modular13.pdf, Seite 10 Beispiel (Restklassen modulo 5) = 5 gibt es 5 Restklassen: {..., −5, 0, 5, 10, ...} (Repräsentant 0), {..., −4, 1, 6, ...} (Repräsentant 1), {..., −3, 2, 7, ...} (Repräsentant 2), {..., −2, 3, 8, ...} (Repräsentant 3), {..., −6, −1, 4, 9, ...} (Repräsentant 4). Mit m Es ist z. B. {..., −3, 2, 7, ...} + {..., −1, 4, 9, ...} = {..., −4, 1, 6, 11, ...} bzw. mit Repräsentanten 2 +4=1 (mod 5), {..., −3, 2, 7, ...} − {..., −1, 4, 9, ...} = {..., −12, −7, −2, 3, 8, ...} bzw. 2 −4=3 (mod 5), {..., −3, 2, 7, ...} · {..., −1, 4, 9, ...} = {..., −12, −7, −2, 3, 8, ...} bzw. 2 ·4=3 (mod 5). modular13.pdf, Seite 11 Verknüpfunstabellen in In Z5 Z5 erhält man die folgenden Additions- und Multiplikationstabellen: + 0 1 2 3 4 · 0 1 2 3 4 0 0 1 2 3 4 0 0 0 0 0 0 1 1 2 3 4 0 1 0 1 2 3 4 2 2 3 4 0 1 2 0 2 4 1 3 3 3 4 0 1 2 3 0 3 1 4 2 4 4 0 1 2 3 4 0 4 3 2 1 sowie Die Tabelleneinträge sind die Summe (links) bzw. das Produkt (rechts) der beiden zur jeweiligen Spalte und Zeile gehörenden Restklassen. Dabei wird jede Restklasse durch ihren Repräsentanten ∈ {0, 1, 2, 3, 4} dargestellt. modular13.pdf, Seite 12 Bemerkung Aus der Denition und den Rechenregeln folgt, dass die Gesetzte für das Rechnen mit ganzen Zahlen auch beim Rechnen in Zm gültig sind: + b = b + a sowie a · b = b · a (Kommutativgesetze), (a + b) + c = a + (b + c ) sowie (a · b) · c = a · (b · c ) I a I (Assoziativgesetze), · (b + c ) = a · b + a · c (Distributivgesetz) a + 0 = a sowie a · 1 = a (neutrale Elemente) Inverse der Addition: Mit −a = m − a ist a − a = 0. I a I I modular13.pdf, Seite 13 Grundidee bei der Verschlüsselung von Daten Die Daten werden zunächst in Zahlen umgewandelt. Diese (der Klartext) werden mittels modularer Arithmetik in andere Zahlen (Geheimtext) umgerechnet. Man spricht von einem Tauschchire. Zur Entschlüsselung muss die angewandte Rechenoperation wieder rückgängig gemacht werden. modular13.pdf, Seite 14 Beispiel: CaesarVerschlüsselung 1. Schritt Buchstaben also A 7→ 0, B 7→ 1, → Z26 , C Beispiel: KLEOPATRA 7→ 2, ..., Z 7→ 10 Z. B. mit k = 10: 11 4 14 15 0 19 17 0, 7→ x + k 2. Schritt: Verschlüsselung x wobei der Schlüssel k 7→ 25 ∈ Z26 (mod 26), als Konstante gewählt wird. KLEOPATRA 7→ 20 21 14 24 25 10 3 1 10 Verschlüsselter Text (Geheimtext): UVOYZKDBK Entschlüsselung: y 7→ y + 16 Dabei wird benutzt, dass 16 (mod 26). = 26 − 10 das additive Inverse von 10 modulo 26 ist, also (x + 10) + 16 = x + (10 + 16) = x + 0 = x (mod 26). modular13.pdf, Seite 15 Erweiterter Ansatz mit Multiplikation x 7→ a · x + b (mod 26), z. B. a KLEOPATRA BANANE 7→ ANRENNEN 7→ = 2, b = 3: XZLFHDPLD FDDDDL 7→ DDLLDDLD Problem Die Abbildung x ⇒ 7→ 2x + 3 (mod 26) ist nicht injektiv! Geheimtext nicht eindeutig entschlüsselbar. Ansatz: Entschlüsselung mittels Division y = ax + b ⇔ ax = y − b ⇔ x = 1 a · (y − b) = a−1 · (y − b) Frage: Wie kann ein multiplikatives Inverses a−1 ? sinnvoll deniert werden? modular13.pdf, Seite 16 Beispiel Wird die Verschlüsselungsformel y = 3x + 2 (mod 26) verwendet, so folgt aus 3 y ·9=1 (mod 26) (Rechnung modulo 26): = 3x + 2 ⇒ 3x = y − 2 ⇒ 9 · 3x = 9 · (y − 2) ⇒ x = 9y − 18 = 9y + 8 Die Multiplikation mit 9 macht somit die Multiplikation mit 3 rückgängig, 9 ist das multiplikative Inverse von 3 modulo 26. Allgemein = a−1 ist multiplikatives b · a = 1 (mod m ). b Inverses von a modulo m, wenn modular13.pdf, Seite 17 Frage Wann existieren multiplikative Inverse und wie können Sie bestimmt werden? Zur Antwort muss der gröÿte gemeinsame Teiler betrachtet werden. Teilbarkeit Seien m , n ∈ Z. m ist Teiler von n (Notation m |n, gesprochen m teilt n), wenn es ein k Es gilt n |m ∈Z gibt mit n ⇔n=0 = k · m. (mod m ). Beispiel: 13|65, da 65 = 5 · 13, 14| − 84, da −84 = −6 · 14. modular13.pdf, Seite 18 Primzahlen Eine Zahl p >1 heiÿt Primzahl, wenn sie auÿer 1 und p keine positiven Teiler hat. Beispiel ±1, ±2, ±3, ±4, ±6, ±8, ±12 und ±24 sind Teiler von 24, insbesondere ist 24 keine Primzahl. 2, 3, 5, 7, 11, 13, 17, ..., 1009, ... sind Primzahlen. modular13.pdf, Seite 19 Fakten I Es gibt unendlich viele Primzahlen. I Jede natürliche Zahl ist auf (bis auf die Reihenfolge) eindeutige Weise als Produkt von Primzahlen darstellbar (Primfaktorzerlegung). Beispiel 60 = 22 · 3 · 5, 1001 = 7 · 11 · 13, 1003 = 17 · 59, 1007 = 19 · 53. modular13.pdf, Seite 20 Satz (Euklid) Es gibt unendliche viele Primzahlen Beweis durch Widerspruch Annahme: Es gibt nur endliche viele Primzahlen p1 , p2 , ..., pn . Setze m = p1 · p2 · ... · pn + 1. Dann gibt es keine Primzahl, die Teiler von m ist, da alle Primzahlen Teiler von m −1 sind. Widerspruch dazu, dass sich m in Primfaktoren zerlegen lässt! Folgerung: Die Annahme war falsch, der Satz richtig! modular13.pdf, Seite 21 Bemerkung: Primzahlsatz, 1896 bewiesen ≤ n) ∼ an lim n→∞ bn = 1. (Anzahl der Primzahlen Dabei ist an ∼ bn ⇔ n ln n Beispiel Aus 999.999.999 ln 999.999.999 ≈ 48.254.942 folgt, dass es etwa 50.000.000 Primzahlen mit maximal 9 Stellen geben sollte bzw. etwa jede 20. neunstellige Zahl eine Primzahl ist. Tatsächlich liegt die exakte Anzahl bei 50.847.534. modular13.pdf, Seite 22 Gröÿter gemeinsamer Teiler Der ggT(a, b ) ist die gröÿte natürliche Zahl k mit k |a und k |b. Beispiel ggT(60, 78) = 6, ggT(330, 1001) ggT(64, 121) = 11, = 1. Zahlen a und b mit ggT(a, b ) =1 heiÿen teilerfremd. Bemerkung ggT(a, b ) ist das Produkt aller gemeinsamen Primfaktoren von a und b. Beispiel: 60 ⇒ = 2 · 2 ·3 · 5 ggT(60, 78) und 78 =2·3=6 = 2 · 3 · 13 modular13.pdf, Seite 23 Euklidischer Algorithmus zur Berechnung des ggT Beruht auf folgender Beobachtung: Ist r =a mod b, so gilt ggT(a, b ) = ggT(b, r ). Der Algorithmus Zu a, b x0 = a, xn +1 ∈N x1 mit a =b = xn −1 setze und deniere rekursiv mod xn , solange, bis xn+1 Dann ist xn >b = 0. = ggT(a, b). modular13.pdf, Seite 24 Beispiel Berechnung von ggT(5124, 18711): x0 = 18711, x2 = 18711 x3 = 5124 mod 3339 = 1785, x4 = 3339 mod 1785 = 1554, x5 = 1785 mod 1554 = 231, x6 = 1554 mod 231 x7 = 231 mod 168 x8 = 168 mod 63 x9 = 63 x10 = 42 = 5124, x1 mod 5124 mod 42 = 3339, = 168, = 63, = 42, = 21, mod 21 =0 ⇒ ggT(5124, 18711) = 21. modular13.pdf, Seite 25 Satz Es gibt genau dann ein multiplikatives Inverses a −1 von a modulo m, wenn a und m teilerfremd sind, also ggT(a, m ) a −1 ist in diesem Fall in Zm = 1. eindeutig bestimmt. Beweisidee Haben a und m einen gemeinsamen Teiler t > 1, so ist a ·b mod m immer ein Vielfaches von t , kann also niemals 1 werden. Ist umgekehrt ggT(a, m ) = 1, so liefert der erweiterte euklidische Algorithmus eine Lösung der Gleichung a ·b =1 (mod m ) (siehe folgende Seiten). Die Eindeutigkeit des Inversen folgt aus den Rechenregeln: Ist ab b = ac = 1 (mod m ), so gilt =b·1=b·a·c =a·b·c =1·c =c (mod m ). modular13.pdf, Seite 26 Methoden zur Bestimmung des Inversen 1. Probieren für kleine m: z. B. mit 2 · 3 = 6, 3 m · 3 = 2, =7 4 und a =3 · 3 = 5, 5 ·3=1 (mod 7), also ist 5 multiplikatives Inverses von 3 modulo 7. 2. Ein etwas eektiverer Ansatz Wähle k Mit b ∈N so, dass k = (k · m + 1)/a a ·m+1 durch a teilbar ist. ist dann ·b =k ·m+1=1 (mod m ), d. h. b ist multiplikatives Inveres von a. modular13.pdf, Seite 27 Beispiel a= 7, 27 = 26 + 1, 53 = 2 · 26 + 1 79 = 3 · 26 + 1 m= 26 und sind nicht durch 7 teilbar, aber 105 = 4 · 26 + 1 = 15 · 7, also ist 15 = 4·26+1 multiplikatives Inverses von 7 modulo 26. 7 modular13.pdf, Seite 28 Erweiterter euklidischer Algorithmus Mit Hilfe des euklidischen Algorithmus lassen sich für beliebige natürliche Zahlen a und m Faktoren k , l ∈Z berechnen, so dass gilt k Ist ggT(a, m ) 1 = 1, · a + l · m = ggT(a, m). so folgt dann =k ·a+l ·m =k ·a (mod m ), d. h. k ist multiplikatives Inverses zu a modulo m. modular13.pdf, Seite 29 Erweiterter euklidischer Algorithmus am Beispiel a= 25, m= 264: Links der einfache euklidische Algorithmus, rechts die daraus durch Umstellung der linken Gleichung und einsetzen der rechten Gleichung aus dem vorherigen Schritt gewonnene Darstellung des jeweiligen Divisionsrestes durch Vielfache von a und m. 264 25 14 11 3 = = = = = · 25 + 14 1 · 14 + 11 1 · 11 + 3 3·3+2 1·2+1 14 10 Damit: 25−1 = −95 = 169 11 3 2 1 in = = = = = − 10 · 25 11 · 25 − 264 2 · 264 − 21 · 25 74 · 25 − 7 · 264 9 · 264 − 95 · 25 264 Z264 . Z. B. Erläuterung zur 2. Zeile rechts: 25 = 1 · 14 + 11 ⇒ 11 = 25 − 1 · 14 = 25 − 1 · (264 − 10 · 25) = 11 · 25 − 264 modular13.pdf, Seite 30 Vereinfachung Bei der Bestimmung von multiplikativen Inversen kommt es nur auf das Ergebnis modulo m an, also können alle Rechnungen modulo m (hier 264) durchgeführt werden. Im Beispiel erhält man (rechte Seite modulo 264): 264 25 14 11 3 = = = = = · 25 + 14 1 · 14 + 11 1 · 11 + 3 3·3+2 1·2+1 10 ⇒ 25−1 = −95 = 169 14 11 3 2 1 = −10 · 25 = 25 − 14 = 11 · 25 = 14 − 11 = −21 · 25 = 11 − 3 · 3 = 74 · 25 = 3 − 2 = −95 · 25 (mod 264) modular13.pdf, Seite 31 Formale Darstellung Startwerte für Darstellung xn =m x1 = a (wobei k0 = 0 k1 = 1 = kn · a (mod m ): I x0 I I I a <m Rekursionsformel für n I xn −1 xn +1 vorausgesetzt wird) ≥ 1: = xn+1 + qn · xn , also = xn−1 mod xn und qn = xn−1 div xn , wobei div den ganzzahligen Anteil bei der Division angibt. I kn + 1 = k n − 1 − qn · k n solange, bis xn+1 Dann ist xn = =0 ggT(a, b ) = kn · a (mod m ). modular13.pdf, Seite 32 Beispiel Gesucht ist multiplikatives Inverses von a modulo m x0 = 333, x1 = 55, x2 = 333 = 333: k0 k1 = 0, = 1, mod 55 ⇒ x3 = 55 x3 =3 ⇒ = 55 k2 = 3, q1 = 333 div = 0 − 6 · 1 = −6 55 =6 = 1, q2 = 55 div 3 = 18 ⇒ k3 = 1 − 18 · (−6) = 109 mod 3 mod 1 =0 ggT(333, 55) =1 sowie 109 · 55 = 1 (mod 333), d. h. 109 ist multiplikatives Inverses von 55 modulo 333. modular13.pdf, Seite 33 Beispiel a= qn 123 und n xn kn 0 346 1 123 2 1 2 100 1 −2 3 23 2 −14 m= 346 (Startwerte in grün) 0 4 4 8 5 7 1 6 1 7 3 31 −45 0 2 Beispielrechnungen: 100 =4 : 23 = 4, Rest 8, also q3 = x2 k6 = k4 − q5 · k5 = −14 − 1 · 31 = −45 Aus x7 div x3 =0 sowie folgt ggT(123, 346) x4 = x2 mod x3 =8 = x6 = 1. Das multiplikative Inverse von 123 modulo 346 ist dann k6 = −45 = 301 (mod 346). modular13.pdf, Seite 34 Anwendung: Auösung von Gleichungen Ist a −1 ∈ Zm modulares Inverses von a modulo m, so kann = b nach x = a−1 b (mod m) jede Gleichung der Form ax aufgelöst werden. Beispiel Ein Text ist mit dem Tauschchire y = 3x + 2 mod 26 verschlüsselt worden: KLEOPATRA 7→ GJOSVCHBC −1 Mit dem multiplikativen Inversen 3 BANANE =9 7→ FCPCPO modulo 26 erfolgt die Entschlüsselung gemäÿ y = 3x + 2 ⇔ y − 2 = 3x ⇔ x = 9 · 3x = 9(y − 2) = 9y − 18 = 9y + 8 Der Buchstabe G 9 (= 6) · 6 + 8 = 62 = 10 (mod 26) im Geheimtext wird z. B. entschlüsselt zu (mod 26), was dem K im Klartext entspricht. modular13.pdf, Seite 35 Das RSAVerfahren ist ein asymmetrisches kryptographisches Verfahren beruhend auf modularer Arithmetik. Es besteht aus einem öentlichen Schlüssel, der sich als bijektive Abbildung f : Zm → Zm darstellen lässt. Zur Entschlüsselung benutzt man die Umkehrabbildung f −1 , den privaten Schlüssel . Dabei ist f so konstruiert, dass sich f −1 nicht ohne weiteres aus der Abbildungsvorschrift von f berechnen lässt. Somit darf der öentliche Schlüssel allgemein bekannt sein. modular13.pdf, Seite 36 Der kleine Fermatsche Satz liefert die Grundlage für das RSAVerfahren: Ist p eine Primzahl, so gilt a p −1 =1 (mod p ) für alle a mit ggT(a, p ) =1 Folgerungen: I ap =a (mod p ) für alle a ∈ N, wenn p Primzahl ist. I Sind p und q Primzahlen, so gilt (p −1)·(q −1) a = 1 (mod p · q ) für alle a mit · q ) = 1. (mod p · q ) ggT(a, p I an =a für alle a ∈ N, wenn p und q Primzahlen sind und n =1 (mod (p − 1) · (q − 1)) ist. modular13.pdf, Seite 37 Beispiel p= 7 Modulo 7 gilt 3 3 2 = 2, 3 5 =3·4=5 3 = 3 · 32 = 6, 6 und 3 Damit lässt sich jedes a einem k a a ∈ {1, 2, ..., 6}. 4 3 =3·5=1 ∈ Z7 \ { 0} = (3k )6 = 36·k = (36 )k = 1k = 1 7 = a · a6 = a · 1 = a 7 =0 = 3k mit (mod 7) sowie (mod 7). gilt die letzte Gleichung auch für a damit für alle a =0 und ∈ Z7 . sowie a 5 =a 4 = 1 (mod 5) für alle (mod 5) für alle a ∈ Z. Eine analoge Rechnung zeigt a ∈ Z5 \ {0} darstellen als a Es folgt 6 Wegen 0 a = 3 · 6 = 4, modular13.pdf, Seite 38 Fortsetzung Beispiel Ist nun a a a ∈Z p= = a6·4 = (a6 )4 = 14 = 1 24 = (a4 )6 = 16 = 1 24 −1 5 (mod 7) und analog (mod 5), ist sowohl durch 5 als auch durch 7 und damit auch durch 35 Somit gilt a q= weder durch 5 noch durch 7 teilbar, so gilt 24 d. h. a 7 und 24 =5·7 =1 teilbar. (mod 35) ⇒ a25 = a · a24 = a (mod 35) für alle a, die keinen gemeinsamen Teiler mit 35 haben. Ähnlich zeigt man a 25 =a (mod 35) auch dann, wenn a durch 5 und/oder 7 teilbar ist. modular13.pdf, Seite 39 Einschub: Eziente Berechnung von Potenzen Zur Berechnung von a e (mod n ) kann man wie folgt vorgehen: I Zunächst berechnet man rekursiv a2 mod n, a 4 = (a2 )2 mod n, a 8 = (a4 )2 mod n, a 16 = ... I Der Exponent e wird als Dualzahl dargestellt und als Summe von Zweierpotenzen geschrieben, Beispiel e = 21 = (10101)2 = 16 + 4 + 1. I Schlieÿlich berechnet man (im Beispiel e 21 a = a16+4+1 = a16 · a4 · a mod n, = 21) wobei der ModuloOperator in jedem Zwischenschritt angewandt wird, damit die Zwischenergebnisse nicht zu groÿ werden. modular13.pdf, Seite 40 Beispiel Mit a p= = 10 13, gilt b q= = a2 = 100 = 9 c = b2 = a4 = 81 = 3 d = c 2 = a8 = 9 = 3 · 9 = 27 = 1 16 =1 192 = (1016 )12 = 112 = 1 −1 =1 (mod 13) und (mod 17). sowohl durch 13 als auch durch 17 und damit auch durch 13 192 (mod 13). (mod 17). Es folgt = 1012·16 = (1012 )16 = 116 = 1 192 10 (mod 13), 192 Damit ist 10 10 (mod 13), Analog rechnet man 10 10 a= (mod 13). Damit erhält man 12 a = a8+4 = a8 · a4 10 17 und · 17 = 221 teilbar, d. h. (mod 221). modular13.pdf, Seite 41 Fortsetzung Beispiel Ist nun n =1 Es folgt n k ·192 10 = 10 =1 13, q= 17 und (mod 192), so gibt es ein k mit n a= n =a 10 = k · 192 + 1. · 101 = (10192 )k · 10 = 1k · 10 = 10 Analog rechnet man a n p= (mod 221). (mod 221) für beliebiges a, falls (mod 192). Ist nun eine zu 192 teilerfremde Zahl e gegeben und d modulares Inverses von d modulo 192, so folgt mit n =d ·e =1 (mod 192) (ae )d = ae ·d = a (mod 221) für alle a ∈ Z221 . modular13.pdf, Seite 42 Aufbau des RSAVerfahrens Man wählt einen Modul n =p·q mit hinreichend groÿen Primzahlen p und q (in der Praxis werden Primzahlen mit mehreren Hundert Stellen benutzt). Für den öentlichen Schlüssel wird n sowie ein Exponent e bekannt gegeben. Um daraus den für die Entschlüsselung benötigten privaten Schlüssel zu bestimmen, muss man p und q kennen, d. h. die Primfaktorzerlegung von n berechnen. Dies ist jedoch extrem aufwändig und praktisch nicht durchführbar, wenn p und q groÿ genug sind. modular13.pdf, Seite 43 Öentlicher und privater Schlüssel Der öentliche Schlüssel (n, e ) besteht aus dem = p · q und einem Exponenten e, der zu m = ϕ(n ) = (p − 1) · (q − 1) teilerfremd sein muss. Modul n Dabei bezeichnet ϕ(m) Der private Schlüssel die Eulersche PhiFunktion. (n, d ) besteht aus = e −1 von e dem modularen Inversen d dem Modul n und modulo m = ϕ(n). Die zu verschlüsselnden Daten werden als Elemente x ∈ Zn dargestellt. Die Verschlüsselung erfolgt durch die Berechnung e von y = x mod n. Zur Entschlüsselung wird x = y d = x d ·e mod n berechnet. Dass man tatsächlich x als Ergebnis erhält, ist durch die Folgerungen aus dem Satz von Fermat garantiert. Diese d besagen gerade, dass g (y ) = y mod n die Umkehrabbildung e zu f : Zn → Zn : x 7→ y = x mod n ist. modular13.pdf, Seite 44 Beispiel Zur Erstellung des öentlichen und des privaten Schlüssels sind zunächst zwei Primzahlen p und q zu wählen. Wir wählen p =7 und q = 11. = p · q = 77 und m = (p − 1) · (q − 1) = 6 · 10 = 60 Daraus werden n berechnet. Für den öentlichen Schlüssel wird ein zu m = 60 = 13. teilerfremder Exponent e benötigt, wir wählen e Dazu ist das modulare Inverse von 13 modulo 60 zu −1 berechnen, man erhält d = 13 = 37 = 1 (1 + 8 · 60). 13 Der öentliche Schlüssel bekannt gegeben, d (n, e ) = (77, 13) = 37 wird öentlich wird zur Entschlüsselung benötigt und geheim gehalten. p, q und m werden nur zur Erstellung des Schlüssels, nicht jedoch zur Ver- oder Entschlüsselung benötigt und müssen in jedem Fall geheim bleiben. modular13.pdf, Seite 45 Fortsetzung Beispiel: Verschlüsselung Die mit dem öentlichen Schlüssel Daten werden als Elemente x ∈ Z77 Berechnet wird der Geheimtext y Für x x 2 = 28 = 14, erhält man z. B. in x 4 = 142 = 42, (77, 13) zu verschlüsselnden dargestellt. = x 13 = x · x 4 · x 8 mod 77. Z77 x 8 = 422 = 70 ⇒ y = x 13 = 28 · 42 · 70 = 7. Entschlüsselung Mit dem privaten Schlüssel (77, 37) ist y 37 mod 77 zu berechnen. 7 x 16 2 = 49, = 422 = 70 Mit 7 4 8 2 = 492 = 14, 7 = 14 = 42, 32 und 7 = 702 = 49 erhält man 7 = y 37 = 7 · 74 · 732 = 7 · 14 · 49 = 28. modular13.pdf, Seite 46 Warum funktioniert es? Wir betrachten x ∈ Z77 =1⇒ ggT(x , 77) mit ggT(x , 7) = ggT(x , 11) = 1. Nach dem Satz von Fermat folgt x x 6 =1 10 (mod 7) =1 ⇒ x 60 = 110 = 1 (mod 11) Somit ist x 60 −1 (mod 7) sowie ⇒ x 60 = 16 = 1 (mod 11) sowohl durch 7 als auch durch 11 und damit auch durch 77 teilbar, d. h. x 60 =1 (mod 77) ⇒ x 481 = x 8·60+1 = (x 60 )8 · x 1 = 18 · x = x Die Gleichung x 481 =x (mod 77). (mod 77) bleibt auch dann richtig, wenn x einen gemeinsamen Teiler mit 77 hat. Wegen 481 y 37 = 13 · 37 gilt daher mit y = (x 13 )37 = x 13·37 = x 481 = x = x 13 mod 77 (mod 77). modular13.pdf, Seite 47 Beispiel zur Entschlüsselung (n, e ) = (10001, 131), Gegeben sei der öentliche Schlüssel d. h. zur Verschlüsselung wird die Abbildung f : Z10001 → Z10001 , x 7→ y = x 131 Gesucht ist die Umkehrabbildung f mod 10001 verwendet. −1 wobei d das modulare Inverse von e = (p − 1) · (q − 1) ist (d. h. (10001, d ) bilden den (y ) = y d mod = 131 modulo 10001, m privaten Schlüssel). Um d berechnen zu können, muss man m kennen, wofür die Primfaktorzerlegung 10001 =p·q von n benötigt wird. Beispielsweise durch Probieren erhält man 10001 und damit m = 73 · 137 = 72 · 136 = 9792. Nun kann d mit dem erweiterten euklidischen Algorithmus bestimmt werden. modular13.pdf, Seite 48 Berechnung des modularen Inversen i xi 0 9792 qi ki 1 131 74 1 2 98 1 −74 3 33 2 75 4 32 1 −224 5 1 0 299 = 299 und der private Schlüssel (n, d ) = (10001, 299), d. h. man erhält Somit ist d x = f −1 (y ) = y 299 mod 10001. modular13.pdf, Seite 49