網絡高效安全數據傳輸方法設計
摘要:現行的網絡安全傳輸方案中經典的方法分為對稱加密和非對稱加密2種。對稱加密運算速度快但容易被攻擊和破解;非對稱加密算法復雜,不易被破解,但加密速度慢,不適宜傳輸大量的安全數據。通過對哈夫曼壓縮方法研究可知,不同的數據文件經過哈夫曼壓縮后可形成不同的少量數據的哈夫曼壓縮編碼表和壓縮文件。通過對哈夫曼編碼表進行非對稱加密設計的方案,可以減少非對稱加密算法加密的字節(jié)數,實現大數據量文件的非對稱加密。同時通過對大數據文件的壓縮,可以減少整個文件大小,提高網絡傳輸效率。該方案已在多個網絡安全傳輸項目中得到應用,完全能夠滿足網絡傳輸安全要求。
關鍵詞:對稱加密;非對稱加密;哈夫曼編碼;RSA
近年來,隨著計算機和網絡技術的迅速發(fā)展,越來越多的社會團體、機關、企事業(yè)單位建立了計算機網絡,人們更多的將社會活動、辦公以及科研等各個方面活動的重心轉移到了網絡當中,形成了由局域網絡為節(jié)點組成的龐大的互聯網絡。在互聯網絡節(jié)點之間越來越多的數據交換任務需要完成,以實現計算機軟、硬件資源和信息資源的共享。在互聯網絡這種開放系統中進行數據交換,對于安全級別要求較高的數據,傳輸過程中的數據安全是至關重要的。
網絡數據傳輸安全的核心是通過對數據發(fā)送、網絡傳輸、數據接收各個環(huán)節(jié)中的數據進行加密處理,以達到實現數據安全的目的。保護在公用網絡信息系統中傳輸、交換和存儲的數據的保密性、完整性、真實性、可靠性、可用性和不可抵賴性等。而加密技術則是數據傳輸安全的核心。它通過加密算法將數據從明文加密為密文并進行通信,密文即使被黑客截取也很難被破譯,然后通過對應解碼技術解碼密文還原明文。
目前國際上通用的加密方法主要有對稱加密和不對稱加密,不同的加密方法有不同的特點,在數據傳輸高安全性要求比較高的網絡系統中得到了普遍采用,例如電子商務、郵件傳輸等方面。
1 加密算法的現狀
密碼學是為了保證在發(fā)送者和接收者之間傳遞的數據不被第三者獲得而對要傳遞的數據進行加密使其獲得保密的科學。通常將傳遞的數據稱為明文,為了保護明文,以將其通過某種方式變換成無法識別的密文,這個變換過程稱為加密;另一方面密文可以通過相應的逆變換再還原成明文,這個過程稱為解密。
加密算法可以看作是一個復雜的函數變換:
C=F(M,Key)
式中:C代表密文,即加密后得到的字符序列;M代表明文,即待加密的字符序列;Key表示密鑰,是秘密選定的一個字符序列。
當加密完成后,可以將密文通過不安全渠道送給數據接收人,只有擁有解密密鑰的數據接收人才可以對密文進行解密,即反變換得到明文。密鑰的傳遞必須通過安全渠道。
目前通用的加密算法主要分為對稱和非對稱算法。對稱算法采用相同的密鑰進行加密和解密。常用的對稱加密算法有AES、IDEA、RC2/RC4、DES 等,其最大的困難是密鑰分發(fā)問題,必須通過當面或在公共傳送系統中使用安全的方法交換密鑰。對稱加密由于加密速度快、硬件容易實現、安全強度高,因此仍被廣泛用來加密各種信息。但對稱加密也存在著固有的缺點:密鑰更換困難,經常使用同一密鑰進行數據加密,給攻擊者提供了攻擊密鑰的信息和時間。非對稱算法,采用公鑰進行加密而利用私鑰進行解密。公鑰是可以公開的,任何人都可以獲得,數據發(fā)送人用公鑰將數據加密后再傳給數據接收人,接收人用自己的私鑰解密。非對稱加密的安全性主要依賴難解的數學問題,密鑰的長度比對稱加密大得多,因此加密效率較低,主要使用在身份認證、數字簽名等領域。非對稱加密的加密速度慢,對于大量數據的加密傳輸是不適合的。非對稱加密算法包括RSA、DH、EC、DSS等。目前比較流行的、最有名的非對稱加密算法是RSA。
RSA的安全性在于大整數因子分解的難度,其體制構造是基于數論的歐拉定理,產生公開密鑰和秘密密鑰的方法為:
(1)取2個互異的大素數p和q;
(2)計算n=p×q;
(3)隨機選取整數e,且e與(p-1)×(q-1)互為素數;
(4)另找一個數d,使其滿足(e×d)mod[(p-1)×(q-1)]=1;(n,e)即為公鑰;(n,d)為私鑰。對于明文M,用公鑰(n,e)加密可得到密文C,C=Me mod n;對于密文C,用私鑰(n,d)解密可得到明文M,M=Cd mod n。
利用當今可預測的計算能力,在十進制下,分解2個250位質數的積要用數十萬年的時間,并且質數用盡或2臺計算機偶然使用相同質數的概率小到可以被忽略。由此可見,企圖利用公鑰和密文推斷出明文或者企圖利用公鑰推斷出私鑰的難度極其巨大,幾乎是不可行的。因此,這種機制為信息傳輸提供了很高的安全保障。
由上述內容可以發(fā)現,無論是對稱加密和非對稱加密的過程都是完成如下的過程:
(1)產生密鑰key;
(2)C=F(M,Key),即使用已經產生的密鑰,通過加密算法將明文轉換為密文。
(3)數據傳輸;
(4)M=F’(C,key),即接收方使用解密算法,將密文轉換為明文。
如果需要傳輸的明文數據龐大,則加密和解密的算法的耗時將非常長,并且數據傳輸時也會占用大量的網絡資源。也就是以上的(2),(3),(4)三個過程都會占用大量的時間和資源,如果能夠降低這3個過程的時間,就會節(jié)省大量的資源,提高數據傳輸的效率。通過使用哈夫曼編碼對文件進行壓縮,就可以大大降低以上3個環(huán)節(jié)的處理時間,并同時在傳輸處理過程中減少計算機資源和網絡資源的占用。
2 哈夫曼編碼介紹
哈夫曼編碼是20世紀50年代由哈夫曼教授研制開發(fā)的,它借助了數據結構當中的樹型結構,在哈夫曼算法的支持下構造出一棵最優(yōu)二叉樹,把這類樹命名為哈夫曼樹。因此,準確地說,哈夫曼編碼是在哈夫曼樹的基礎之上構造出來的一種編碼形式,它的本身有著非常廣泛的應用。
2.1 基本原理
數據能夠被壓縮的理論依據如下:
定義1 對于給定的信源和碼符號集,若有一個惟一可譯碼,其平均碼長L小于所有其他惟一可譯碼,則稱這種碼為緊致碼或最佳碼。
定理1 哈夫曼編碼是緊致碼。
計算機文件是以字節(jié)為單位組成的,每個字節(jié)的取值為O~255。每個字節(jié)都看成字符,共256種字符。因此,每個字節(jié)都是以8個二進制位的定長編碼表示的。由于這種定長碼也是惟一可譯碼,根據定理1有L≤8。
設某個文件有N個字節(jié)組成,則該文件總長度為8N比特。如果對該文件進行哈夫曼編碼,則該文件總長度為LN比特。由于L≤8,所以LN≤8。所以,只要文件滿足L8,用哈夫曼編碼總可以對其壓縮。
哈夫曼編碼是一種變長編碼,即通過使用較短的碼字來給出現概率較高的信源符號編碼,而出現概率較小的信源符號用較長的碼字來編碼,從而使平均碼長最短,達到最佳編碼的目的。由于哈夫曼編碼只能對概率已知的信源符號編碼,因此是一種統計編碼。
評論