带你理解RSA算法

一、什么是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)

 

猜你喜欢

转载自blog.csdn.net/damishidai15/article/details/88557164