18.11.2013 Aufrufe

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

Elementare Zahlentheorie und Kryptographie

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Satz 5.1.2 (Primzahlen in arithmetischen Progressionen) Sei s zu N<br />

teilerfremd. Dann gibt es in der arithmetischen Progression<br />

unendliche viele Primzahlen.<br />

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

Der Erwartungswert für die Anzahl der Durchläufe der while-Schleife in obigem<br />

Algorithmus ist dann 2<br />

b<br />

log(N)<br />

ϕ(b) .<br />

Wenn überdies N eine 1000-Bit-Zahl ist, dann wird stepnextprime spätestens<br />

nach ein paar tausend Schritten eine Primzahl finden.<br />

Sei im folgenden random(b) eine ≈ b-Bit-Zufallszahl. Der Aufruf<br />

l := stepnextprime(random(b), 1)<br />

wird dann eine ≈ b-Bit-Zufallsprimzahl erzeugen. N := 1+random(B−b)·l wird<br />

dann eine B-Bit-Zufallszahl sein, die N = 1 mod l erfüllt. p := stepnextprime(N, l)<br />

ergibt eine zufällige Primzahl p, die p = 1 mod l erfüllt. Dann gilt l | p−1 = |F × p |.<br />

Da F × p zyklisch ist, muß es in F × p genau ϕ(l) = l − 1 Elemente der Ordnung l<br />

geben. Um das eingangs gestellte Problem vollständig zu lösen, muss nur noch<br />

ein solches Element g der Ordnung l gef<strong>und</strong>en werden. Dafür kann man den<br />

folgenden Satz verwenden.<br />

Satz 5.1.3 Sei p prim <strong>und</strong> l ein Primteiler von p − 1. Sei z ∈ F × p<br />

g := z (p−1)/l . Wenn g ≠ [1] gilt, dann gilt ord(g) = l.<br />

beliebig. Sei<br />

Beweis: Nach dem Satz von Fermat gilt g l = z p−1 = [1] <strong>und</strong> das impliziert<br />

ord(g) | l. Da l prim ist, muß ord(g) ∈ {1, l} gelten. Wenn g ≠ 1, dann folgt also<br />

ord(g) = l.<br />

□<br />

Für ein willkürlich gewähltes Element z ∈ F × p wird in aller Regel z p−1<br />

l<br />

ord(z) = l gelten. Wenn z p−1<br />

l<br />

sein. Dieses Polynom hat p−1<br />

l<br />

willkürlich gewähltes Element z die Gleichung z p−1<br />

l<br />

(Also z.B. ≈ 2 −300 , wenn l eine 300-Bit-Zahl ist.)<br />

≠ [1], also<br />

= [1] gilt, dann wird z Nullstelle von Z p−1<br />

l − [1]<br />

Nullstellen. Die Wahrscheinlichkeit dafür, daß ein<br />

= [1] erfüllt ist also nur 1/l.<br />

Der folgende Algorithmus stellt eine Lösung des eingangs gestellten Problems<br />

dar.<br />

Algorithmus 5.1.4 (Schlüsselerzeugung)<br />

Eingabe: b < B.<br />

l := stepnextprime(random(b), 1) (Dann ist l eine ≈ b-Bit-Zufallsprimzahl.)<br />

2 ϕ steht für die Eulersche ϕ-Funktion.<br />

72

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!