您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 电子商务 > java文件加密课程设计
结业报告课程名称:网络安全技术设计题目:java实现文件加密系别:***学院专业:***************组员:**************************起止日期*****************指导教师:***摘要目前世界范围内的信息安全问题越来越严重。解决信息安全问题涉及面很广,它包括技术,管理.制度,人员和法律等诸多方面,但最核心部分是密码技术。密码技术是实现一种变换,它使得对大量信息的保护变为对少量密钥的保护。本次结业设计以文件的加密与解密问题为主要研究讨论方向。先对加密技术进行查找资料。然后对加密方法进行概述,而后对3DES加密进行详细介绍何分析,并对结业设计成果进行演示,最后附上代码。由于本次结业设计时间仓促外加能力有限,有诸多不足之处以及可能存在某些为发现错误还请批评指正。感谢之至。关键词:加密解密密钥3DESAbstractAtpresent,theproblemofinformationsecurityismoreandmoreseriousintheworld.Tosolvetheproblemofinformationsecurityinvolvesawiderange,includingtechnology,management,system,personnelandlaw,etc.,butthemostimportantpartisthepasswordtechnology.Passwordtechnologyistoachieveatransformation,whichmakestheprotectionofalargenumberofinformationintoasmallnumberofkeyprotection.Thegraduationprojecttodocumentencryptionanddecryptionissuesasthemainresearchanddiscussion.First,theencryptiontechnologytofindinformation.Thentheencryptionmethodisoutlined,andthenthe3DESencryptionfordetailedanalysis,andthecompletionofthedesignresultsaredemonstrated,andfinallyattachedtothecode.Duetothelimitedcapacityofthecompletionofthisgraduationproject,therearemanydeficienciesandtheremaybesometofinderrorsalsopleasecriticism.Thanksto.目录ABSTRACT.......................................................................................................................................-2-一.背景分析.....................................................................................................................................-1-二.DES算法..................................................................................................................................-1-2.1DES算法思想............................................................................................................................-1-2.2DES算法原理............................................................................................................................-2-2.3两个密钥的三重DES...............................................................................................................-3-2.4JAVA语言编程实现DES算法................................................................................................-3-三.调试结果与说明.........................................................................................................................-5-四.课程设计总结与体会.................................................................................................................-7-参考文献.............................................................................................................................................-7-代码附录:.........................................................................................................................................-8-项目总体分工项目名称Java文件实现文件加密项目协调人设计时间指导教师姓名学号专业班级项目分工资料收集,论文查找姓名学号专业班级项目分工总体协调安排,代码编写姓名学号专业班级项目分工整理资料,论文编写姓名学号专业班级项目分工程序验证,测试可行性-1-一.背景分析随着Internet的高速发展,很多日常工作和数据传输都放在Internet网上进行,大大提高了效率,降低了成本,创造了良好的效益。但是,由于Internet网络协议本身存在着重要的安全问题(IP包本身并不继承任何安全特性.很容易伪造出IP包的地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容),使网上的信息传输存在巨大的安全风险:很可能传输的信息被别人截取,造成巨大的损失。针对这些问题,IETF(因特网工程任务组)发布了IP层安全标准IPSec(IPSecurity).其目的是为在Internet上的数据传输提供具有较强的互操作能力、高质量和基于密码的安全实现方法。IPSec提供了一种标准的、完善的以及包容广泛的机制,可用它为IP及上层协议(如UDP和TCP)提供安全保证。IPSec可保证主机之问、网络安全网关(如路由器或防火墙)之间或主机与安全网关之间的数据包的安全。因此,利用IPSec协议在公用网络上通过对传输的数据进行加密和验证,从而达到安全保密的目的,这已经成为网络安全的一个重要手段。本文主要介绍使用常用的对称算法数据加密标准DES(DataEncryptionStandard)在Java环境下实现数据的加密与解密。二.DES算法2.1DES算法思想DES(DataEncryptionStandard)算法是1977年得到美国政府正式许可的一种用56位密钥来加密64位数据的加密方法。DES是一种特殊类型的迭代密码。简单说来,DES是采用传统的替换和移位的方法加密的分组密码,其算法是对称的,这样既可以用于加密也可以用于解密。DES用56位密钥对64位的明文数据块进行加密,每次加密可以对64位的明文数据进行16轮编码,经过一系列替换和移位后,输出完全不同的64位密纹数据。DES入口参数有3个:Key、Data、Mode,其中Key为7个字节共56位(另有8位作为奇偶校验位,这样保证了明文与密钥长度的一致性),是DES算法的工作密钥;Data为8位字节64位,是要被加密或解密的数据;Mode为DES的工作方式,由两种:加密、解密。由于DES算法使用64位的标准算法和逻辑运算、运算速度快、密钥产生容易,因此适合当前大多数计算机上用软件方法实现。明文密文密钥加密解密加密过程示意图-2-2.2DES算法原理DES是一种分组加密算法。明文分组长度为64位。加密得到的密文分组长度为64位。密钥长度64位,8个字节。每一个字节的最高位用于奇偶效验,所以有效密钥长度为56位。其分组加密过程描述如下:①子密钥Ki的生成。②64位的明文经过一个初始置换IP后,被分成左右两半部分,每个部分32位,以L0和R0表示。③进行16轮迭代变换:第i轮变换将上一轮变换所得到的结果的右半部分与第i个子密钥Ki结合,这个过程称为f函数。第i轮变换结果的左半部分为上一轮变换结果的右半部分(即:Li=Ri-1),其右半部分为上一轮变换结果的左半部与上一轮变换结果的右半部经过F函数处理所的结果的异或:Ri=Li-1⊕F(Ri-1,Ki)。④16轮变换之后左右两部分再连接起来,经过一个初始逆置换IP-1得到密文。其加密过程如图1所示。DES的解密算法与加密算法完全相同,只需要将密钥的应用次序与加密时相反应用即可。-3-即解密过程是初始置换函IP数接受长度为64比特的密文输入,将16个子密钥按照K16到K1的顺序应用与F函数的16轮迭代运算中,然后将迭代的结果经由末置换函数IP-1得到64位的明文输出。2.3两个密钥的三重DES由于DES密钥只有56bit,易于遭受穷举时攻击。作为一种替代加密方案,Tuchman提出使用两个密钥的三重DES加密方法,并在1985年成为美国的一个商用加密标准。该方法使用两个密钥,执行三次DES算法。加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。采用两个密钥进行三重加密的好处有:①两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要,若采用总长为168bit的三个密钥,会产生不必要的开销。②加密时采用加密-解密-加密,而不是加密-加密-加密的形式,这样有效的实现了与现有DES系统的向后兼容问题。因为当K1=K2时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。③三重DES具有足够的安全性,目前还没有关于攻破三重DES的报道。2.4Java语言编程实现DES算法1、子密钥的生成1)PC-1变换。将原密钥的各位按照PC-1矩阵重新排列,这一过程剔除了奇偶校验位。PC-1如下:574941332517915850423426181025951433527191136052443663554739312315762544638302214661534537292113528201242)将排好的密钥分成两部分,前面28位为C0,后面28位为D0。3)从i=1开始,循环执行16次以下步骤得到16个子密钥。①对Ci-1和Di-1进行相同位数的循环左移,得到Ci和Di左移的位数为:i取数值:12345678910111213141516移动数:1122222212222221②连接Ci和Di,按照矩阵PC-2排列选择合适的位,构成子密钥Ki,该过程将56位压缩
本文标题:java文件加密课程设计
链接地址:https://www.777doc.com/doc-5746550 .html