Class PollardRho
- java.lang.Object
 - 
- de.tilman_neumann.jml.factor.FactorAlgorithm
 - 
- de.tilman_neumann.jml.factor.pollardRho.PollardRho
 
 
 
- 
public class PollardRho extends FactorAlgorithm
From: http://www.cs.princeton.edu/introcs/79crypto/PollardRho.java (INTRODUCTION TO COMPUTER SCIENCE by Robert Sedgewick and Kevin Wayne) Pollards Rho method. Pollard's rho method is a randomized factoring algorithm that can factor 128 bit numbers in a reasonable amount of time, especially if the numbers have some small factors. It is based on the following fact: if d is the smallest nontrivial factor of N and x - y is a nontrivial multiple of d then gcd(x-y, N) = d. A naive method would be to generate a bunch of random values x[1], x[2], ..., x[m] and compute gcd(x[i]-x[j], N) for all pairs i and j. Pollard's rho method is an ingenious method way to find x and y without doing all of the pairwise computations. It works as follows: choose a and b at random between 1 and N-1, and initialize x = y = a. Repeatedly update x = f(x), y = f(f(y)), where f(x) = x^2 + b as long as gcd(x-y, N) = 1. The gcd is a factor of N, but if you get unlucky, it could be equal to N. By randomly choosing a and b each time, we ensure that we never get too unlucky.- Author:
 - Tilman Neumann
 
 
- 
- 
Field Summary
- 
Fields inherited from class de.tilman_neumann.jml.factor.FactorAlgorithm
DEFAULT, NUM_PRIMES_FOR_31_BIT_TDIV, tdivLimit 
 - 
 
- 
Constructor Summary
Constructors Constructor Description PollardRho() 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BigIntegerfindSingleFactor(BigInteger N)Find a single factor of the given N, which is composite and odd.StringgetName()- 
Methods inherited from class de.tilman_neumann.jml.factor.FactorAlgorithm
factor, factor, searchFactors 
 - 
 
 - 
 
- 
- 
Method Detail
- 
getName
public String getName()
- Specified by:
 getNamein classFactorAlgorithm- Returns:
 - The name of the algorithm, possibly including important parameters.
 
 
- 
findSingleFactor
public BigInteger findSingleFactor(BigInteger N)
Description copied from class:FactorAlgorithmFind a single factor of the given N, which is composite and odd.- Specified by:
 findSingleFactorin classFactorAlgorithm- Returns:
 - factor
 
 
 - 
 
 -