基于JavaRSA公钥密码算法实现与探讨.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文档。上传文档
查看更多
基于JavaRSA公钥密码算法实现与探讨

基于JavaRSA公钥密码算法实现与探讨   摘 要:鉴于Java语言在网络上的安全特性和RSA加密算法的优越性,介绍了公钥密码体制的概念和RSA加密算法的原理,并在Java环境下实现RSA公钥密码算法。??   关键词:   安全体制;Java;公钥密码;RSA算法??   中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2011)05-0087-02?お?   ??   0 引言??    随着计算机网络技术的迅速发展,人类已步入数字化的信息时代。通过网络进行远距离的、快速的信息交流和信息处理已变得越来越普遍。同时,人们对信息的安全存储、安全处理和安全传输的需求也越来越迫切,但是,由于Internet 网络协议本身存在着重要的安全问题(IP包本身并不继承任何安全特性,很容易伪造出IP包的地址、修改其内容以及在传输途中拦截并查看包的内容),使网上的信息传输存在巨大的安全风险,因而数据安全越来越受到重视,算法工程技术上的实现也就有着重要的意义。为了解决这一问题,保证数据的保密性,我们可以采用不同的加密算法对数据进行加密。因为Java语言的安全性和网络处理能力较强,而且RSA加密算法的强大和难破解性,本文主要介绍使用RSA数据加密算法在Java环境下实现数据的安全传输。??   1 Java安全体制??    Java 是Sun 公司开发的一种面向对象的编程语言,并且由于它的平台无关性被大量应用于Internet 的开发。由于Java主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。Java通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当Java字节码进入解释器时,首先必须经过字节码校验器的检查,然后,Java解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。??   2 密码体制及RSA公钥密码??   2.1 公钥密码体制的概念??    首先我们要理解什么是密码的概念,简单的说它就是一组含有参数k的变换E。设已知信息m,通过变换E\-k得密文c,即c=E\-k(m)这个过程称之为加密,反之,已知密文c通过逆变换E′\-k得到明文m,这个过程叫做解密,参数k称之为密钥。而公钥密码体制则如图1所示,密钥分为两个:一个是公钥(公开),一个是私钥(保密),明文需要公钥加密成密文进行传输,当对方接到密文时需要私钥才能够把密文转化成明文。公钥和密钥通过不同的方式产生的,所以某种意义上来说是安全的。??      2.2 RSA算法??    RSA 算法是Ron Rivest, Adi Shamir和LenAdleman在1978年提出的,是一种公认十分安全的公钥密码算法,其安全性是建立“大数分解和素性检测”这一已知的著名数论难题基础之上的。 即将两个大数相乘在计算时很容易实现, 但将该乘积分解为两个大数因子的计算量是相当大的, 以至于实际计算中是不可能实现的。RSA算法是目前网络上进行保密通信和数字签名的最有效安全算法。??    密钥的确定过程如下:①选这两个大素数,??p和q(保密);②计算m\\p*q(公开),和n=(p-1)*(q-1)(保密);③选择一个加密密钥e(也叫公钥)(公开),满足(e,n)=1;④确定解密密钥d(也叫私钥)(保密),满足e*d??(mod)??n=1。??   加密算法:若用整数p表示明文,用整数c表示密文,则??   加密运算为:c=p\+e(??mod)??m??   解密运算为:p=c\+d(??mod??m??)??   3 RSA算法的实现??    通过上述我们知道了RSA算法的具体实现原理,鉴于实验的需要,我们规定如下两点以方便编写程序进行测试:①得到的两个随机素数为仅比给定加密数字大的最小的两个素数;②加密密钥e为同n互质的最小数。??    我们建立了一个RSAPassword.java程序,根据上述原理编写而成的,其运行的目的是要求输入明文,给定加密密钥e和n经算法加密之后传出密文,然后得到密文之后,通过解密密钥d和n经解密运算得出明文。          当明文3经过加密算法:3\+5mod35=35,得到密文33,然后密文33经过解密算法:33\+5(mod)35=3,其中加密密钥的生成原理:与24互质的最小数:5。解密密钥的生成原理:5d(mod)=1,d=5。??    上述程序只是对算法进行简单的设计实现,并未涉及到大数之间的运算。??   4 结束语??    加密技术是基于密码学原

文档评论(0)

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

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

1亿VIP精品文档

相关文档