一、什么是RSA
RSA算法是一种非对称加密算法,在公开密钥加密和电子商业中RSA被广泛使用。
更具密钥的使用方法,可以将密码分为对称密码和非对称密码
二、RSA加密与解密
1、算法描述:
(1)、选择两个不相等素数p,q
(2)、计算n=pq
(3)、计算f(n)=(p-1)(n-1)——欧拉函数
(4)、找一个f(n)互质的数e,且1<e<f(n)
(5)、计算e对于f(n)的模反元素d,使de=1 mod f(n)
2、基础概念补充
(1)素数:又称为指数,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数
(2)互质数:两个或多个整数的公因数中有1的非零自然数,叫做互质数。
(3)模反元素:如果两个正整数a和n互质,那么一定可以找到整数b使得ab-1被n整除,或者是ab被n整除的余数为1,这时b就叫做a的模反元素
三、实例计算
1、选择两个不相等的素数pq分别为61、53
2、计算n=61*53=3233
n的长度就是密钥的长度,3233写为而进驻是110010100001,一共有12位,这个密钥就是12位。实际应用中RSA密钥一般是1024位,重要场合位2048位
3、计算n的欧拉函数f(n)
f(n)=(p-1)(n-1)=60*52=3120
4、选择整数e与f(n)互质,且1<e<f(n)
随机选择e=17
5、计算e对于f(n)的模反元素d
de=1(mod f(n)) 等价于 ed-1=kf(n)
将e=17,f(n)=3120代入得d=2753
6、最后公钥为(3233,17)私钥为(3233,2753)