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.

[a m20 ] ≠ [1] muß t ≥ 1 gelten. Sei r := t − 1 <strong>und</strong> x := [a] m2r . Wegen der<br />

Minimalität von t muß x ≠ [1] sein. Ferner gilt<br />

x 2 = ([a] m2r ) 2 = [a] m2r+1 = [a] m2t = [1].<br />

Weil Z/NZ ein Körper ist, folgt daraus x = [1] oder x = [−1]. Aber x = [1] ist<br />

unmöglich (s.o.). Also gilt x = [a] m2r = [−1], wie gewünscht. □<br />

Für N > 2 ungerade mit N = 2 s m <strong>und</strong> m ungerade. Wir nennen a ∈ {2, 3, · · · , N−<br />

1} einen Zeugen gegen die Primalität von N, wenn eine der folgenden Aussagen<br />

wahr ist:<br />

a) a ist nicht zu n teilerfremd.<br />

b) a ist zu N teilerfremd <strong>und</strong> a m ≠ 1 mod N <strong>und</strong> a m2r ≠ −1 mod N ∀r ∈<br />

{0, · · · , s − 1}.<br />

Man kann leicht eine Routine implementieren, die bei der Eingabe (N, a) prüft,<br />

ob a Zeuge gegen die Primalität von N ist. Um Bedingung a) zu prüfen, kann<br />

man ggT (N, a) mit dem euklidischen Algorithmus 2.2.7 berechnen. Beim Prüfen<br />

von b) ist der Vektor ([a] m20 , a m21 , · · · , [a] m2s−1 ) zu berechnen. Hier kommt<br />

Square and Multiply zum Einsatz.<br />

Klar ist nun folgendes: Wenn es in {2, · · · , N − 1} einen Zeugen gegen die Primalität<br />

von N gibt, dann ist N sicher nicht prim. (Sei a ein solcher Zeuge <strong>und</strong> g<br />

der nicht-negative ggT von N <strong>und</strong> a. Falls g ≠ 1 gilt ist g ≥ 2 ein echter Teiler<br />

von N <strong>und</strong> N ist aus diesem Gr<strong>und</strong> nicht prim. Falls g = 1 gilt, so ist die obige<br />

Bedingung b) erfüllt <strong>und</strong> obiger Satz impliziert, daß N nicht prim sein kann.)<br />

Man wird fragen, ob für zusammengesetztes N auch immer genug Zeugen a ∈<br />

{1, · · · , N − 1} gegen die Primalität von N existieren. Der folgende Satz besagt,<br />

dass die Antwort ja ist:<br />

Satz 3.2.2 Sei N ≥ 2 ungerade. Wenn N zusammengesetzt ist, dann sind mindestens<br />

3 4<br />

der Zahlen im Bereich 1, · · · , N − 1 Zeugen gegen die Nicht-Primalität<br />

von N.<br />

Für den Beweis verweisen wir auf [B], Theorem 6.4.2.<br />

Wenn N zusammengesetzt ist, dann gibt es nach diesem Satz sogar so viele Zeugen<br />

gegen die Primalität von N, daß man höchstwahrscheinlich durch “simples<br />

Herumprobieren” schnell einen solchen Zeugen findet. Wenn N prim ist, dann<br />

gibt es sicher keinen Zeugen gegen die Primalität von N. Dies macht sich der<br />

Miller-Rabin-Test zu Nutze.<br />

Algorithmus 3.2.3 (Miller-Rabin-Test)<br />

Eingabe: N ≥ 2 <strong>und</strong> Steuerparameter B ≥ 2, t ≥ 1.<br />

50

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!