RSA简介
RSA是一种非对称加密算法,非对称加密算法是指加密与解密所用的密钥不一致的加密方式
RSA的安全性是基于难以对极大整数因式分解的困难
其完整使用过程:
乙方生成一对密钥(公钥和私钥),公钥是直接公开的任何人都可以得到,而私钥则是保存在乙方的手中
甲方使用公钥对明文(m)加密生成密文(c)发送给乙方
乙方则使用私钥对密文(c)解密生成明文(m)
密钥生成过程
1.随机找两个质数p和q
2.计算出p和q的乘积n,p和q越大就难以被破解(因为需要对大整数n进行因数分解)
3. 计算 n 的欧拉函数 φ(n):φ(n) = φ(p * q)= φ(p - 1)φ(q - 1) = (p - 1)(q - 1)
4.选取一个与φ(n) 互质的整数e,1<e<φ(n)
5.计算e对于 φ(n) 的模反元素d,可以使得 ed 除以 φ(n) 的余数为 1
1<d<e,且ed mod φ(n) = 1 ) 即:d=e^-1 ( mod φ(n)
6.公钥(n,e);私钥(n,d)
加解密过程
加密:c = m^e mod N
解密:m = c^d mod N