RSA-加密算法初探.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RSA加密算法初探 ·前言 本文全面的介绍了RSA算法的概念、原理、证明和实现。我在写作本文之前在网上查阅过相关资料,可这些资料不是含糊其辞就是满篇谬误。所以我力求用通俗易懂的文字将算法深入剖析,用最严谨的步骤进行论相关的各项算法,以降低文章的阅读难度。读者只要学过初中代数就可以理解全文,我衷心希望更多读者能认识到加密算法其实并不难。 文中的算法均为伪代码,由于伪代码没有办法进行测试,再加上我个人数学功底比较薄弱,所以错漏之处在所难免,还请各位老师给予指教。质疑或指正请发送电子邮件到fireseed1949@,我会认真阅读并回复的 感谢北航数学系(毕业)李桢老师、西工大计算机系(毕业)张小宁老师在数学上对我的指点。 另注:文中mod就是求余的符号,X mod Y表示X除以Y所得的余数。 ·概述 RSA算法是世界上第一个既能用于数据加密也能用于数字签名的非对称性加密算法。它易于理解和操作,所以流行甚广。算法的名字以发明者的名字命名,他们是:Ron Rivest,Adi Shamir 和Leonard Adleman。虽然RSA的安全性一直未能得到理论上的证实,但它经历了各种攻击,至今未被完全攻破。为了让读者更容易的理解RSA加密,先大概讲述一下信息加密技术的相关概念和原理。 我们对于在数字媒体上进行交换的数据进行加密的方法称为信息交换加密技术,它分为两类,即对称加密和非对称加密。 在对称加密技术中,对信息的加密和解密都使用相同的钥,也就是说一把钥匙开一把锁。这种加密方法可简化加密处理过程,信息交换双方都不必彼此研究和交换专用的加密算法。如果在交换阶段私有密钥未曾泄露,那么机密性和报文完整性就可以得以保证。对称加密技术也存在一些不足,如果交换一方有N个交换对象,那么他就要维护N个私有密钥,对称加密存在的另一个问题是双方共享一把私有密钥,交换双方的任何信息都是通过这把密钥加密后传送给对方的。如三重DES是DES(数据加密标准)的一种变形,这种方法使用两个独立的56为密钥对信息进行3次加密,从而使有效密钥长度达到112位。 在非对称加密(或称公开密钥加密)体系中,密钥被分解为一对,即公开密钥(公钥)和私有密钥(私钥)。这对密钥中任何一把都可以作为公开密钥,通过非保密方式向他人公开,而另一把作为私有密钥,加以妥善保存。公开密钥用于加密,私有密钥用于解密,私有密钥只能由生成密钥的交换方掌握,公开密钥可广泛公布,但它只对应于生成密钥的交换方。非对称加密方式可以使通信双方无须事先交换密钥就可以建立安全通信,广泛应用于身份认证、数字签名等信息交换领域。非对称加密体系一般是建立在某些已知的数学难题之上,是计算机复杂性理论发展的必然结果。最具有代表性是RSA公钥密码体制。 在RSA算法中,我们先要获得两个不同的质数P和Q做为算法因子,再找出一个正整数E,使得E与 P - 1 * Q - 1 的值互质,这个E就是私钥。找到一个整数D,使得 E * D mod P - 1 * Q - 1 1成立[1],D就是公钥1。设N为P和Q的乘积,N则为公钥2。加密时先将文转换为一个或一组小于N的整数I,并计算ID mod N的值M,M就密文。解密时将密文ME mod N,也就是M的E次方再除以N所得的余数就是明文。 因为私钥E与 P - 1 * Q - 1 互质,而公钥D使 E * D mod P - 1 * Q - 1 1成立。破解者可以得到D和N,如果想要得到E,必须得出 P - 1 * Q - 1 ,因而必须先对N进行因数分解。如果N很大那么因数分解就会非常困难,所以要提高加密强度P和Q的数值大小起着决定性的因素。一般来讲当P和Q都大于2128时,按照目前的机算机处理速度破解基本已经不大可能了。 ·证明 下面将会开始讨论RSA算法的原理及其算法证明。如果您只关心RSA算法的实现,则可以略过这一步。我把每一个有用的定理都用粗标标记了,对于数学不很在行的朋友可以只了解一下相关定理的说明而不需要验证求证过程了。 一、 费马小定理[2]的转化 费马小定理:有N为任意正整数,P为素数,且N不能被P整除,则有: NP mod P N 费马小定理可变形为: NP - N mod P 0 N NP - 1 - 1 mod P 0 因为 N NP - 1 - 1 mod N 0 所以N和P的公倍数为: N NP - 1 - 1 (1) 又因为N与P互质,而互质数的最小公倍数为它们的乘积,所以一定存在正整数M使得:N NP - 1 - 1 MNP成

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档