RSA找到了公共指數的逆。

[英]RSA finding the inverse of the public exponent

I have a very basic doubt in RSA key generation and its usage.

In RSA key generation you choose two large prime numbers of a very large order. Then you multiply them.(eq p * q = N) Now, Euler(N)=(p-1)(q-1). Now you find a number 0 < e < Euler(N) such that e and Euler(N) are coprime. {e.Euler(N)} becomes your public key. Now you compute d(private key) such that e * d =1 (mod(Euler(N))).
Now suppose you encrypt something(m) with your the public key - c=m^e(mod(N)). And now while decrypting with the private key(d), you do c^d(mod(N)).
Now my doubt is that you found out the inverse of e in mod(Euler(N)), but when you are decrypting you are doing it in mod(N). How is this possible?

1 个解决方案

#1

4

See wikipedia here and here. Basically, you want to decryption to "undo" encryption. Since e*d = 1 mod φ(N) is equivalent to e*d = 1 + k*φ(N) for some integer k, you have:

cd mod N = (me)d mod N = m(e*d) mod N = m(1 + k*φ(N)) = (m1) * (mφ(N))k mod N

cd mod N =(我)d mod N = m(e * d)mod N = m(1 + k *φ(N))=(m1)*(mφ(N))k mod N

by application of the following rules you learned in algebra:

1) axy = (ax)y = (ay)x, and
2) ax+y = ax * ay

1)axy = (ax)y = (ay)x， (2) ax+y = ax * ay。

To finish this and simplify (m1) * (mφ(N))k mod N, remember that aφ(N) = 1 mod N, so

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

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