Difference between BigInteger.probablePrime() and other primality algorithms in java

前端 未结 2 1662
[愿得一人]
[愿得一人] 2020-12-19 10:36

I am implementing an RSA encryption program using Java. Right now I am using BigInteger.probablePrime(1024, rnd) to get prime numbers. Here rnd

相关标签:
2条回答
  • 2020-12-19 11:14

    BigInteger's probable prime methods use both the Miller-Rabin and Lucas-Lehmer algorithms to test primality.

    See the internal method BigInteger.primeToCertainty.

    0 讨论(0)
  • 2020-12-19 11:19

    The Java source code is available for download, so you can look at it yourself. Here is the code for BigInteger.probablePrime(int, Random):

    public static BigInteger probablePrime(int bitLength, Random rnd) {
    
        if (bitLength < 2)
            throw new ArithmeticException("bitLength < 2");
    
        // The cutoff of 95 was chosen empirically for best performance
    
        return (bitLength < SMALL_PRIME_THRESHOLD ?
                smallPrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd) :
                largePrime(bitLength, DEFAULT_PRIME_CERTAINTY, rnd));
    }
    

    The actual tests are contained in the smallPrime() and largePrime() methods, which follow directly in the source code.

    0 讨论(0)
提交回复
热议问题