基于DES算法的文件加解密的Java实现.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文档。上传文档
查看更多
目 录 一、DES算法简介 1 二、DES算法模型 1 三、DES算法实现 2 3.1、DES算法框架 2 3.2、DES算法流程 3 3.2.1 初始置换函数IP 3 3.2.2 获取子密钥Ki及迭代 3 3.2.3 密码函数F的执行 4 3.2.4 逆置换IP-1 6 四、本次方案实现功能 7 五、部分模块实现代码 7 5.1、密钥模块 7 5.2、文件加密模块 9 5.3、文件解密模块 10 5.4、GUI模块 11 六、程序调试 13 七、总结 15 一、DES算法简介 1973年5月15日,美国国家标准局(现在美国国家标准技术研究所(NIST))在联邦注册报上发表一则启事,公开征集用来保护传输和静止存储中的计算机数据的密码算法,这一举措最终导致了数据加密标准DES的出现。DES算法是由IBM开发的一种对称加密算法,它采用分组乘积密码体制,是对早期被称为Lucifer 密码体制的改进。 DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位二进制,是DES算法的工作密钥;Data也为8个字节64位,是要进行加密或被解密的数据;Mode为DES的工作方式,有加密和解密2种。Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。 二、DES算法模型 DES算法是一种对称加密算法,其基本模型如下图所示。 图1 基于DES算法的消息传递模型 甲乙双方作为消息传递双方(甲方发送,乙方接收),假定甲乙双方在消息传递前已商定加密算法,则欲完成一次消息传递,需经过如下步骤: 由消息传递双方约定密钥,这里由甲方构建密钥。 由密钥构建者公布密钥,这里由甲方公布给乙方。 由消息发送方使用密钥对数据加密,这里由甲方对数据加密。 由消息发送方将加密数据发送给消息接收者,这里由甲方将加密数据发送给乙方。 由消息接收方使用密钥对加密数据解密,这里由乙方完成数据解密。 对称加密算法的优点就是简单易行,通俗易懂。对于上述单向信息传递而言,如果乙方想要回复甲方消息,不需要重复步骤1、2,仅仅需要乙方执行步骤3、4,由甲方执行步骤5即可。 三、DES算法实现 3.1、DES算法框架 DES算法的加密由四个主要函数完成,其分别为:初始置换函数IP,获取子密钥Ki及循环迭代,密码函数F、末置换函数IP-1。 DES的输入的明文长度为64位。初始置换函数IP接受明文输入后,将其分解为左右两部分,其右半部分同子密钥一起输入密码函数F进行运算,其结果再同原明文的左半部分进行与或运算,从而完成一次循环。以相同的步骤经过16次迭代后,其结果通过末置换函数IP-1输出64位的密文。在子密钥的获取过程中,通过密钥置换PC-1获取从K1到K16共16个子密钥,这16个子密钥分别应用于同的16次完全相同的迭代运算中。其总体流程如图2所示。DES的解密算法与加密算法相似,只需要将密钥的应用次序与加密时相反应用即可。 图2 DES加密流程 3.2、DES算法流程 3.2.1 初始置换函数IP 初始置换是把输入的64位数据重新组合搅乱数据原来的顺序,把输出分为L0,R0两部分,每部分位置换规则如下表将原来的第58位到第1位,第50位换到第2位,……以此类推,最后一位是原来的第7位L0和R0是换位输出后的两部分,L0是输出的左32位,R0是右32位58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 表1 初始置换表IP 3.2.2 获取子密钥Ki及迭代 经过了初始置换后的L0和R0进入第一轮子加密过程R0经过一系列的置换得到32位输出,再与L0进行异或(XOR)运算R1,R0则成为下一轮的L1,如此连续运作16轮 ??? Ri = Li-1 XOR f(Ri-1,Ki) ??? Li = Ri-1(i = 1,2,……,16) 在每一轮的循环中,右半部分需要经过一系列的子加密过程 子密钥的获取主要通过置换和移位运算来实现。使用者所持有的初始密钥是64位,而DES加密算法的密钥长度为56位。因而首先应当将初始密钥按8行8列进行排列,并将每行的第8位用于奇偶校验,在去掉最后一列的8个校验位后,经过密钥置换函数PC-1变换,生成一个56位的密钥。密钥

文档评论(0)

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

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

1亿VIP精品文档

相关文档