你能告诉我我说得对吗?我想在 DSA
算法中生成 p
。我不明白:|| pTemp.bitLength() != l
在 do while
语句中,因为这意味着我只在寻找 1
数字素数,即 2,5,7 ?这是胡说八道。
private BigInteger generateP(BigInteger q, int l) {
if (l % 64 != 0) {
throw new IllegalArgumentException("L value is wrong");
}
BigInteger pTemp;
BigInteger pTemp2;
int i = 0;
do {
//pTemp = new BigInteger(l, primeCenterie, rand); <--- this is useless also?
pTemp = new BigInteger(l, rand);
pTemp2 = pTemp.subtract(BigInteger.ONE);
pTemp = pTemp.subtract(pTemp2.remainder(q));
System.out.println("1 " + i++);
} while (!pTemp.isProbablePrime(primeCenterie) || pTemp.bitLength() != l);
return pTemp;
}
最佳答案
IT 不是 1(one) 而是 l(L) 一切正常。我 2 个月前在做,现在还不明白。
关于java - DSA算法java中生成P,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234007/