C++ RSA算法--无法验证d

C++ RSA算法--无法验证d,c++,encryption,cryptography,rsa,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模(17-1)(11-1)=1非161 我做错了什么???你需要找到d这样 d*e = 1 mod ((p-1)(q-1)), 这和说 d

所以我正在测试我的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模(17-1)(11-1)=1非161


我做错了什么???

你需要找到
d
这样

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

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

仔细看看RSA算法是如何工作的。所以基本上你必须找到模的乘法逆
e
(p-1)(q-1)

哇,非常感谢!7^-1 mod(17-1)(11-1)实际上是23(即d)!