1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-11-29 15:52:08 +01:00

Improve ElGamal validation by refraining from biginteger for loop variable

This commit is contained in:
Paul Schaub 2022-12-15 16:28:10 +01:00
parent bfbaa30e4c
commit 6a5c6c5509

View file

@ -265,14 +265,15 @@ public class PublicKeyParameterValidationUtil {
// check g^i mod p != 1 for i < threshold
BigInteger res = g;
BigInteger i = BigInteger.valueOf(1);
BigInteger threshold = BigInteger.valueOf(2).shiftLeft(17);
while (i.compareTo(threshold) < 0) {
// 262144
int threshold = 2 << 17;
int i = 1;
while (i < threshold) {
res = res.multiply(g).mod(p);
if (res.equals(one)) {
return false;
}
i = i.add(one);
i++;
}
// blinded exponentiation to check y = g^(r*(p-1)+x) mod p