8 Woche Quadratische Reste und Anwendungen 8 Woche: Quadratische Reste und Anwendungen 163/ 238
Quadratische Reste Ḋefinition Quadratischer Rest Sei n N Ein Element a Z n heißt quadratischer Rest in Z n, falls es ein b Z n gibt mit b 2 = a mod n Wir definieren QR n = {a Z n a ist ein quadratischer Rest } und QNR n = Z n \ QR Lemma Anzahl quadratischer Reste in rimen Restklassen Sei > 2 rim Dann gilt QR = Z 2 = 1 2 Sei a QR Dann gilt a = b 2 = ( b) 2 jeder quadratische Rest besitzt 2 Quadratwurzeln Da F ein Körer ist, besitzt das Polynom (x) = x 2 a hat höchstens zwei Nullstellen in F Dh a hat 2 Quadratwurzeln Damit bildet f : Z QR, x x 2 mod jeweils genau zwei Elemente ±b auf einen quadratischen Rest a QR ab genau die Hälfte der Elemente in Z ist in QR 8 Woche: Quadratische Reste und Anwendungen 164/ 238
Das Legendre Symbol Ḋefinition Legendre Symbol Sei > 2 rim und a N Das Legendre Symbol ist definiert als ( ) a 0 falls a = 1 falls(a mod ) QR 1 falls(a mod ) QNR Notation, Fakte (aus DiMa I) ( ) F := Z Z,+,, 0, 1 Körer ( Die multilikative Grue F = Z Z) ist zyklisch 8 Woche: Quadratische Reste und Anwendungen 165/ 238
Berechnung des Legendre Symbols Ṡatz ( ) a = a 1 2 mod Beweis 1 Für a sind beide Seiten Null Gelte also a 2 Da a 1 = 1 mod, folgt a 1 2 = ±1 3 Sei g Generator von Z und a = g j für ein j Z 1 4 Es gilt für die linke Seite a QR gdw j gerade ist 5 Andererseits a 1 2 = g j( 1) 2 = 1 gdw 1 teilt j( 1) 2 6 Damit ist die rechte Seite ebenfalls 1 gdw j gerade ist Das Legendresymbol lässt sich in Zeit O(log a log 2 ) berechnen 8 Woche: Quadratische Reste und Anwendungen 166/ 238
Eigenschaften des Legendre Symbols Ėigenschaften Quadratischer Reste mod 1 Multilikativität: ( ) ( ab = a )( b ) 2 (QR, ) ist eine multilikative Grue { ( 3 2 ) = ( 1) 2 1 8 1 für = ±1 mod 8 = 1 für = ±3 mod 8 1 Zwei Beweise: ) = (ab) 1 2 mod = a 1 2 mod b 1 2 mod = ( a )( b ) 1 1 Beweis: ( ab 2 2 Beweis: Schreibe a = g j und b = g k Dann ab = g j+k Wenn j, k beide gerade (a, b Quadrate) dann j + k gerade (also ab Quadrat), usw 2 Es bleibt zu Zeigen, dass a QR a 1 QR Wieder zwei Beweise 1 1 Beweis: a = g j, also a 1 = g 1 j j gerade 1 j 2 2 Beweis: a = b 2, und b 0 Also b 1 (b 1 ) 2 = a 1 a 1 QR 3 ohne Beweis (nicht-trivial) 8 Woche: Quadratische Reste und Anwendungen 167/ 238
Das Quadratische Rezirozitätsgesetz Ṡatz Quadratisches Rezirozitätsgesetz (Gauß) Seien, q > 2 rim Dann gilt ) ( ) ( ) q = ( 1) ( 1)(q 1) ( q für = q = 3 mod 4 4 = ( q q) sonst ohne Beweis (nicht-trivial) Liefert alternativen Algorithmus zur Berechnung des Legendre Symbols ( ) ( ) ( ) ( ) Bs: 6 3 2 11 = = ( 1) 11 11 11 3 ( ) 2 = ( 1) = ( 1) ( 1) = ( 1) 3 Dh 6 ist quadratischer Nichtrest in Z 11 Benötigen Primfaktorzerlegung, um das QR-Gesetz anzuwenden 8 Woche: Quadratische Reste und Anwendungen 168/ 238
Das Jacobi Symbol Ḋefinition Jacobi Symbol Sei n = e 1 1 e k k N ungerade und a N Dann ist das Jacobi Symbol definiert als ( ( ) a a e1 ( ) a ek = n) 1 k Warnung: ( a n) = 1 imliziert nicht, dass a QRn ist!!! Bs: ( 2 15) = ( 2 3) ( 2 5) = ( 1)( 1) = 1 Dh 2 QNR 3 und 2 QNR 5 Damit besitzt x 2 = 2 weder Lösungen modulo 3 noch modulo 5 Nach CRT besitzt x 2 = 2 mod 15 ebenfalls keine Lösung 8 Woche: Quadratische Reste und Anwendungen 169/ 238
Verallgemeinerungen für das Jacobi Symbol Ṡatz Für alle ungeraden m, n gilt ( 2 ) 1 n n = ( 1) 2 1 8 { ( ( m ) (m 1)(n 1) ( 2 n = ( 1) 4 n ) n m = ( m) für m = n = 3 mod 4 n m) sonst Wir beweisen hier nur das Analog des Rezirozitätsgesetzes Falls ggt(m, n) > 1, sind beide Seiten 0 Sei also ggt(m, n) = 1 Schreiben Primfaktorzerlegung m = 1 r und n = q 1 q s ( i s und q j s können dabei jeweils mehrmals auftreten) Wandeln ( ) m ( ) n = i i,j q j zu ( ) n ( ) qj m = i,j i durch rs-malige Anwendung des Rezirozitätsgesetzes Anzahl ( 1) entsricht Anzahl Paare (i, j) mit i = q j = 3 mod 4 Dh ( m n) = ( n m) gdw ungerade viele i, g j kongruent 3 mod 4 Es gibt ungerade viele i, g j = 3 mod 4 gdw m = n = 3 mod 4 ist 8 Woche: Quadratische Reste und Anwendungen 170/ 238
Rekursive Berechnung des Jacobi Symbols Ȧlgorithmus Jacobi-Symbol EINGABE: m, n mit n ungerade 1 Falls ggt(m, n) > 1, Ausgabe 0 2 Sei m = 2 k m mit m ungerade 3 Ausgabe ( 1) k(n 2 1) 8 ( 1) (m 1)(n 1) 4 Jacobi-Symbol(n mod m, m ) AUSGABE: ( ) m n Bs: ( ( 14 15) = 2 7 ) 15) ( 15 = ( 1) ( 15 mod 7 ) 7 = ( 1) Laufzeit: Analog zum Euklidischen Algorithmus: O(log max{m, n}) rekursive Aufrufe Jeder Aufruf kostet O(log 2 max{m, n}) Korrektheit: Für ungerades n gilt ( m n ) = ( 2 n ) k ( m n ) = ( 2 n ) k ( 1) (m 1)(n 1) 4 ( ) n mod m m 8 Woche: Quadratische Reste und Anwendungen 171/ 238
Das Quadratische Reste Problem Ḋefinition Pseudoquadrate Sei N = q mit, q rim Eine Zahl a heißt Pseudoquadrat bezüglich N, falls ( a = 1 und a / QR N N) Wir definieren die Srache QUADRAT:= {a Z N a QR N} Srache = Teilmenge der Menge aller Worte über einem Alfabet Srache entscheiden = bestimmen, ob Wort in Srache ist Distinguisher = Entscheider = Algorithmus, der entscheidet ( ) ( ) Für alle Pseudoquadrate a gilt: = = ( 1) a Dh die Srache QUADRAT kann effizient entschieden werden, falls, q bekannt sind Im Allgemeinen ist nur N bekannt Quadratische Reduositätsannahme (QR-Annahme) Es gibt keinen olynomiellen Algorithmus, der QUADRAT entscheidet 8 Woche: Quadratische Reste und Anwendungen 172/ 238 a q
Quadratwurzeln in Z N Ṡatz Quadratwurzeln in Z N Sei N = q mit, q rim und q 3 mod 4 (sogenannte Blum-Zahl) Dann besitzt jedes a = x 2 QR N genau eine Quadratwurzel in QR N, die sogenannte Hautwurzel { y ±x mod Die Lösungen des Gleichungssystems liefern mittels y ±x mod q Chinesischem Restsatz 4 Lösungen in Z N Eine Lösung y ist in QR N gdw sie in QR QR q (dh wenn y mod,bzw y mod q Quadrat mod, bzw q ist) ( Betrachten ) ( ) Lösung ( ) modulo ((analog ) mod q): Es ist x 1 x x = = ( 1) da = 3 mod 4 ( ) ( ) Dh = und entweder x oder x ist in QR x x Damit ist genau eine der 4 Lösungen in QR N, nämlich die Lösung von { y ǫ x mod y ǫ q x mod q mit ǫ,ǫ q {±1} und ǫ x bzw ǫ q x QR bzw QR q 8 Woche: Quadratische Reste und Anwendungen 173/ 238
Berechnen von Quadratwurzeln modulo Ṡatz Quadratwurzeln mod Sei rim, = 3 mod 4 und a QR Dann sind die beiden Quadratwurzeln von a von der Form x = ±a +1 4 mod, wobei a +1 4 QR Es gilt x 2 = a +1 2 = a 1 2 a = Ferner gilt a +1 4 mod QR wegen (a +1 4 ) = ( ) a a = a mod ( ) +1 a 4 = 1 Dh Quadratwurzeln können in Zeit O(log 3 ) berechnet werden 8 Woche: Quadratische Reste und Anwendungen 174/ 238
Krytograhische Anwendungen von Quadratischen Resten 8 Woche: Quadratische Reste und Anwendungen 175/ 238
1 Blum-Blum-Shub (BBS) Pseudozufallsgenerator Korollar vom Satz Quadratwurzeln in Z N Die Abb f : QR N QR N, x x 2 mod N ist eine Bijektion auf QR N (k,l) Pseudozufallsgeneratoren generieren aus k Zufallsbits eine Sequenz von l > k Zufallsbits Der (k,l) BBS Generator verwendet obige Bijektion Algorithmus BBS Pseudozufallsgenerator (1986) EINGABE: N = q Blumzahl der Bitlänge N = k, 1 l mit l N und l > k 1 Wähle a Z N und setze s 0 = a 2 mod N 2 For i = 1 to l 1 Setze s i si 1 2 mod N Gib z i = s i mod 2 aus AUSGABE: (z 1,,z l ) {0, 1} l Laufzeit: O(l log 2 N), dh olynomiell in der Eingabelänge 8 Woche: Quadratische Reste und Anwendungen 176/ 238
Die Sicherheit des BBS Generators Sicherheit: Man kann die Verteilung der (z 1,,z l ) nicht von der uniformen Verteilung auf {0, 1} l unterscheiden Man kann folgendes zeigen: Sei A ein olynomieller Unterscheider für (z 1,,z l ) Dann gibt es einen olyn Algorithmus B, der s 0 mod 2 berechnet Ṡatz Sicherheit des BBS Generators Die Ausgabe des BBS Generators ist von der Gleichverteilung in olynomieller Zeit ununterscheidbar unter der QR-Annahme Annahme: olyn Unterscheider A für den BBS Generator Sei B ein Algorithmus, der s 0 mod 2 berechnet Zeigen, dass dann ein olyn Algorithmus für QUADRAT existiert (Widersruch zur Quadratischen Residuositätsannahme) 8 Woche: Quadratische Reste und Anwendungen 177/ 238
Entscheiden der Srache QUADRAT Ȧlgorithmus für QUADRAT EINGABE: a Z N mit ( a N) = 1 1 Setze s 0 a mod N 2 Berechne (z 1,,z l ) mittels BBS Generator 3 Berechne z 0 B(z 1,,z l ) 4 Falls z 0 = (a mod 2), Ausgabe "x QR N " Sonst Ausgabe "x QR N " Laufzeit: O(l log 2 N + T(B)) Korrektheit: Wegen ( a N) = 1 ist entweder a oder ( a) = N a in QRN Dh a oder ( a) ist eine Hautwurzel von s 1 = a 2 mod N Genau eine der beiden Zahlen a,( a) ist gerade z 0 ist das unterste Bit der Hautwurzel von s 1 = a 2 mod N Dh a ist eine Hautwurzel gdw z 0 und a mod 2 übereinstimmen 8 Woche: Quadratische Reste und Anwendungen 178/ 238
2 Probabilistische Verschlüsselung Parameter des Goldwasser-Micali Krytosystems (1984): Sei N = q Sei a Z N ein Pseudoquadrat (falls N Blumzahl, kann man N 1 nehmen) Verschlüsselt werden Bits m {0, 1} Ġoldwasser-Micali Krytosystem 1 Verschlüsselung von m unter Verwendung von N, a Wähle r Z N Berechne e(m, r) = a m r 2 mod N 2 Entschlüsselung von c = e(m, r) unter Verwendung von, q ( ) Berechne c = c 1 2 mod ( ) c 0 falls c QR N, dh falls = 1 Setze m = d(c) = ( ) c 1 falls c QR N, dh falls = ( 1) 8 Woche: Quadratische Reste und Anwendungen 179/ 238
Sicherheit des Goldwasser-Micali Krytosystems Korrektheit Falls m = 0 ist c = r 2 ein zufälliger quadratischer Rest in Z N Falls m = 1 ist c = x r 2 ein zufälliges Pseudoquadrat Es gilt ( ) ( ) c N = a m r 2 N = ( ( ) a m N) r 2 N = 1 ( ) ( ) ( ) ( ) Dh entweder c = c q = 1 oder c = c q = ( 1) Im ersten Fall ist c QR N, im zweiten Fall gilt c QR N Laufzeit: Verschlüsselung: O(log 2 N) Entschlüsselung: O(log 3 N) (verbessert: O(log 2 N)) Ṡatz Sicherheit des Goldwasser-Micali Krytosystems Das GM Krytosystem ist sicher unter der QR-Annahme Unterscheiden von Verschlüsselungen von 0 und 1 ist äquivalent zum Entscheiden der Srache QUADRAT 8 Woche: Quadratische Reste und Anwendungen 180/ 238
21 Bit Commitments Szenario informal: 1 Commitment-Phase: Alice latziert ein Bit b {0, 1} in einem Safe, der in Bob s Zimmer steht Bob besitzt keinen Safeschlüssel Bob kann den Safe nicht einsehen, lernt also nichts über b (Conceiling Eigenschaft) 2 Revealing-Phase: Alice öffnet den Safe und zeigt Bob das Bit b Alice kann ihr Bit dabei nicht ändern (Binding Eigenschaft) Mathematische Modellierung Commitment mittels f : {0, 1} X Y für endliche Mengen X, Y Commitment (sog Blob): Wähle x X und sende f(b, x) an Bob Öffnen des Commitments: Sende b und x an Bob 8 Woche: Quadratische Reste und Anwendungen 181/ 238
Bit Commitment via Goldwasser-Micali Krytosystem Öffentliche Parameter: Blumzahl N, Pseudoquadrat a Z N X = Y = Z N Algorithmus Goldwasser-Micali Bit Commitment 1 Commitment-Phase Wähle x Z N Sende Blob f(b, x) = a b x 2 mod N an Bob 2 Revealing-Phase Sende b, x an Bob Bob überrüft die Korrektheit von f(b, x) = a b x 2 mod N Conceiling Eigenschaft: Unter der QR-Annahme lernt Bob nichts über das Bit b {0, 1} 8 Woche: Quadratische Reste und Anwendungen 182/ 238
Binding Eigenschaft Ṡatz Goldwasser-Micali Commitments besitzen die Binding Eigenschaft Annahme: Alice kann Blob f(b, x) für b = 0 und b = 1 öffnen Dh Alice kann x 1, x 2 Z N berechnen mit f(b, x) = a 0 x 2 1 = a1 x 2 2 mod N Daraus folgt a = ( x1 x 2 ) 2 mod N, dh x 1 x 2 ist Quadratwurzel von a (Widersruch: a ist ein Pseudoquadrat in Z N ) 8 Woche: Quadratische Reste und Anwendungen 183/ 238
22 Münzwurf über das Telefon Bit Commitments haben zahlreiche Anwendungen in krytograhischen Protokollen Exemlarisch hier ein Protokoll für einen fairen Münzwurf Algorithmus Münzwurf via Internet 1 Alice sendet Bob Commitment für Bit b {0, 1} 2 Bob rät ein Bit b {0, 1} 3 Alice öffnet ihr Bit Bob gewinnt gdw b = b Conceiling-Eigenschaft verhindert, dass Bob etwas über b lernt Binding-Eigenschaft verhindert, dass Alice b in 1 b ändert 8 Woche: Quadratische Reste und Anwendungen 184/ 238
3 Das Blum-Goldwasser Krytosystem Öffentlicher Parameter: Blumzahl N = q Klartextraum: {0, 1} l für ein beliebiges l Chiffretextraum: {0, 1} l Z N Ḃlum-Goldwasser Krytosystem (1985) 1 Verschlüsselung von m = (m 1,,m l ) {0, 1} l mittels N Wähle r Z N z = (z1,,z l ) BBS Generator auf s 0 = r 2 mod N Berechne c = m z (Komonentenweise) Berechne sl+1 = s0 2l+1 mod N AUSGABE: Chiffretext (c, s l+1 ) {0, 1} l Z N 2 Enschlüsselung von c mittels, q Berechne s0 Z N als Lösung von s 0 = s ( +1 4 ) l+1 l+1 mod s 0 = s ( q+1 4 ) l+1 l+1 mod q z = (z1,,z l ) BBS Generator auf s 0 = r 2 mod N AUSGABE: m = c z 8 Woche: Quadratische Reste und Anwendungen 185/ 238
Laufzeit und Korrektheit Korrektheit: (z 1,,z l ) wird als One-Time Pad für m verwendet Entschlüsselung berechnet l+1-malig die Hautwurzel von s l+1 Dies rekonstruiert die Saat s 0 des BBS Generators Laufzeit: Verschlüsselung: O(l log 2 N) Entschlüsselung: O(log 3 N +l log 2 N) Ḟakt Sicherheit des BG-Krytosystems Das Blum Goldwasser Krytosystem ist sicher unter der Annahme, dass Blumzahlen N = q schwer zu faktorisieren sind 8 Woche: Quadratische Reste und Anwendungen 186/ 238