Das Jacobi-Symbol
Definition Jacobi-Symbol
Sei n∈Nungerade mit Primfaktorzerlegung n=Qs
i=1piri. Wir definieren das Jacobi-Symbol na
:=Qs i=1
a pi
ri
.
Anmerkungen:
Falls a quadratischer Rest mod n ist, dann gilt a≡b2modn und (an) = (bn2) =Qs
i=1(bp2
i)ri =Qs i=1(pb
i)2ri =1.
Falls(an) =1, dann muss a kein quadratischer Rest mod n sein.
Es gilt z.B.(152) = (23)(25) = (−1)2=1.
Nach CRT müsste jede Lösung von x2≡2mod15 auch eine Lösungen von x2≡2mod3 und x2≡2mod5 sein.
Beide Kongruenzen besitzen aber keine Lösungen.
Übung:
(an)ist multiplikativ in a und n. D.h. für a=a1a2und n=n1n2gilt (an) = (na
1)(na
2) = (an1
1)(an2
1)(an1
2)(an2
2).
Reziprozität für Jacobi-Symbol
Satz Reziprozität
Seien m6=n≥3 ungerade natürliche Zahlen. Dann gilt
1 (−n1) = (−1)n−12 .
2 (2n) = (−1)n28−1.
3 (mn) = (−1)m−12 ·n−12 (mn).
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=n1n2ungerade, d.h. n1,n2sind ebenfalls ungerade.
(1) Wir zeigen(−1)n1n22−1 = (−1)n1−12 ·(−1)n22−1. Dies ist äquivalent zu
n1n2−1
2 ≡ n1+n22−2mod2
⇔ n1n2−n1−n2+1= (n1−1)(n2−1)≡0mod4 Da n1−1 und n2−1 beide gerade sind, folgt die Korrektheit.
Reziprozität für Jacobi-Symbol
Beweis: (Fortsetzung) (2) zu zeigen:(−1)
n21n22−1
8 = (−1)
n21−1
8 (−1)
n22−1
8 . Dies ist äquivalent zu
n21n22−1
8 ≡ n218−1+n228−1 mod2⇔n21n22−n21−n22+1≡0mod16.
Wir formen weiter um zu
(n21−1)(n22−1) = (n1+1)(n1−1)(n2+1)(n2−1)≡0mod16.
Die Korrektheit folgt, da alle vier Terme n1±1, n2±1 gerade sind.
(3) Aus (1) folgt die Multiplikativität von
(−1)m−12 ·n−12 =
(−1)m−12 n−12
in n und m.
Anmerkung: Für ungerades n und m=2km′mit ungeradem m′gilt
m n
= 2nk
·
m′ n
= 2nk
·(−1)(m′ −1)(n4 −1) mn′ .
Rekursive Berechnung des Jacobi Symbols
Definition amodn
Sei a∈Zund n∈N. Dann bezeichnen wir mit amodn dasjenige b∈Zmit b ≡amodn und 0≤b <n. D.h. b=a− ⌊an⌋ ·n.
Algorithmus Jacobi-Symbol
EINGABE: m,n mit n ungerade undggT(m,n) =1.
1 Falls m=1, Ausgabe 1.
2 Sei m=2km′ mit m′ ungerade.
3 Ausgabe(−1)k(n28−1)·(−1)(m′−1)(n4 −1)·Jacobi-Symbol(nmodm′,m′) AUSGABE: mn
Laufzeit:
Analog zum Euklidischen Alg. erhalten wirO(log max{m,n}) rekursive Aufrufe, jeder dieser benötigtO(log2max{m,n}).
D.h. die Gesamtlaufzeit istO(log3max{m,n}).
Berechnung von Wurzeln für p ≡ 3 mod 4
Bsp: Berechnung von(2239)
(2239) = (392)·(1139) =−(3911) =−(116) =−(112)·(113) =−(113) =−(23) =1.
Ziel: Falls x2≡d modp mit(dp) =1, berechne beide Lösungen.
Satz Wurzeln für p ≡3mod4
Sei p ∈Pmit p≡3mod4 und d ∈Zmit(dp) =1. Dann sind die Lösungen von x2≡d modp von der Form±dp+14 .
Beweis:
Es gilt(±dp+14 )2=dp+12 =dp−21 ·d ≡(dp)·d =d modp.
Es gilt dp+14 6≡ −dp+14 modp, da dp+14 ∈Up und p>2.
DaFpein Körper ist, sind dies die einzigen beiden Lösungen.
Berechnen allgemeiner Quadratwurzel
Idee des Algorithmus von Tonelli und Shanks:
Sei p−1=2s·q mit q ungerade.
Erster Ansatz: Berechne a≡dq+12 modp. Dann gilt a2≡(dq+12 )2=dq·d modp.
Falls dq≡1modp, dann ist a bereits die gesuchte Quadratwurzel.
Es gilt Up ∼=Z/ϕ(p)Z∼=Z/2sZ×Z/qZ. Wir schreiben x ∼= (x1,x2).
Für die Abbildung f :Up→Up,x 7→xqgilt
f(x) =xq ∼=q(x1,x2) = (qx1,qx2) = (qx1,0)∈Z/2sZ×0.
D.h. q-ten Potenzen sind in einer Untergruppe H der Ordnung 2s. Wir wollen nun einen Erzeuger g von H konstruieren.
Sei z ∈Up mit(zp) = (−1). Dann gilt g :≡zqmodp∈H und g2s−1 ≡zq2s−1 =zp−21 ≡(−1)modp und g2s ≡zp−1≡1modp.
D.h. g ist Generator von H und dq≡gℓmodq für ein 0≤ℓ <2s. ℓist gerade, da gℓ ≡dq≡ ad2 modp quadratischer Rest ist. Es folgt
(a·g−ℓ2)2≡d modp.
Damit ist a·g−ℓ2 unsere gesuchte Quadratwurzel.
Berechnen des Diskreten Logarithmus modulo 2
sLemma Berechnen des Diskreten Logarithmus modulo 2s Sei p prim mit p−1=2sq, q ungerade. Sei H =hgi ⊆Upmit ord(g) =2s. Für x =gℓ∈H kannℓinO(log4p)berechnet werden.
Beweis:
Wir schreibenℓ=Ps−1
i=0 ℓi·2i und berechnenℓ0, . . . , ℓs−1. Berechnung vonℓ0: Wir berechnen x2s−1 modq. Es gilt
x2s−1≡gℓ·2s−1 =gPs−1i=0 ℓi·2s−1+i ≡gℓ02s−1 modp.
Da x2s ≡1modp, muss x2s−1 ≡ ±1modp gelten.
Falls x2s−1 ≡(−1)modp, dann istℓ0=1, sonst istℓ0=0.
Sei nunℓ0, . . . , ℓj−1bekannt. Wir wollenℓj berechnen.
Berechnung vonℓj: Es g
Ps−1 i=j ℓi2i
≡xg−Pj−1i=0ℓi2i :=x′. Damit ist (x′)2s−1−j ≡g
Ps−1
i=j ℓi·2s−1−j+i
≡gℓj2s−1 modp.
Damit gilt analog wie zuvorℓj =1 gdw(x′)2s−1−j ≡(−1)modp.
Jedesℓj kann in ZeitO(log3p)berechnet werden.