DSA验证计算
我是不是漏掉了什么?在FIPS180-2的第25页上,给出了u1、u2、g^u1 mod p、y^u2 mod p和v的值。我已经计算出了所有的值,除了v。不过,当我进行计算时,我的结果却不等于v = 0x8bac1ab66410435cb7181f95b16ab97c92b341c0。相反,我得到的是v = 0xc5a54698ae8e5b94661134260594ff4e3f488e26,这和之前的r不相等。我在计算时用的是(pow(g, u1, p) * pow(y, u2, p)) % q
,这里的pow
是内置函数,而不是数学模块的函数。
1 个回答
5
你漏掉了一个模 p
的计算。你应该计算:
(((pow(g, u1, p) * pow(y, u2, p))) % p ) % q