10.12.2012 Views

Prime Numbers

Prime Numbers

Prime Numbers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.2 Monte Carlo methods 233<br />

computing x2i+2,a2i+2,b2i+2 from x2i,a2i,b2i. The principal work is in the<br />

calculation of the (xi)and(x2i) sequences, requiring 3 modular multiplications<br />

to travel from the i-th stage to the (i + 1)-th stage. As with the Pollard rho<br />

method for factoring, space requirements are minimal.<br />

[Teske 1998] describes a somewhat more complicated version of the rho<br />

method for discrete logs, with 20 branches for the iterating function at each<br />

point, rather than the 3 described above. Numerical experiments indicate that<br />

her random walk gives about a 20% improvement.<br />

The rho method for discrete logarithms can be easily distributed to many<br />

processors, as described in connection with the lambda method below.<br />

5.2.3 Pollard lambda method for discrete logarithms<br />

In the same paper where the rho method for discrete logarithms is described,<br />

[Pollard 1978] also suggests a “lambda” method, so called because the “λ”<br />

shape evokes the image of two paths converging on one path. The idea is<br />

to take a walk from t, the group element whose discrete logarithm we are<br />

searching for, and another from T , an element whose discrete logarithm we<br />

know. If the two walks coincide, we can figure the discrete logarithm of t.<br />

Pollard views the steps in a walk as jumps of a kangaroo, and so the algorithm<br />

is sometimes referred to as the “kangaroo method.” When we know that the<br />

discrete logarithm for which we are searching lies in a known short interval, the<br />

kangaroo method can be adapted to profit from this knowledge: We employ<br />

kangaroos with shorter strides.<br />

One tremendous feature of the lambda method is that it is relatively<br />

easy to distribute the work over many computers. Each node in the network<br />

participating in the calculation chooses a random number r and begins a<br />

pseudorandom walk starting from t r ,wheret is the group element whose<br />

discrete logarithm we are searching for. Each node uses the same easily<br />

computed pseudorandom function f : G → S, whereS is a relatively small<br />

set of integers whose mean value is comparable to the size of the group G.<br />

The powers g s for s ∈ S are precomputed. Then the “walk” starting at t r is<br />

w0 = t r , w1 = w0g f(w0) , w2 = w1g f(w1) , ....<br />

If another node, choosing r ′ initially and walking through the sequence<br />

w ′ 0,w ′ 1,w ′ 2,..., has a “collision” with the sequence w0,w1,w2,..., that is,<br />

w ′ i = wj for some i, j, then<br />

So if t = g l ,then<br />

t r′<br />

g f(w′ 0 )+f(w′ 1 )+···+f(w′ i−1 ) = t r g f(w0)+f(w1)+···+f(wj−1) .<br />

(r ′ j−1<br />

i−1<br />

− r)l ≡ f(wµ) − f(w ′ ν) (mod n),<br />

µ=0<br />

where n is the order of the group.<br />

ν=0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!