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.
Sei nun p ≠ 2 eine beliebige Primzahl. Wir schreiben p − 1 = 2 s u mit einer<br />
ganzen Zahl s ≥ 1 <strong>und</strong> einer ungeraden Zahl u. Für a ∈ F × p setzen wir<br />
δ(a) := a u<br />
Bemerkung 6.2.5 a) Es gilt δ(a) 2s−1 = a p−1<br />
2 =<br />
von Euler 6.1.3.<br />
(<br />
a<br />
p<br />
)<br />
in F p nach dem Satz<br />
a’) Wenn a ein Quadrat ist, dann ist δ(a) ein Quadrat <strong>und</strong> ord(δ(a)) | 2 s−1 .<br />
( ) 2<br />
b) Es gilt δ(a) 2s a<br />
=<br />
p = 1.<br />
c) Wenn a ein Nicht-Quadrat ist, dann gilt ord(δ(a)) = 2 s .<br />
Beweis: Nur c) ist nicht-trivial. Nach b) muß ord(δ(a)) | 2 s , also ord(δ(a)) ( = ) 2 t<br />
mit 0 ≤ t ≤ s gelten. Sei a ein Nicht-Quadrat. Wäre t < s, so würde =<br />
δ(a) 2s−1 = 1 folgen; Widerspruch. □<br />
( )<br />
Sei nun p ≠ 2 eine beliebige Primzahl. Wir nehmen nun an, dass = 1. Wie<br />
kann man die Wurzel aus a berechnen? Sei ˜x := a u+1<br />
2 . ˜x läßt sich aus a mit<br />
Square and Multiply schnell berechnen. Man sollte ˜x als eine erste Approximation<br />
an eine Wurzel von a ansehen. Offenbar gilt a = ˜x 2 δ(a) −1 ; man kann also<br />
δ(a) als den “Fehlerterm” der Approximation ansehen. Nach obiger Bemerkung<br />
ist δ(a) ein Quadrat <strong>und</strong> ord(δ(a)) | 2 s−1 . Es bleibt die Wurzel aus δ(a) zu<br />
ziehen.<br />
Für d | p − 1 sei µ d die Untergruppe der Ordung d in der zyklischen Gruppe F × p .<br />
Sei ζ ∈ F × p ein Element der Ordnung 2 s (es gibt nach 4.1.10 genau ϕ(2 s ) = 2 s−1<br />
solche Elemente). Dann gilt µ 2 s = 〈ζ〉. Nach obiger Bemerkung gilt ord(δ(a)) =<br />
2 t mit t < s <strong>und</strong> <strong>und</strong> somit ist δ(a) ein Erzeuger von µ 2 t (vgl. 4.1.9). Mit 4.1.8<br />
folgt µ 2 t ⊂ µ 2 s, also δ(a) ∈ 〈ζ〉. Sei L ∈ N mit L = log ζ (a) mod 2 s . Dann gilt<br />
ζ L = δ(a). Da δ(a) ∈ µ 2 t ein Quadrat ist, muß L gerade sein. Also ist ζ L/2 eine<br />
Wurzel aus δ(a). Daher muß x := ˜xζ −L/2 = a u+1<br />
2 ζ −L/2 eine Wurzel von a sein.<br />
Wir haben bewiesen:<br />
Fazit:<br />
x = a u+1<br />
2 ζ<br />
− log ζ (a u )/2<br />
erfüllt x 2 = a <strong>und</strong> sqrt(a) = {x, −x}. x läßt sich aus a (<strong>und</strong> p) leicht berechnen,<br />
sofern ein Element ζ der Ordnung 2 s bekannt ist: Die Exponentiationen können<br />
mit Square and Multiply in Polynomzeit (in der Bitlänge von p) berechnet<br />
werden, <strong>und</strong> der diskrete Logarithmus log ζ (y) ist mit der Silver-Pohig-Hellman-<br />
Methode 4.3.2, 4.3.3 Polynomzeit berechenbar, weil ord(ζ) eine Potenz von 2<br />
ist.<br />
Aber wie kommt man zu einem Element ζ ∈ F × p der Ordnung 2 s ? Nach obiger<br />
Bemerkung ist klar: Wenn b ∈ F × p ein beliebiges Nichtquadrat ist, dann hat<br />
ζ := δ(b) = b u Ordnung 2 s .<br />
a<br />
p<br />
a<br />
p<br />
89