RSA算法很简单,就是基于欧拉定理的简单算法
M=5是明文,计算过程如下:
n=p*q=33;
(p-1)*(q-1)=20;
加密:y=密文,x=明文=5;
y=x^e mod n = 5^7 mod 33 = 14;
解密:
x=y^d mod n;
d*e= 1 [mod(p-1)*(q-1)];
7d=1(mod 20)所以d=3;
所以x=y^d mod n= 14^3 mod 33 = 5;解完
加密由5~14,解密由14~5,实现了RSA算法的加密解密过程,证明了计算的正确性。
其他2题同理,自己做吧。
‘贰’ RSA加密算法求解
你好,首先是N = p*q =1517, 然后是L = (p-1)*(q-1)=1440.
利用E*D%L=1, 计算出D=593, 所以这个公钥是(E,N) == (17,1517)
私钥是(D,N) = (593,1517)
明文可以分成两个 123 和45.
加密是= (明文)^E %N = 123^17%1517 =这个数字太大了,我就不计算了,计算一个小45的给你看看好了
(明文)^E %N = 45^17%1517 = 763
解密是= (密文)^D%N = (763)^593%1517 .... 你自己计算一下好了,应该就是45
‘叁’ 恺撒密码和RSA算法2题求解
M的e次方乘mod pq就是RSA的加密算法,上面哪个我就不知到了,不好意思啊!
‘肆’ 利用RSA算法运算,如果p=11,q=13, e=103,对明文3进行加密.求d及密文
取2个质数p=11,q=13,p和q的乘积为n=p×q=143,算出φ(n)=n-p-q+1=120;再选取一个与φ(n)互质的数,例如e=7,则公开密钥=n,e=143,7.
对于这个e值,用欧几里德扩展算法可以算出其逆:d=103.因为e×d=7×103=721,满足e×d mod z =1;即721 mod 120=1成立.则秘密密钥=n,d=143,103,
设发送方需要发送机密信息(明文)m=3,发送方已经从公开媒体得到了接收方的公开密钥n,e=143,7,于是发送方算出加密后的密文c= m的e次方 mod n=42
‘伍’ 完成RSA算法,RSA加密 p=3,q=11,e=7,M=5;请写出求公钥和私钥的过程。
n=p*q=33
phi=(p-1)(q-1)=20
e=7
e * d = 1 ( mod phi)
d=17
公私密钥对:
(n,d)
(n,e)
编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a < n....
如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t),
则每一位数均小于 n, 然后分段编码……
接下来, 计算 b == a^d mod n, (0 <= b < n),
b 就是编码后的资料……
解码的过程是, 计算 c == b^e mod pq (0 <= c < pq),
于是乎, 解码完毕…… 等会会证明 c 和 a 其实是相等的
‘陆’ RSA加密算法问题求解!!
首先说一下求d的答案,ed=1mod(p-1)(q-1)=1mod60即7d=1mod60的意思是e与d的乘积对(p-1)(q-1)取余结果是1,题目给出e=7,(p-1)(q-1)可以求得是60,即(7d)%60=1【%是取余符号】,可以得出43*7=301=5*60+1
题目已给出M=17,秘文C=M^e mod n即M的e次方对n取余,代入数值为17^5%143=10
希望对你有帮助
‘柒’ 求解计算RSA算法加密的步骤。 用RSA算法加密时,已知公钥是(e=7,n=20)...
加密时用公钥d,解密时用私钥e
公式都一样
要加密或解密的数字做e次方或d次方,得到的数字再和n进行模运算,模运算就是求余数
拿你给的数据来算的话就是
3的7次方等于2187,2187除以20等于109,余数是7
所以得到的密文就是7
解密就是算7的3次方343,343除以20等于340余数3,于是我们又得回原来的明文3了
‘捌’ 一个RSA算法的加密运算,需要完整的演算过程。
我来回答你可以闭帖了,呵呵
看你题目的意思就是打算把republic这个词按照你的方法装换成数字例如是:X
p=3,q=11
n=p*q=33
t=(p-1)*(q-1)=20
取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)
我们可以取e=7
要求d*e%t==1(D*e除以t取余等于1),我们可以找到D=3
此时我们就有了三个数
n=33
d=3 公钥
e=7 私钥
设消息为数M (M <n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。
我们可以对republic词按照你的方法装换成数字:X一位一位的加密。
加入X的第一位是6(别的同理)
则:M = 6
加密时:(c为加密后的数字)
c=(M**d)%n=(6^3)%33=216%33=18(商6余18),则6加密后就是18了
解密时:
设m=(c**e)%n则 m == M,
(18^7)%33=612220032%33=6(商18552122余6)
到此加密解密完成。
至于怎么把republic装换成X,把X装分成多少部分进行分批加密,你可以自己决定。但是加密的数字M 需要小于n
如果需要给你写个程序,留个Email,我空的时候写个发给你。
我个人给你个方法,因为n=33 >26(26个英文字母),所以可以把republic分成一个字母一个字母的加密。
按你的分发 REP 就分成数字
18 05 16
加密
(18^3)%33=5832%33= 24
(05^3)%33=125%33= 26
(16^3)%33=%33= 4
所以加密后就是
24 26 04 转换成字母就是 XZD
解密
(24^7)%33=4586471424%33=18
(26^7)%33=8031810176%33=05
(4^7)%33=16384%33=16
又变成 18 05 16 转换成字母就是 REP
是不是很简单啊~~
我如果不懂。空间里面有片文章,你可以看看,就知道我上面讲的那些是什么意思了。
RSA算法举例说明
http://hi..com/lsgo/blog/item/5fd0da24d495666834a80fb8.html
‘玖’ 根据RSA算法,用公钥(n=15,e=3)加密数字7,然后用私钥(n=15,d=11)解密上述加密
加密=7^3mod15=13
解密=13^11mod15
‘拾’ 用RSA对下列数据实现加密和解密:
拜托:老大,你的家庭作业也来问?
你自己学吧:下面是课文^
RSA加密算法
该算法于1977年由美国麻省理工学院MIT(Massachusetts Institute of Technology)的Ronal Rivest,Adi Shamir和Len Adleman三位年轻教授提出,并以三人的姓氏Rivest,Shamir和Adlernan命名为RSA算法。该算法利用了数论领域的一个事实,那就是虽然把两个大质数相乘生成一个合数是件十分容易的事情,但要把一个合数分解为两个质数却十分困难。合数分解问题目前仍然是数学领域尚未解决的一大难题,至今没有任何高效的分解方法。与Diffie-Hellman算法相比,RSA算法具有明显的优越性,因为它无须收发双方同时参与加密过程,且非常适合于电子函件系统的加密。
RSA算法可以表述如下:
(1) 密钥配制。假设m是想要传送的报文,现任选两个很大的质数p与q,使得:
(12-1);
选择正整数e,使得e与(p-1)(q-1)互质;这里(p-1)(q-1)表示二者相乘。再利用辗转相除法,求得d,使得:
(12-2);
其中x mod y是整数求余运算,其结果是x整除以y后剩余的余数,如5 mod 3 = 2。
这样得:
(e,n),是用于加密的公共密钥,可以公开出去;以及
(d,n),是用于解密的专用钥匙,必须保密。
(2) 加密过程。使用(e,n)对明文m进行加密,算法为:
(12-3);
这里的c即是m加密后的密文。
(3) 解密过程。使用(d,n)对密文c进行解密,算法为:
(12-4);
求得的m即为对应于密文c的明文。
RSA算法实现起来十分简捷,据说英国的一位程序员只用了3行Perl程序便实现了加密和解密运算。
RSA算法建立在正整数求余运算基础之上,同时还保持了指数运算的性质,这一点我们不难证明。例如:
(12-5);
(12-6)。
RSA公共密钥加密算法的核心是欧拉(Euler)函数ψ。对于正整数n,ψ(n)定义为小于n且与n互质的正整数的个数。例如ψ(6) = 2,这是因为小于6且与6互质的数有1和5共两个数;再如ψ(7) = 6,这是因为互质数有1,2,3,5,6共6个。
欧拉在公元前300多年就发现了ψ函数的一个十分有趣的性质,那就是对于任意小于n且与n互质的正整数m,总有mψ(n) mod n = 1。例如,5ψ(6) mod 6 = 52 mod 6= 25 mod 6 =1。也就是说,在对n求余的运算下,ψ(n)指数具有周期性。
当n很小时,计算ψ(n)并不难,使用穷举法即可求出;但当n很大时,计算ψ(n)就十分困难了,其运算量与判断n是否为质数的情况相当。不过在特殊情况下,利用ψ函数的两个性质,可以极大地减少运算量。
性质1:如果p是质数,则ψ(p) = (p-1)。
性质2:如果p与q均为质数,则ψ(p·q) = ψ(p)·ψ(q) = (p-1)(q-1)。
RSA算法正是注意到这两条性质来设计公共密钥加密系统的,p与q的乘积n可以作为公共密钥公布出来,而n的因子p和q则包含在专用密钥中,可以用来解密。如果解密需要用到ψ(n),收信方由于知道因子p和q,可以方便地算出ψ(n) = (p-1)(q-1)。如果窃听者窃得了n,但由于不知道它的因子p与q,则很难求出ψ(n)。这时,窃听者要么强行算出ψ(n),要么对n进行因数分解求得p与q。然而,我们知道,在大数范围内作合数分解是十分困难的,因此窃密者很难成功。
有了关于ψ函数的认识,我们再来分析RSA算法的工作原理:
(1) 密钥配制。设m是要加密的信息,任选两个大质数p与q,使得 ;选择正整数e,使得e与ψ(n) = (p-1)(q-1)互质。
利用辗转相除法,计算d,使得ed mod ψ(n) = ,即ed = kψ(n) +1,其中k为某一正整数。
公共密钥为(e,n),其中没有包含任何有关n的因子p和q的信息。
专用密钥为(d,n),其中d隐含有因子p和q的信息。
(2) 加密过程。使用公式(12-3)对明文m进行加密,得密文c。
(3) 解密过程。使用(d,n)对密文c进行解密,计算过程为:
cd mod n = (me mod n)d mod n
= med mod n
= m(kψ(n) + 1) mod n
= (mkψ(n) mod n)·(m mod n)
= m
m即为从密文c中恢复出来的明文。
例如,假设我们需要加密的明文代码信息为m = 14,则:
选择e = 3,p = 5,q = 11;
计算出n = p·q = 55,(p-1)(q-1) = 40,d = 27;
可以验证:(e·d) mod (p-1)(q-1) = 81 mod 40 = 1;
加密:c = me mod n = 143 mod 55 = 49;
解密:m = cd mod n = 4927 mod 55 = 14。
关于RSA算法,还有几点需要进一步说明:
(1) 之所以要求e与(p-1)(q-1)互质,是为了保证 ed mod (p-1)(q-1)有解。
(2) 实际操作时,通常先选定e,再找出并确定质数p和q,使得计算出d后它们能满足公式(12-3)。常用的e有3和65537,这两个数都是费马序列中的数。费马序列是以17世纪法国数学家费马命名的序列。
(3) 破密者主要通过将n分解成p·q的办法来解密,不过目前还没有办法证明这是唯一的办法,也可能有更有效的方法,因为因数分解问题毕竟是一个不断发展的领域,自从RSA算法发明以来,人们已经发现了不少有效的因数分解方法,在一定程度上降低了破译RSA算法的难度,但至今还没有出现动摇RSA算法根基的方法。
(4) 在RSA算法中,n的长度是控制该算法可靠性的重要因素。目前129位、甚至155位的RSA加密勉强可解,但目前大多数加密程序均采用231、308甚至616位的RSA算法,因此RSA加密还是相当安全的。
据专家测算,攻破512位密钥RSA算法大约需要8个月时间;而一个768位密钥RSA算法在2004年之前无法攻破。现在,在技术上还无法预测攻破具有2048位密钥的RSA加密算法需要多少时间。美国Lotus公司悬赏1亿美元,奖励能破译其Domino产品中1024位密钥的RSA算法的人。从这个意义上说,遵照SET协议开发的电子商务系统是绝对安全的。