JAVA实现RSA加密文件的答辩.ppt

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RSA加密算法教学软件的设计与实现 导 师:贾忠田 答辩人:王强茂 专 业:网络工程 * RSA算法综述 RSA加密算法是一种非对称加密算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被暴力方式破解。 RSA算法过程 1.选择两个大素数P和Q 【设P=47 Q=71】 2.计算N=P*Q 【N=47*71=3337】 3.选择一个公钥(加密密钥)E,使其不是 (P-1)与(Q-1)的因子 【(47-1)*(71-1)=46*70=3220 3220=2*2*5*7*23 E不能有因子2、5、7、23 设E为79】 4.选择私钥(解密密钥)D,满足条件(D*E)mod(P-1)(Q-1) =1 假如p是质数,且a,p互质,那么 a的(p-1)次方除以p的余数恒等于1。 【计算D=1019】 5.加密时,从明文PT计算密文CT:CT=PTE mod N 【设明文为688,CT=68879 mod 3337=1570】 6.将密文CT发给接收方 7.解密时,从密文CT计算明文PT:PT=CTDmod N 【PTmod 3337=668】 对汉字的处理 用java.net.URLEncoder.encode()来处理汉字,把汉字变成URL 编码,再将URL编码转化成ASCII码进行加密操作。 对长明文的处理 由于RSA加密一个很长的明文字符串需要很长时间,会对计算机造成很大的负担,于是我们需要对欲加密的明文进行分组。 对文件的加解密 加密:将任意文件以字节流的方式读入,进行加密后以字符流的方式生成文件,输出两个文件,密钥文件和加密后的文件。 解密:将加密后的文件以字符流的方式读入,进行解密后以字节流的方式生成文件。解密时需要输入扩展名。 * ........ ********

文档评论(0)

懒懒老巢 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档