【摘要】哈夫曼編碼是一種有效的對字符串進行二進制前綴編碼的方法,壓縮比高,廣泛用于數(shù)據(jù)的遠距離通信傳輸。文章對經(jīng)哈夫曼編碼的二進制字符串明文使用MD5算法加密,得到密文,對MD5加密算法的壓縮函數(shù)MD5e進行了詳細研究。改進后的MD5算法較改進前有一定的安全保障。
【關鍵詞】哈夫曼編碼;MD5加密算法;MD5c
1引言
二十一世紀是信息技術的時代,計算機網(wǎng)絡已深入的各個領域,其安全問題尤為突顯。網(wǎng)絡用戶來自社會各階層,網(wǎng)絡中傳輸數(shù)據(jù)必須要有加密保護措施“,而計算機數(shù)據(jù)加密算法是核心、重中之重。
目前主流的數(shù)據(jù)加密技術有DES、RSA、AES和橢圓加密算法口等。當用戶A向B發(fā)送數(shù)據(jù)時,使用某種加密算法,將明文變?yōu)槊芪模l(fā)送到計算機網(wǎng)絡;用戶B接收到密文,使用對應的解密算法解密,恢復明文原始內容。在實際通信中,明文碼長一般較長,占用空間大,明文在網(wǎng)絡傳輸過程中易被截獲、篡改,且加密比較繁瑣,耗時較長。故本文提出對基于哈夫曼壓縮的、MD5算法數(shù)據(jù)壓縮加密方法,即為傳送的數(shù)據(jù)構建哈夫曼樹,根據(jù)哈夫曼樹對明文壓縮編碼,然后將得到的壓縮明文通過單向MD5哈希散列算法進行加密。
2哈夫曼編碼
哈夫曼編碼是基于哈夫曼二叉樹構建的無重復前綴的、電文總長最短的二進制前綴碼數(shù)據(jù)。將報文中n種字符出現(xiàn)的次數(shù)作為二叉樹的葉子節(jié)點,即為w,各自編碼長度設為l,則計算報文中的n種字符總長度WPL(4-6),如公式(1_1)所示。
WPL值最小時,構建的二叉樹即為哈夫曼樹。構建好的哈夫曼樹,從根節(jié)點到每個葉子節(jié)點都有一條路徑,此時用二進制數(shù)字進行編碼,即從根節(jié)點開始,左子樹路徑都用“0”編碼,右子樹都用“1”來編碼,這樣每條路徑都有唯一的前綴編碼。
3基于哈夫曼樹的壓縮加密技術
哈夫曼樹編碼能較好的實現(xiàn)對數(shù)據(jù)文件的壓縮,被廣泛的用于計算機網(wǎng)絡中的數(shù)據(jù)加密過程中。
3.1數(shù)據(jù)加密模型
一般的數(shù)據(jù)加密模型如圖l所示。用A向B發(fā)送明文數(shù)據(jù)D,經(jīng)過加密算法E加密后,得到密文Y,加密過程如圖1所示。加密函數(shù)如公式(2—1)所示。
3.2MD5散列加密算法
(1)MD5算法簡介
MD5的全稱是Message-DJgestAlgorithm,即信息摘要算法,是最常見的單向散列(HaSh)函數(shù),把明文的數(shù)組進行加密后,輸出密文數(shù)組,而根據(jù)密文逆向推出多個明文,所以IdD5加密算法具有不可逆性和碰撞性u。
(2)MD5算法的分析過程
MD5算法的分析過程如圖2所示。
用戶A向B發(fā)送的明文,先通過哈夫曼樹編碼的第一層壓縮后,然后再通過單向的MD5算法的加密后,得到密文,最后再加上密鑰,然后把結果送向用戶B。
4.MD5算法壓縮函數(shù)MDSc
用戶加密后的密文在通信介質上傳輸時,非法人員通過某種技術手段截獲后,采用常用的窮舉暴力破解法,將明文通過MD5算法得到所有的密文數(shù)據(jù)庫,將截獲的密文與數(shù)據(jù)庫明文密文對應列表查詢匹配,以獲取截獲的密文對應的明文。
MD5算法因為容易被破解經(jīng)常不被使用,可通過壓縮函數(shù)MD5c來對MD5算法進行改進。步驟如下。
4結語
在實際生活中,明文碼長一般比較長,在進行加密時比較繁瑣,占用的空間也比較大,而且明文出現(xiàn)的過程中可能會出現(xiàn)密文的攻擊者,編碼較長的明文更容易被攻擊,因此本文通過對數(shù)據(jù)進行哈夫曼編碼能解決此問題。而使用MD5散列算法,因為加密和解密算法是不對稱的,通過改進后,也對數(shù)據(jù)的加密提供了一定的保障。因此,基于哈夫曼樹的壓縮加密技術為計算機的網(wǎng)絡安全提供了一定的保障。
【參考文獻】
【1】王曉東.計算機算法分析與設計[M].第4版.北京:電子工業(yè)出版社:2012:96—100.
[2】謝希仁.計算機網(wǎng)絡[M】.第6版.北京:電子工業(yè)出版社:2013.
[3]奠愛民.主流VPN技術的安全性研究與改進[D].南京:南京JE..v-大學.2009.
【4]韓相軍,郭春英.淺談哈夫曼樹及其應用【J].濮陽教育學院學報,2001,14(3):45—45.
[5】石博文,苑海潮,路慧澤,等.基于二叉樹和一維數(shù)組的哈夫曼編碼[J】.通信技術,2017,50(5):867—872.【6】謝娜.哈夫曼樹算法的改進[J].電腦知識與技術,2010(29):8224-8226.
[7]毛熠,陳娜.MD5算法的研究與改進[J].計算機工程,2012,38(4):111-114.
[8】陸琳琳.MD5算法的技術研究及性能優(yōu)化[D].長春:吉林大學,2009.
[9】張裔智,趙毅,湯小斌.MD5算法研究[J】.計算機科學,2008,35(7):295-297.
[10]趙素萍.MD5加密算法的改進及應用[J].現(xiàn)代計算機,2017(15):60—62.