Das Jacobi-Symbol Definition Jacobi-Symbol Sei n N ungerade mit Primfaktorzerlegung n = s definieren das Jacobi-Symbol ( a ( ) ri n) := s a i=1 p i. i=1 pr i i. Wir Anmerkungen: Falls a quadratischer Rest mod n ist, dann gilt a b mod n und ( a n ) = ( b n ) = s i=1 ( b p i ) r i = s i=1 ( b p i ) r i = 1. Falls ( a n ) = 1, dann muss a kein quadratischer Rest mod n sein. Es gilt z.b. ( 15 ) = ( 3 )( 5 ) = ( 1) = 1. Nach CRT müsste jede Lösung von x mod 15 auch eine Lösungen von x mod 3 und x mod 5 sein. Beide Kongruenzen besitzen aber keine Lösungen. Übung: ( a n ) ist multiplikativ in a und n. D.h. für a = a 1a und n = n 1 n gilt ( a n ) = ( a n 1 )( a n ) = ( a 1 n 1 )( a n 1 )( a 1 n )( a n ). Zahlentheorie - V15-3.05.01 Jacobi-Symbol, Quadratwurzeln, Tonelli-Shanks Algorithmus 131 / 143
Reziprozität für Jacobi-Symbol Satz Reziprozität Seien m n 3 ungerade natürliche Zahlen. Dann gilt 1 ( 1 n 1 n ) = ( 1). ( n ) = ( 1) n 1 8. 3 ( m n ) = ( 1) m 1 n 1 ( n m ). Beweis: Obige Identitäten gelten für prime n, m. Die linken Seiten sind multiplikativ in n, m, können also in die Primteiler zerlegt werden. Genügt zu zeigen: Die rechten Seiten sind multiplikativ in n, m. Sei n = n 1 n ungerade, d.h. n 1, n sind ebenfalls ungerade. (1) Wir zeigen ( 1) n 1 n 1 = ( 1) n 1 1 ( 1) n 1. Dies ist äquivalent zu n 1 n 1 n 1+n mod n 1 n n 1 n + 1 = (n 1 1)(n 1) 0 mod 4 Da n 1 1 und n 1 beide gerade sind, folgt die Korrektheit. Zahlentheorie - V15-3.05.01 Jacobi-Symbol, Quadratwurzeln, Tonelli-Shanks Algorithmus 13 / 143
Reziprozität für Jacobi-Symbol Beweis: (Fortsetzung) () zu zeigen: ( 1) n 1 n 1 8 = ( 1) n 1 1 8 ( 1) n 1 8. Dies ist äquivalent zu n1 n 1 8 n 1 1 8 + n 1 8 mod n1 n n 1 n + 1 0 mod 16. Wir formen weiter um zu (n 1 1)(n 1) = (n 1 + 1)(n 1 1)(n + 1)(n 1) 0 mod 16. Die Korrektheit folgt, da alle vier Terme n 1 ± 1, n ± 1 gerade sind. (3) Aus (1) folgt die Multiplikativität von ( ( 1) m 1 n 1 = ( 1) m 1 ) n 1 in n und m. Anmerkung: Für ungerades n und m = k m mit ungeradem m gilt ( m ) ( n = ) k ) n ( m n = ( ) k (m 1)(n 1) ( n ( 1) 4 n ) m. Zahlentheorie - V15-3.05.01 Jacobi-Symbol, Quadratwurzeln, Tonelli-Shanks Algorithmus 133 / 143
Rekursive Berechnung des Jacobi Symbols Definition a mod n Sei a Z und n N. Dann bezeichnen wir mit a mod n dasjenige b Z mit b a mod n und 0 b < n. D.h. b = a a n n. Algorithmus Jacobi-Symbol EINGABE: m, n mit n ungerade und ggt(m, n) = 1. 1 Falls m = 1, Ausgabe 1. Sei m = k m mit m ungerade. 3 Ausgabe ( 1) k(n 1) 8 ( 1) (m 1)(n 1) 4 Jacobi-Symbol(n mod m, m ) AUSGABE: ( ) m n Laufzeit: Analog zum Euklidischen Alg. erhalten wir O(log max{m, n}) rekursive Aufrufe, jeder dieser benötigt O(log max{m, n}). D.h. die Gesamtlaufzeit ist O(log 3 max{m, n}). Zahlentheorie - V15-3.05.01 Jacobi-Symbol, Quadratwurzeln, Tonelli-Shanks Algorithmus 134 / 143
Berechnung von Wurzeln für p 3 mod 4 Bsp: Berechnung von ( 39 ) ( 39 ) = ( 11 39 39 ) ( 39 ) = ( 11 ) = ( 6 11 ) = ( 11 ) ( 3 11 ) = ( 11 3 ) = ( 3 ) = 1. Ziel: Falls x d mod p mit ( d p ) = 1, berechne beide Lösungen. Satz Wurzeln für p 3 mod 4 Sei p P mit p 3 mod 4 und d Z mit ( d p ) = 1. Dann sind die Lösungen von x d mod p von der Form ±d p+1 4. Beweis: Es gilt (±d p+1 4 ) = d p+1 = d p 1 d ( d p ) d = d mod p. Es gilt d p+1 4 d p+1 4 mod p, da d p+1 4 U p und p >. Da F p ein Körper ist, sind dies die einzigen beiden Lösungen. Zahlentheorie - V15-3.05.01 Jacobi-Symbol, Quadratwurzeln, Tonelli-Shanks Algorithmus 135 / 143
Berechnen allgemeiner Quadratwurzel Idee des Algorithmus von Tonelli und Shanks: Sei p 1 = s q mit q ungerade. Erster Ansatz: Berechne a d q+1 mod p. Dann gilt a (d q+1 ) = d q d mod p. Falls d q 1 mod p, dann ist a bereits die gesuchte Quadratwurzel. Es gilt U p = Z/ϕ(p)Z = Z/ s Z Z/qZ. Wir schreiben x = (x 1, x ). Für die Abbildung f : U p U p, x x q gilt f(x) = x q = q(x 1, x ) = (qx 1, qx ) = (qx 1, 0) Z/ s Z 0. D.h. q-ten Potenzen sind in einer Untergruppe H der Ordnung s. Wir wollen nun einen Erzeuger g von H konstruieren. Sei z U p mit ( z p ) = ( 1). Dann gilt g : zq mod p H und g s 1 z qs 1 = z p 1 ( 1) mod p und g s z p 1 1 mod p. D.h. g ist Generator von H und d q g l mod q für ein 0 l < s. l ist gerade, da g l d q a d mod p quadratischer Rest ist. Es folgt (a g l ) d mod p. Damit ist a g l unsere gesuchte Quadratwurzel. Zahlentheorie - V15-3.05.01 Jacobi-Symbol, Quadratwurzeln, Tonelli-Shanks Algorithmus 136 / 143
Berechnen des Diskreten Logarithmus modulo s Lemma Berechnen des Diskreten Logarithmus modulo s Sei p prim mit p 1 = s q, q ungerade. Sei H = g U p mit ord(g) = s. Für x = g l H kann l in O(log 4 p) berechnet werden. Beweis: Wir schreiben l = s 1 i=0 l i i und berechnen l 0,...,l s 1. Berechnung von l 0 : Wir berechnen x s 1 mod q. Es gilt x s 1 g l s 1 = g s 1 i=0 l i s 1+i g l 0 s 1 mod p. Da x s 1 mod p, muss x s 1 ±1 mod p gelten. Falls x s 1 ( 1) mod p, dann ist l 0 = 1, sonst ist l 0 = 0. Sei nun l 0,...,l j 1 bekannt. Wir wollen l j berechnen. s 1 Berechnung von l j : Es g i=j l i i xg j 1 i=0 l i i := x. Damit ist (x s 1 ) s 1 j l g i=j i s 1 j+i g l j s 1 mod p. Damit gilt analog wie zuvor l j = 1 gdw (x ) s 1 j ( 1) mod p. Jedes l j kann in Zeit O(log 3 p) berechnet werden. Zahlentheorie - V15-3.05.01 Jacobi-Symbol, Quadratwurzeln, Tonelli-Shanks Algorithmus 137 / 143