Pollards Rho-Methode zur Faktorisierung

Werbung
CARL
VON
OSSIETZKY
Pollards Rho-Methode zur
Faktorisierung
Abschlusspräsentation Bachelorarbeit
Janosch Döcker
Carl von Ossietzky Universität Oldenburg
Department für Informatik
Abteilung Parallele Systeme
Inhaltsverzeichnis
1 Einleitung
2 Hintergrund
3 Das Verfahren
4 Experimente
5 Fazit
6 Referenzen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
2/37
Übersicht
1 Einleitung
2 Hintergrund
3 Das Verfahren
4 Experimente
5 Fazit
6 Referenzen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
3/37
Das Faktorisierungsproblem
Definition (Faktorisierungsproblem)
Gegeben: Eine zusammengesetzte Zahl N ≥ 4
Gesucht: Die Primfaktorzerlegung von N
Faktorisierungsproblem vermutlich nicht effizient lösbar
Praktische Relevanz: Sicherheit von RSA
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
4/37
Wichtige Fakten zur Rho-Methode
1975 von John M. Pollard beschrieben
Probabilistisches Verfahren
Laufzeit abhängig von der Größe der Primfaktoren
Analyse basiert auf Annahmen
1980 von Richard P. Brent verbessert
8
Faktorisierung der Fermatzahl F8 = 22 + 1 =
115 792 089 237 316 195 423 570 985 008 687 907 853
269 984 665 640 564 039 457 584 007 913 129 639 937
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
5/37
Übersicht
1 Einleitung
2 Hintergrund
3 Das Verfahren
4 Experimente
5 Fazit
6 Referenzen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
6/37
Pseudozufallszahlen
Philosophische Frage: Gibt es echten Zufall?
Pseudozufallszahlen deterministisch erzeugt
Bekannte Methode: Linearer Kongruenzgenerator (LKG)
Entwickelt von Derrick H. Lehmer
LKG: xi+1 = (axi + c) mod m mit x0 ∈ {0, 1, . . . , m − 1}
Ausreichende Zufälligkeit“ für viele Anwendungen . . .
”
. . . wenn die Parameter gut gewählt sind.
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
7/37
Linearer Kongruenzgenerator
LKG hat Schwachstellen unabhängig von der Parameterwahl
G. Marsaglia: Random numbers fall mainly in the planes“ (1968)
”
Beispiel: xi+1 = (169xi + 17) mod 512
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
8/37
Quadratischer Kongruenzgenerator(QKG)
Vorgeschlagen von Donald E. Knuth
QKG: xi+1 = (axi2 + dxi + c) mod m mit x0 ∈ {0, 1, . . . , m − 1}
Beispiel: xi+1 = (18xi2 + 23xi + 17) mod 512
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
9/37
Vergleich zwischen LKG und QKG
LKG einfacher zu berechnen
LKG linear, QKG nicht linear
Pseudozufallszahlen erscheinen beim QKG zufälliger“
”
Beide Generatoren erzeugen schließlich periodische Folgen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
10/37
Beispiel: Schließlich periodische Folge

x0 = 2, xi+1 = (xi2 + 1) mod 131
Länge der Vorperiode: 4



Periodenlänge: 7







Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
11/37
Floyds Algorithmus
M endliche Menge, f : M → M, C ∈ M
Anwendbar auf schließlich periodische Folgen der Form:
x0 = C ,
xi+1 = f (xi )
Bestimmung eines Vielfachen der Periodenlänge
Auffinden eines wiederkehrenden Elements
?
Idee: xk = x2k für k = 1, 2, . . .
Nach Floyd: x0 = y0 = C , xi+1 = f (xi ), yi+1 = f (f (yi ))
Sehr geringer Speicherverbrauch
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
12/37
Beispiel: Floyds Algorithmus


x0 = 2, xi+1 = (xi2 + 1) mod 131
k
1
2
3
4
5
6
7
xk
5
26
22
92
81
12
14

yk = x2k
26
92
12
66
109
81
14








Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
13/37
Übersicht
1 Einleitung
2 Hintergrund
3 Das Verfahren
4 Experimente
5 Fazit
6 Referenzen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
14/37
Wonach sucht die Rho-Methode?
Sei N ≥ 4 eine zusammengesetzte Zahl und p ein (unbekannter)
Primfaktor von N.
Gesucht: x, y ∈ Z mit x ≡ y (mod p) und x 6≡ y (mod N)
Es gilt per definitionem:
(1) x ≡ y (mod p) ⇔ p | (x − y )
(2) x 6≡ y (mod N) ⇔ N - (x − y )
Aus (1) und (2) folgt: 1 < ggT (x − y , N) < N
Wichtiges Hilfsmittel: Euklidischer Algorithmus
Wie können solche x, y (sinnvoll) bestimmt werden?
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
15/37
Herleitung der Rho-Methode
Sei f (x) eine ganzzahlige Polynomfunktion und S ∈ Z
Folge von Pseudozufallszahlen: x0 = S, xi+1 = f (xi ) mod N
Schließlich periodisch: x̃0 = S, x̃i+1 = f (x̃i ) mod p
x̃k ≡ xk (mod p) für k ≥ 0
x̃k = x̃2k ⇒ xk ≡ x2k (mod p) ⇒ p | ggT (xk − x2k , N)
Wie bei Floyds Algorithmus: y0 = S, yi+1 = f (f (yi ) mod N) mod N
?
?
Unterschied: ggT (xk − yk , N) > 1 anstatt xk = yk
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
16/37
Beispiel Rho-Methode
Gesucht: Primfaktorzerlegung von N = 74539
Parameter: x0 = y0 = 2, f (x) = (x 2 + 1) mod N
k
1
2
3
4
5
6
7
xk = f (xk−1 )
5
26
677
11096
57328
536
63680
yk = f (f (yk−1 ))
26
11096
536
71723
13078
3880
23332
ggT (xk − yk , N)
1
1
1
1
1
1
131
Damit ergibt sich N = 131 · 569.
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
17/37
Eine einfache Implementierung
def pollard_rho(n)
x = y = 2
d = 1
begin
x = (x * x + 1) % n
y = (y * y + 1) % n
y = (y * y + 1) % n
d = (x - y).gcd(n)
end until d > 1
puts d < n ? "Gefundener Faktor: #{d}" : "Fehlschlag!"
end
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
18/37
Demonstration
Demonstration der (kompletten) Implementierung anhand:
N1 = 662 835 905 978 993 515 936 337
N2 = 1 424 842 450 293 704 631 855 941 378 617 365 082
792 870 362 961 939 468 399 779 353 800 137 802
539 831 394 422 161 828 003 733 369 548 864 158
809 441 716 321
Welche Zahl wird schneller in Primfaktoren zerlegt?
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
19/37
Verallgemeinertes Geburtstagsproblem
Keine Analyse ohne Annahmen bekannt
Intuitiver Zugang: Verallgemeinertes Geburtstagsparadoxon
Definition (Verallgemeinertes Geburtstagsproblem)
Wie viele ganze Zahlen müssen zufällig gewählt werden, damit x ≡ y
(mod p) für mindestens zwei der Zahlen mit Wahrscheinlichkeit ≥ 21 gilt?
Wahrscheinlichkeit, dass
q Zufallszahlen
paarweise inkongruent
Qq−1 q(q−1)
i
modulo p sind: i=1 1 − p ≈ exp(− 2p )
1
Lösung von exp(− q(q−1)
2p ) = 2 : q =
Janosch Döcker
1
2
+
q
1
4
Pollards Rho-Methode zur Faktorisierung
√
+ 2p ln 2 ≈ 1.18 p
27. Mai 2011
20/37
Geburtstagsparadoxon
1
Wahrscheinlichkeit zwei gleiche Geburtstage
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
Janosch Döcker
20
40
60
Anzahl zufällig ausgewählter Personen
Pollards Rho-Methode zur Faktorisierung
80
100
27. Mai 2011
21/37
Hintergrund von Pollards Analyse
Sei M := {0, 1, . . . , m − 1}.
Knuth untersuchte Folgen der Form xi+1 = f (xi ) mit
I zufälligem Startwert x0 ∈ M und
I zufälliger Abbildung f : M → M.
Unter anderem zeigte er:
I Mittlere Länge der Vorperiode: µ ≈
I Mittlere Periodenlänge: λ ≈
Janosch Döcker
p πm
8
p πm
+
8
1
3
−
2
3
√
≈ 0.626657 m
√
≈ 0.626657 m
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
22/37
Pollards Analyse
Sei (x̃i ) die Folge der Rho-Methode modulo p.
Form: x̃i+1 = f (x̃i ) mod p mit ganzzahliger Polynomfunktion f (x)
Annahme: f (x) mod p ist zufällige“ Abbildung von Zp in sich
”
Gesucht: Mittelwert des kleinsten k > 0 mit x̃k = x̃2k
Pollard zeigte unter der erwähnten Annahme:
5
√
π2 √
k(p) ≈ √ p ≈ 1.030809 p
12 2
Für lineare Polynomfunktionen ist die Annahme nicht plausibel.
Pollard empfiehlt f (x) = x 2 + c mit c 6= 0, −2.
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
23/37
Übersicht
1 Einleitung
2 Hintergrund
3 Das Verfahren
4 Experimente
5 Fazit
6 Referenzen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
24/37
Experimente
Folge der Form: x̃i+1 = (x̃i2 + c) mod p
Eigenschaften von (x̃i ):
I Länge der Vorperiode: µ(p)
I Periodenlänge: λ(p)
I Kleinstes k > 0 mit x̃k = x̃2k : k(p)
Pollard untersuchte (x̃i ) mit x̃0 = 2 und c = −1 empirisch.
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
25/37
Die Funktion aµ (n) für c = 1
aµ (n) =
1
|{p∈P:p≤n}|
P
p∈P
p≤n
µ(p)
√
p
0.63
0.62
aµ(n)
0.61
0.6
0.59
0.58
x0 = 2
x0 zufällig
0.57
0
1e+006
2e+006
3e+006
4e+006
5e+006
n
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
26/37
Die Funktion aλ (n) für c = 1
aλ (n) =
1
|{p∈P:p≤n}|
P
p∈P
p≤n
λ(p)
√
p
0.65
x0 = 2
x0 zufällig
0.645
0.64
aλ(n)
0.635
0.63
0.625
0.62
0.615
0
1e+006
2e+006
3e+006
4e+006
5e+006
n
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
27/37
Die Funktion ak (n) für c = 1
ak (n) =
1
|{p∈P:p≤n}|
P
p∈P
p≤n
k(p)
√
p
1.035
1.03
1.025
ak(n)
1.02
1.015
1.01
1.005
x0 = 2
x0 zufällig
1
0.995
0
1e+006
2e+006
3e+006
4e+006
5e+006
n
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
28/37
Die Funktion ak (n) für c = 0
ak (n) =
1
|{p∈P:p≤n}|
P
p∈P
p≤n
k(p)
√
p
25
20
ak(n)
15
10
5
x0 = 2
x0 zufällig
0
0
100000
200000
300000
400000
500000
n
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
29/37
Die Funktion ak (n) für c = −2
ak (n) =
1
|{p∈P:p≤n}|
P
p∈P
p≤n
k(p)
√
p
20
18
16
14
ak(n)
12
10
8
6
x0 = 3
x0 zufällig
4
2
0
0
100000
200000
300000
400000
500000
n
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
30/37
Probedivision vs. Rho-Methode
120
Probedivision
Rho−Methode
Akkumulierte Rechenzeit [s]
100
80
60
40
20
0
10
Janosch Döcker
20
30
40
50
60
Länge n der Binärdarstellung der getesteten Zahlen
Pollards Rho-Methode zur Faktorisierung
70
80
27. Mai 2011
31/37
Übersicht
1 Einleitung
2 Hintergrund
3 Das Verfahren
4 Experimente
5 Fazit
6 Referenzen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
32/37
Fazit
Sehr gut zum Entfernen kleiner Primfaktoren
Deutlich schneller als Faktorisierung durch Probedivision
Kombination mit asymptotisch schnelleren Verfahren
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
33/37
Übersicht
1 Einleitung
2 Hintergrund
3 Das Verfahren
4 Experimente
5 Fazit
6 Referenzen
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
34/37
Referenzen und weiterführende Literatur I
John M. Pollard. A monte carlo method for factorization. BIT
Numerical Mathematics, 15:331–334, 1975.
Donald E. Knuth. Seminumerical Algorithms. Band 2 von The Art of
Computer Programming. Zweite Auflage, Addison-Wesley, 1981.
Otto Forster. Algorithmische Zahlentheorie. Vieweg, 1996.
Hans Riesel. Prime Numbers and Computer Methods for Factorization.
Birkhäuser, 1985.
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
35/37
Referenzen und weiterführende Literatur II
Henri Cohen. A course in computational algebraic number theory.
Springer, 1996.
Richard P. Brent. An improved monte carlo factorization algorithm.
BIT Numerical Mathematics, 20:176–184, 1980.
Richard P. Brent und John M. Pollard. Factorization of the eighth
fermat number. Mathematics of Computation, 36:627–630, 1981.
R.L. Rivest und A. Shamir und L. Adleman. A Method for Obtaining
Digital Signatures and Public-Key Cryptosystems. Communications of
the ACM, 21:120–126, 1978.
George Marsaglia. Random numbers fall mainly in the planes.
Proceedings of the National Academy of Sciences, 61:25–28, 1968.
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
36/37
Vielen Dank für Ihre Aufmerksamkeit!
Janosch Döcker
Pollards Rho-Methode zur Faktorisierung
27. Mai 2011
37/37
Herunterladen