我需要一種方法來計算:模冪在Java中
(g^u * y^v) mod p
在Java中
。
我發現這個算法計算(G^U)模p:
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實現 - 驗證部分要求解決這個問題。
我假設p是素數,對不對? – 2010-11-01 06:35:59
是的,p是素數,我認爲這解決了它:(g^u * y^v)mod p =(g^u mod p)*(y^v mod p)mod p,儘管我只用到目前爲止的小數字 – 2010-11-01 06:45:58
它是大嗎?如果你想使用'BigInteger'而不是長時間,'mod p'部分就像我一樣。 – 2010-11-01 06:47:51