RSA加解密计算

RSA加解密计算

欧几里德算法:

整数a.b.商q,余数r

S.1:假设a大于b

2:作除法,计算并保留余数r=mod(a,b)

3:原除数作为被除数,余数作为除数,即a=b,b=r

4:重复s1.s2,直到r=0,返回b,最后一个不为0的余数就是最大公约数

快速指数模算法

M^e mod n: 指数模运算

算法步骤:需要定义a,b,c 的3个变量/常量

​ 1:对应Me mod n,把e值附给a,m值附给b,c值是常量1;

​ 2:若a=0,则c就是指数模运算的结果,也就是它的余数; 如果a不等于0,计算第3步;

​ 3:若a是奇数,转到第5步;若a是偶数,转到第4步;

​ 4:a值取上一次a值的1/2,b值则是(b*b)mod n,c不变取前一次的值,转入第3步。直到a=0为止;

​ 5:a值=a-1, b值取前一次的值,c值是(c*b)mod n。再从第2步做起,这是当a值是奇数的时候;如果a值偶数,就需要进入第4步;

一、RSA加密步骤

1.随机选两个保密的大素数p和q。

2.计算n=p×q,将n公开
3.计算\(\Phi\)(n)=(p-1)(q-1),对\(\Phi\)(n)保密,\(\Phi\)(n)即欧拉函数
4.随机选一整数e,满足1<e<\(\Phi\)(n),且gcd(\(\Phi\)(n), e)=1。
5.计算d(私钥),满足d * e = 1 mod \(\Phi\)(n),即d是e在模\(\Phi\)(n)下的乘法逆元,因e与\(\Phi\)(n)互素,由模运算可知,它的乘法逆元一定存在。

以K+ = {e,n}为公钥,K- = {d, n}为私钥。

6.加密:C=M^e mod n
7.解密:M=C^d mod n

二、数字签名

生成签名: S=Md % n

验证签名: VER(S)=Se % n

posted @ 2022-10-27 09:17  Morning|Star  阅读(63)  评论(0)    收藏  举报