简单理解RSA非对称加密演算法
文章目录
RSA 非对称加密
用户A 〈 —– 〉 用户B
第一步, 算出公钥私钥
1 找出质数 p, q
2 n = p * q
3 f(n) = (p-1)(q-1)欧拉函数
4 算出公钥 e : 1 < e < f(n) 之间的一个整数
5 e 和 f(n) 之间要互质
6 算出私钥 d :
e * d 除以 f(n) 余数为 1
第二步,加密明文
明文为 m ,
m^e 除以 n , 求余数 c ,c 即为密文
第三步, 解密密文
c ^d 除以n 求余数 m ,同即为明文
第四步,安全性如何呢?
经历以上几个步骤之后,在网络中传播的有以下几个因素:
| 传播 | n , e , c | 用户B |
| 解密 | n , d , c | 用户A |
由于d ,即私钥只有用户A知道,所以只有用户A可以解密出明文。
疑问: 能不能从 e 公钥来推导出 d 私钥呢?
答: 回顾以上第一步, 要知道 d , 首先要知道f(n),而求f(n),必须要知道p, q
f(n)
e ---------------> d
n = p * q
RSA常用的是一个1024位二进制数 n , 想对它进行质因数分解以目前的技术算力来说,是算不出来的。
不过随着量子计算机的出现,RSA加密算法即将失去它的作用。
文章作者 elone
上次更新 2018-04-30