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.
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