RSA找到公共指数的倒数

时间:2012-04-06 03:33:21

标签: rsa

我对RSA密钥生成及其用法有一个非常基本的疑问。

在RSA密钥生成中,您可以选择两个非常大的订单的大素数。然后你将它们相乘。(eq p * q = N) 现在,Euler(N)=(p-1)(q-1)。现在你找到一个数字0 < e < Euler(N),使得e和Euler(N)是互质的。 {e.Euler(N)}成为您的公钥。现在你计算d(私钥),使e * d =1 (mod(Euler(N)))  现在假设您使用公钥加密某些内容(m) - c=m^e(mod(N)). 现在,在使用私钥(d)解密时,您执行c^d(mod(N)) 现在我的疑问是你在mod(欧拉(N))中发现了e的倒数,但是当你解密时,你正在用mod(N)来做。这怎么可能?

1 个答案:

答案 0 :(得分:4)

请参阅维基百科herehere。基本上,您希望解密“撤消”加密。由于e⋅d= 1modφ(N)相当于某个整数k的e⋅d= 1 +k⋅φ(N),你有:

c d mod N =(m e d mod N = m (e⋅d) mod N = m (1 +k⋅φ(N)) =(m 1 )·(m φ(N) k mod N

通过应用您在代数中学到的以下规则:

1) xy =(a x y =(a y x
2)a x + y = a x ·a y

要完成此操作并简化(m 1 )·(m φ(N) k mod N,请记住φ(N) = 1 mod N,所以

(m φ(N) k mod N = 1 k = 1 mod N。