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.
Führe Probedivision durch die Primzahlen ≤ B durch. Diese Primzahlen sollten<br />
vorab in einer Liste gespeichert werden. (Ein vernünftiger Wert für B wäre<br />
vielleicht B = 100 oder B = 1000.) Wenn schon dabei ein Teiler von N gef<strong>und</strong>en<br />
wird, dann gib “N ist nicht prim; (N hat sogar einen nicht-trivialen Teiler<br />
≤ B)” aus <strong>und</strong> halte an.<br />
Wähle t Werte a 1 , · · · a t ∈ {1, 2, · · · , N − 1}. Dies kann per Zufallsgenerator<br />
geschehen. M.E. wäre auch die Wahl a 1 = 2, a 2 = 3, · · · , a t = t + 1 nicht<br />
besonders nachteilig. (Ein vernünftiger Wert für t könnte t = 10 sein.)<br />
Prüfe für jede dieser Zahlen a i , ob a i ein Zeuge gegen die Primalität von N ist.<br />
Wenn dabei ein Zeuge gegen die Primalität gef<strong>und</strong>en wird, gib aus “N ist nicht<br />
prim (<strong>und</strong> dies wird durch a i bezeugt).”<br />
Wenn kein Zeuge gegen die Primalität gef<strong>und</strong>en wird, gib aus “N ist wahrscheinlich<br />
prim”.<br />
Sei ε die Fehlerwahrscheinlichkeit dieses Tests, d.h. die Wahrscheinlichkeit dafür,<br />
dass der Test auf zusammengesetztes N mit “wahrscheinlich prim” antwortet.<br />
Dies passiert genau dann, wenn N zusammengesetzt ist <strong>und</strong> bei t Wahlen<br />
a i ∈ {1, 2, · · · , N − 1} lauter Nicht-Zeugen gef<strong>und</strong>en wurden, obwohl höchstens<br />
1/4 der Elemente von {1, · · · N − 1} Nicht-Zeugen sind. Die Fehlerwahrscheinlichkeit<br />
erfüllt also ε ≤ (1/4) t (z.B ε ≤ 0.000095% für t = 10). Wenn man<br />
den Parameter t erhöht, dann verringert sich die Fehlerwahrscheinlichkeit auf<br />
Kosten der Laufzeit.<br />
Algorithmus 3.2.4 Zur Wahl einer großen Zufallsprimzahl wählt man eine<br />
Zufallszahl M <strong>und</strong> wendet den Miller-Rabin-Test mit Parameter t 1 (t 1 hier nicht<br />
allzu groß, vielleicht t 1 = 5 oder t 1 = 10) auf M, M + 1, M + 2, · · · an, bis das<br />
Ergebnis “M + k ist wahrscheinlich prim” erzielt wird.<br />
Wer auf Nummer sicher gehen will, wird vielleicht abschließend noch einmal<br />
einen Miller-Rabin-Test auf M + k anwenden, aber jetzt mit sehr hohem Parameter<br />
t 2 (z.B. t 2 = 30). Sollte die Antwort dann wider aller Erwartungen “M +k<br />
ist nicht prim” lauten, so beginnt man noch einmal von vorne. Anderenfalls ist<br />
M + k mit sehr hoher Wahrscheinlichkeit prim.<br />
3.3 RSA<br />
Wir erläutern nun das <strong>Kryptographie</strong>verfahren RSA. Dies war das erste Public-<br />
Key-Verfahren <strong>und</strong> ist bis heute das wichtigste.<br />
Alice möchte sich von jemandem, sagen wir Bob, oder sogar von jedermann verschlüsselt<br />
Nachrichten schicken lassen können. Sie (bzw. die auf Ihrem Rechner<br />
installierte Software) wählt dazu zwei große Zufalls-Primzahlen p <strong>und</strong> q (hier<br />
kann sie den Miller-Rabin-Test 3.2.3 verwenden) mit p ≠ q <strong>und</strong> bildet das Produkt<br />
N = pq. Derzeit (2007) gilt es als sicher, mit Primzahlen p <strong>und</strong> q jeweils<br />
51