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

浙公网安备 33010602011771号