国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Huffman和S—DES混合加密算法的研究

2014-10-20 04:39:01鄭靜王騰
電腦知識與技術 2014年25期
關鍵詞:加密

鄭靜 王騰

摘要:在對比現有的加密軟件和古典密碼學常見的加密算法后,結合文本加密的現狀及發(fā)展趨勢,該文將基于動態(tài)Huffman編碼和S-DES算法相結合,彌補兩者的缺點,達到對文本信息的最佳加密及解密效果。

關鍵詞:混合算法;動態(tài)Huffman編碼;S-DES算法;加密

中圖分類號:TP18 文獻標識碼:A 文章編號:1009-3044(2014)25-5902-03

Analysis of Huffman and S-DES of Mixed Encryption Algorithm

ZHENG Jing , WANG Teng

(Yangtze University college of arts and sciences, Jingzhou 434023, China)

Abstract: In contrast to the existing common encryption software and classical cryptography, combined with the present situation and development of the current text encryption, this paper will be based on dynamic Huffman coding and S-DES algorithm, make up for the shortcomings of the two, achieve the best effect on text information encryption.

Key words: mixed algorithm; dynamic Huffman coding; S - DES encryption algorithm; encryption

隨著互聯網新技術的發(fā)展,黑客攻擊的手段也花樣翻新,使得信息安全面臨著新的威脅,特別是計算機中的數據,面臨著兩方面的問題:一是知識產權保護問題,防止用戶的非法復制和傳播;另一個是保密通信的問題,提高私密消息的機密性,提高信息安全保護的水平。要解決這兩方面的問題,只靠傳統加密技術是不夠的。黑客攔截加密數據后得到的會是一堆亂碼,無疑是在告訴黑客這是經過加密的信息,反而暴露了私密消息的存在性,使其有針對性地進行破解或破壞。所以怎樣才能防止或者降低私密消息在傳輸過程中被攻擊或竊取的幾率應成為我們關心的問題。

1 Huffman和S-DES混合加密算法與現有及傳統加密算法的比較

文本加密技術是保障信息安全最基本、最核心的技術措施,主要通過對數據的加密和數字簽名來實現。其中對數據的加密處理主要是為了防止數據不會被竊聽。數據的加密方式有兩種,一種是傳統的對稱密鑰加密,就是加密方用一把密鑰對數據進行加密,而解密方用同樣一把密鑰對數據進行解密。第二種是非對稱密鑰加密,如果使用這種算法,可以保證對發(fā)送方和接收方身份的確認。而數字簽名實際上是由生成摘要和生成數字簽名兩部分構成。其中摘要可以防止文件被篡改,保證信息的完整性;而數字簽名則是為了保障在商務活動中數據的不可否認性,從而使數據具有法律意義。

目前在文檔安全管理市場上,加密可分為:文檔格式轉換加解密、核心層加解密、應用層加解密。常見的加密軟件有:1) 記事本加密器Ncrypt TX,它預設了多種加密算法,包括DES、3DES、Rijndael、Polyalphabetic、ROT13、Vigenrre、Playfair等。當然不同的加密算法支持不同的數據編碼格式,如Hex、Base64、Text、Word等。在工具欄中也可以相應地設置所需的密碼。2) 超級密碼本Super Code有兩個特色:第一是多重加密功能;第二是密碼自動生成,通過創(chuàng)建密鑰文件,擺脫記憶密碼的煩惱。Super Code內置了TripleDES、DES、Rijndael、RC2等加密算法。Super Code的特點是允許你以上述加密算法為依據,自由組合,創(chuàng)建自己獨有的加密算法序列,例如可以選擇兩種TripleDES算法,一種DES算法,三種RC2算法,五種Rijndael算法,而且可以靈活排列其先后順序。

對稱密鑰密碼系統,歷史悠久,加/解密速度快是其優(yōu)點,但因加密密鑰與解密密鑰為同一把密鑰,信息的傳送方如何在加密之后,將密鑰以安全的方式傳送給接收方,如何使雙方能共享該密鑰,是此密碼系統的一大問題,因此,對稱密鑰密碼系統不適合多人使用的應用。

非對稱式加密就是加密和解密使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,它們必須配對使用,否則不能打開加密文件。“公鑰”是指可以對外公布的,“私鑰”則只能由持有人知道。它的優(yōu)越性在于,對稱式的加密方法如果是在網絡上傳輸加密文件就很難把密鑰告訴對方,不管用什么方法都有可能被別人竊聽到,而非對稱式加密方法有兩個密鑰,“公鑰”可以公開,收件人解密時只要用自己的私鑰即可,這樣就很好地避免了密鑰的傳輸安全性問題。

非對稱式密碼系統也稱為“公開密鑰密碼系統”,它彌補了對稱密鑰密碼系統的缺點,但運算速度較慢是公開密鑰密碼系統的缺點。

DES算法運算速度較慢,但在此基礎上改進的S-DES算法,是一個對稱分組加密的簡化模型,有利于研究和實現,再結合Huffman編碼對文本信息進行壓縮編碼,即Huffman編碼和S-DES算法相結合的混和加密算法就應運而生了。

2 Huffman和S-DES加密算法原理分析

2.1 Huffman編碼原理分析

哈夫曼編碼是一種變長編碼,是哈夫曼樹的一個應用。哈夫曼樹又稱最優(yōu)二叉樹,是一種帶權路徑長度最短的二叉樹。

哈夫曼編碼根據字符出現的概率來構造平均長度最短的編碼。在編碼中,若各碼字長度嚴格按照碼字所對應符號出現概率的大小的逆序排序,則編碼的平均長度是最小的。其中,碼字是明文字符,是通過哈夫曼編碼后得到的編碼,其長度由明文中字符出現的概率決定,出現概率大的編碼長度短,出現概率小的編碼長度長。

哈夫曼編碼對需要編碼的數據進行兩遍掃描:第一遍統計原數據中各字符出現的頻率,利用得到的頻率值創(chuàng)建哈夫曼樹,并把樹的信息保存起來,以便解壓時創(chuàng)建同樣的哈夫曼樹進行解壓;第二遍則根據第一遍掃描得到的哈夫曼樹進行編碼,并把編碼后得到的碼字存儲起來。

哈夫曼編碼的缺點:一、對于過短的文件進行編碼的意義不大,因為存儲哈夫曼樹的信息就需要較大的存儲空間;二、存儲編碼信息時,編碼速度慢,效率低下。

2.2 S-DES算法分析

S-DES加密算法是以8位明文和10位密鑰作為輸出。其解密算法用同一密鑰對8位密文分組產生原來的明文分組,如圖1所示,它描述了S-DES的算法流程。

解密算法的數學表示:明文=IP-1(fk1(SW(fk2(IP(密文)))))

S-DES加密算法涉及五個函數

1) 初始置換IP(initial permutation),IP=,將8bit數按照IP函數進行移位;

2) 復雜函數fk1,它是依賴于子密鑰K1,包含置換和替換的運算;

3) 置換函數SW,將8bit數的左4bit和右4bit交換位置;

4) 復雜函數fk2,它是依賴于子密鑰K2,包含置換和替換的運算;

5) 初始置換IP的逆置換IP-1,IP-1=,將8bit數按照IP-1函數進行移位。

3 Huffman和S-DES算法混合加/解密過程

3.1 混合加密過程

用數據流方式讀入將要加密的文本文件信息,輸入密鑰并保存,經過第一次哈夫曼編碼加密后轉化為0/1字符串,在進行第二次加密之前要將0/1字符串分組,每8位一組,將其作為第二次加密S-DES算法的明文輸入,經過S-DES算法得到最終的密文,將其保存到另一個TXT文本文件中?;旌纤惴ǖ募用苓^程如圖2所示。

3.2 混合解密過程

解密過程首先要進行身份認證,輸入密鑰,身份認證成功后將進行解密,否則將不會解密。首先將最終的密文進行分組,每8位一組,經過S-DES算法進行第一次解密,得到0/1字符串,將其作為Huffman算法的編碼進行第二次解密,即可得到最終的明文。其混合算法的解密過程如圖3所示。

4 Huffman和S-DES混合算法的實現

4.1 Huffman編碼的實現

Huffman算法主要涉及到5個核心函數,分別為獲取權值數組GetWeightArray、構建哈夫曼樹CreateHuffmanTree、創(chuàng)建哈夫曼編碼字典CreateHuffmanDict、哈夫曼編碼StringToHuffmanCode以及哈夫曼編碼的解碼ToHuffmanCode。

1)獲取權值數組GetWeightArray(string str)

將文本信息中的每種字符出現的次數進行統計,并將其作為哈夫曼樹的權值。

2)構建哈夫曼樹CreateHuffmanTree(Node[] sources)

按“左走0,右走1”的原則創(chuàng)建哈夫曼樹。

3)創(chuàng)建哈夫曼編碼字典CreateHuffmanDict(Node hTree)

創(chuàng)建哈夫曼編碼字典,在數組中實現“左走0,右走1”。

4)哈夫曼編碼StringToHuffmanCode(out Dictionary key, string str)

由創(chuàng)建的哈夫曼樹,得到哈夫曼編碼。

5)哈夫曼編碼的解碼ToHuffmanCode(string source, Dictionary hfdict)

將哈夫曼編碼還原成哈夫曼樹,得到每個字符出現的次數,將其還原成原文本信息。

4.2 S-DES算法的實現

S-DES算法中涉及的核心算法為P10置換;P8置換;IP函數;FK函數;SW函數;IP-1函數。

1)P10置換 p10(string miyao)

numbers = miyao.ToCharArray();

miyao = “”;

miyao = miyao + numbers[2] + numbers[4] + numbers[1] + numbers[6] + numbers[3] + numbers[9] + numbers[0] + numbers[8] + numbers[7] + numbers[5];

2)P8置換 p8(string ls1, string ls2)

miyao = miyao + numbers1[2] + numbers1[3] + numbers1[4] + ls2

miyao = miyao + numbers[3] + numbers[0] + numbers[4] + numbers[1] + numbers[5] + numbers[2] + numbers[7] + numbers[6];

3)IP函數 IP(string mingwen)

mingwen = mingwen + numbers[1] + numbers[5] + numbers[2] + numbers[0] + numbers[3] + numbers[7] + numbers[4] + numbers[6];

4)FK函數 fk(string mingwen, string key)

int[,] s0 = new int[,] { { 1, 0, 3, 2 }, { 3, 2, 1, 0 }, { 0, 2, 1, 3 }, { 3, 1, 3, 2 } };

int[,] s1 = new int[,] { { 0, 1, 2, 3 }, { 2, 0, 1, 3 }, { 3, 0, 1, 0 }, { 2, 1, 0, 3 } }; (下轉第5916頁)

(上接第5904頁)

varstr = Convert.ToString(Convert.ToInt32(lstr, 2) ^ Convert.ToInt32(varstr, 2), 2) + rstr;

while (varstr.Length < 8)

{ varstr = ‘0 + varstr; }

5)SW函數 sw(string mingwen)

mingwen = mingwen + numbers[4] + numbers[5] + numbers[6] + numbers[7] + numbers[0] + numbers[1] + numbers[2] + numbers[3];

6)IP-1函數 NIP(string mingwen)

mingwen = mingwen + numbers[3] + numbers[0] + numbers[2] + numbers[4] + numbers[6] + numbers[1] + numbers[7] + numbers[5];

5 結束語

該混和加密算法結合了Huffman算法的平均最短編碼和S-DES算法的分組加密,能對文本信息進行有效的加密,由于加密的過程是由兩次加密算法混合組成,所以增強了密文的安全性。

但Huffman算法在統計文本信息中字符出現的次數,并將該次數作為權值時,降低了程序的運行效率。且S-DES算法每次運算8bit數,增加了循環(huán)次數,也降低了程序的運行效率。

本文主要是對TXT文件中的字符進行混合加密,對于其他各種文件,如二進制文件等,雖然能夠進行有效的加密,但是其安全性和運行效率無法估計,這也是后續(xù)研究中應該加以改善的。

猜你喜歡
加密
一種新型離散憶阻混沌系統及其圖像加密應用
一種基于熵的混沌加密小波變換水印算法
加密與解密
一種基于LWE的同態(tài)加密方案
一種新型的數據加密方法
認證加密的研究進展
關于hls和mpeg-dash中的加密方案的分析
應用于QR碼信息加密的RC4改進算法
計算機工程(2015年8期)2015-07-03 12:20:15
基于ECC加密的電子商務系統
基于格的公鑰加密與證書基加密
成武县| 长寿区| 且末县| 临颍县| 东平县| 大庆市| 黄山市| 古交市| 连州市| 绍兴市| 耒阳市| 华蓥市| 若羌县| 岫岩| 交城县| 砀山县| 兴山县| 罗山县| 金华市| 辽宁省| 太保市| 镇康县| 邹城市| 平顶山市| 和龙市| 泽普县| 潜江市| 前郭尔| 建宁县| 永胜县| 桐庐县| 雷州市| 清水县| 永定县| 大关县| 苏尼特右旗| 山阳县| 霍州市| 浑源县| 太保市| 八宿县|