Metoda de sită a câmpurilor de numere speciale ( în engleză special number field sieve , SNFS) este o metodă de factorizare a numerelor întregi de un tip special. Din aceasta a fost derivată metoda sită a câmpului numeric general , care este cel mai eficient algoritm de factorizare pentru numere întregi mari . Metoda este eficientă pentru numere întregi de forma r e ± s , unde r N s Z, r și s sunt mici (de exemplu numere Mersenne ).
Estimarea euristică a complexității factorizării numărului n este exprimată prin formula [1] :
Folosind SNFS, numărul Fermat care conține 155 de cifre zecimale [2] a fost factorizat .
Ideea de bază a metodei a fost propusă pentru prima dată John Pollard articolul său [3] pe care l-a trimis colegilor săi în 1988. În acesta, și-a ilustrat metoda pe al șaptelea număr Fermat . Ideea a fost să se efectueze cernerea nu pe un inel de numere întregi, ca în metoda sităi pătratice , ci pe un câmp numeric algebric. În 1990, al nouălea număr Fermat a fost descompus folosind această metodă . Inițial, metoda era aplicabilă numai pentru numerele de formă specială 2 n ± c , motiv pentru care a fost numită „metoda cu sită de câmp de numere speciale”. Metoda a fost ulterior modificată pentru numere arbitrare și a numit metoda generală a sită numerică .
SNFS se bazează pe metoda sită rațională mai simplă . Cititorul este încurajat să se familiarizeze cu această metodă înainte de a afla despre SNFS.
SNFS funcționează așa. Fie n numărul de factorizat. Similar cu metoda sită rațională, algoritmul SNFS poate fi împărțit în două etape:
Al doilea pas este identic cu pasul din metoda sită rațională și este o problemă de algebră liniară . Spre deosebire de primul pas, care în această metodă este mai eficient.
Fie n un număr factorizabil. Luați un polinom ireductibil f și un număr întreg m astfel încât f ( m ) ≡ 0 ( mod n ) (principiile de alegere a acestora vor fi explicate în secțiunea următoare). Fie α rădăcina lui f ; atunci există un inel Z [α]. Apoi există un inel de homomorfism φ între Z [ α ] și Z /n Z care mapează α la m . Pentru simplitate, presupunem că Z [ α ] este un inel factorial ; metoda poate fi modificată pentru cazul în care această condiție nu este îndeplinită, ceea ce va duce la calcule suplimentare.
Apoi creăm două baze de factori , una pentru Z [ α ] și una pentru Z. Baza factorului Z [ α ] conține toate numerele prime Z [ α ] a căror dimensiune este limitată de . Baza factorului Z , ca și în metoda sităi raționale, constă din numere prime până la un număr limită.
Apoi căutăm numere coprime ( a , b ) astfel încât:
Aceste perechi de numere se găsesc printr-o metodă de cernere asemănătoare cu sita lui Eratosthenes ; aceasta explică denumirea metodei sită câmp numeric.
Pentru fiecare astfel de pereche de numere ( a , b ) putem aplica inelul de homomorfism φ pentru a factoriza a + bα și inelul de homomorfism canonic de la Z la Z /n Z pentru a factoriza a + bm . Echivalându-le, obținem relații multiplicative pentru elementele bazei factorilor Z /n Z . După ce am găsit un număr suficient de astfel de rapoarte, le înmulțim între ele, așa cum este descris mai sus.
Nu orice număr este potrivit pentru factorizare prin metoda SNFS: este necesar să se găsească în prealabil un polinom f de un grad adecvat (se presupune că gradul optim este ; pentru numerele factorizabile la momentul dat, N este 4,5 sau 6) cu coeficienți mici și x astfel încât , unde N este numărul pentru factorizare . De asemenea, x trebuie să fie astfel încât să fie valabil pentru a și b nu mare .
Unul dintre tipurile de numere pentru care există astfel de polinoame sunt numerele de forma ; de exemplu, când NFSNET a descompus numărul 3^479+1, au folosit polinomul x^6+3 pentru x=3^80, deoarece (3^80)^6+3 = 3^480+3 și .
Numerele definite prin relații de recurență liniare, cum ar fi numerele Fibonacci și numerele Lucas , au și polinoame SNFS, dar sunt puțin mai dificil de obținut. De exemplu, are un polinom și o valoare x care satisface . [patru]
Dacă cunoașteți câțiva divizori ai unui număr SNFS mare, puteți face calcule SNFS pentru restul; pentru exemplul de mai sus din NFSNET, 3^479+1 = (4 158071 7167757 7759574882776161031) ori un număr compus de 197 de cifre (divizorii mici au fost eliminați prin metoda ECM ), iar SNFS a fost aplicat pentru un număr de 197 cifre. Numărul de operații pentru NFS depinde de mărimea numărului original, dar unele calcule sunt mai rapide modulo un număr mai mic.
Această metodă, după cum sa menționat mai sus, este foarte eficientă pentru numerele de forma r e ± s , unde r și s sunt relativ mici. Este eficient și pentru numerele care pot fi reprezentate ca un polinom cu coeficienți mici. Faptul este că metoda de sită specială a câmpurilor numerice cerne pentru două câmpuri numerice. Eficacitatea metodei depinde foarte mult de dimensiunea anumitor elemente din aceste domenii. Dacă un număr poate fi reprezentat ca un polinom cu coeficienți mici, numerele care sunt calculate sunt mult mai mici decât numerele cu care trebuie să se ocupe dacă un astfel de polinom nu există.