假设需要加密的明文信息为m=14,选择:e=3,p=5,q=11,试说明使用RSA算法的加密和解密过程及结果?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假设需要加密的明文信息为m=14,选择:e=3,p=5,q=11,试说明使用RSA算法的加密和解密过程及结果?相关的知识,希望对你有一定的参考价值。

RSA:
1.n=p*q=5*11=55,设m=(q-1)*(p-1)=40
2.求d, ed=1 mod m. 所以d=27
3.加密:Y=m^e mod n=14^3 mod 55=49
4.解密:X=Y^d mod n=49^27 mod 55=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功能的计算器。
虽然没分,我答了,有分的话就意思一下吧。
PS.楼上的,这道题没你做的那么简单,要求d的(难点)。那道题目公钥,私钥都给了直接加密解密就行,太简单了。
还有,这只是到练习吧,用不着考虑n很小的问题。
参考技术A 我写的这个浅显易懂,看看你就明白了。举得有例子。

RSA算法举例说明
http://hi.baidu.com/lsgo/blog/item/5fd0da24d495666834a80fb8.html

知道里面刚才回答了另个朋友的问题帖出来给你看看
http://zhidao.baidu.com/question/91261774.html?si=2
题目:用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取余数)
M'=3^7%20=2187%20=7 加密后等於7

对M'=7进行解密
M=M'^e%n=7^3%20=343%20=3 解密后又变成3了

你取的两个素数太小了,所以n太小根本起不了作用。至少要取1024位的数字

假设需要加密明文信息为m=85,选择:e=7,p=11,q=13,说明使用RSA算法加密和解密过程及结果。

1.首先求出模数n=p*q=143
2.求出(p-1)*(q-1)=120
3.e已知,就不用求了
4.找出d满足e*d=1 mod (p-1)*(q-1),这里d=103
然后用n和e作为公钥
计算出密文c=m^e mod n=123
用n和d作为密钥进行解密
计算出m=c^d mod n=85
以上是用win7带的科学计算器计算的,结果正确。
(2楼的d值求错了)
参考技术A 首先,求出p与q的乘积n=11*13=143
第二步,计算n的欧拉函数为10×12=120
第三步,求解密密钥d=17
加密:计算密文c为m的e次方mod n,得到c=72
解密:计算明文m为c的d次方mod n,得到m=85
参考技术B 回答

您好,很高兴为您服务,请您耐心等待,正在努力查询

提问

假设需要加密的明文信息为m=85,选择:e=7,p=11,q=13,说明使用RSA算法的加密和解密过程及结果

能不能给个过程

回答

1.首先求出模数n=p*q=1432.求出(p-1)*(q-1)=1203.e已知,就不用求了4.找出d满足e*d=1 mod (p-1)*(q-1),这里d=103然后用n和e作为公钥计算出密文c=m^e mod n=123用n和d作为密钥进行解密计算出m=c^d mod n=85

提问

假设需要加密的明文信息为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=1 mod m.所以d=273.加密:Y=m^e mod n=14^3 mod 55=494.解密:X=Y^d mod n=49^27 mod 55=14=m解密得到了明文m,证明了计算是正确性.

提问

怎么和第一个不太一样呀

回答

两种解答办法

参考技术C #include<stdio.h>
#include<math.h>
int candp(int a,int b,int c)
int r=1;
int i=1;
for(i=1;i<=b;i++)

r=r*a;
r=r%c;

return r;


int main()

int p,q,e,d,m,n,t,c,r;
char s;
printf("please input the p,q:");
scanf("%d%d",&p,&q);
n=p*q;
t=(p-1)*(q-1);
printf("the n is %12d\n",n);
printf("please input the e:");
scanf("%d",&e);
while(e<1||e>n)

printf("e is error,please input again:");
scanf("%d",&e);

d=1;
while(((e*d)%t)!=1) d++;
printf("then caculate out that the d is %d\n",d);
printf("加密 please input 1\n");
printf("解密 please input 2\n");
scanf("%c",&s);
while((s-'0')!=1&&(s-'0')!=2)

scanf("%c",&s);
switch(s-'0')

case 1:
printf("intput the m:");
scanf("%d",&m);
c=candp(m,e,n);
printf("the plain is %d\n",c);break;
case 2:
printf("input the c:");
scanf("%d",&c);
m=candp(c,d,n);
printf("the cipher is %8d\n",m);
break;

参考技术D 这个我可以回答你,最近正在做这个。加QQ673107529

以上是关于假设需要加密的明文信息为m=14,选择:e=3,p=5,q=11,试说明使用RSA算法的加密和解密过程及结果?的主要内容,如果未能解决你的问题,请参考以下文章

RSA已知明文和公钥能得到私钥加密的密文吗

RSA 算法

对称秘钥密码体系

java的RSA签名验签怎么转化成c

密码学

RSA加解密原理