dissertacao.pdf
dissertacao.pdf
dissertacao.pdf
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
2.2.2 Pollard’s ρ Algorithm<br />
Pollard’s ρ Algorithm, described by Pollard in 1975[35], aims to find a small<br />
factor p of a given integer N. Because of this focusing on a small factor of N,<br />
Pollard’s ρ is considered a special purpose factoring algorithm. We present a<br />
simplified version the algorithm:<br />
Algorithm 6. Pollard’s ρ Algorithm: Given a composite N:<br />
1. Set a = 2, b = 2.<br />
2. Define the modular polynomial f(x) = (x 2 + c) (mod N) with c = 0, −2<br />
3. For i=1,2,.., do:<br />
(a) Compute a = f(a), b = f(f(b)).<br />
(b) Compute d = (a − b, N).<br />
(c) If 1 < d < N then return d with success.<br />
(d) If d = N then terminate the algorithm with failure.<br />
The function f is used to create two pseudo random sequences on ZN. The<br />
reason for this is that, picking randomly two numbers x, y ∈ ZN , there is a<br />
probability of 0.5 that after 1.777 √ N tries one will be congruent modulo N[37].<br />
If they are and a = b, then (a − b, N) yields a factor of N.<br />
The runtime of the algorithm is O( √ p)[24], where p is N’s smallest prime<br />
factor. This means that against an RSA modulus N with balanced primes the<br />
runtime of the algorithm is O(N 1<br />
4 ), making it an inefficient method.<br />
2.2.3 Elliptic Curve Method<br />
In 1985, Hendrik Lenstra had a visionary idea. He thought of using Elliptic<br />
Curves to factor integers. It is said that that Lenstra’s discovery was based on<br />
Pollard’s (ρ − 1) method[44], a variant of Pollard’s ρ method described above.<br />
The Elliptic Curve Method’s (ECM) running time depends on the smallest<br />
factor p of the integer N being factored, making it particularly powerful for<br />
finding ”medium-sized” factors of large integers. As we will show in the next<br />
section, ECM is not used directly to factor RSA modulus, instead it is used as<br />
an auxiliary step in the General Number Field Sieve algorithm [44] described in<br />
the next section. The basis of the algorithm is the following result:<br />
29