Faktorbasen

Werbung
Dipl.-Math. Rick Schumann, Institut für Diskrete Mathematik und Algebra
Faktorbasen
Zur Faktorisierung einer Zahl n ∈ N nutzen wir folgendes Lemma der Vorlesung:
Lemma 2.39 Gibt es für ein n ∈ N Zahlen a, b ∈ Z mit
a2 ≡ b2 mod n und a 6≡ ±b mod n,
dann sind ggT (a + b, n) und ggT (a − b, n) nichttriviale Teiler von n.
Bsp.: Für n = 4633 gilt 1182 ≡ 52 mod 4633 und 118 6≡ ±5 mod n
⇒ Sowohl ggT(118 + 5, n) = 41 als auch ggT(118 − 5, n) = 113 sind Teiler von n = 41 · 113.
Idee: Suchen eine Menge von bi ’s mit der Eigenschaft, dass bi ’s mod n ein Produkt kleiner
Primzahlpotenzen sind, und gewisse bi ’s multipliziert ein b ergeben, für das b2 mod n eine
Quadratzahl ist.
Def.: Sei a, b, n ∈ Z mit −n/2 < a ≤ n/2 und a ≡ b mod n. Dann ist a der kleinste
absolute Rest von b bzgl n. Man bezeichnet ihn mit b mod n.
Def.: Eine Faktorbasis B = {p1 , . . . , ph } ist eine Menge von Primzahlen pi , wobei p1 = −1
erlaubt ist.
b2 ist eine B-Zahl (zu n), wenn b2 mod n als Produkt von Zahlen aus B geschrieben werden
kann.
Sei F2h der Vektorraum über dem Körper aus 2 Elementen, bestehend aus h-Tupeln über
{0, 1}.
Q
α
Für die B-Zahl b2 mit b2 mod n = hj=1 pj j definieren wir:
xj := αj mod 2
und erhalten einen Vektor x = (x1 , . . . , xh ) ∈ F2h .
Sei {b21 , . . . , b2k } eine Menge von B-Zahlen b2i , deren nach obigen Verfahren zugeordnete
Q
α
Vektoren xi sich zu 0 addieren und ai := b2i mod n = hj=1 pj ij
⇒
k
Y
ai =
i=1
Damit ergibt sich mit b :=
h
Y
Pk
pj
i=1
j=1
Qk
i=1 bi
αij
h
k
Y
1X
γj 2
= ( pj ) mit γj =
αij ∈ Z
2
j=1
i=1
mod n und c :=
Qh
j=1
γ
pj j mod n
b2 ≡ c2 mod n
Falls b ≡ ±c mod n müssen neue B-Zahlen gewählt werden.
Dipl.-Math. Rick Schumann, Institut für Diskrete Mathematik und Algebra
Es gibt mehrere Möglichkeiten, die bi ’s und B zu wählen:
• Wähle für B die ersten h Primzahlen (bzw. h − 1 Primzahlen und −1) und die bi
zufällig
• Wähle bi ’s so, dass b2i mod n klein ist und B passend dazu.
Algorithmus: (mit zufälliger Wahl der bi )
• Wähle ”mittelgroßes” y ∈ N
• Definiere B := {−1} ∪ {p ∈ P | p < y}
• Wahl zufälliger B-Zahlen bi und Bestimmung zugehöriger Vektoren xi aus F2h mit
h = π(y) + 1
• Wahl einer Teilmenge der xi die sich zum Nullvektor ergänzen
• Bilde b und c wie oben
• Wenn b ≡ ±c mod n wähle neue Teilmenge oder neue Menge von B-Zahlen
• Berechne ggT(b + c, n), dieser ist nichttrivialer Teiler von n
Dipl.-Math. Rick Schumann, Institut für Diskrete Mathematik und Algebra
Kettenbruchmethode
Zunächst betrachten wir folgenden Algorithmus zur Erzeugung von Kettenbrüchen für eine
Zahl x
Eingabe: x ∈ R+ , m ∈ N0
Ausgabe: ai ∈ N für i = 0, . . . , m und xm ∈ R, xm ≥ 0:
x = a0 +
1
a1 +
1
a2 +... a
1
m +xm
Algorithmus:
a0 = bxc, x0 = x − a0
for (i = 1 , i ≤ m , i = i + 1) do
ai = b1/xi−1 c
xi = 1/xi−1 − ai
if xi = 0 then
EXIT
end if
end for
Aufgabe
Bestimme den Kettenbruch von 1.13.
Def.: Mit obigen Bezeichnungen nennt man
q i = a0 +
1
a1 +
1
a2 +... a1
i
den i − ten Näherungsbruch von x.
Lemma
Mit obigen Bezeichnungen gilt:
a) qi ∈ Q+ und es existieren teilerfremde bi , ci ∈ N0 mit qi = bi /ci .
b) Für die bi aus a) gilt: b0 = a0 , b1 = a0 a1 + 1 und bi = ai bi−1 + bi−2 für i ≥ 2.
Satz
√
Sei n ∈ N keine Quadratzahl und bi /ci die Näherungsbrüche von n. Dann gilt für beliebiges i:
√
|b2i mod n| < 2 n
Damit sind diese bi als Ausgangspunkt einer Faktorisierung mittels der Faktorbasenmethode geeignet.
Herunterladen