Encryption 如何解密RSA加密?

Encryption 如何解密RSA加密?,encryption,rsa,Encryption,Rsa,有人问我: “使用RSA:072 062 120 129解密此消息(提示您需要将最终答案从ASCII转换为纯文本。 用于加密消息的公钥为(n,e)=(143,7)。” 我不知道如何解密它,这是我们得到的唯一信息。但是,我知道p和q是13和11,你可以通过找到2个素数乘以n得到 有人知道怎么解密吗 提前感谢,这是一种压倒性的挑战。您可以使用作为指导 从p和q可以计算λ(n): λ(n)=lcm(p-1,q-1)=lcm(12,10)=60 一旦知道λ(n),就可以用它来计算d,e模λ(n)的乘

有人问我:

“使用RSA:072 062 120 129解密此消息(提示您需要将最终答案从ASCII转换为纯文本。 用于加密消息的公钥为(n,e)=(143,7)。”

我不知道如何解密它,这是我们得到的唯一信息。但是,我知道p和q是13和11,你可以通过找到2个素数乘以n得到

有人知道怎么解密吗

提前感谢,这是一种压倒性的挑战。

您可以使用作为指导


从p和q可以计算λ(n):

λ(n)=lcm(p-1,q-1)=lcm(12,10)=60


一旦知道λ(n),就可以用它来计算d,e模λ(n)的乘法逆:

d=e⁻1(模λ(n))

这本质上意味着找到一个自然数d,使得d*e=1(mod 60)

下面的Python代码片段就是这样做的:

d = next(d for d in range(60) if d*7 % 60 == 1)
d的值是43


一旦我们有了d,我们就可以用它来解密消息的各个数字:

decrypted_ascii = [(x**d) % 143 for x in [72, 62, 120, 129]]
decrypted_text = ''.join(chr(x) for x in decrypted_ascii)

解密的文本是
text

你的模逆计算在教育意义上非常糟糕,而且不有效。看看这个,如何使用EXT-GCD计算它。另外,它显然是家庭作业,你提供了完整的答案!我的模逆计算非常适合用于教学目的。如果我使用了你提供的那一个,O在阅读了我的答案后,P可能会比他提问时更加困惑。至于这是否是一个家庭作业,我并不打算解决家庭作业,这样OP就不必这样做;相反,我想帮助OP了解RSA算法是如何工作的。如果你愿意,请随意标记我的答案。+1,这是一个e学习基础知识的最佳答案。关于家庭作业问题的stackoverflow规则略有细微差别:我们很乐意提供帮助,但我们希望提问者在问题主体中表现出一些努力。没有其他信息的家庭作业转储应该关闭,因为“需要更多关注”或者类似的。当然不是每个人都相信这一点。也许到时候你自己也会有这种看法。不管怎样,谢谢你的贡献。