計算する方法が必要です:
(g^u * y^v) mod p
Javaで。
(g ^ u)modpを計算するためのこのアルゴリズムを見つけました。
int modulo(int a,int b,int c) {
long x=1
long y=a;
while(b > 0){
if(b%2 == 1){
x=(x*y)%c;
}
y = (y*y)%c; // squaring the base
b /= 2;
}
return (int) x%c;
}
それはうまく機能しますが、私はこれを行う方法を見つけることができないようです
(g^u * y^v) mod p
私の数学のスキルはつまらないので。
コンテキストに入れると、「縮小された」DSAのJava実装用です。検証部分では、これを解決する必要があります。