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.

Beweis. Sei wieder x := 1 2 (p + q) <strong>und</strong> y := 1 2 (p − q). Sei m = ⌈√ N⌉. Dann<br />

wird die While-Schleife in obigem Algorithmus k = x − m mal durchlaufen.<br />

Wir wollen k nach oben abschätzen. Offenbar gilt y ≤<br />

4√ √ α<br />

2 N, d.h. y 2 ≤ α2<br />

4 N.<br />

Ferner gilt<br />

Daraus folgt<br />

y 2 = x 2 − N = m 2 + 2km + k 2 − N ≥ 2km ≥ 2k √ N.<br />

α 2 √ √<br />

N ≥ 2k N,<br />

4<br />

also k ≤ α2<br />

4 . □<br />

Beispiel. Nehmen wir an, p <strong>und</strong> q sind 500-Bit-Zahlen (insbes. ist N = pq eine<br />

1000-Bit-Zahl) <strong>und</strong> p − q ist nur eine 255-Bit-Zahl. Dann haben p <strong>und</strong> q exakt<br />

die selbe Bitlänge <strong>und</strong> die ersten 245 Dualziffern stimmen überein. (D.h. p <strong>und</strong><br />

q liegen sehr nah beisammen.)<br />

Nun ist 4√ N eine 250-Bit-Zahl,<br />

4√<br />

N ≈ 2 250 , <strong>und</strong> mit α = 2 6 wird sicher p − q ≤<br />

α 4√ N gelten. Die Fermat-Faktorisierungsmethode wird also nur α 2 /8 = 2 9 =<br />

512 Schritte benötigen, um die Teiler von N zu finden. Diese Rechnung läßt sich<br />

völlig problemlos auf einem handelsüblichen Laptop durchführen!<br />

Beispiel. Ganz anders verhält es sich mit der Laufzeit, wenn q eine 500-Bit-<br />

Zahl <strong>und</strong> p um ein paar Bit länger (etwa eine 252-Bit-Zahl) ist als q: Nehmen<br />

wir an, p ≥ 4q (also etwa p um zwei Bit länger als q). Dann gilt<br />

x − √ N = 1 2 (p + q) − √ pq = 1 2 (√ p − √ q) 2 ≥ 1 2 (√ 4q − √ q) 2 = q 2 ,<br />

d.h. das Fermat-Faktorisierungsverfahren würde hier ≈ 2 500 Schritte benötigen!<br />

Dies ist nach dem heutigen Stand der Technik völlig unpraktikabel!<br />

Sicherheitsvorkehrung für RSA. Um einen Angriff via Fermat-Faktorisierung<br />

abzuwehren, soll man als RSA-Modul ein Produkt N = pq von großen Primzahlen<br />

nehmen, wobei p um ein paar Bit größer sein sollte als q.<br />

3.5 Faktorisierung mit der (p − 1)-Methode von<br />

Pollard<br />

Mit der (p − 1)-Methode von Pollard kann man, unter gewissen Umständen,<br />

für eine gegebene (große) zusammengesetzte natürliche Zahl N einen nichttrivialen<br />

Teiler t von N finden. “Nicht-trivial” soll “mit t ∈ {2, · · · , N − 1}”<br />

bedeuten. Wiederholte Anwendung kann evtl. auf die gesamte Faktorisierung<br />

von N führen.<br />

Sei B ≥ 0. Eine Zahl n heißt B-glatt, wenn es keine Primzahlpotenz q > B<br />

gibt, die Teiler von n ist. (Z.B. ist 96 = 2 5 ·3 nicht 10-glatt (2 5 = 32 ist ja größer<br />

als 10), wohl aber 40-glatt.) Die p−1-Methode funktioniert für solche N gut, die<br />

einen Primfaktor p haben, für den p − 1 B-glatt ist, mit einer nicht allzugroßen<br />

56

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!