18.11.2013 Aufrufe

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Berechnung des Jacobi-Symbols (also insbesondere ein Test, ob [a] p (a ∈ Z) ein<br />

Quadrat in F p ist) <strong>und</strong> für das Ziehen der Wurzel aus [a] p , falls [a] p ∈ F ×2<br />

p . Dies<br />

wird z.B. im Public-Key-Verfahren von Rabin angewendet. Man kann sich fragen,<br />

ob ein ähnliches Gesetz für höhere Potenzreste gilt. Diese Frage wurde erst<br />

in den 1960er Jahren im Rahmen der sogenannten Klassenkörpertheorie geklärt.<br />

Eine Behandlung dessen würde den Rahmen dieser Vorlesung sprengen.<br />

Wir verzichten auf den Beweis von 6.2.2 <strong>und</strong> 6.2.1 Vorher wollen wir Anwendungen<br />

des Reziprozitätsgesetzes diskutieren.<br />

Beispiel: 101 ist eine Primzahl. Ist [79] 101 ∈ F × 101 ein Quadrat? Um dies zu<br />

beantworten berechnen wir ( 79<br />

101)<br />

. Es gilt<br />

( )<br />

( ) ( )<br />

79<br />

101 101<br />

= (−1) 78·100/4 = +<br />

101<br />

79 79<br />

nach dem Reziprozitätsgesetz. Da 101 = 22 mod 79 gilt folgt<br />

( ) ( ) ( ) ( ) ( )<br />

101 22 2 11 11<br />

= =<br />

= + .<br />

79 79 79 79 79<br />

Im letzten Schritt haben wir den Ergänzungssatz verwendet; beachte 79 =<br />

−1 mod 8. Weil 11 <strong>und</strong> 79 ungerade sind, dürfen wir wieder das Reziprozitätsgesetz<br />

anwenden:<br />

( 11<br />

79<br />

)<br />

( ) 79<br />

= (−1) 10∗78/4 = −<br />

11<br />

( ) ( 79 2<br />

= − .<br />

11 11)<br />

Im letzten Schritt haben wir 79 = 2 mod 11 verwendet. Da 11 = 3 mod 8 gilt,<br />

liefert der Ergänzungssatz<br />

( 2<br />

− = (−1)(−1) = +1.<br />

11)<br />

Insgesamt ergibt sich ( 79<br />

101)<br />

= +1, d.h. [79]101 ist ein Quadrat. □<br />

Algorithmus 6.2.3 (Algorithmus für Jacobi-Symbole)<br />

( Eingabe: a ∈ Z, b ∈ N mit b ungerade.<br />

a<br />

)<br />

b soll berechnet werden.<br />

Initialisiere: s := 1.<br />

if(a < 0, a := |a|; s := (−1) (b−1)/2 )<br />

(Nun a, b > 0, b ungerade.)<br />

while(a /∈ {0, 1},<br />

Berechne q, r mit a ÷ b = q Rest r, r ≥ 0.<br />

a := r.<br />

if (2 | a <strong>und</strong> a > 1 schreibe a = 2 t u mit u ungerade; a := u, s := ((−1) (b2 −1)/8 ) t s).<br />

(Nun a ∈ {0, · · · , b} ungerade.)<br />

if (a > 1, s := (−1) (a−1)(b−1)/4 s; vertausche a <strong>und</strong> b)<br />

87

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!