Shanks` Verfahren zur Faktorisierung: „Square

Werbung
Shanks’ Verfahren zur Faktorisierung:
„Square Forms Factorization“
Bachelorarbeit
Björn Wolff
Universität Oldenburg
3. Juni 2011
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
Übersicht
Einleitung
Zahlentheoretische Grundlagen
Das Verfahren
Implementierung
Parallelisierung
Fazit
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
Einleitung
Einleitung
I
„Square Forms Factorization“ (SQUFOF)
I
1975 von Daniel Shanks entwickelt
I
Jedoch nie offiziell veröffentlicht
I
Basiert auf Faktorisierung mit Hilfe der Legendre-Kongruenz
I
Nutzt die Kettenbruchentwicklung von
I
Theorie der binären quadratischen Formen
Björn Wolff
√
Bachelorarbeit: SQUFOF
N
3. Juni 2011
1 / 49
Zahlentheoretische Grundlagen
Zahlentheoretische Grundlagen
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
2 / 49
Zahlentheoretische Grundlagen
Zahlentheoretische Grundlagen
Inhalt
I
Legendre-Kongruenz
I
Kettenbrüche
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
3 / 49
Zahlentheoretische Grundlagen
Legendre-Kongruenz
Legendre-Kongruenz
I
x 2 ≡ y 2 (mod N), für N ∈ N
I
Triviale Lösung: x ≡ ± y (mod N)
I
Ist N zusammengesetzt,
I
dann existieren weitere nicht-triviale Lösungen
I
diese können zur Faktorisierung benutzt werden
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
4 / 49
Zahlentheoretische Grundlagen
Legendre-Kongruenz
Legendre-Kongruenz
I
Basiert auf: x 2 ≡ y 2 (mod N) ⇒ N | (x 2 − y 2 )
I
Mit binomischer Formel: N | (x + y )(x − y )
I
Da N = pq:
I
pq | (x + y )(x − y )
I
Daher muss p | (x + y ) und q | (x − y ) oder p | (x − y ) und q | (x + y )
I
Dann gilt p = ggT ((x + y ), N) und q = ggT ((x − y ), N)
I
Viele Faktorisierungsverfahren nutzen diese Tatsache
I
Suche nach Lösungen für die Kongruenz unterscheidet sich
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
5 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Kettenbrüche
Definition: Kettenbruch
Ein Bruch heißt Kettenbruch, wenn er folgende Form besitzt:
1
x = b0 +
1
b1 +
b2 +
= [b0 ; b1 , b2 , b3 , . . . ]
1
b3 + . . .
mit x ∈ R, bi ∈ Z, für alle i ∈ N0 .
I
Rekursiv:
x0 = x; b0 = bx0 c
1
; bi = bxi c
∀i ≥ 1 : xi =
xi−1 − bi−1
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
6 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Kettenbrüche
Definition: Kettenbruchentwicklung der Quadratwurzel
Für eine nicht quadratische Zahl
√ N ∈ Z ist die reguläre
Kettenbruchentwicklung von N rekursiv definiert als
x0 =
√
N, bi = bxi c, xi+1 =
1
,
(xi − bi )
wobei bi ∈ Z und xi ∈ R, für alle i ∈ N0 , gilt. In Perron-Darstellung ist also
√
N = [b0 ; b1 , b2 , . . . ], wobei bi > 0 für i ∈ N0 .
I
I
Durch
√
N erzeugte Kettenbrüche sind unendlich
√
√
Beispiele: 2 = [1; 2], 52 = [7; 4, 1, 2, 1, 4, 14]
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
7 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Kettenbruch: Beispiel
Für N = 52 ergibt sich x0 =
Berechnungen liefern:
x1 =
x2 =
x3 =
x4 =
Björn Wolff
√
√
52 und b0 = b 52c = 7. Weitere
√
√
1
1( 52 + 7)
52 + 7
√
=
=
=4 +
3
3
52 − 7
√
√
3
52 + 5
3( 52 + 5)
√
=
=1 +
=
27
9
52 − 5
√
√
9
9( 52 + 4)
52 + 4
√
=
=
=2 +
36
4
52 − 4
√
√
4
4( 52 + 4)
52 + 4
√
=
=
=1 +
36
9
52 − 4
Bachelorarbeit: SQUFOF
√
√
√
√
52 − 5
3
52 − 4
9
52 − 4
4
52 − 5
9
3. Juni 2011
8 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
√
√
√
9
9( 52 + 5)
52 + 5
52 − 7
x5 = √
=
=
=4 +
27
3
3
52 − 5
√
√
3
3( 52 + 7) √
x6 = √
=
= 52 + 7 =14 + 52 − 7
3
52 − 7
√
√
√
1
1( 52 + 7)
52 + 7
52 − 5
=
=
=4 +
= x1
x7 = √
3
3
3
52 − 7
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
9 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
√
√
√
9
9( 52 + 5)
52 + 5
52 − 7
x5 = √
=
=
=4 +
27
3
3
52 − 5
√
√
3
3( 52 + 7) √
x6 = √
=
= 52 + 7 =14 + 52 − 7
3
52 − 7
√
√
√
1
1( 52 + 7)
52 + 7
52 − 5
=
=
=4 +
= x1
x7 = √
3
3
3
52 − 7
√
I
52 = [7; 4, 1, 2, 1, 4, 14]
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
9 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
√
√
√
9
9( 52 + 5)
52 + 5
52 − 7
x5 = √
=
=
=4 +
27
3
3
52 − 5
√
√
3
3( 52 + 7) √
x6 = √
=
= 52 + 7 =14 + 52 − 7
3
52 − 7
√
√
√
1
1( 52 + 7)
52 + 7
52 − 5
=
=
=4 +
= x1
x7 = √
3
3
3
52 − 7
√
I
I
52 = [7; 4, 1, 2, 1, 4, 14]
Symmetrie
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
9 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Kettenbrüche
Satz: Rekursive Formeln zur Berechnung
√
Sei N ∈ Z. Mit den Startwerten b0 = P1 = b Nc √
und Q0 = 1 lassen sich
die Teilbrüche xi der Kettenbruchentwicklung von N, für jedes i ∈ N, mit
den ineinander verschachtelten rekursiven Formeln
N − Pi2
,
Qi−1
√
N + Pi
xi =
,
Qi
Pi+1 = bi Qi − Pi ,
Qi =
bestimmen. Es
j √ist damit
k möglich, die bi in jedem Iterationsschritt mit
N+Pi
bi = bxi c =
zu berechnen.
Qi
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
10 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Kettenbrüche
Satz: Periodische Kettenbrüche
Für jede nicht quadratische ganze
√ Zahl N ist die reguläre
Kettenbruchentwicklung von N periodisch.
I
Beweis durch Abschätzung der möglichen Werte für Qi und Pi :
I
I
√
N, da bi = b Nc
√
i +1
Qi = Pi +P
<2 N
bi
Pi <
√
I
Anzahl
möglicher
Brüche ist somit beschränkt auf:
√
√
b Nc · 2b Nc < 2N
I
Periode kann maximal eine Länge von 2N − 1 haben
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
11 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Näherungsbrüche
Definition: Näherungsbruch
√
Sei N = [b0 ; b1 , b2 , . . . ] eine Kettenbruchentwicklung in PerronDarstellung. Wird der Kettenbruch an einer bestimmten Stelle n ∈ N0 , je
nach benötigter Genauigkeit der Approximation, abgeschnitten, so heißt der
dadurch berechnete Bruch
An
= b0 +
Bn
1
b1 +
= [b0 ; b1 , . . . , bn ]
1
··· +
1
bn
√
n-ter Näherungsbruch von N. Hierbei gilt An , Bn ∈ N und N ist eine
nicht quadratische ganze Zahl.
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
12 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Näherungsbruch: Beispiel
√
Gegeben sei die Entwicklung 52 = [7; 4, 1, 2, 1, 4, 14] aus vorigem
Beispiel. Soll der 6-te Näherungsbruch bestimmt werden, so kann dies wie
folgt gemacht werden:
i
bi
Ai
Bi
-1
1
0
0
7
7
1
1
4
29
4
2
1
36
5
3
2
101
14
4
1
137
19
5
4
649
90
6
14
9223
1279
A−1 = 1; A0 =b0 ; An =bn An−1 + An−2
B−1 = 0; B0 =1; Bn =bn Bn−1 + Bn−2
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
13 / 49
Zahlentheoretische Grundlagen
Kettenbrüche
Näherungsbruch: Beispiel
√
Gegeben sei die Entwicklung 52 = [7; 4, 1, 2, 1, 4, 14] aus vorigem
Beispiel. Soll der 6-te Näherungsbruch bestimmt werden, so kann dies wie
folgt gemacht werden:
i
bi
Ai
Bi
-1
1
0
0
7
7
1
1
4
29
4
2
1
36
5
3
2
101
14
4
1
137
19
5
4
649
90
6
14
9223
1279
A−1 = 1; A0 =b0 ; An =bn An−1 + An−2
B−1 = 0; B0 =1; Bn =bn Bn−1 + Bn−2
I
Somit ist
√
Björn Wolff
52 ≈
9223
1279
=
A6
B6
Bachelorarbeit: SQUFOF
3. Juni 2011
13 / 49
Das Verfahren
Das Verfahren
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
14 / 49
Das Verfahren
Das Verfahren
Inhalt
I
Algorithmus
I
Beispiel
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
15 / 49
Das Verfahren
Algorithmus
Algorithmus
I
Ausgelegt auf Faktorisierung von zusammengesetzten Zahlen mit zwei
„großen“ Primfaktoren
I
Hauptbereich: 36- bis 64-Bit-Zahlen
I
Kettenbruchvariante des Verfahrens von Hans Riesel
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
16 / 49
Das Verfahren
Algorithmus
Algorithmus
Ablauf
I
Berechnung der Kettenbruchentwicklung mit
$√
bi =
N + Pi
Qi
%
,
Pi+1 = bi Qi − Pi ,
Q1 = N − P12 ,
Qi+1 = Qi−1 + (Pi − Pi+1 )bi
I
I
I
Suche nach einer Quadratzahl R 2 in der Kettenbruchentwicklung von
√
N
A2n−1 ≡ Qn = R 2 (mod N)
Suche
nach einem Symmetriepunkt in der Kettenbruchentwicklung von
√
N
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
17 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Quadratzahl
√
√
Für N = 78731 ergibt sich x0 = 78731, b0 = b 78731c = 280 und
weiter:
√
√
78731 + 280
78731 − 51
1
=1 +
x1 = √
=
331
331
78731 − 280
√
√
331
78731 + 51
78731 − 179
x2 = √
=
=1 +
230
230
78731 − 51
...
√
338
78731 + 147
x8 = √
=
169
78731 − 147
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
18 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Quadratzahl
√
√
Für N = 78731 ergibt sich x0 = 78731, b0 = b 78731c = 280 und
weiter:
√
√
78731 + 280
78731 − 51
1
=1 +
x1 = √
=
331
331
78731 − 280
√
√
331
78731 + 51
78731 − 179
x2 = √
=
=1 +
230
230
78731 − 51
...
√
338
78731 + 147
x8 = √
=
169
78731 − 147
I
Quadratzahl: Q8 = 169 = 132
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
18 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Quadratzahl
√
√
Für N = 78731 ergibt sich x0 = 78731, b0 = b 78731c = 280 und
weiter:
√
√
78731 + 280
78731 − 51
1
=1 +
x1 = √
=
331
331
78731 − 280
√
√
331
78731 + 51
78731 − 179
x2 = √
=
=1 +
230
230
78731 − 51
...
√
338
78731 + 147
x8 = √
=
169
78731 − 147
I
Quadratzahl: Q8 = 169 = 132
I
Wichtig: Index i muss gerade sein
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
18 / 49
Das Verfahren
Beispiel
Beispiel
Berechnung der Faktoren
I
Kettenbruchentwicklung
bis zur
√
Quadratzahl: 78731 = [280; 1, 1, 2, 3, 1, 3, 1]
i
bi
Ai
-1
1
Björn Wolff
0
280
280
1
1
281
2
1
561
3
2
1403
4
3
4770
Bachelorarbeit: SQUFOF
5
1
6173
6
3
23289
7
1
29462
3. Juni 2011
19 / 49
Das Verfahren
Beispiel
Beispiel
Berechnung der Faktoren
I
Kettenbruchentwicklung
bis zur
√
Quadratzahl: 78731 = [280; 1, 1, 2, 3, 1, 3, 1]
i
bi
Ai
I
-1
1
0
280
280
1
1
281
2
1
561
3
2
1403
4
3
4770
5
1
6173
6
3
23289
7
1
29462
A27 = 294622 ≡ 169 = 132 = Q8 (mod 78731)
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
19 / 49
Das Verfahren
Beispiel
Beispiel
Berechnung der Faktoren
I
Kettenbruchentwicklung
bis zur
√
Quadratzahl: 78731 = [280; 1, 1, 2, 3, 1, 3, 1]
i
bi
Ai
-1
1
0
280
280
1
1
281
2
1
561
3
2
1403
4
3
4770
5
1
6173
I
A27 = 294622 ≡ 169 = 132 = Q8 (mod 78731)
I
ggT ((29462 + 13), 78731) = 131 und
ggT ((29462 − 13), 78731) = 601
Björn Wolff
Bachelorarbeit: SQUFOF
6
3
23289
7
1
29462
3. Juni 2011
19 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Symmetriepunkt
I
Shanks’ Überlegungen zur Bestimmung der Faktoren
I
Modifikation des letzten Terms der Kettenbruchentwicklung
√
I
√
I
√
78731+147
169
wird zu
78731−147
13
= 10 +
Björn Wolff
√
78731−147
13
78731−277
13
Bachelorarbeit: SQUFOF
3. Juni 2011
20 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Symmetriepunkt
y1 =
y2 =
y3 =
y4 =
√
13
78731 + 277
√
=
=3 +
154
78731 − 277
√
154
78731 + 185
√
=
=1 +
289
78731 − 185
√
78731 + 104
289
√
=
=1 +
235
78731 − 104
√
235
78731 + 131
√
=1 +
=
262
78731 − 131
Björn Wolff
Bachelorarbeit: SQUFOF
√
√
√
√
78731 − 185
154
78731 − 104
289
78731 − 131
235
78731 − 131
262
3. Juni 2011
21 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Symmetriepunkt
I
P3 = 131 = P4
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
22 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Symmetriepunkt
I
P3 = 131 = P4
I
Da Q4 gerade:
Björn Wolff
Q4
2
=
262
2
= 131
Bachelorarbeit: SQUFOF
3. Juni 2011
22 / 49
Das Verfahren
Beispiel
Beispiel
Suche nach Symmetriepunkt
I
P3 = 131 = P4
I
Da Q4 gerade:
I
78731 = 131 · 601
Björn Wolff
Q4
2
=
262
2
= 131
Bachelorarbeit: SQUFOF
3. Juni 2011
22 / 49
Implementierung
Implementierung
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
23 / 49
Implementierung
Implementierung
Inhalt
I
Methode zur Faktorisierung
I
Tests zur Laufzeit
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
24 / 49
Implementierung
Methode zur Faktorisierung
Methode zur Faktorisierung
I
1. Schleife: Suche nach Quadratzahl
public s t a t i c BigInteger f a c t o r i z e ( BigInteger n) {
...
f o r ( i n t i = 1; i <= maxCycles ; i++) {
b = sqrtN . add(p0 ) . divide (q1 ) ;
p1 = b . multiply (q1 ) . subtract (p0 ) ;
q2 = q0 . add(p0 . subtract (p1 ) . multiply (b ) ) ;
listCandidate = q1 ;
q0 = q1 ;
q1 = q2 ;
p0 = p1 ;
i f (( listCandidate . compareTo( sqrt2sqrtN ) == −1)
&& ( listCandidate . compareTo(ONE) == 1)) {
l i s t . add( listCandidate );}
i f (( i % 2) == 1) {
sqrtQ1 = sqrt (q1 ) ;
i f (( sqrtQ1 .pow( 2 ) . equals (q1))) {
i f ( ( ! l i s t . contains (sqrtQ1 ))
&& (sqrtQ1 . compareTo(ONE) ==1)) {
break ; }}}
...
}
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
25 / 49
Implementierung
Methode zur Faktorisierung
Methode zur Faktorisierung
I
2. Schleife: Suche nach Symmetriepunkt
q0 = sqrtQ1 ;
b = sqrtN . subtract (p0 ) . divide (q0 ) ;
p0 = b . multiply (q0 ) . add(p0 ) ;
q1 = n . subtract (p0 .pow( 2 ) ) . divide (q0 ) ;
f o r ( i n t i = 1; i <= secCycles ; i++) {
b = sqrtN . add(p0 ) . divide (q1 ) ;
p1 = b . multiply (q1 ) . subtract (p0 ) ;
q2 = q0 . add(p0 . subtract (p1 ) . multiply (b ) ) ;
q0 = q1 ;
tmp = p0 ;
p0 = p1 ;
q1 = q2 ;
i f (tmp. equals (p1)) {
i f ( ! q0 . testBit (0)) {
q0 = q0 . divide (TWO) ;
}
return q0 ;
}
...
}
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
26 / 49
Implementierung
Tests zur Laufzeit
Tests zur Laufzeit
I
36- bis 64-Bit-Zahlen
I
64- bis 100-Bit-Zahlen
I
Besondere Zahlen
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
27 / 49
Implementierung
Tests zur Laufzeit
36- bis 64-Bit-Zahlen
Größe der Zahlen [Bit]
Berechnungszeit(∅) [ms]
Björn Wolff
36
13
42
32
Bachelorarbeit: SQUFOF
48
80
54
137
64
258
3. Juni 2011
28 / 49
Implementierung
Tests zur Laufzeit
64- bis 100-Bit-Zahlen
Größe der Zahlen [Bit]
Berechnungszeit(∅) [ms]
Björn Wolff
64
258
70
615
Bachelorarbeit: SQUFOF
80
3353
90
9818
100
132528
3. Juni 2011
29 / 49
Implementierung
Tests zur Laufzeit
Besondere Zahlen
I
Zusammengesetzte Zahlen mit bestimmter Struktur werden schneller
faktorisiert als andere
I
Durch empirische Versuche bestimmt: N = (a2 m + c)(b2 m + d )
I
Mit a, b, c, d werden zwei etwa gleichgroße Primzahlen beschrieben,
die nah an m liegen
I
Der Spezialfall N = p(p + 2a), mit p, a ∈ N und 0 < a <
Folgenden getestet
Björn Wolff
Bachelorarbeit: SQUFOF
√
p wird im
3. Juni 2011
30 / 49
Implementierung
Tests zur Laufzeit
Besondere Zahlen
Bit
36
42
48
54
64
I
Zusammengesetzte Zahl N
17490462623
3209359435561
98189063930959
35506157532969293
7889941993004993536
p
131893
1790149
9905911
188417071
2808851063
N = p(p + 2a), wobei p, a ∈ N und 0 < a <
Björn Wolff
Bachelorarbeit: SQUFOF
p + 2a
132611
1792789
9912169
188444483
2808957049
√
∅ [ms]
1,00
1,33
1,33
1,67
1,33
p
3. Juni 2011
31 / 49
Implementierung
Tests zur Laufzeit
Besondere Zahlen
I
N = p(p + 2a), wobei p, a ∈ N und 0 < a <
Björn Wolff
Bachelorarbeit: SQUFOF
√
p
3. Juni 2011
32 / 49
Implementierung
Tests zur Laufzeit
Vorführung
I
N1 = 923485606685672008805989842584990592120422
13921215611856340781417074743669323
I
N2 = 582649062654603126469285879
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
33 / 49
Parallelisierung
Parallelisierung
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
34 / 49
Parallelisierung
Parallelisierung
Inhalt
I
Multiplikatoren
I
Segmente
I
Vergleich
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
35 / 49
Parallelisierung
Multiplikatoren
Multiplikatoren
I
Bereits 1982 machten Shanks und Cohen erste Versuche mit
Multiplikatoren
I
Auf mehreren Recheneinheiten läuft der selbe Algorithmus
I
Jede Recheneinheit bekommt einen anderen Multiplikator zugewiesen
I
Als Multiplikatoren dienen kleine Zahlen (z.B. 2N, 3N, 5N)
I
Ziel: Perioden mit kürzerer Länge als die der Hauptperiode zu finden
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
36 / 49
Parallelisierung
Segmente
Segmente
I
2005 von Stephen McMath entwickelt und getestet
I
Basiert auf Komposition von binären quadratischen Formen f
I
Nach wenigen Schritten der Kettenbruchentwicklung wird mehrfach
die Wurzel gezogen, wodurch mehrere Segmente entstehen
I
Die verschiedenen Recheneinheiten bekommen von einer Recheneinheit
Segmente zugeteilt (z.B. f -f 2 , f 2 -f 3 )
I
Ziel: Innerhalb der Segmente Perioden mit kürzerer Länge zu finden
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
37 / 49
Parallelisierung
Vergleich
Vergleich
Laufzeit Segmente
Bit
80
100
120
I
20
5,04
157,27
5416,97
Anzahl an Prozessoren
30
40
50
3,03
2,53
2,13
116,76
74,50
77,67
4287,37 2690,76 2538,80
Halbierung der Laufzeit zwischen 20 und 40 Prozessoren
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
38 / 49
Parallelisierung
Vergleich
Vergleich
Laufzeit Multiplikatoren
Bit
80
100
120
I
20
2,95
82,62
3255,65
Anzahl an Prozessoren
30
40
50
1,95
1,68
1,23
59,75
52,90
53,60
2028,72 1683,57 1287,80
Nur geringere Verbesserung im Vergleich zu Segmenten
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
39 / 49
Parallelisierung
Vergleich
Vergleich
I
Weitere Beobachtungen:
I
Effizienz der Segmente wird bei steigender Prozessoranzahl nicht
beeinträchtigt
I
Bei Multiplikatoren sinkt die Effizienz mit steigender Prozessoranzahl
I
Ab 180 Prozessoren sollten die Segmente den Multiplikatoren
überlegen sein, weil die Effizienz nicht sinkt
I
Diese Grenze liegt wahrscheinlich niedriger, da die Multiplikatoren
zunehmend größer werden
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
40 / 49
Fazit
Fazit
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
41 / 49
Fazit
Fazit
I
Obwohl Parallelisierungen möglich sind, ist SQUFOF den heutigen
Verfahren unterlegen (Berechnungszeit RSA-768: 6, 667 · 1024 Jahre)
I
Dennoch ist SQUFOF leicht zu implementieren und benötigt wenig
Speicher (3 Register möglich)
I
Im Bereich von 36- bis 64-Bit immer noch konkurrenzfähig und wird in
diesem Bereich auch weiterhin genutzt
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
42 / 49
Anhang
Vielen Dank für die Aufmerksamkeit!
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
43 / 49
Anhang
Literatur
I
Shanks, Daniel: SQUFOF notes, 1975 (von McMath digitalisierte
Aufzeichnungen)
I
Shanks, Daniel: The infrastructure of a real quadratic field and its
applications. Proceedings of the Number Theory Conference, Seiten
217-224, 1972.
I
Gower, Jason und Samuel Wagstaff: Square Forms Factorization.
Mathematics of Computation, 77: 551-588, 2008.
I
McMath, Stephen: Parallel integer factorization using quadratic
forms, 2005.
I
Riesel, Hans: Prime Numbers and Computer Methods for
Factorization. Birkhäuser, 1985.
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
44 / 49
Anhang
Näherungsbrüche
Satz: Rekursive Formeln
√
Der Zähler An und der Nenner Bn des n-ten Näherungsbruch von N, für
alle
√ n ∈ N, können mit den bi aus der Kettenbruchentwicklung von
N = [b0 ; b1 , . . . , bn , . . . ] wie folgt bestimmt werden:
Wenn die Werte
A−1 = 1, A0 = b0 ,
B−1 = 0, B0 = 1
gesetzt werden, so lässt sich der Näherungsbruch
An
Bn
bestimmen mit
An = bn An−1 + An−2 ,
Bn = bn Bn−1 + Bn−2 .
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
45 / 49
Anhang
Vergleich
Bit
80
100
120
Anzahl an Prozessoren
20
30
40
50
0,39 0,38 0,39 0,30
0,37 0,34 0,43 0,40
0,35 0,31 0,29 0,39
I
Prozent der schnelleren Faktorisierungen mit der Segmentmethode
I
Multiplikatoren sind überlegen
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
46 / 49
Anhang
Binäre quadratische Formen
Definition: Binäre quadratische Form
Eine quadratische Form in zwei Variablen, X und Y , wird als binäre
quadratische Form bezeichnet. Es handelt sich dabei um ein Polynom der
Form
f (X , Y ) = aX 2 + bXY + cY 2 ,
(1)
wobei a, b, c ∈ Z gilt. Abkürzend wird das Polynom dargestellt als
f = (a, b, c).
Björn Wolff
Bachelorarbeit: SQUFOF
(2)
3. Juni 2011
47 / 49
Anhang
Beispiel: Verfahren mit quadratischen Formen
√
Sei N = 78731. Somit ist P1 = b0 = b Nc = 280, Q0 = 1 und
Q1 = N − b02 = 78731 − 2802 = 331.
f1 = (Q1 , P2 , −Q2 ) = (1, 280, −331)
f2 = (−Q2 , P3 , Q3 ) = (−331, 51, 230)
f3 = (Q3 , P4 , −Q4 ) = (230, 179, −203)
f4 = (−Q4 , P5 , Q5 ) = (−203, 227, 134)
f5 = (Q5 , P6 , −Q6 ) = (134, 175, −359)
f6 = (−Q6 , P7 , Q7 ) = (−359, 184, 125)
f7 = (Q7 , P8 , −Q8 ) = (125, 191, −338)
f8 = (−Q8 , P9 , Q9 ) = (−338, 147, 132 )
An dieser Stelle wird die Quadratzahl 169 = 132 gefunden.
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
48 / 49
Anhang
Beispiel: Verfahren mit quadratischen Formen
Nun lässt sich
1
f − 2 = (−13, 147, 4394)
bestimmen und zu
g0 = (−S−1 , R0 , S0 ) = (−13, 277, 154)
reduzieren. Die weitere Berechnung liefert:
g1 = (S0 , R1 , −S1 ) = (154, 185, −289)
g2 = (−S1 , R2 , S2 ) = (−289, 104, 235)
g3 = (S2 , R3 , −S3 ) = (235, 131, −262)
g4 = (−S3 , R4 , S4 ) = (−262, 131, 235)
Hier kann der Algorithmus abgebrochen werden, da R3 = R4 ist. Somit
wird der nicht-triviale Faktor S23 = 262
2 = 131 bestimmt und durch Division
erhält man den zweiten Faktor, also insgesamt: 78731 = 131 · 601.
Björn Wolff
Bachelorarbeit: SQUFOF
3. Juni 2011
49 / 49
Herunterladen