Metoda formei pătratice Shanks

Metoda formei pătratice Shanks  este o metodă de factorizare a numerelor întregi bazată pe utilizarea formelor pătratice , dezvoltată de Daniel Shanks [1] în 1975 , ca o dezvoltare a metodei de factorizare a lui Fermat .

Pentru computerele pe 32 de biți, algoritmii bazați pe această metodă sunt liderii incontestabil printre algoritmii de factorizare pentru numere de la până și probabil vor rămâne așa. [2] Acest algoritm poate împărți aproape orice număr compus de 18 cifre în mai puțin de o milisecundă. Algoritmul este extrem de simplu, frumos și eficient. În plus, metodele bazate pe acest algoritm sunt folosite ca auxiliare în extinderea divizorilor numerelor mari, cum ar fi numerele Fermat .

Istorie

Un alt nume pentru algoritm este SQUFOF ( un acronim pentru engleză este SQUare FORm Factorization), ceea ce înseamnă factorizare de formă pătratică . Această abordare a avut un succes destul de mare de-a lungul anilor și, ca urmare, destul de multe modificări și implementări diferite pot fi găsite pe acest subiect în literatură. [3] Majoritatea metodelor sunt complexe și confuze, mai ales atunci când metoda trebuie implementată pe un computer. Ca urmare, multe variante de algoritmi nu sunt potrivite pentru implementare. Cu toate acestea, în 1975, Daniel Shanks a propus să creeze un algoritm care poate fi implementat și utilizat nu numai pe un computer, ci și pe un simplu telefon mobil.

Deși Shanks a descris alți algoritmi pentru factorizarea întregilor, el nu a publicat nimic pe SQUFOF. A ținut prelegeri pe această temă și a explicat esența de bază a metodei sale unui cerc destul de restrâns de oameni. Unele lucrări ale altor oameni de știință [4] [3] [5] [6] au discutat despre algoritm, dar niciuna nu conține o analiză detaliată. De asemenea, este interesant că în metoda sa, Shanks face un număr destul de mare de presupuneri [7] , care, din păcate, au rămas fără dovezi. În [8] , sunt prezentate rezultatele unor experimente, care indică faptul că există multe ipoteze. În cele din urmă, pe baza acestor ipoteze simplificatoare, Shanks a reușit să creeze SQUFOF.

Definiții auxiliare

Pentru a înțelege modul în care este implementat acest algoritm, este necesar să se cunoască informațiile minime despre obiectele matematice utilizate în această metodă, și anume formele pătratice . O formă binară pătratică este un polinom în două variabile și :


Metoda Shanks folosește doar forme nedefinite . Prin noi înțelegem discriminantul unei forme pătratice. Vom spune că forma pătratică reprezintă un întreg dacă există numere întregi astfel încât egalitatea este adevărată: . Dacă egalitatea este adevărată , atunci reprezentarea se numește primitivă .

Pentru orice formă pătratică nedefinită , operatorul de reducere poate fi definit ca:

, unde  este definit ca un număr întreg , determinat în mod unic de condițiile: [8]

Rezultatul aplicării operatorului la formular se scrie ca . Operatorul este, de asemenea, definit ca:

, unde este definit în același mod ca în cazul precedent. Rețineți că, ca urmare a aplicării operatorilor și la o formă pătratică cu discriminant , formele pătratice rezultate vor avea și discriminant .

Metoda de obținere a unei forme reduse echivalentă cu aceasta a fost găsită de Carl Gauss și constă în aplicarea succesivă a operatorului de reducere până când acesta devine redus.

Teorema.

Fiecare formă este echivalentă cu o formă redusă, iar orice formă redusă pentru este egală cu o formă pozitivă . Dacă - este redus, atunci este și el redus.

De asemenea, pentru o înțelegere clară a tuturor operațiilor cu forme pătratice, avem nevoie de conceptele de forme pătratice, adiacente și ambigue.

Opțiuni

Ideea metodei Shanks este de a compara numărul de descompus cu o formă binară pătratică cu un discriminant , cu care se efectuează apoi o serie de transformări echivalente și trecerea de la formă la forma ambiguă . Apoi, va fi un divizor .

Prima variantă funcționează cu forme patratice binare pozitiv-definite ale unui discriminant negativ dat, iar în grupul clasei de formă găsește o formă ambig , care dă o factorizare a discriminantului. Complexitatea primei opțiuni este supusă adevărului ipotezei Riemann extinse . [9]

A doua variantă este SQUFOF, care utilizează un grup de clasă de forme pătratice binare cu un discriminant pozitiv. De asemenea, găsește forma ambig și factorizează discriminantul. Complexitatea SQUFOF echivalează cu operații aritmetice; algoritmul funcționează cu numere întregi care nu depășesc . Dintre algoritmii de factorizare cu complexitate exponențială, SQUFOF este considerat unul dintre cei mai eficienți. [9]

Scorul de convergență

Conform calculelor efectuate de Shanks însuși, numărul de iterații ale primului și celui de-al doilea ciclu al algoritmului este determinat de numărul de factori ai numărului și este aproximativ egal cu:

unde este o constantă egală cu aproximativ 2,4 pentru primul ciclu de iterații. [zece]

Descrierea algoritmului

Mai detaliat, algoritmul poate fi scris astfel: [11]

Intrare: un număr compus impar de factorizat. Dacă înlocuim cu Acum Ultima proprietate este necesară pentru ca determinantul formei pătratice să fie fundamental, ceea ce asigură convergența metodei.

Ieșire: divizor non-trivial .

1. Definiți forma pătratică originală , cu discriminant , unde . 2. Să executăm ciclul reducerilor până când forma devine pătrată. 3. Calculați rădăcina pătrată a 4. Să executăm ciclul reducerilor până când valoarea celui de-al doilea coeficient se stabilizează . Numărul de iterații ale acestei bucle ar trebui să fie aproximativ egal cu jumătate din numărul de iterații ale primei bucle. Ultima valoare va da divizorul numărului (posibil banal).

Implementarea algoritmului

Acum descriem algoritmul de implementare pe un computer. [11] Rețineți că, deși partea teoretică a algoritmului este legată de transformări echivalente ale formelor pătratice, partea practică a algoritmului se bazează pe calcularea coeficienților metodei fracțiunii continue fără a recurge la forme. Fiecare iterație a buclei corespunde unei operații de aplicare a operatorului de reducere la forma corespunzătoare. Dacă este necesar, puteți restaura formularele corespunzătoare folosind formulele:


Intrare: număr compus

Ieșire: divizor non-trivial

După cum am menționat deja, aceasta nu este singura implementare a acestui algoritm. De asemenea, puteți găsi implementarea algoritmului aici [8]

Un exemplu de factorizare a unui număr

Aplicam aceasta metoda pentru factorizarea numarului [8]

Ciclul #1
Ciclul #2

Acum puteți vedea în al doilea ciclu că De aici numărul

Aplicații

Acest algoritm este utilizat în multe implementări ale NFS și QS pentru a factoriza numere auxiliare mici care apar la factorizarea unui întreg mare. În orice caz, SQUFOF este folosit în principal ca algoritm de ajutor în algoritmi de factorizare mai puternici și, prin urmare, SQUFOF va fi utilizat în general pentru a factoriza numere de dimensiuni modeste care nu au divizori primi mici. Astfel de numere sunt de obicei produsul unui număr mic de numere prime diferite. [8] .

Note

  1. Pentru mai multe informații despre istoria acestei metode și legătura ei cu metoda fracției continue, vezi articolul lui Gover și Wagstaff (J. Gover, SS Wagstaff).
  2. Yike Guo, 1999 , High Performance Data Mining: Scaling Algorithms, Applications and Systems..
  3. 1 2 Hans Riesel, 1994 , Numerele prime și metodele computerizate pentru factorizare. Birkhauser, ediția a doua.
  4. Henri Cohen, 1996 , A Course in Computational Algebric Number Theory..
  5. D.A. Buell, 1989 , Binary Quadratic Forms.
  6. ^ Samuel S. Wagstaff Jr., 2003 , Criptanalysis of Number Theoretic Ciphers.
  7. De exemplu, în FACTORIZARE FORMĂ PATRATĂ JASON E. GOWER ȘI SAMUEL S. WAGSTAFF, JR. Ipoteza 4.12. la pagina 20, Ipoteza 4.5 la pagina 16, de asemenea la demonstrarea teoremelor de complexitate a algoritmului etc.
  8. 1 2 3 4 5 FACTORIZARE FORMĂ PATRATĂ, 2003 , FACTORIZARE FORMĂ PATRATĂ.
  9. 1 2 Vasilenko, 2003 , Number-theoretic algorithms in cryptography.
  10. Ishmukhametov, 2011 , Metode de factorizare pentru numere naturale: Manual.
  11. 1 2 Ishmukhametov, 2011 , Metode de factorizare pentru numere naturale: Manual p. 79-80.

Literatură

Vezi și