RSA算法 - 无法验证d

时间:2014-05-28 15:48:23

标签: c++ encryption cryptography rsa

所以我正在测试我的RSA算法,我认为我做错了。

如果我理解正确,要产生d - 我需要找到d * e或1 mod(p-1)(q-1)(因为它们应该是全等的)。

像这样的东西

   d = e.modInverse(p_1.multiply(q_1))

不幸的是,我不知道1 mod的任何数字将是1以外的任何数字。

例如:p = 17,q = 11,e = 7,d = 23

23 * 7 = 161,但1 mod(17-1)(11-1)= 1而不是161。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要找到d

d*e = 1 mod ((p-1)(q-1)),

与说

相同
d = e^(-1) mod ((p-1)(q-1)).

更仔细地了解RSA算法的工作原理。所以基本上你必须找到e modulo (p-1)(q-1)的乘法逆。