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.