# Pollard's lambda algorithm

Pollard's lambda algorithm

In mathematics, specifically computational number theory and computational algebra, Pollard's lambda algorithm (aka Pollard's kangaroo algorithm, see Naming below) is an algorithm for solving the discrete logarithm. The algorithm was introduced in 1978 by the accomplished number theorist J. M. Pollard, in the same paper [J. Pollard, "Monte Carlo methods for index computation mod p", Mathematics of Computation, Volume 32, 1978] as his better-known rho algorithm for solving the same problem. Although Pollard described the application of his algorithm to the discrete logarithm problem in the multiplicative group of units modulo a prime "p", it is in fact a generic discrete logarithm algorithm—it will work in any finite cyclic group.

The algorithm

Suppose $G$ is a finite cyclic group of order $n$ which is generated by the element $alpha$, and we seek to find the discrete logarithm $x$ of the element to the base $alpha$. In other words, we seek $x in Z_n$ such that . The lambda algorithm allows us to search for $x$ in some subset $\left\{a,ldots,b\right\}$ of $Z_n$. We may search the entire range of possible logarithms by setting $a=0$ and $b=p-1$, although in this case Pollard's rho algorithm is more efficient. We proceed as follows:

1. Choose a set $S$ of integers and define a pseudorandom map $f: G ightarrow S$.

2. Choose an integer $N$ and compute a sequence of group elements $\left\{x_0,x_1,ldots,x_N\right\}$ according to:
* $x_0 = alpha^b$
* $x_\left\{i+1\right\} = x_ialpha^\left\{f\left(x_i\right)\right\}$ for $i=0,1,ldots,N-1$3. Compute:$d = sum_\left\{i=0\right\}^\left\{N-1\right\}f\left(x_i\right)$.Observe that::$x_N = x_0alpha^d = alpha^\left\{b+d\right\}$.4. Begin computing a second sequence of group elements $\left\{y_0,y_1,ldots\right\}$ according to:
*
* $y_\left\{i+1\right\} = y_ialpha^\left\{f\left(y_i\right)\right\}$ for $i=0,1,ldots,N-1$and a corresponding sequence of integers $\left\{d_0,d_1,ldots\right\}$ according to::$d_n = sum_\left\{i=0\right\}^\left\{n-1\right\}f\left(y_i\right)$.Observe that:: for $i=0,1,ldots,N-1$5. Stop computing terms of $\left\{y_i\right\}$ and $\left\{d_i\right\}$ when either of the following conditions are met:

:A) $y_j = x_N$ for some $j$. If the sequences $\left\{x_i\right\}$ and $\left\{y_j\right\}$ "collide" in this manner, then we have::::and so we are done.

:B) $d_i > b-a+d$. If this occurs, then the algorithm has failed to find $x$. Subsequent attempts can be made by changing the choice of $S$ and/or $f$.

Complexity

Pollard gives the time complexity of the algorithm as $\left\{scriptstyle O\left(sqrt\left\{b-a\right\}\right)\right\}$, based on a probabilistic argument which follows from the assumption that "f" acts pseudorandomly. Note that when the size of the set {"a", …, "b"} to be searched is measured in bits, as is normal in complexity theory, the set has size log("b"&thinsp;−&thinsp;"a"), and so the algorithm's complexity is $\left\{scriptstyle O\left(sqrt\left\{b-a\right\}\right) = O\left(e^\left\{frac\left\{1\right\}\left\{2\right\}log\left(b-a\right)\right\}\right)\right\}$, which is exponential in the problem size. For this reason, Pollard's lambda algorithm is considered an exponential time algorithm. For an example of a subexponential time discrete logarithm algorithm, see the index calculus algorithm.

Naming

The algorithm is well known by two names.

The first is "Pollard's lambda algorithm". Much like the name of another of Pollard's discrete logarithm algorithms, Pollard's rho algorithm, this name refers to the similarity between a visualisation of the algorithm and the Greek letter lambda ($lambda$). The longer stroke of the letter lambda corresponds to the sequence $\left\{x_i\right\}$. The shorter stroke corresponds to the sequence $\left\{y_i\right\}$, which "collides with" the first sequence (just like the strokes of a lambda intersect) and then follows it subsequently.

The second is "Pollard's kangaroo algorithm". This name is a reference to an analogy used in the paper presenting the algorithm, where the algorithm is explained in terms of using a "tame" kangaroo to trap a "wild" kangaroo. Pollard has explained [J. M. Pollard, "Kangaroos, Monopoly and Discrete Logarithms", Journal of Cryptology, Volume 13, pp 437-447, 2000] that this analogy was inspired by a "fascinating " article published in the same issue of Scientific American as an exposition of the RSA public key cryptosystem. The article [T. J. Dawson, "Kangaroos", Scientific American, August 1977, pp. 78-89] described an experiment in which a kangaroo's "energetic cost of locomotion, measured in terms of oxygen consumption at various speeds, was determined by placing kangaroos on a treadmill".

Pollard has expressed a preference for the name "kangaroo algorithm"Fact|date=August 2007, as this avoids confusion with some parallel versions of his rho algorithm, which have also been called "lambda algorithms".

ee also

* Rainbow table

References

Wikimedia Foundation. 2010.

Помощь в написании эссе

### Look at other dictionaries:

• Pollard — may refer to:*Pollard (surname) *Pollard, Alabama, a town in the United States *Jonathan Pollard, a spy *Pollard, a tree or animal which has been polled (had its branches, horns or antlers removed): **Pollard, a tree affected by pollarding, a… …   Wikipedia

• Discrete logarithm — In mathematics, specifically in abstract algebra and its applications, discrete logarithms are group theoretic analogues of ordinary logarithms. In particular, an ordinary logarithm loga(b) is a solution of the equation ax = b over the… …   Wikipedia

• List of mathematics articles (P) — NOTOC P P = NP problem P adic analysis P adic number P adic order P compact group P group P² irreducible P Laplacian P matrix P rep P value P vector P y method Pacific Journal of Mathematics Package merge algorithm Packed storage matrix Packing… …   Wikipedia

• Rainbow table — A rainbow table is a lookup table offering a time memory tradeoff used in recovering the plaintext password from a password hash generated by a hash function, often a cryptographic hash function. A common application is to make attacks against… …   Wikipedia

• Cycle detection — This article is about iterated functions. For another use, see Cycle detection (graph theory). In computer science, cycle detection is the algorithmic problem of finding a cycle in a sequence of iterated function values. For any function ƒ that… …   Wikipedia

• Ρ-алгоритм Полларда — Эта статья  о факторизации чисел. О методе дискретного логарифмирования см. Ρ метод Полларда дискретного логарифмирования. Числовая последовательность зацикливается, начиная с неко …   Википедия

• RSA — In cryptography, RSA is an algorithm for public key cryptography. It is the first algorithm known to be suitable for signing as well as encryption, and one of the first great advances in public key cryptography. RSA is widely used in electronic… …   Wikipedia

• List of Brown University people — The following is a partial list of notable Brown University people, known as Brunonians. It includes alumni, professors, and others associated with Brown University. Notable alumni Note: Class of is used to denote the graduation class of… …   Wikipedia