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.

Wir wenden uns in diesem Abschnitt der Erzeugung von Einweggruppen zu.<br />

Problem: Sei B > b > 0. Wir wollen ein Zufallstripel (p, l, g) konstruieren derart,<br />

daß p eine B-Bit-Primzahl, l eine b-Bit-Primzahl <strong>und</strong> g ∈ F × p ein Element<br />

mit ord(g) = l ist. (Etwa für B = 1000, b = 500 wird das auf eine zufällige Einweggruppen<br />

(F × p , g) führen, die dann im Rahmen der <strong>Kryptographie</strong>verfahren,<br />

die im folgenden besprochen werden, benutzt werden können.)<br />

Sei im folgenen ispseudoprime ein schneller, probabilistischer Primzahltest, z.B.<br />

der Miller-Rabin-Test. Wenn der Aufruf ispseudoprime(N, ε) die Antwort “false”<br />

liefert, dann ist N sicher zusammengesetzt. Wenn der Aufruf ispseudoprime(N, ε)<br />

die Antwort “true” ergibt, dann ist N wahrscheinlich (mit Wahrscheinlichkeit<br />

≥ 1 − ε) prim. Je kleiner man die Fehlerwahrscheinlichkeit ε wählt, desto größer<br />

wird die Laufzeit.<br />

Wir schildern nun den Algorithmus stepnextprime, der für die Lösung des obigen<br />

Problems gebraucht wird. Sei N, s ∈ N mit s > 0. Die Folge<br />

N, N + s, N + 2s, N + 3s, · · ·<br />

wird im folgenden arithmetische Progression mit Beginn N <strong>und</strong> Sprungweite<br />

s genannt. Der Algorithmus stepnextprime sucht nach einer Primzahl in<br />

dieser arithmetischen Progression. Gegebenenfalls wird die kleinste Primzahl,<br />

die gef<strong>und</strong>en wird, ausgegeben.<br />

Klar ist folgendes: Wenn 1 < g < N ein gemeinsamer Teiler von s <strong>und</strong> N ist,<br />

dann teilt g auch jede Zahl der Form N + ks. Wenn also s nicht zu N teilerfremd<br />

<strong>und</strong> N zusammengesetzt ist, dann sind die Elemente der arithmetischen<br />

Progression N, N + s, N + 2s, · · · sicher allesamt nicht prim. Der folgende Algorithmus<br />

hält in diesem Fall mit einer Fehlermeldung an.<br />

Algorithmus 5.1.1 (stepnextprime) Eingabe: N, s. Steuerparameter ε 1 <strong>und</strong><br />

ε 2 , z.B. ε 1 = 10 −2 <strong>und</strong> ε 2 = 10 −10 .<br />

1. if ggT (N, s) > 1 then HALT mit Fehlermeldung;<br />

2. p := N;<br />

3. while ispseudoprime(p, ε 1 ) = false do p = p + s;<br />

4. if ispseudoprime(p, ε 2 ) = false GOTO 3.<br />

Ausgabe: p ist (mit Fehlerwahrscheinlichkeit ≤ ε 2 ) eine Primzahl in der arithmetischen<br />

Progression N, N +s, N +2s, · · ·; wahrscheinlich ist es sogar die kleinste<br />

Primzahl mit dieser Eigenschaft.<br />

Anders gesagt: p ist (mit Fehlerwahrscheinlichkein ≤ ε 1 ) eine Primzahl ≥ N,<br />

welche die Kongruenz p = N mod s erfüllt.<br />

71

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!