Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Algorithm  





2 Complexity  





3 Naming  





4 See also  





5 References  





6 Further reading  














Pollard's kangaroo algorithm






Català
Français
Nederlands
Русский
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Incomputational number theory and computational algebra, Pollard's kangaroo algorithm (also Pollard's lambda algorithm, see Naming below) is an algorithm for solving the discrete logarithm problem. The algorithm was introduced in 1978 by the number theorist John M. Pollard, in the same paper as his better-known Pollard's rho algorithm for solving the same problem.[1][2] 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[edit]

Suppose is a finite cyclic group of order which is generated by the element , and we seek to find the discrete logarithm of the element to the base . In other words, one seeks such that . The lambda algorithm allows one to search for in some interval . One may search the entire range of possible logarithms by setting and .

1. Choose a set of positive integers of mean roughly and define a pseudorandom map .

2. Choose an integer and compute a sequence of group elements according to:

3. Compute

Observe that:

4. Begin computing a second sequence of group elements according to:

and a corresponding sequence of integers according to:

.

Observe that:

5. Stop computing terms of and when either of the following conditions are met:

A) for some . If the sequences and "collide" in this manner, then we have:
and so we are done.
B) . If this occurs, then the algorithm has failed to find . Subsequent attempts can be made by changing the choice of and/or .

Complexity[edit]

Pollard gives the time complexity of the algorithm as , using a probabilistic argument based on the assumption that acts pseudorandomly. Since can be represented using bits, this is exponential in the problem size (though still a significant improvement over the trivial brute-force algorithm that takes time ). For an example of a subexponential time discrete logarithm algorithm, see the index calculus algorithm.

Naming[edit]

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 to trap a wild kangaroo. Pollard has explained[3] 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[4] 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 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",[5] as this avoids confusion with some parallel versions of his rho algorithm, which have also been called "lambda algorithms".

See also[edit]

References[edit]

  1. ^ Pollard, John M. (July 1978) [1977-05-01, 1977-11-18]. "Monte Carlo Methods for Index Computation (mod p)" (PDF). Mathematics of Computation. 32 (143). Mathematics Department, Plessey Telecommunications Research, Taplow Court, Maidenhead, Berkshire, UK: American Mathematical Society: 918–924. ISSN 0025-5718. Archived (PDF) from the original on 2013-05-03. Retrieved 2023-08-19. (7 pages)
  • ^ van Oorschot, Paul C.; Wiener, Michael J. (1999). "Parallel collision search with cryptanalytic applications". Journal of Cryptology. 12 (1). International Association for Cryptologic Research: 1–28. ISSN 0933-2790.
  • ^ Pollard, John M. (2000-08-10) [1998-01-23, 1999-09-27]. "Kangaroos, Monopoly and Discrete Logarithms" (PDF). Journal of Cryptology. 13 (4). Tidmarsh Cottage, Manor Farm Lane, Tidmarsh, Reading, UK: International Association for Cryptologic Research: 437–447. doi:10.1007/s001450010010. ISSN 0933-2790. Archived (PDF) from the original on 2023-08-18. Retrieved 2023-08-19. (11 pages)
  • ^ Dawson, Terence J. (1977-08-01). "Kangaroos". Scientific American. Vol. 237, no. 2. Scientific American, Inc. pp. 78–89. ISSN 0036-8733. JSTOR 24954004.
  • ^ Pollard, John M. "Jmptidcott2". Archived from the original on 2023-08-18. Retrieved 2023-08-19.
  • ^ Pollard, John M. (July 2000). "Kruskal's Card Trick" (PDF). The Mathematical Gazette. 84 (500). Tidmarsh Cottage, Manor Farm Lane, Tidmarsh, Reading, UK: The Mathematical Association: 265–267. ISSN 0025-5572. JSTOR 3621657. 84.29. Archived (PDF) from the original on 2023-08-18. Retrieved 2023-08-19. (1+3 pages)
  • Further reading[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Pollard%27s_kangaroo_algorithm&oldid=1173590288"

    Categories: 
    Number theoretic algorithms
    Computer algebra
    Logarithms
    Hidden categories: 
    Use dmy dates from August 2023
    Use list-defined references from August 2023
     



    This page was last edited on 3 September 2023, at 11:50 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki