# Dixons factorisatiemethode

In de getaltheorie, een deelgebied van de wiskunde, wordt de Dixons factorisatiemethode (ook wel Dixons algoritme genoemd) algemeen gebruikt voor de factorisatie van positieve gehele getallen in priemgetallen; het is een methode voor de factorisatie van gehele getallen. Het algoritme is in 1981 opgesteld door John Dixon, een wiskundige van de Carleton University.

## Basisidee

Dixons methode voor de ontbinding van het gehele getal $N$ is gebaseerd op het uitgangspunt van Fermats factorisatiemethode door te zoeken naar twee kwadraten die modulo $N$ equivalent zijn. Fermats factorisatiemethode vindt zulke kwadraten door systematisch alle mogelijkheden na te gaan. Dat kost in het algemeen veel rekentijd.
Daarom vervangt Dixon in zijn methode de voorwaarde ‘is het kwadraat van een geheel getal’ door de veel zwakkere voorwaarde ‘heeft alleen kleine priemfactoren’.
Het algoritme zoekt nu kwadraten $z_{i}^{2}\equiv p_{1}^{m_{1}}\cdot \ldots \cdot p_{n}^{m_{n}}{\pmod {N}}$ die modulo $N$ het product zijn van machten van een vast aantal kleine priemgetallen $p_{1},\ldots ,p_{n}$ en zoekt het product van een aantal van zulke kwadraten waarin alle machten van de priemgetallen even zijn:
    $z_{1}^{2}z_{2}^{2}\ldots z_{r}^{2}\equiv p_{1}^{2M_{1}}\cdot \ldots \cdot p_{n}^{2M_{n}}{\pmod {N}}$
Dan is:
    $x^{2}\equiv z_{1}^{2}z_{2}^{2}\ldots z_{r}^{2}\equiv \left(p_{1}^{M_{1}}\cdot \ldots \cdot p_{n}^{M_{n}}\right)^{2}\equiv y^{2}{\pmod {N}}$
en daarmee is
    $x^{2}-y^{2}=(x+y)(x-y)$ een veelvoud van $N$.

## Algoritme

Kies een bovengrens $B$ voor de te gebruiken priemgetallen $p_{1}=2,p_{2}=3,\ldots ,p_{k}\leq B$. Deze verzameling priemgetallen wordt de factorbasis genoemd. Zoek daarna getallen $(z_{i})$ in het bereik $\lceil {\sqrt {N}}\rceil \leq z_{i}\leq N$ waarvan de kwadraten modulo $N$ B-glad zijn, dus alleen priemfactoren uit de factorbasis hebben.
    $z_{i}^{2}=\prod _{j=1}^{k}p_{j}^{m_{ij}}{\pmod {N}}$.
Vervolgens wordt uit de getallen $(z_{i})$ een selectie gemaakt, waarvan het product alleen even machten van de priemgetallen bevat. Dit kan gebeuren door gebruik te maken van methoden uit de lineaire algebra.
Zij nl. $M=(m_{ij})$ de matrix met de machten, dan wordt een vector $c$ gezocht waarvoor $Mc\equiv 0{\pmod {2}}$. De vector $c$ geeft aan welke van de $(z_{i})$ tot de gewenste selectie behoren.
Als $\operatorname {ggd} (x-y,N)$ geen echte deler van $N$ oplevert, is kennelijk $x\equiv \pm y{\pmod {N}})$, en moet men een andere selectie proberen of andere $(z_{i})$ bepalen, eventueel met een nieuwe factorbasis.

## Voorbeelden
### Voorbeeld 1

Neem voor het ontbinden van het getal 65621 als factorbasis {2,3,5,7}. Er geldt: ${\sqrt {65621}}>256$. Het eerste getal waarvan het kwadraat modulo 65621 alleen factoren uit de factorbasis heeft is 261:
    $261^{2}\mod 65621=2500=2^{2}\cdot 5^{4}$
Omdat de exponenten van de priemgetallen beide even zijn, kan gelijk de volgende stap gedaan worden:
    $(261-2\cdot 5^{2})(261+2\cdot 5^{2})=211\times 311\mod 65621=0$
Dus
    $65621=211\times 311$

### Voorbeeld 2

Neem voor het factoriseren van 94563 de factorbasis {2,3,5,7,11,13}.
    $821^{2}\mod 94563=12100=2^{2}\cdot 5^{2}\cdot 11^{2}$
Dus geldt:
    $(821-2\times 5\times 11)(821+2\times 5\times 11)=711\times 931{\pmod {94563}}=0$
en
    $711\times 931=94563\times 7$
Eenvoudig is te zien dat 711 deelbaar is door 9, en 931 door 7, zodat
    $3^{2}\times 79\times 133=94563$
Hoewel het niet moeilijk is in te zien dat
    $133=7\times 19$
kan dit ook met het algoritme bepaald worden.
    $13^{2}\mod 133=36=2^{2}\times 3^{2}$
    $(13-2\times 3)(13+2\times 3)=7\times 19=133$
Als eindresultaat volgt:
    $94563=3^{2}\times 7\times 19\times 79$

## Kwadratische zeef

De kwadratische zeef is een optimalisering van Dixons methode. Daarmee worden geschikte waarden voor $x$ in de buurt van ${\sqrt {N}}$ gekozen zodanig dat $x^{2}\!\!\!{\pmod {N}}$ klein is en de kans op het vinden van een glad getal sterk vergroot wordt.
* (en) J. D. Dixon, "Asymptotically fast factorization of integers," Math. Comput., 36(1981), p. 255-260.
* Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Dixon's factorization method op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.