银行密码系统安全吗?质数(素数)到底有啥用?李永乐老师11分钟讲RSA加密算法(2018最新)_哔哩哔哩_bilibili
RSA加密时一种典型的非对称加密算法通过公钥e和私钥d,通过算法形成加密。
非对称加密:公钥e公开,通过算法结合公钥加密明文,将明文公开传递,接受者需要通过私钥d通过算法得到明文。
RSA加密基本步骤如下:
一、选取两个质数,这两个质数一般来说要求要很大
二、计算n=q*p
三、使用欧拉函数φ(n)=(p-1)(q-1) 计算φ(n)
四、选取一个整数作为公钥e使1<e<φ(n),且e和φ(n)互质
五、计算关于φ(n)的模逆元,私钥为d,ed=1(mod φ(n))的含义就是(e*d)÷φ(n)的余数为1
六、假设明文m、密文c,加密方式:(m**e)÷n的余数为c ;解密方式:(c**d)÷n的余数为m
发送者要传给接收者(可公开)n、公钥e、c
接收者本身知道私钥d,通过发送者传递又知道n、c,那么就可以进行解密
到这里就有人会说,那我既然知道n、c、e,我为什么不能计算出来d呢?我们简单看一下计算过程,首先通过e计算出d需要知道φ(n),φ(n)=(p-1)(q-1),而n=p*q,众所周知,两个质素相φ(n)乘很容易算出答案,但是要将这个乘积再拆分成原本的两个质数就很难,特别是当这两个质数很大的时候,乘积拆分后的质数有很多组,所以当两个质数qp很大的时候,分解基本上不可能得到正确的那一组,所有RSA算法算是很安全的。