HOME

TheInfoList



OR:

In computational number theory and
computational algebra In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions ...
, Pollard's kangaroo algorithm (also Pollard's lambda algorithm, see Naming below) is an
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
for solving the discrete logarithm problem. The algorithm was introduced in 1978 by the number theorist J. M. Pollard, in the same paper as his better-known Pollard's 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.


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 \beta to the base \alpha. In other words, one seeks x \in Z_n such that \alpha^x = \beta. The lambda algorithm allows one to search for x in some interval ,\ldots,bsubset Z_n. One may search the entire range of possible logarithms by setting a=0 and b=n-1. 1. Choose a set S of integers and define a pseudorandom map f: G \rightarrow S. 2. Choose an integer N and compute a sequence of group elements \ according to: * x_0 = \alpha^b\, * x_ = x_i\alpha^\texti=0,1,\ldots,N-1 3. Compute :d = \sum_^f(x_i). Observe that: :x_N = x_0\alpha^d = \alpha^\, . 4. Begin computing a second sequence of group elements \ according to: * y_0 = \beta\, * y_ = y_i\alpha^\texti=0,1,\ldots,N-1 and a corresponding sequence of integers \ according to: :d_n = \sum_^f(y_i). Observe that: :y_i = y_0\alpha^ = \beta\alpha^\mboxi=0,1,\ldots,N-1 5. Stop computing terms of \ and \ when either of the following conditions are met: :A) y_j = x_N for some j. If the sequences \ and \ "collide" in this manner, then we have: ::x_N = y_j \Rightarrow \alpha^ = \beta\alpha^ \Rightarrow \beta = \alpha^ \Rightarrow x \equiv b+d-d_j \pmod :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 O(\sqrt), based on a probabilistic argument which follows from the assumption that f acts pseudorandomly. When the size of the set \ to be searched is measured in
bit The bit is the most basic unit of information in computing and digital communications. The name is a portmanteau of binary digit. The bit represents a logical state with one of two possible values. These values are most commonly represented a ...
s, as is normal in complexity theory, the set has size \log(b-a), and so the algorithm's complexity is O(\sqrt) = O(2^), 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 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 Kangaroos are four marsupials from the family Macropodidae (macropods, meaning "large foot"). In common use the term is used to describe the largest species from this family, the red kangaroo, as well as the antilopine kangaroo, eastern ...
to trap a ''wild'' kangaroo. Pollard has explained that this analogy was inspired by a "fascinating" article published in the same issue of ''
Scientific American ''Scientific American'', informally abbreviated ''SciAm'' or sometimes ''SA'', is an American popular science magazine. Many famous scientists, including Albert Einstein and Nikola Tesla, have contributed articles to it. In print since 1845, it i ...
'' as an exposition of the
RSA RSA may refer to: Organizations Academia and education * Rabbinical Seminary of America, a yeshiva in New York City *Regional Science Association International (formerly the Regional Science Association), a US-based learned society *Renaissance S ...
public key cryptosystem. The article 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". The second 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 The Greek alphabet has been used to write the Greek language since the late 9th or early 8th century BCE. It is derived from the earlier Phoenician alphabet, and was the earliest known alphabetic script to have distinct letters for vowels as ...
lambda Lambda (}, ''lám(b)da'') is the 11th letter of the Greek alphabet, representing the voiced alveolar lateral approximant . In the system of Greek numerals, lambda has a value of 30. Lambda is derived from the Phoenician Lamed . Lambda gave ris ...
(\lambda). The shorter stroke of the letter lambda corresponds to the sequence \, since it starts from the position b to the right of x. Accordingly, the longer stroke corresponds to the sequence \, which "collides with" the first sequence (just like the strokes of a lambda intersect) and then follows it subsequently. Pollard has expressed a preference for the name "kangaroo algorithm", as this avoids confusion with some parallel versions of his rho algorithm, which have also been called "lambda algorithms".


See also

* Rainbow table


References

{{Number-theoretic algorithms Number theoretic algorithms Computer algebra Logarithms