RSA算法浅入浅出
作者:互联网
RSA算法流程
生成公钥私钥
- 找出两个大质数p,q,位数最好超过1024位,质数越大破解难度越大,这两个质数不能公开
n = p * q
f(n) = (p - 1) * (q - 1)
- 公钥e,满足
1 < e < f(n)
,且e与f(n)互质 - 私钥d,满足
e * d % f(n) = 1
加密过程
- 加密方需要知道n,和公钥e。
- 设加密信息为m,m必须小于n,大于的话则将信息分组再传
- 加密过程:
明文m -> m^e % n -> 密文c
(注意这里的^是幂运算,不是异或,下同)
解密过程
- 解密方需要知道n,和私钥d
- 设收到的密码信息为c,解密过程:
密文c -> c^d % n -> 明文m
补充
加解密过程可以互换,公钥加密的信息只有私钥才可以解密,所以可以用于给传递信息。
同理,私钥加密的内容公钥可以解密,因此可以用于验证信息。
大质数可以考虑通过Miller-Rabin素数检测算法
生成,公钥的生成则选取与f(n)不重复的质因子来生成,私钥通过扩展欧几里得算法
计算,加解密过程可使用快速幂
。
初次了解加密算法,可能理解的比较肤浅。先记录一下,日后有机会再深究。
标签:公钥,加密,浅入,质数,RSA,解密,算法,浅出,私钥 来源: https://www.cnblogs.com/corvey/p/10469747.html