Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
) /* Ende while<br />
if(a=0, s:=0);<br />
Ausgabe: Das gesuchte Jacobi-Symbol ist s.<br />
Man beachte, daß das Produkt s·( a<br />
b<br />
)<br />
bei keinem der Teilschritte verändert wird.<br />
Nach jedem Schleifendurchlauf sinkt a ab.<br />
Dieser Algorithmus ist sehr schnell. Die Laufzeit ist ähnlich schnell wie bei dem<br />
euklidischen Algorithmus zur Berechnung von ggT (a, b).<br />
Sei nun p ≠ 2 eine Primzahl <strong>und</strong> a ∈ F × p . Wir schreiben sqrt(a) := {x ∈ F p :<br />
x 2 = a} für die Lösungsmenge der Gleichung X 2 = a. Mit(<br />
obigem ) Algorithmus<br />
kann man testen, ob a ein Quadrat ist oder nicht. Falls = −1 so ist a ∈<br />
F × p \ F ×2<br />
p <strong>und</strong> die Gleichung X 2 = a hat keine Lösung, d.h. sqrt(a) = ∅. Wenn<br />
( )<br />
= 0, dann gilt a = 0 <strong>und</strong> sqrt(a) = {0}.<br />
a<br />
p<br />
(<br />
Wenn<br />
a<br />
p<br />
)<br />
= +1, dann hat die Gleichung X 2 = a genau zwei Lösungen x <strong>und</strong><br />
−x <strong>und</strong> sqrt(a) ist zweielementig. Aber wie findet man diese Lösungen?<br />
Beispiel: Wir rechnen in F 13 . Nach der Tabelle im Beispiel zu Beginn dieses<br />
Beispiels liest man leicht ab: sqrt([2]) = ∅, sqrt([10]) = {[6], [7]} = {[6], [−6]},<br />
sqrt([12]) = {[5], [8]} ect. □.<br />
Das Anlegen einer geeigneten Tabelle ist für die Berechnung von sqrt(a) ein<br />
unnötig langsames Verfahren. Es gibt eine viel schnellere Möglichkeit. Wir beginnen<br />
mit dem einfachen Sonderfall p = 3 mod 4.<br />
a<br />
p<br />
Satz 6.2.4 Sei p eine Primzahl mit p = 3 mod 4 <strong>und</strong> a ∈ F × p ein Element mit<br />
( )<br />
= +1. Sei 1 x := a p+1<br />
4 . Dann gilt x 2 = a, d.h. sqrt(a) = {x, −x}.<br />
a<br />
p<br />
(<br />
Beweis: Es gilt x 2 = a (p+1)/2 = a (p−1)/2+1 = a (p−1)/2 a = a, denn aus<br />
a<br />
p<br />
)<br />
= +1<br />
folgt a (p−1)/2 = [1] p (alle Rechnungen in F p ) nach dem Satz von Euler 6.1.3. □<br />
Beispiel: Wir rechnen in F 23 . Es gilt ( 2<br />
23)<br />
= +1 nach dem Ergänzungssatz 6.2.2<br />
(beachte 23 = 7 = −1 mod 8). Daher ist [2] 23 ein Quadrat. Es gilt 2 (23+1)/4 =<br />
2 6 = 64 = 18 mod 23. Wegen 23 = 3 mod 4 muss muß nach obigem Satz<br />
18 2 = 2 mod 23 gelten <strong>und</strong> natürlich folgt dann auch (−18) 2 = 5 2 = 2 mod 23.<br />
Also ist sqrt([2]) = {[18], [−18]} = {[5], [18]} die Lösungsmenge der Gleichung<br />
X 2 = [2] über F 23 . (Man kann sich nachträglich leicht direkt davon überzeugen,<br />
dass 5 2 = 25 = 2 mod 23 <strong>und</strong> 18 2 = 324 = 2 mod 23 gilt.)<br />
Wegen 23 = 3 mod 4 gilt ( )<br />
−1<br />
23 = −1 (vgl. 6.2.2) <strong>und</strong> somit sqrt([−1]23 ) = ∅.<br />
D.h. die Gleichung X 2 = [−1] hat keine Lösung in F 23 .<br />
□<br />
1 Beachte: p + 1 = 4 = 0 mod 4, d.h. p + 1 ist durch 4 teilbar.<br />
88