澄清isProbablePrime中的确定性因素

时间:2014-02-12 22:03:23

标签: java rsa biginteger

我的问题涉及isProbablePrime() BigInteger方法的“确定性”因素。 Java API声明这是:

  

“衡量来电者愿意容忍的不确定因素”

这是不确定性的百分比还是其他因素。我需要2位素数的512位。

1 个答案:

答案 0 :(得分:13)

来自Javadocs for BigInteger's isProbablePrime method

  

确定性 - 调用者愿意容忍的不确定性的度量:如果调用返回true,则此BigInteger为素数的概率超过(1 - 1/2 确定性

所以,你通过的certainty数字越高,你就越肯定,即100意味着它的概率为1 - (1/2) 100 ,非常接近1。

Java通过执行Miller-Rabin素数测试来实现这一点,测试的数量基于certainty(以及Lucas-Lehmer测试)。