RSA习题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.假设需要加密的明文信息为m=85,选择:e=7,p=11,q=13,说明使用RSA算法的加密和解密1.首先求出模数n=p*q=1432.求出(p-1)*(q-1)=1203.e已知,就不用求了4.找出d满足e*d=1mod(p-1)*(q-1),这里d=103然后用n和e作为公钥计算出密文c=m^emodn=123用n和d作为密钥进行解密计算出m=c^dmodn=85=qrl&cid=90&index=2&fr2=query2.假设需要加密的明文信息为m=14,选择:e=3,p=5,q=11,试说明使用RSA算法的加密和解密过程及结果?RSA:1.n=p*q=5*11=55,设m=(q-1)*(p-1)=402.求d,ed=1modm.所以d=273.加密:Y=m^emodn=14^3mod55=494.解密:X=Y^dmodn=49^27mod55=14=m解密得到了明文m,证明了计算是正确性。说明:1.算d.原理就不讲了,想知道可以看我回答过类似的问题。比如可以使用估值法:3d=k(q-1)(p-1)+1,k=0,1,2...代入求可以整除3的k。此题k=2,很快得到d=27。2.关于mod,49^27mod55很难计算,一定要将49分成若干次方,然后分别mod55来降低难度。当然,还可以使用有mod功能的计算器。=33.RSA算法:p=43,q=59,加密指数e=13,对明文M=134879475204,计算用RSA加密得到的密文。要详细过程!p=43,q=59,加密指数e=13N=pq=2537明文M=134879475204密文=M^emodN=24857914412232=qrl&cid=983&index=44.已知RSA算法中,素数p=5,q=7,模数n=35,公开密钥e=5,密文c=10,求明文RSA的算法涉及三个参数,n、e1、e2。其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。(n及e1),(n及e2)就是密钥对。RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1modn;B=A^e2modn;e1和e2可以互换使用,即:A=B^e2modn;B=A^e1modn;=qrl&cid=93&index=15.对于RSA算法,设截获e=5,n=35的用户密文C=10,请问明文M是多少?n=5*7phi(n)=4*6=24d=e^-1(modphi(n))=5M=c^dmodn=5=qrl&cid=93&index=26.在RSA算法中,选者两个质数P=17Q=11,加速密钥为E=7,计算密钥DR=(17-1)*(11-1)R*23/7余1D=23=qrl&cid=983&index=37.RSA算法中,素数p=7,q=11,加密密钥e=7,计算解密密钥dN=pq=7*11=77(p-1)(q-1)=6*10=60根据公式d×e≡1(mod(p-1)(q-1))又e=7,所以7*d≡1(mod60)。。即7dmod60=1。7x43=301。。301除以6刚好余1.所以d=43______________________________________________下面是公式依据:假设Alice想要通过一个不可靠的媒体接收Bob的一条私人讯息。她可以用以下的方式来产生一个公钥和一个私钥:1.随意选择两个大的质数p和q,p不等于q,计算N=pq。2.根据欧拉函数,不大于N且与N互质的整数个数为(p-1)(q-1)3.选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)4.用以下这个公式计算d:d×e≡1(mod(p-1)(q-1))5.将p和q的记录销毁。e是公钥,d是私钥。d是秘密的,而N是公众都知道的。Alice将她的公钥e传给Bob,而将她的私钥d藏起来。=qrl&cid=983&index=28.题目:用RSA算法加密时,已经公钥是(e=7,n=20),私钥是(e=3,n=20),用公钥对消息M=3加密,得到的密文是_____?你所说的:n=20d=7公钥e=3私钥对M=3进行加密M'=M^d%n(M的d次方,然后除以n取余数)M'=3^7%20=2187%20=7加密后等於7对M'=7进行解密M=M'^e%n=7^3%20=343%20=3解密后又变成3了=qrl&cid=983&index=1总结:一基础RSA算法非常简单,概述如下:找两素数p和q取n=p*q取t=(p-1)*(q-1)取任何一个数e,要求满足et并且e与t互素(就是最大公因数为1)取d*e%t==1这样最终得到三个数:nde设消息为数M(Mn)设c=(M**d)%n就得到了加密后的消息c设m=(c**e)%n则m==M,从而完成对c的解密。注:**表示次方,上面两式中的d和e可以互换。在对称加密中:nd两个数构成公钥,可以告诉别人;ne两个数构成私钥,e自己保留,不让任何人知道。给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。rsa的安全性在于对于一个大数n,没有有效的方法能够将其分解从而在已知nd的情况下无法获得e;同样在已知ne的情况下无法求得d。二实践接下来我们来一个实践,看看实际的操作:找两个素数:p=47q=59这样n=p*q=2773t=(p-1)*(q-1)=2668取e=63,满足et并且e和t互素用perl简单穷举可以获得满主e*d%t==1的数d:C:\Tempperl-eforeach$i(1..9999){print($i),lastif$i*63%2668==1}847即d=847最终我们获得关键的n=2773d=847e=63取消息M=244我们看看加密:c=M**d%n=244**847%2773用perl的大数计算来算一下:C:\Tempperl-Mbigint-eprint244**847%2773465即用d对M加密后获得加密信息c=465解密:我们可以用e来对加密后的c进行解密,还原M:m=c**e%n=465**63%2773:C:\Tempperl-Mbigint-eprint465**63%2773244即用e对c解密后获得m=244,该值和原始信息M相等。

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功