目录
密钥生成过程
1.选取两个不同的大素数p和q,为了安全程度最大,p和q长度一致,计算模n=pq;
2.计算模n的欧拉函数:φ(n)=(p-1)(q-1);(至于为什么欧拉函数是这样,请移步浅谈欧拉函数)
3.随机选择一个整数 e, 1< e < φ(n),且 e 与 φ(n) 互质
4.计算私钥d,满足d*e≡1(modφ(n))
加密和解密
加密(计算密文C)
C=M^e mod n
解密(计算明文M)
M=C^d mod n
举例
题目:已知p=7,q=11,e=17,M=8,应用RSA算法对明文M进行加密得到密文C,并对密文C解密。
解:
1.计算模,n=pq=77;
2.计算模n的欧拉函数,φ(n)=(p-1)(q-1)=6*10=60;
3.计算私钥d,e*d≡1(modφ(n));d=53;
4.计算密文C,C=M^e modn=8^17mod77=57mod77,得C=57(第四步和第五步计算要用到中国剩余定理)
5.计算明文M,M=C^d modn=57^53mod77=8mod77,得M=8
顺带提一下数字签名技术
生成过程同上文密钥生成过程
数字签名过程
[H(m)]^d modn=S
数字签名验证
S^e modn=H(m)
举例
已知p=13,q=11,e=13,则有n=pq=143,φ(n)=(p-1)(q-1)= 120。求解e*d=13d=1(mod120)得d=37,即公钥为(n=143, e=13),私钥为d=37
签名过程:假定消息m的哈希值h(m)=16,计算m的签名
s = h(m)^d mod n=16^37 mod 143 = 3
验证过程:收到签名s后,计算
s^e mod n=3^13 mod 143=16, h(m) mod n=16 mod 143 =16
等式h(m) mod n= se mod n成立,因此,此签名有效。
中国剩余定理
最后再扯一下中国剩余定理
话说“韩信用兵,多多益善。此是化工造物之妙。” 停停停,我怎么可能从这里开始讲起。
想看韩信点兵(证明过程)的去这里看→中国剩余定理(CRT )
已知a * b mod n = ( a mod n ) * ( b mod n ) mod n
所以a^b mod n = (a mod n)^b mod n
举两个例子直观一些
本文详细介绍了RSA算法的密钥生成过程,包括选择大素数、计算欧拉函数、选择私钥等步骤,随后阐述了加密和解密原理,并通过实例演示了如何应用该算法。此外,还涉及数字签名技术及其生成验证过程,以及中国剩余定理在RSA中的应用。

4万+

被折叠的 条评论
为什么被折叠?



