文件加密系统设计与实现_第1页
文件加密系统设计与实现_第2页
文件加密系统设计与实现_第3页
文件加密系统设计与实现_第4页
文件加密系统设计与实现_第5页
免费预览已结束,剩余5页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文件加密系统设计与实现摘要:该文论述了数据加密的原理与方法,介绍了几种常见的加密算法并在此基础之上比较了常用的加密算法的优缺点,在掌握了这几种算法的基础之上,对比对称密钥加密体制和公共密钥密码体制的优缺点以及前面的两个需求,最终利用DES算法和RSA算法来设计和实现自己的加密系统。该文详细的介绍了理论原理并详细记录了系统设计与实现过程。关键词:密码学;DES算法;RSA算法;加密系统设计中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)14-3299-03DesignandImplementationofaEncryptingFileSystemLINPe-tong(

2、GuangdongFoodandDrugVocationalTechnicalSchool,Guangzhou510663,China)Abstract:Aftermasterythesetypesofalgorithms,comparedtheadvantagesanddisadvantagesbetweentheSymmetricalcryptographandnonsymmetricalcryptograph,aswellasconsiderthetwodemandsinfront,atlastdecideuseDESalgorithmandtheRSAalgorithmtodesign

3、andrealizemyencryptionsystem.Inthisarticle,DetailthetheoreticalprinciplesofCryptographicandnotethedetailedofdesignandrealizeprocess.Keywords:cryptography;DES;RSA;design1绪言随着Internet的发展人类已经步入信息时代,在信息时代,信息安全问题越来越重要。我们经常需要一种措施来保护我们的数据,防止被一些怀有不良用心的人所看到或者破坏。因此,在客观上就需要一种强有力的安全措施来保护机密数据不被窃取或篡改。解决这个问题的方式就是数

4、据加密1。近年来,保护个人敏感数据成为人们关注的热点问题。使用加密技术是一种比较成功的保护方法。特别是在当今相互合作以及公共工作环境下,电脑中的资料可能对于写工作人员时可见的而对于另外一些工作人员是不可见的,对于一些文件进行加密是有必要的2。因此选择这个方面作为自己的论文研究方向,想通过对数据加密方法的研究对密码学有一个全面的认识,同时在研究过程中对当前已经比较成熟的加密算法进行学习并且总结和比较得由自己的结论并结合需求分析选择几种常见的加密算法设计、实现一个自己的单机文件加密系统。2系统采用的关键技术公开密钥密码系统一般是基于数学上难解的问题,所以其安全性高,同时,密钥的管理比较容易。缺点是

5、它的密钥太长、运算速度比对称算法的慢很多;公开密钥密码系统生成一对公私钥的速度比较慢,通常需要几分钟以上,从而对有大量用户的系统而言,服务器的工作效率不高3o鉴于对称密钥密码算法和公开密钥密码算法的特点,综合使用DES对称密钥加密算法和RSA公开密钥加密算法来保障信息安全。大量数据用64bit密码长度的DES对称密码算法进行加密,而公开密钥密码算法则使用1024bit长度的RSA公开密钥加密算法进行加密,此种方法既保证了数据信息的安全又提高了数据加密和解密的速度,实现了对数据信息安全、加密效率的要求4。2.1DES算法的实现过程DES工作的基本原理是,其入口参数有三个:key、data、mod

6、e。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性4。DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输由结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输生结果5对于单机用户用于保存不需在网络中传递的文件则只需要在加密的时候输入一个自己熟悉但相对来说比较复杂不易被其他人破解的密码串就行,

7、记住该密码串在解密的时候输入就行。DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的,当然,随着科学技术的发展,当由现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度6。2.2RSA算法的实现过程首先产生一对公钥和私钥:(l)选取两个大素数p和q(10到20个十进制数或更大),为了获得最大程度的安全性,两个数的长度最好相同。两个素数p和q必须保密。(2)计

8、算p与q的乘积:n=p*q。(3)再由p和q计算另一个数Z,Z=(p-1)*(q-1)。(4)随机选取加密密钥e,使e和Z互素。(5)用欧几里德扩展算法计算解密密钥d,以满足e*d=lmod(z)o(6)由此而得到的两组数(n,e)和(n,d)分别被称为公开密钥和私人密钥,简称公钥和私钥7o其次是加密过程:RSA算法是一种分组加密算法,加密消息M时,首先将它分成比n小的数据分组(采用二进制数,选取小于n的2的最大次哥),也就是说,p和q为100位的素数,那么n将有200位,每个消息分组m,应小于200位长(如果需要加密固定的消息分组,那么可以在它的左边填充一些0并且保证该数比n小)。加密后的密

9、文C,将由相同长度的分组组成。由上述RSA算法可知:若n被因式分解,则RSA便可以被击破。因为n=p*q,如果p和q已知,那么Z=(p-1)*(q-1)便可以算由,故满足条件e*d=lmod(Z)的解密密钥d也不难求出。因此RSA的安全性完全依赖于大数的分解难度。RSA算法的公开密钥和私人密钥是一对大素数(10到20个十进制数或更大)的函数。从一个公开密钥和密文中恢复由明文的难度等价于分解两个大素数之积8o目前因子分解速度最快的方法,其时间复杂性为:exp(Sqrt(ln(n)lnln(n).从技术上讲,这种安全性只是一种推测。3系统的设计与实现根据需求分析,本系统的主要功能是保护存储在电脑的

10、文件不被非法用户盗取后读取信息,面向用户主要是单机用户以及多用户系统,不涉及到网络传输,结合对称密钥加密体制和公开密钥加密体制的优缺点。设计主要功能有:读取文件路径,利用DES算法对文本文件中的数据进行加密和解密,利用RSA算法将DES算法的密钥加密并保存即密钥导由功能;同时可以导入加密后的DES密钥文件对其解密后辅助完成利用DES算法对数据的解密。主要功能如图1所示。与此同时考虑到加密后密钥的安全问题以及当前移动存储介质的普遍使用,系统可以将保存加密后的DES密钥的文件导生到移动存储介质中,以便更好的保护密钥的安全同时也方便了用户对密钥的管理。在以前功能上有几点修改,将以前的导生功能改为保存

11、,保存只是将加密后的密钥文件保存在当前文件夹下,新添加的导生功能是将加密后的密钥文件导生到移动存储器中;将导入功能改为加载,加载是将解密后的密钥读取到系统辅助数据的解密,新添加的导入是将保存在移动存储器中的加密后的密钥文件导入到系统。经过添加功能后系统的功能图如图2所示。根据功能的不同将整个系统实现分为三个模块,分别为:MainFrame、DESRSAMainFrame的主要功能是显示系统界面,对系统界面布局进行定位并且接收由DES和RSA模块传来的参数辅助完成文件加密和解密功能,在加密和解密过程中给用户提供交互界面并文成加密后密钥的保存和导生及导入功能。DES的主要功能是接受由MainFra

12、me传递过来的参数,对指定文件的数据进行加密和解密。RSA的主要功能接受由MainFrame传递的参数对指定的DES钥进行加密并保存,同时可以将加密后的DES密钥导由,一边以后辅助完成数据解密功能。3.1 MainFrame模块设计定义一个MainFrame类,主要是界面的初始化,同时在加密和解密过程中起到桥梁的作用,传递参数。同时所有的相应函数均封装在MainFrame类中,便以管理和界面的优化。界面的初始化及所有的响应按钮:publicclassMainframeextendsjavax.swing.JFrame主要响应按钮响应的函数如下:选择要加密或者解密的源文件,将文件路径传递DES对

13、象并显示在文本框中,privatevoidjButton1ActionPerformed();输入DES密钥,并弹由对话框确认:privatevoidjButton2ActionPerformed();数据解密,通过调用DES对象中的加密函数对数据进行加密:privatevoidjButton4ActionPerformed();数据加密,首先通过调用DES对象中的获取密钥函数得到密钥,然后调用解密函数对数据进行解密:privatevoidjButton3ActionPerformed()生成RSA密钥对:privatevoidjButton6ActionPerformed()用RSA算法对D

14、ES密钥进行加密并保存:privatevoidjButton7ActionPerformed()将加密后的DES密钥文件导生到移动存储器中:privatevoidjButton14ActionPerformed()将RSA私钥导生到移动存储器中:privatevoidjButton16ActionPerformed()将经过加密并保存在电脑中的DE牖钥解密并导入到加密系统:privatevoidjButton8ActionPerformed()结束系统:privatevoidjButton9ActionPerformed()3.2 DES模块设计定义一个DES类,将参数和函数封装在DES类中。

15、publicclassDES定义一个初始化函数和三个成员函数:publicvoidsetKey(Strings)/获得DES密钥publicvoidinit()/对DES加密初始化,主要调用java系统函数加密函数,source为要加密的文件的路径,result为加密后文件保存路径;因为在MainFrame模块中要对是否加密成功进行判断所以此函数要返回参数:publicStringencryptorFile(Stringsource,Stringresult)力口密函数设计框架图如图3所示解密函数,source为要解密的文件的路径,result为解密后文件保存路径;因为在MainFrame模块

16、中要对是否解密成功进行判断所以此函数要返回参数:publicStringdecryptorFile(Stringsource,Stringresult)解密函数设计框架图如图4所示。3.3 RSA模块设计定义一个RSA类,将主要参数和方法封装在RSA类中。publicclass:RSA定义三个成员函数:生成RSA的密钥和公钥并将私钥和公钥分别以dat文件形式保存在系统的当前文件夹中;因为在MainFrame模块中要对生成密钥是否成功进行判断所以此函数要返回参数;publicStringsetkey(),密钥生成函数设计框架图如图5所示。利用RSA公钥将传递进来的DES密钥进行加密并以dat文件

17、形式保存在系统的当前文件夹中,传递过来的密钥是String形式的,只能由数字和字母组成;因为在MainFrame模块中要对是否加密成功进行判断所以此函数要返回参数;publicStringencryptorFile(StringDkey),加密函数设计框架图如图6所示。利用RSA私钥对保存的加密后的DE牖钥解密并传递给MainFrame类中的解密方法,实现密钥的导入功能,该方法中首先要读取RSA的私钥然后读取加密后的DES密钥文件;因为在MainFrame模块中要对是否解密成功进行判断所以此函数要返回参数:publicStringdecryptorFile();解密函数设计框架图如如7所示。4

18、系统的开发环境及实现系统的设计选择在java环境下。Java技术是与平台无关,是当今被各大软件公司可接受为最高级的面向对象设计语言的主流技术;且Java安全API提供了加密、信息融合、密钥管理、认证、存取控制和数字签名等功能,允许开发者进行低层和高层的安全应用,而且在Java中,RSA密钥生成、RSA加密解密的功能实现十分简单,因为标准库中集成几乎所有功能,不需要从RSA算法由发进行编码。在j2se标准库中,javax.crypto中的Cipher类用于具体的加密和解密,java.security包直接提供了数字签名的相关方法。测试实例一,对txt文本文件进行加解密(密钥为000000)。5结束语整体情况来说系统基本上达到预期的要求,能够对文本文件进行加密和解密并且方便公共环境下多用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论