RSA-加密算法实用课件文档.pptx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

RSA加密算法RSA?algorithm

概况RSA公钥加密算法是1977年由RonRivest、AdiShamir和LeonardAdleman一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。它既可用于加密、又可用于数字签字。RSA算法基于一个十分简单的数论事实:两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。。迄今为止理论上最为成熟完善的公钥密码体制,该体制已得到广泛的应用。

RSA算法描述密钥的产生。选两个保密的大素数p和q;计算n=p*q,f(n)=(p-1)*(q-1),其中f(n)是n的欧拉函数值;n的二进制表示是所占用的位数,就是所谓的密钥长度。选一整数e,满足1ef(n),且gcd(f(n),e)=1;计算d,满足d*e≡1mod(f(n)),即d是e在模f(n)下的乘法逆元,因e与f(n)互素,由模运算可知,它的乘法逆元一定存在;以{e,n}为公开钥,{d,n}为秘密钥;

RSA算法使用了乘方运算。加密和解密:明文M经过加密得到密文C:C=Memodn密文C经过解密得到明文M:Cdmodn=(Memodn)dmodn=Medmodn=M即:必须存在e,d,n,使Medmodn=M成立

即:必须存在e,d,n,使Medmodn=M成立M4modn……,再求MemodnRSA公钥加密算法是1977年由RonRivest、AdiShamir和LeonardAdleman一起提出的。当时他们三人都在麻省理工学院工作。RSA-129历时8个月(曾经预言需要4*1016年)被于1996年4月被成功分解,RSA-130于1996年4月被成功分解Cdmodn=(Memodn)dmodn=Medmodn=M令p=3,q=11,得出n=p×q=3×11=33;M2≡(C2)d(modn)=267(mod33)=05RSA?algorithmRSA的安全性是基于分解大整数的困难性假定用户B得到明文信息为:11,05,25。明文M经过加密得到密文C:C=Memodn选一整数e,满足1ef(n),且gcd(f(n),e)=1;(p-1)和(q-1)都应有一个大的素因子。M2≡(C2)d(modn)=267(mod33)=05RSA-129历时8个月(曾经预言需要4*1016年)被于1996年4月被成功分解,RSA-130于1996年4月被成功分解令p=3,q=11,得出n=p×q=3×11=33;用户B收到密文,若将其解密,只需要计算,即:RSA算法在计算上的可行性加密和解密无论是加密还是解密都需要计算某个整数的模n整数次幂,即C=Memodn、M=Cdmodn。但不需要先求出整数的幂再对n取模,而可利用模运算的性质:(amodn)*(bmodn)=(a*b)modn对于Memodn,可先求出M1modn,M2modn,M4modn……,再求Memodn

产生密钥由于n是公开的,为了避免攻击者用穷举法求出p和q(根据n=pq),应该从足够大的集合中选取p和q,即p和q必须是大素数。目前还没有有效的方法可以产生任意大素数,通常使用的方法是:随机挑选一个期望大小的奇数,然后测试它是否是素数,若不是,则挑选下一个随机数直至检测到素数为止。

实例描述设计公私密钥(e,n)和(d,n)。令p=3,q=11,得出n=p×q=3×11=33;f(n)=(p-1)(q-1)=2×10=20;取e=3,(3与20互质)则e×d≡1modf(n),即3×d≡1mod20。d怎样取值呢?可以用试算的办法来寻找。试算结果见下表:de*d=3*d(e*d)mod(p-1)(q-1)=(3*d)mod20133266399412125151561818721182439276

通过试算我们找到,当d=7时,e×d≡1modf(n)同余等式成立。因此,可令d=7。从而我们可以设计出一对公私密钥,加密密钥(公钥)为:KU=(e,n)=(3,33),解密密钥(私钥)为:KR=(d,n)=(7,33)。

明文加密设要加密的明文信息为:11,05,25。用户A使用加密密钥(3,33)将数字化明文分组信息加密成密文。由C≡Me(modn)得:M1≡(C1)d(modn)=117(mod33)=11M2≡(C2)d(modn)=267(mod33)=05M3≡(C3)d(m

文档评论(0)

8d758 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档