Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
Elementare Zahlentheorie und Kryptographie
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