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密码体制实现及分析   摘要:网络服务的丰富, 尤其是电子商务的发展, 需要强健的密码技术来确保安全地传递信息. 密码算法的工程实现对商业和军事都有着重要的意义. RSA 是第一个公钥密码的实际实现, 在1978年Rivest、Adleman、Shamir提出该算法之后, 已广泛应用于各种硬软件产品. 本文研究RSA的算法实现, 分析RSA算法的缺陷并给出解决方法. 从而进一步说明RSA在理论和实际应用中的重要性.   关键词: RSA;数字签名;公钥密码体制   中图分类号:TP309文献标识码: A      1引言   随着网络技术的飞速发展, 信息安全性已成为亟待解决的问题. 公钥密码体制[1], 由于其解密和加密密钥不同, 解密和加密可分离, 通信双方无须事先交换密钥就可建立起保密通信, 因此较好地解决了传统密码体制在网络通信中出现的问题. 另外, 随着电子商务的发展, 网络上资金的电子交换日益频繁, 如何防止信息的伪造和欺骗也成为非常重要的问题. 数字签名[2]可以起到身份认证、核准数据完整性的作用. 目前关于数字签名的研究主要集中基于公钥密码体制的数字签名.   公钥密码体制已成为确保信息的安全性的关键技术. 自从1976 年Diffie 和Hellman两位教授提出公开密钥密码学的新概念后, 由于公开密钥密码学具有优良的密码学特性和广阔的应用前景, 很快吸引了全世界的密码爱好者, 他们提出了各种各样的公开密钥密码算法和应用方案, 密码学进入了一个空前繁荣的阶段. 然而公开密钥密码学的研究绝非易事, 尽管提出的算法很多, 但是能经得起时间考验的却寥寥无几.   RSA 算法是由美国麻省理工学院的学者Ron Rivest, Adi Shamir和Leonard Adleman[3]于1978 年提出的公开密钥算法, 该算法已经经受了密码分析家多年深入的分析. RSA算法基于大数分解的困难性, 其公开密钥和私人密钥是一对大素数的函数, 从一个公开密钥和密文中恢复出明文, 难度等价于分解两个大素数的乘积. 大大提高了RSA密码体制的安全性.   2RSA的算法描述   2.1算法参数 的构成   (1)选取两个强素数;   (2)计算 ;   (3)随机选取 , 满足 , 那么公钥即 ;   (4)计算 , 那么私钥即 ;   (5)最后销毁 , 其中 为欧拉函数 , 保存私钥, 公开公钥.   很明显, 在公钥 中, 若 能被因子分解, 则通过 可求出解密密钥 , 进而整个RSA系统即不安全.   2.2加解密过程   首先将明文数字化并分块, 每个数字化的明文的长度不大于 , 然后对每个明文块 ,一次进行加、解密变换:   设 为明文,为密文.   (1)加密 (1)   (2)解密 (2)   证明:   RSA算法的安全性的理论基础是大素数的因子分解问题, 此问题至今没有很好的算法, 因而公开 和 是不易求出 和 及 的, 但是为保证安全性, RSA 算法要求是两个足够大的素数(通常要求100 位以上的十进制数).   例2.1[4]:   假定用户B选择了两个素数    , 因而 ,B取 , 然后又Euclidean算法求得 .   B公开 , 保密 和 ;   假定另一个用户A想把明文 发给B, 则A计算秘密指数,进行解密 得到明文信息.   3RSA算法的实现细节   结合RSA算法的步骤, 我们讨论RSA的实现过程中考虑的细节问题.   3.1大素数 的选择   因为若 被分解, 则RSA就被攻破, 所以大素数 的选择就很重要.   (1) 多大合适. 从安全性角度考虑, 选择多大的素数取决于目前因数分解的能力. 目前, 最新记录是129位十进制在网络上通过分布式计算被分解成功; 如果在亿次计算机上对200位十进制数进行分解, 估计需要55万年. 所以, 用户应当 为100位的十进制数. 这样,将达到200位, 从而使现有的分解攻击失效.    (2) 要适当大. 因为 , 则 可以写成 , 设 , 则 ,, 故   若 比较接近, 则 将是一个很小的数, 而 比 稍大. 这样, 可以检查大于 的每一个整数, 直到找到 为止. 这样,便可以表示为 的形式, 从而可以分解为 .   (3) 和 都应当有很大的素数因子. 这一要求是针对RSA的模数 的 因子分解攻击和循环加密攻击.   (4) 应较小. 假若 较大, 将 和 的最小公倍数记作 ,则 会较小; 由于满足 的 一定满足 , 所以 在较小的情况下可以通过穷举方法找到 .    满足上述条件的素数称为安全素数.   3.2 的选择    不能太小, 以免穷举攻击

文档评论(0)

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

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

1亿VIP精品文档

相关文档