[英]DSA Signature Verification and BigInteger class
给我一个(非常简单的)DSA问题,并且已经找到了关键和其他变量。 为了验证签名,我需要以某种方式转换方程式:
V = [( y ^ u1 * h ^ u2 )mod p] mod q
进入BigInteger操作。 在Java上甚至有可能吗? 到目前为止,我一直在成功使用modPow,但是到目前为止,所有问题都以以下形式出现:
r.modPow(指数,模数);
我不知道如何通过BigInteger做上述方程式(尤其是粗体部分),我想知道是否有可能。 有人有什么想法吗?
如果BigInteger无法做到,我该如何通过Pari来解决这个问题?
我认为您只需要使用以下身份即可
(a*b) mod p == ((a mod p)*(b mod p)) mod p
因此要计算y u1 ×h u2 mod p:
modPow
计算y u1 mod p, modPow
计算h u2 mod p, 步骤4是必需的,因为步骤1和2的结果可能会相乘以产生大于p的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.