Sito kwadratowe

Wikipedia:Weryfikowalność
Ten artykuł od 2021-11 wymaga zweryfikowania podanych informacji.
Należy podać wiarygodne źródła w formie przypisów bibliograficznych.
Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte.
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu.
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.

Sito kwadratowe (ang. Quadratic Sieve) – najszybszy znany algorytm do faktoryzacji liczb, które są krótsze niż 110 cyfr dziesiętnych.[1]

Algorytm

Algorytm ten jest ukonkretnieniem metody sita liczbowego. Załóżmy, że szukamy czynników liczby n . {\displaystyle n.}

  1. Szukamy par ( a i , b i ) , {\displaystyle (a_{i},b_{i}),} takich, że:
    • a i 2 b i ( mod n ) , {\displaystyle a_{i}^{2}\equiv b_{i}\,(\operatorname {mod} n),}
    • b i {\displaystyle b_{i}} rozkłada się w „bazie czynników” (inaczej „bazie rozkładu”).
  2. Znajdujemy pary ( a i 1 , b i 1 ) , ( a i 2 , b i 2 ) , . . . ( a i k , b i k ) , {\displaystyle (a_{i_{1}},b_{i_{1}}),(a_{i_{2}},b_{i_{2}}),...(a_{i_{k}},b_{i_{k}}),} takie, że:
    • a = j = 1... k a i j , {\displaystyle a=\prod _{j=1...k}a_{i_{j}},}
    • b = j = 1... k b i j = c 2 {\displaystyle b=\prod _{j=1...k}b_{i_{j}}=c^{2}} dla pewnego c . {\displaystyle c.}
  3. Wtedy a 2 c 2 , {\displaystyle a^{2}\equiv c^{2},} więc jeśli a ± c , {\displaystyle a\not \equiv \pm c,} to NWD ( a + c , n ) {\displaystyle \operatorname {NWD} \,(a+c,n)} jest nowym dzielnikiem liczby n . {\displaystyle n.}

Szukanie par

Niech

m = n {\displaystyle m=\lfloor {\sqrt {n}}\rfloor }

i

W ( x ) = ( x + m ) 2 n . {\displaystyle W(x)=(x+m)^{2}-n.}

Dla x = 0 , ± 1 , ± 2 , . . . {\displaystyle x=0,\pm 1,\pm 2,...} liczymy:

a i = x + m , {\displaystyle a_{i}=x+m,}
b i = W ( x ) = ( x + m ) 2 n , {\displaystyle b_{i}=W(x)=(x+m)^{2}-n,}

wtedy

b i a i 2 . {\displaystyle b_{i}\equiv a_{i}^{2}.}

Z wygenerowanych w ten sposób par należy brać te, dla których b i {\displaystyle b_{i}} rozkłada się w bazie rozkładu.

Można też zauważyć, że jeśli

p b i , {\displaystyle p\mid b_{i},}

to

( x + m ) 2 n ( mod p ) , {\displaystyle (x+m)^{2}\equiv n\,(\operatorname {mod} p),}

więc n {\displaystyle n} musi być resztą kwadratową modulo p {\displaystyle p} (wystarczy do bazy czynników brać tylko takie p {\displaystyle p} ).

Inne wersje

Istnieją dwie szybsze wersje tego algorytmu występujące pod nazwami:

  1. Wielokrotnie wielomianowe sito kwadratowe (ang. Multiple Polynomial Quadratic Sieve).
  2. Wielokrotnie wielomianowe sito kwadratowe dla podwójnie dużych liczb pierwszych (ang. Double Large Prime Variation of the Multiple Polynomial Quadratic Sieve).

Obecnie najszybszym algorytmem faktoryzacyjnym dla liczb o większych długościach jest algorytm GNFS (ang. General Number Field Sieve; ogólne sito ciała liczbowego)[2]. Inne algorytmy faktoryzacji zostały wyparte przez dwie wyżej wymienione modyfikacje.

Przypisy

  1. The Quadratic Sieve Factoring Algorithm [online] [dostęp 2023-07-07]  (ang.).
  2. CarlC. Pomerance CarlC., A Tale of Two Sieves [online] [dostęp 2023-07-07]  (ang.).
  • p
  • d
  • e
Teoria liczb
ogólne typy liczb
relacje
podzielność
zdefiniowane podzielnością
działania
liczby pierwsze
podstawy
testy pierwszości
sita
faktoryzacja
hipotezy
równania
diofantyczne
liniowe
kwadratowe
wyższych stopni
układy równań
powiązane zagadnienia
twierdzenia
arytmetyki modularnej
inne zagadnienia
twierdzenia limitacyjne