RSA加密演算法.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RSA加密演算法

RSA加密演算法是一种非对称加密演算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。 1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个相应的算法,但他的发现被列入机密,一直到1997年未被發表。 RSA算法的可靠性基于分解极大的整数是很困难的。假如有人找到一种很快的分解因子的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到2004年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。 1983年麻省理工学院在美国为RSA算法申请了专利。这个专利2000年9月21日失效。由于该算法在申请专利前就已经被發表了,在世界上大多数其它地区这个专利权不被承认。 [编辑] 公鑰和私鑰的產生 假设Alice想要通过一个不可靠的媒体接收Bob的一条私人訊息。她可以用下面的方式来产生一个公钥和一个密钥: 随意选择两个大的质数p和q,p不等于q,计算N pq。 选择一个大于1小于N的自然数e,e必须与 p-1 q-1 互質。 用以下这个公式计算d:d× e ≡ 1 mod p-1 q-1 将p和q的记录销毁。 e是公鑰,d是私鑰。d是秘密的,而N是公众都知道的。Alice将她的公鑰传给Bob,而将她的私鑰藏起来。 [编辑] 加密消息 假设Bob想给Alice送一个消息m,他知道Alice产生的N和e。他使用起先与Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c: 计算c并不复杂。Bob算出c后就可以将它传递给Alice。 [编辑] 解密消息 Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以用下面这个公式来将c转换为n: 得到n后,她可以将原来的信息m重新复原。 解码的原理是 以及ed ≡ 1 mod p-1 和ed ≡ 1 mod q-1 。费马小定理证明 和 这说明(因为p和q是不同的质数) [编辑] 签名消息 RSA也可以用来为一个消息署名。假如阿黄想给巴哥传递一个署名的消息的话,那么她可以为她的消息计算一个散列值,然后用她的密钥加密这个散列值并将这个“署名”加在消息的后面。这个消息只有用她的公钥才能被解密。巴哥获得这个消息后可以用阿黄的公钥解密这个散列值,然后将这个数据与他自己为这个消息计算的散列值相比较。假如两者相符的话,那么他就可以知道发信人持有阿黄的密钥,以及这个消息在传播路径上没有被篡改过。 [编辑] 安全 假设偷听者娥妹获得了阿黄的公钥N和e以及巴哥的加密消息c,但她无法直接获得阿黄的密钥d。要获得d,最简单的方法是从c算出n,然后将N分解为p和q,这样她可以计算 p-1 q-1 并从而由e推算出d。至今为止还没有人找到一个多項式時間的计算方法来分解一个大的整数的因子,但至今为止也还没有人能够证明这种算法不存在(见因式分解)。 至今为止也没有人能够证明对N进行分解因式是唯一的从c导出n的方法,但今天还没有找到比它更简单的方法。(至少没有公开的方法。) 因此今天一般认为只要N足够大,那么娥妹就没有办法了。 假如N的长度小于或等于256位,那么用一台个人电脑在几个小时内就可以分解它的因子了。1999年,数百台电脑合作分解了一个512位长的N。今天对N的要求是它至少要1024位长。 1994年彼得·秀爾(Peter Shor)证明一台量子计算机可以在多項式時間内进行因式分解。假如量子计算机有朝一日可以成为一种可行的技术的话,那么秀爾的算法可以淘汰RSA和相关的算法。 假如有人能够找到一种有效的分解因式的算法的话,或者假如量子计算机可行的话,那么在解密和制造更长的钥匙之间就会展开一场竞争。但从原理上来说RSA在这种情况下是不可靠的。 [编辑] 密钥生成 首先要使用可能性算法来实验随即产生的大的整数是否素数,这样的算法比较快而且可以消除掉大多数非素数。假如有一个数通过了这个测试的话,那么要使用一个精确的测试来保证它的确是一个素数。 除此之外这样找到的p和q还要满足一定的要求,首先它们不能太靠近,此外p-1或q-1的因子不能太小,否则的话N也可以被很快地分解。

文档评论(0)

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

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

1亿VIP精品文档

相关文档