基于哈夫曼树压缩的加密技术
所属栏目:电子技术论文
发布时间:2018-08-24 11:40:13 更新时间:2018-08-24 11:40:13
【摘要】哈夫曼编码是一种有效的对字符串进行二进制前缀编码的方法,压缩比高,广泛用于数据的远距离通信传输。文章对经哈夫曼编码的二进制字符串明文使用MD5算法加密,得到密文,对MD5加密算法的压缩函数MD5e进行了详细研究。改进后的MD5算法较改进前有一定的安全保障。
【关键词】哈夫曼编码;MD5加密算法;MD5c
1引言
二十一世纪是信息技术的时代,计算机网络已深入的各个领域,其安全问题尤为突显。网络用户来自社会各阶层,网络中传输数据必须要有加密保护措施“,而计算机数据加密算法是核心、重中之重。
目前主流的数据加密技术有DES、RSA、AES和椭圆加密算法口等。当用户A向B发送数据时,使用某种加密算法,将明文变为密文,发送到计算机网络;用户B接收到密文,使用对应的解密算法解密,恢复明文原始内容。在实际通信中,明文码长一般较长,占用空间大,明文在网络传输过程中易被截获、篡改,且加密比较繁琐,耗时较长。故本文提出对基于哈夫曼压缩的、MD5算法数据压缩加密方法,即为传送的数据构建哈夫曼树,根据哈夫曼树对明文压缩编码,然后将得到的压缩明文通过单向MD5哈希散列算法进行加密。
2哈夫曼编码
哈夫曼编码是基于哈夫曼二叉树构建的无重复前缀的、电文总长最短的二进制前缀码数据。将报文中n种字符出现的次数作为二叉树的叶子节点,即为w,各自编码长度设为l,则计算报文中的n种字符总长度WPL(4-6),如公式(1_1)所示。
WPL值最小时,构建的二叉树即为哈夫曼树。构建好的哈夫曼树,从根节点到每个叶子节点都有一条路径,此时用二进制数字进行编码,即从根节点开始,左子树路径都用“0”编码,右子树都用“1”来编码,这样每条路径都有唯一的前缀编码。
3基于哈夫曼树的压缩加密技术
哈夫曼树编码能较好的实现对数据文件的压缩,被广泛的用于计算机网络中的数据加密过程中。
3.1数据加密模型
一般的数据加密模型如图l所示。用A向B发送明文数据D,经过加密算法E加密后,得到密文Y,加密过程如图1所示。加密函数如公式(2—1)所示。
3.2MD5散列加密算法
(1)MD5算法简介
MD5的全称是Message-DJgestAlgorithm,即信息摘要算法,是最常见的单向散列(HaSh)函数,把明文的数组进行加密后,输出密文数组,而根据密文逆向推出多个明文,所以IdD5加密算法具有不可逆性和碰撞性u。
(2)MD5算法的分析过程
MD5算法的分析过程如图2所示。
用户A向B发送的明文,先通过哈夫曼树编码的第一层压缩后,然后再通过单向的MD5算法的加密后,得到密文,最后再加上密钥,然后把结果送向用户B。
4.MD5算法压缩函数MDSc
用户加密后的密文在通信介质上传输时,非法人员通过某种技术手段截获后,采用常用的穷举暴力破解法,将明文通过MD5算法得到所有的密文数据库,将截获的密文与数据库明文密文对应列表查询匹配,以获取截获的密文对应的明文。
MD5算法因为容易被破解经常不被使用,可通过压缩函数MD5c来对MD5算法进行改进。步骤如下。
4结语
在实际生活中,明文码长一般比较长,在进行加密时比较繁琐,占用的空间也比较大,而且明文出现的过程中可能会出现密文的攻击者,编码较长的明文更容易被攻击,因此本文通过对数据进行哈夫曼编码能解决此问题。而使用MD5散列算法,因为加密和解密算法是不对称的,通过改进后,也对数据的加密提供了一定的保障。因此,基于哈夫曼树的压缩加密技术为计算机的网络安全提供了一定的保障。
【参考文献】
【1】王晓东.计算机算法分析与设计[M].第4版.北京:电子工业出版社:2012:96—100.
[2】谢希仁.计算机网络[M】.第6版.北京:电子工业出版社:2013.
[3]奠爱民.主流VPN技术的安全性研究与改进[D].南京:南京JE..v-大学.2009.
【4]韩相军,郭春英.浅谈哈夫曼树及其应用【J].濮阳教育学院学报,2001,14(3):45—45.
[5】石博文,苑海潮,路慧泽,等.基于二叉树和一维数组的哈夫曼编码[J】.通信技术,2017,50(5):867—872.【6】谢娜.哈夫曼树算法的改进[J].电脑知识与技术,2010(29):8224-8226.
[7]毛熠,陈娜.MD5算法的研究与改进[J].计算机工程,2012,38(4):111-114.
[8】陆琳琳.MD5算法的技术研究及性能优化[D].长春:吉林大学,2009.
[9】张裔智,赵毅,汤小斌.MD5算法研究[J】.计算机科学,2008,35(7):295-297.
[10]赵素萍.MD5加密算法的改进及应用[J].现代计算机,2017(15):60—62.