RSA加密解密算法的证明

RSA加密解密算法如下:

生成公钥和私钥的步骤:

1. 选择两个质数 p, q

2. 设 n =p * q

3. 求出n的欧拉函数 f = (p-1)*(q-1)

4. 在[2, f)的范围内随机找一个与f互质的数 e 作为公钥的指数

5. 算出私钥指数d,d为公钥指数e对 f 的一个模反元素,即 ed = kf +1 (k为正整数)

6. 将(n, e)封装成公钥,将(n, d)封装成私钥

加密的步骤:

1. 设被加密的数为m, m为小于n的非负整数

2. 算出 c = (m^e) % n ,则 c 即为密文

解密的步骤:

算出 (c^d)%n , 即为被加密的数m,证明如下。

证明:

因为  c=m^e - n*g,其中g为非负整数,

所以  (c^d)%n = [ (m^e - n*g) ^ d ] % n

展开多项式后将n的整数倍的项去除,得到

[( m^e )^d] % n

=[ m^(e*d) ] % n

=[ m^(k*f+1) ] % n

=[ m * m^(k*f) ] % n

={ m * [ (m^f) ^ k] } % n

接下来分三种情况讨论:

第一种情况:m=0或者m=1

则 { m * [ (m^f) ^ k] } % n = m

第二种情况:m>1,且m与n互质

根据 欧拉定理  ,m^f = h*n+1,其中h为正整数

则 { m * [ (m^f) ^ k] } % n

={ m * [ ( h*n+1 ) ^ k] } % n

={ m * [ i*n + 1 ] } % n    (其中i为展开指数多项式后合并n的同类项得到的正整数)

=m%n 

=m  (因为m

第三种情况:m>1,且m与n不互质

因为n=p*q, 且p, q均为质数,则 m=j*p或者j*q, 其中j为正整数

当m=j*p时, 因为m

(证明:如果m, q不互质,则m含有质因数q,因为p与q互质, 所以 j 含有质因数p, 这与m

根据欧拉定理 m^(q-1)=x*q+1 ,其中x为正整数

则 { m * [ (m^f) ^ k] } % n

= { m * [ ( m^[(p-1)*(q-1)] ) ^ k] } % n

={ m * [ m^(q-1)^(p-1)^k ] } % n

={ j * p * [ ( x*q+1 )^ (p-1)^k ] } % n

={ j * p * [ y*q + 1 ] } % n    (其中y为展开指数多项式后合并q的同类项得到的正整数)

=(j*p*y*q + m ) %n

=(j*y*n+m) % n

=m

同理,当m=j*q时也成立。

证明完毕。

参考资料:

RSA解密正确性证明_国科大网安二班的博客-CSDN博客

https://blog.csdn.net/weixin_46395886/article/details/114700012#:~:text=RSA%E8%A7%A3%E5%AF%86%E6%AD%A3%E7%A1%AE%E6%80%A7%E8%AF%81%E6%98%8E%20%E5%85%88%E6%8F%8F%E8%BF%B0%E4%B8%80%E4%B8%8BRSA%E5%AF%86%E7%A0%81%E4%BD%93%E5%88%B6%EF%BC%9A%20RSA%E5%AF%86%E7%A0%81%E4%BD%93%E5%88%B6%EF%BC%9A%20%E5%A4%A7%E7%B4%A0%E6%95%B0%20p%2Cq%20%EF%BC%8C%E6%A8%A1%E6%95%B0,n%20%3D%20pq%20%EF%BC%8C%E5%8A%A0%E5%AF%86%E6%8C%87%E6%95%B0%20b%20%EF%BC%8C%E8%A7%A3%E5%AF%86%E6%8C%87%E6%95%B0

RSA算法原理 - 知乎 (zhihu.com)

https://zhuanlan.zhihu.com/p/48249182#:~:text=RSA%E7%AE%97%E6%B3%95%E5%8E%9F%E7%90%86%201%20%EF%BC%881%EF%BC%89%E4%B9%99%E6%96%B9%E7%94%9F%E6%88%90%E4%B8%A4%E6%8A%8A%E5%AF%86%E9%92%A5%20%28%E5%85%AC%E9%92%A5%E5%92%8C%E7%A7%81%E9%92%A5%29%E3%80%82...,2%20%EF%BC%882%EF%BC%89%E7%94%B2%E6%96%B9%E8%8E%B7%E5%8F%96%E4%B9%99%E6%96%B9%E7%9A%84%E5%85%AC%E9%92%A5%EF%BC%8C%E7%84%B6%E5%90%8E%E7%94%A8%E5%AE%83%E5%AF%B9%E4%BF%A1%E6%81%AF%E5%8A%A0%E5%AF%86%E3%80%82%203%20%EF%BC%883%EF%BC%89%E4%B9%99%E6%96%B9%E5%BE%97%E5%88%B0%E5%8A%A0%E5%AF%86%E5%90%8E%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%8C%E7%94%A8%E7%A7%81%E9%92%A5%E8%A7%A3%E5%AF%86%E3%80%82

你可能感兴趣的:(RSA加密解密算法的证明)