2012-04-06 56 views
2

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

RSA找到公开指数的逆

在RSA密钥生成中,您可以选择一个非常大的订单中的两个大素数。然后你乘以它们(等式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(Euler(N))中e的反函数,但是当你解密的时候你是用mod(N)来做的。这怎么可能?

回答

4

查看wikipedia herehere。基本上,你想解密以“撤消”加密。由于E * d = 1个模φ(N)是相当于E * d = 1 + K *φ(N)的一些整数k,则有:

Çd模N =(M Ëd模N = M (E * d)模N = M (1个+ K *φ(N)) =(M )*(米φ(N)ķ mod N

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

1)XY =(一个XÝ =(一个ÝX,并
2)X + Y =一个X *一个ÿ

要完成这一点,并简化(米)*(米φ(N)ķ模N,记得THA T A φ(N) = 1模N,因此

(米φ(N)ķ模N = 1 ķ = 1模N.

+0

谢谢回复。但是我仍然没有得到^ phi(N)= 1的部分。它如何确保a(这是我们的信息)和N是相互矛盾的。我不太理解你的解释。 – Ashwin 2012-04-06 14:19:48

+0

@Ashwin:不能保证。对于RSA模量的预期大小而言,它实际上不太可能发生,所以可能性被忽略。 – 2012-04-06 21:56:46

+0

没问题.. N = p * q其中p和q是素数。那么,a和n不是共素的唯一的cse是a = p还是a = q?这是不太可能的。 – Ashwin 2012-04-07 00:47:12