Shanksova kvadratická tvarová metoda

Shanksova metoda kvadratické formy  je metoda faktorizace pro celá čísla založená na použití kvadratických forem , kterou vyvinul Daniel Shanks [1] v roce 1975 jako vývoj Fermatovy metody faktorizace .

U 32bitových počítačů jsou algoritmy založené na této metodě nesporným lídrem mezi faktorizačními algoritmy pro čísla od do a pravděpodobně tomu tak zůstane. [2] Tento algoritmus dokáže rozdělit téměř jakékoli 18místné složené číslo za méně než milisekundu. Algoritmus je velmi jednoduchý, krásný a efektivní. Kromě toho se metody založené na tomto algoritmu používají jako pomocné při rozšiřování dělitelů velkých čísel, jako jsou Fermatova čísla .

Historie

Jiný název pro algoritmus je SQUFOF ( zkratka pro angličtinu je SQUare FORm Factorization), což znamená kvadratická tvarová faktorizace . Tento přístup byl v průběhu let poměrně úspěšný a v důsledku toho lze na toto téma v literatuře nalézt mnoho různých modifikací a implementací. [3] Většina metod je složitá a matoucí, zvláště když je třeba metodu implementovat na počítači. V důsledku toho mnoho variant algoritmů není vhodných pro implementaci. V roce 1975 však Daniel Shanks navrhl vytvořit algoritmus , který lze implementovat a používat nejen na počítači, ale také na jednoduchém mobilním telefonu.

Ačkoli Shanks popsal další algoritmy pro celočíselnou faktorizaci, na SQUFOF nic nepublikoval. Na toto téma přednášel a poměrně úzkému okruhu lidí vysvětlil základní podstatu své metody. Některé práce jiných vědců [4] [3] [5] [6] pojednávaly o algoritmu, ale žádná neobsahuje podrobnou analýzu. Zajímavé také je, že Shanks ve své metodě vyvozuje poměrně velké množství předpokladů [7] , které bohužel zůstaly bez důkazů. V [8] jsou uvedeny výsledky některých experimentů, které naznačují, že existuje mnoho předpokladů. Nakonec, na základě těchto zjednodušujících předpokladů, byl Shanks schopen vytvořit SQUFOF.

Pomocné definice

Abychom pochopili, jak je tento algoritmus implementován, je nutné znát minimum informací o matematických objektech používaných v této metodě, konkrétně o kvadratických formách . Binární kvadratická forma je polynom ve dvou proměnných a :


Shanksova metoda používá pouze neurčité formy . Máme na mysli diskriminant kvadratické formy. Řekneme, že kvadratická forma představuje celé číslo , pokud existují celá čísla taková , že rovnost platí: . Pokud je rovnost pravdivá , pak se reprezentace nazývá primitivní .

Pro jakýkoli neurčitý kvadratický tvar lze operátor redukce definovat jako:

, kde  je definováno jako celé číslo , jednoznačně určené podmínkami: [8]

Výsledek jednorázového použití operátoru na formulář se zapíše jako . Operátor je také definován jako:

, kde je definováno stejným způsobem jako v předchozím případě. Všimněte si, že v důsledku použití operátorů a na kvadratickou formu s diskriminantem budou mít výsledné kvadratické formy také diskriminant .

Metodu pro získání redukované formy ekvivalentní této metodě nalezl Carl Gauss a spočívá v postupné aplikaci redukčního operátoru, dokud se nezredukuje.

Teorém.

Každá forma je ekvivalentní nějaké redukované formě a jakákoli redukovaná forma for je rovna nějaké kladné . Je- li - sníženo, pak je rovněž sníženo.

Pro jasné pochopení všech operací s kvadratickými formami potřebujeme také koncepty čtvercových, sousedních a nejednoznačných kvadratických forem.

Možnosti

Myšlenkou Shanksovy metody je porovnat číslo , které se má rozložit, s kvadratickou binární formou s diskriminantem , se kterým se pak provede řada ekvivalentních transformací a přechod z formy do nejednoznačné formy . Potom bude dělitel .

První varianta pracuje s pozitivně-definitivními binárními kvadratickými formami daného negativního diskriminantu a ve skupině tříd forem najde ambigovou formu , která dává faktorizaci diskriminantu. Složitost první možnosti je podřízena pravdivosti rozšířené Riemannovy hypotézy . [9]

Druhou variantou je SQUFOF, která využívá třídní skupinu binárních kvadratických forem s kladným diskriminantem. Najde také ambigovou formu a faktorizuje diskriminant. Složitost SQUFOF se rovná aritmetickým operacím; algoritmus pracuje s celými čísly nepřesahujícími . Mezi faktorizačními algoritmy s exponenciální složitostí je SQUFOF považován za jeden z nejúčinnějších. [9]

Skóre konvergence

Podle výpočtů provedených samotným Shanksem je počet iterací prvního a druhého cyklu algoritmu určen počtem faktorů čísla a je přibližně roven:

kde je konstanta rovna přibližně 2,4 pro první cyklus iterací. [deset]

Popis algoritmu

Podrobněji lze algoritmus zapsat následovně: [11]

Vstup: Liché složené číslo pro rozklad. Pokud nahradíme Now Poslední vlastnost je nutná k tomu, aby determinant kvadratického tvaru byl fundamentální, což zajišťuje konvergenci metody .

Výstup: Netriviální dělitel .

1. Definujte původní kvadratickou formu , s diskriminantem , kde . 2. Proveďme cyklus zmenšení, dokud se tvar nestane čtvercovým. 3. Vypočítejte druhou odmocninu z 4. Proveďme cyklus redukcí, dokud se hodnota druhého koeficientu nestabilizuje . Počet iterací této smyčky by se měl přibližně rovnat polovině počtu iterací první smyčky. Poslední hodnota bude dělit dělitel čísla (možná triviální).

Implementace algoritmu

Nyní popíšeme algoritmus pro implementaci na počítači. [11] Všimněte si, že ačkoliv teoretická část algoritmu souvisí s ekvivalentními transformacemi kvadratických forem, praktická část algoritmu je založena na výpočtu koeficientů metody spojitého zlomku bez použití forem. Každá iterace smyčky odpovídá jedné operaci aplikace redukčního operátoru na odpovídající formulář. V případě potřeby můžete obnovit odpovídající formuláře pomocí vzorců:


Vstup: Složené číslo

Výstup: Netriviální dělitel

Jak již bylo zmíněno, nejedná se o jedinou implementaci tohoto algoritmu. Implementaci algoritmu naleznete také zde [8]

Příklad rozkladu čísla na rozklad

Tuto metodu použijeme k rozkladu čísla [8]

Cyklus #1
Cyklus #2

Nyní můžete ve druhém cyklu vidět, že Proto to číslo

Aplikace

Tento algoritmus se používá v mnoha implementacích NFS a QS k faktorizaci malých pomocných čísel, která vznikají při faktorizaci velkého celého čísla. V každém případě se SQUFOF používá hlavně jako pomocný algoritmus v výkonnějších faktorizačních algoritmech, a proto bude SQUFOF obecně používán k faktorizaci čísel o malé velikosti, která nemají malé prvočíselníky. Taková čísla jsou obvykle součinem malého počtu různých prvočísel. [8] .

Poznámky

  1. Více informací o historii této metody a jejím spojení s metodou pokračovacího zlomku naleznete v článku Govera a Wagstaffa (J. Gover, SS Wagstaff).
  2. Yike Guo, 1999 , High Performance Data Mining: Scaling Algorithms, Applications and Systems.
  3. 1 2 Hans Riesel, 1994 , Prvočísla a počítačové metody faktorizace. Birkhauser, druhé vydání.
  4. Henri Cohen, 1996 , Kurz výpočetní algebraické teorie čísel.
  5. D.A. Buell, 1989 , Binary Quadratic Forms.
  6. Samuel S. Wagstaff Jr., 2003 , Kryptoanalýza čísel teoretických šifer.
  7. Například ve FAKTORIZÁCI ČTVRTNÝCH FOREM JASON E. GOWER A SAMUEL S. WAGSTAFF, JR. Předpoklad 4.12. na straně 20, Předpoklad 4.5 na straně 16, také při dokazování teorémů o složitosti algoritmu atd.
  8. 1 2 3 4 5 FAKTORIZACE ČTVRTNÝCH FOREM, 2003 , FAKTORIZACE ČTVRTNÝCH FOREM.
  9. 1 2 Vasilenko, 2003 , Číselné teoretické algoritmy v kryptografii.
  10. Ishmukhametov, 2011 , Faktorizační metody pro přirozená čísla: Učebnice.
  11. 1 2 Ishmukhametov, 2011 , Faktorizační metody pro přirozená čísla: Učebnice s. 79-80.

Literatura

Viz také