1 Probedivision 2 p − 1-Methode 3 Das Quadratische Sieb

Werbung
Faktorisierung
J.B. Thomas
27.06.2017
In allen Verfahren sei n eine natürliche Zahl, von der bereits bekannt ist, dass sie zusammengesetzt
ist.
1 Probedivision
Wähle eine beliebige, aber feste Schranke B und bestimme alle P 3 p ≤ B. Finde anschließend
durch Ausprobieren für alle p den größtmöglichen Exponenten e(p), für den p die Zahl n teilt.
2 p − 1-Methode
Voraussetzung: B ist beliebige, aber feste Schranke. p − 1 hat ausschließlich Primfaktorpotenzen
kleiner oder gleich B, wobei p ∈ Tn . Bestimme k durch
Y
k=
qe.
q∈P,q e ≤B
Nach dem kleinen Satz von Fermat gilt jetzt
ak ≡ 1
mod p
für alle a mit ggT (a, p) = 1. Daraus folgt, dass p ein echter Teiler von ak − 1 ist. Ist ak − 1 wiederum
nicht durch n teilbar, hat man mit ggT (ak − 1, n) einen echten Teiler von n bestimmt. Wurde auf
diese Weise kein echter Teiler von n bestimmt, muss im nächsten Anlauf die Schranke B nach oben
modifiziert werden.
3 Das Quadratische Sieb
Die Grundidee beim Quadratischen Sieb ist, dass ein x und ein y derart bestimmt werden, dass
x2 ≡ y 2
mod n
x 6≡ y
mod n
Daraus folgt, dass n ein Teiler von x2 − y 2 , aber nicht von x + y oder x − y ist. Damit ist g =
ggT (x − y, n) ein echter Teiler von n. Die Aufgabe des Siebes ist es also, x und y zu bestimmen.
Dazu müssen zunächst einige Dinge definiert werden:
√
m = b nc
f (X) = (X + m)2 − n
F (B) = {p ∈ P : p ≤ B} ∪ {−1}
S = {C, C − 1, ..., 0, 1, ..., C}
Dabei sind B und C beliebige, aber feste natürliche Zahlen. Ziel ist es, Werte s ∈ S zu finden, für
die f (s) B-glatt ist, d.h. ausschließlich Primfaktoren in F (B) hat. Hat man genauso viele B-glatten
Werte f (s) gefunden, wie Elemente in F (B) enthalten sind, beginnt man mit der Bestimmung von
x und y.
1
Faktorisierung
J.B. Thomas
27.06.2017
Da f (s) nach Voraussetzung nur kleine Primfaktoren p ∈ F (B) hat, kann man die Eigenschaft
(s + m)2 ≡ f (s)
mod n
(1)
nutzen, um so x und y zu bestimmen, indem man Kongruenzen der verschiedenen Werte f (s) (zerlegt
in ihre Primfaktoren) derart multipliziert, dass auf der rechten Seite der Kongruenz ein Quadrat
steht. Schreibe die Kongruenz zunächst in allgemeiner Form:
((s1 + m1 ) · (s2 + m2 ) · ... · (sv + mv ))2 ≡ (pj1 · pk2 · ... · plw )2
mod n.
Dann ist
x = (s1 + m1 ) · (s2 + m2 ) · ... · (sv + mv )
mod n
und
y = pj1 · pk2 · ... · plw
mod n
Wie oben bereits beschrieben, bekommt man nun durch
g = ggT (x − y, n)
einen echten Teiler von n.
Bestimme alle Werte f (s) mit s ∈ S. Betrachte für jedes p ∈ F (B) die Werte f (s) mit s ∈
{0, 1, ..., p − 1} und ermittle bis zu zwei Werte f (s), die durch p teilbar sind. Ist ein f (sp ) gefunden,
das durch p teilbar ist, sind auch alle anderen f (s) durch p teilbar, für die gilt, dass
s = sp + k · p
wobei k ∈ Z.
Ermittle nun die miteinander zu multiplizierenden Kongruenzen, indem folgendes Produkt aus den
Primfaktoren der B-glatten f (s) aufgestellt wird:
b
z Y
Y
(
phdi )λi
d
i=1 d=1
wobei gilt
hdi ∈ N0 , pd ∈ F (B)
z = Anzahl der W erte f (s)
b = Anzahl der Elemente der F aktorbasis
λs ∈ {0, 1}
Bestimme die verschiedenen λi derart, dass im Produkt ausschließlich gerade Exponenten enthalten
sind. Schreibe dazu das obige Produkt folgendermaßen um:
P
p1
h1i ·λi
P
· p2
h2i ·λi
P
· ... · pb
hbi ·λi
Stelle mit den Exponenten ein lineares Kogruenzgleichungssystem über dem Körper Z/2Z auf.
X
h1i · λi ≡ 0
mod 2
X
h2i · λi ≡ 0
..
.
mod 2
X
hdi · λi ≡ 0
mod 2
Vereinfache, indem die Koeffizienten hdi modulo 2 reduziert werden. Die λ, die am Ende den Wert
1 haben, zeigen an, welche Werte von f (s) miteinander multipliziert werden müssen.
2
Herunterladen