RSA习题文档格式.doc
- 文档编号:808613
- 上传时间:2023-04-29
- 格式:DOC
- 页数:5
- 大小:48KB
RSA习题文档格式.doc
《RSA习题文档格式.doc》由会员分享,可在线阅读,更多相关《RSA习题文档格式.doc(5页珍藏版)》请在冰点文库上搜索。
3.加密:
Y=m^emodn=14^3mod55=49
4.解密:
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功能的计算器。
3.RSA算法:
p=43,q=59,加密指数e=13,对明文M=134879475204,计算用RSA加密得到的密文。
要详细过程!
p=43,q=59,加密指数e=13
N=pq=2537
明文M=134879475204
密文=M^emodN=24857914412232
4.已知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;
5.对于RSA算法,设截获e=5,n=35的用户密文C=10,请问明文M是多少?
n=5*7
phi(n)=4*6=24
d=e^-1(modphi(n))=5
M=c^dmodn=5
6.在RSA算法中,选者两个质数P=17Q=11,加速密钥为E=7,计算密钥D
R=(17-1)*(11-1)
R*23/7余1
D=23
7.RSA算法中,素数p=7,q=11,加密密钥e=7,计算解密密钥d
N=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×
5.将p和q的记录销毁。
e是公钥,d是私钥。
d是秘密的,而N是公众都知道的。
Alice将她的公钥e传给Bob,而将她的私钥d藏起来。
8.题目:
用RSA算法加密时,已经公钥是(e=7,n=20),私钥是(e=3,n=20),用公钥对消息M=3加密,得到的密文是_____?
你所说的:
n=20
d=7公钥
e=3私钥
对M=3进行加密
M'
=M^d%n(M的d次方,然后除以n取余数)
=3^7%20=2187%20=7加密后等於7
对M'
=7进行解密
M=M'
^e%n=7^3%20=343%20=3解密后又变成3了
总结:
<
一>
基础
RSA算法非常简单,概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足e<
t并且e与t互素(就是最大公因数为1)
取d*e%t==1
这样最终得到三个数:
n
d
e
设消息为数M(M<
n)
设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=47
q=59
这样
n=p*q=2773
t=(p-1)*(q-1)=2668
取e=63,满足e<
t并且e和t互素
用perl简单穷举可以获得满主e*d%t==1的数d:
C:
\Temp>
perl-e"
foreach$i(1..9999){print($i),lastif$i*63%2668==1}"
847
即d=847
最终我们获得关键的
n=2773
d=847
e=63
取消息M=244我们看看
加密:
c=M**d%n=244**847%2773
用perl的大数计算来算一下:
perl-Mbigint-e"
print244**847%2773"
465
即用d对M加密后获得加密信息c=465
解密:
我们可以用e来对加密后的c进行解密,还原M:
m=c**e%n=465**63%2773:
print465**63%2773"
244
即用e对c解密后获得m=244,该值和原始信息M相等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RSA 习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)