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