时间:2022-09-26 12:40:47
摘 要: 随着信息技术的发展和网络的普及,信息安全问题越来越被人们重视,在论述数据加密原理和方法后,介绍和分析DES和MD5两种常用加密算法的优缺点和安全性,提出结合DES算法和MD5算法的混合算法,并详细介绍如何利用混合算法以及MFC技术设计基于MFC的文档加密工具,为用户保护数据信息提供一个方便实用的工具。
关键词: 数据加密;DES算法;MD5算法;文档加密工具
中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2012)0310083-01
0 引言
随着信息技术的发展和网络的普及,在当今公共的工作环境下,电脑中的某些电子文档的信息对某些工作人员是不可见的,信息安全问题越来越重要[1]。为防止电子文档信息被泄露或破坏,目前大多采取加密电子文件方法[2]。本文在分析常用加密算法后结合DES算法和MD5算法以及MFC技术,设计开发了一个文档加密解密工具。
1 加密算法
加密技术的原理是利用加密算法将明文转换成密文[3],而对电子文档进行加密的方式主要以静态加密技术和动态加密技术为主[4]。经需求分析,本文采用的是静态加密技术运用DES算法和MD5算法来实现。
1.1 DES算法
DES算法有三个入口参数:Key(密钥64位)、Data(数据64位)和Mode(工作模式:解密或解密)[3]。DES根据Mode的工作模式用Key对Data进行加密或解密[3]。DES算法中密钥把输入的64为数据块根据置换规则[3]按位重新排列组合(此过程迭代16次),分成两部分32位的数据块输出,然后将两部分32位数据块作为输入按照逆置换规则进行排列组合,即可得到密文输出[3]。
DES算法的安全性极高,目前只有穷举搜索法能对DES算法进行攻击。虽然密钥只用了56位,但是其穷举空间则有256。如果计算机以每秒检测一百万个密钥的速度搜索就需要将近两千三百年的时间。
1.2 MD5算法
MD5算法的本质是一种散列单向函数,具有不可逆的特性[5],即无法通过密文来恢复原始文件,因此其安全性也很高。
MD5算法对输入的明文信息以512位来分组[5],最后一组不足512位部分进行填充二进制数字,并要求这一组后64位表示信息总长度对264求余的值。每个512位的消息又分成16个字节块(32位),用32位的链接变量(A、B、C、D)和其他函数或变量对字节块进行循环处理。
2 文档加密工具设计与实现
由于本系统工具的研发目的是为了保护单机电脑中的电子文档数据信息被泄露或破坏,因此利用MD5算法对DES算法的密钥进行加密,采用DES算法对电子文档进行加密和解密及运用MFC技术来实现文档加密工具界面化设计。
根据需求分析,文档加密工具分为CDialog、MD5和DES三个模块。
2.1 CDialog设计
本文采用VC++中的MFC来设计CDialog模块。MFC设计的对话框界面比较人性化,为用户以及加密和解密文档过程中传递参数,同时还封装了很多界面优化的函数。
在CDialog中添加了三个响应按钮函数,分别是:选择需要加密或解密的文档,并将电子文档参数传递给DES模块;OnEncryption()和OnDecryption()分别对选择的电子文档数据进行加密和解密。
2.2 MD5和DES模块设计
本文定义的MD5类封装了参数和加密方法。本文将string类型的参数传递给MD5加密函数,通过函数加密后得到数字和字母组合的32字节密文,然后在密文中选取前八个数字或字母作为DES加密算法的密钥。
同时DES类也封装了DES需要的参数、加密方法和解密方法。在此类中,将加密解密方法集成在filecryption(char*fname,char ch[9],int crypflag)函数里。其中的参数*fname表示需要加密或解密的文件(其参数通过界面中用户输入信息得到),ch[9]是通过MD5模块对字符串加密得到前八字符的密钥,crypfla=0表示加密,crypfla=1表示解密;本函数返回int型来判断加密解密操作是否成功。(注:本函数对文档进行加密或解密后直接覆盖源文件)。
2.3 文档加密工具设实现
本文在MFC对话框传统界面基础上进行了改进,运用DES和MD5两种算法实现了对电子文档的加密和解密操作,如图1所示。
3 结论
经过测试,本文设计的文档加密工具能够对文本文件及office等办公软件进行加密和解密操作,且该工具为.exe文件,可直接在计算机上运行,为用户保护数据信息提供了一个方便实用的工具。
参考文献:
[1]梁晔、赵彦敏,数据加密算法的分析与研究[J].甘肃高师学报,2011,16(2):14-16.
[2]卢开澄,计算机密码学[M].北京:清华大学出版社,1998.
[3]江文,浅议信息加密技术的原理与应用[J].计算机时代,2010,5:10-11.
[4]林雄飞,浅谈电子文件动态加密技术[J].CAD/CAM与制造业信息化,2011,2(3):20-21.
[5]孙维国、李浩然,MD5算法在数据安全中的应用及安全性分析[J].微计算机应用,2010,10(31):66-69.