dixon.tex 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. \chapter{Dixon {\texttt{\small{[insert random buzzword here]}}} method\label{chap:dixon}}
  2. ~\cite{dixon} describes a class of ``probabilistic algorithms'' for finding a
  3. factor of any composite number, at a sub-exponential cost. They basically
  4. consists into taking random integers $r$ in $\{1, \ldots, N\}$ and look for those
  5. where $r^2 \mod{N}$ is \emph{smooth}. If enough are found, then those integers
  6. can somehow be assembled, and so a fatorization of N attemped.
  7. %% that's not really academic to be stated officially, but I would have never
  8. %% understood this section without Firas (thanks).
  9. %% <http://blog.fkraiem.org/2013/12/08/factoring-integers-dixons-algorithm/>
  10. %% I kept the voila` phrase, that was so lovely.
  11. \section{A little bit of History}
  12. During the latest century there has been a huge effort to approach the problem
  13. formulated by Fermat ~\ref{eq:fermat_problem} from different perspecives. This
  14. led to an entire family of algorithms known as \emph{Quadratic Sieve} [QS]. The
  15. core idea is still to find a pair of perfect squares whose difference can
  16. factorize $N$, but maybe Fermat's hypotesis can be made weaker.
  17. \paragraph{Kraitchick} was the first one popularizing the idea the instead of
  18. looking for integers $\angular{x, y}$ such that $x^2 -y^2 = N$ it is sufficient
  19. to look for \emph{multiples} of $N$:
  20. \begin{align}
  21. x^2 - y^2 \equiv 0 \pmod{N}
  22. \end{align}
  23. and, once found, claim that $\gcd(N, x \pm y)$ are non-trial divisors of $N$
  24. just as we did in \ref{sec:fermat:implementation}.
  25. Kraitchick did not stop here: instead of trying $x^2 \equiv y^2 \pmod{N}$ he
  26. kept the value of previous attempt, and tries to find \emph{a product} of such
  27. values which is also a square. So we have a sequence
  28. \begin{align}
  29. \label{eq:dixon:x_sequence}
  30. \angular{x_0, \ldots, x_k} \mid \forall i \leq k \quad x_i^2 - N
  31. \; \text{ is a perfect square}
  32. \end{align}
  33. and hence
  34. \begin{align*}
  35. \prod_i (x_i^2 - N) = y^2
  36. \end{align*}
  37. that $\mod{N}$ is equivalent to:
  38. \begin{align}
  39. \label{eq:dixon:fermat_revisited}
  40. y^2 \equiv \prod_i x_i^2 - N \equiv \big( \prod_i x_i \big) ^2 \pmod{N}
  41. \end{align}
  42. and voil\`a our congruence of squares. For what concerns the generation of $x_i$
  43. with the property \ref{eq:dixon:x_sequence}, they can simply taken at random and
  44. tested using trial division.
  45. \paragraph{Brillhart and Morrison} later proposed (\cite{morrison-brillhart}
  46. p.187) a better approach than trial division to find such $x$. Their idea aims
  47. to ease the enormous effort required by the trial division. In order to achieve
  48. this. they introduce a \emph{factor base} $\factorBase$ and generate random $x$
  49. such that $x^2 - N$ is $\factorBase$-smooth. Recalling what we anticipated in
  50. ~\ref{sec:preq:numbertheory}, $\factorBase$ is a precomputed set of primes
  51. $p_i \in \naturalPrime$.
  52. This way the complexity of generating a new $x$ is dominated by
  53. \bigO{|\factorBase|}. Now that the right side of \ref{eq:dixon:fermat_revisited}
  54. has been satisfied, we have to select a subset of those $x$ so that their
  55. product can be seen as a square. Consider an \emph{exponent vector}
  56. $v_i = (\alpha_0, \alpha_1, \ldots, \alpha_r)$ associated with each $x_i$, where
  57. \begin{align*}
  58. a_j = \begin{cases}
  59. 1 \quad \text{if $p_j$ divides $x_i$ to an odd power} \\
  60. 0 \quad \text{otherwise}
  61. \end{cases}
  62. \end{align*}
  63. for each $0 \leq j \leq r $. There is no need to restrict ourselves for positive
  64. values of $x^2 -N$, so we are going to use $\alpha_0$ to indicate the sign. This
  65. benefit has a neglegible cost: we have to add the non-prime $-1$ to our factor
  66. base.
  67. Let now $\mathcal{M}$ be the rectangular matrix having per each $i$-th row the
  68. $v_i$ associated to $x_i$: this way each element $m_{ij}$ will be $v_i$'s
  69. $\alpha_j$. We are interested in finding set(s) of $x$ that satisfies
  70. \ref{eq:dixon:fermat_revisited}, possibly all of them.
  71. Define $K$ as the subsequence of $x_i$ whose product always have even powers.
  72. This is equivalent to look for the set of vectors $\{ w \mid wM = 0 \}$ by
  73. definition of matrix multiplication in $\mathbb{F}_2$.
  74. \paragraph{Dixon} Morrison and Brillhart's ideas of \cite{morrison-brillhart}
  75. were actually used for a slightly different factorization method, employing
  76. continued fractions instead of the square difference polynomial. Dixon refined
  77. those by porting to the quare problem, achieving a probabilistic factorization
  78. method working at a computational cost asymptotically best than all other ones
  79. previously described: \bigO{\beta(\log N \log \log N)^{\rfrac{1}{2}}} for some
  80. constant $\beta > 0$ \cite{dixon}.
  81. \section{Computing the Kernel}
  82. %%% Local Variables:
  83. %%% mode: latex
  84. %%% TeX-master: "question_authority"
  85. %%% End: