我目前正在写一篇关于公钥加密的文章,特别是RSA。 我理解生成公钥和私钥所涉及的大多数算法。但是我很难理解我如何使用Bézout的身份获取私钥?而且我也不太明白为什么会使用Bézout的身份?
假设:
n=55
phi(n)=40
e = 7
因此e * d mod phi(n)= 1
7*d mod 40 = 1
gcd(40,7) = 1
因此Bézout的身份看起来像这样:
3(40)-17(7)=1
其中40和7分别是phi(n)和e。
我从例子中知道d应该是23。 所以我说对了d = e - 17?
如果不是我怎么得到d?
答案 0 :(得分:2)
在您的示例中,d = -17
(因为Bézout的身份表明存在x
和y
,因此x*a + y*b = gcd(a,b)
)。
您正在寻找d
e*d = 1 mod phi(n)
,因此您可以将此负d
转换为仍然满足等式的正值,只需添加{{1}的倍数即可}}。在这种情况下,我们只需添加一次phi(n)
,即可为phi(n)
提供预期值:
d