朱作付, 徐 超, 葛紅美
(徐州工業職業技術學院,江蘇 徐州 221000)
目前的數據加密技術根據密鑰類型可分為私鑰加密(對稱加密)系統和公鑰加密(非對稱加密)系統.對稱加密系統與非對稱加密相比,在加密、解密處理速度、防范能力、數字簽名和身份認證等方面各有優劣.對稱加密算法 DES和非對稱加密算法RSA的安全性都較好,還沒有在短時間內破譯它們的有效方法,常常采用DES與RSA相結合的加密算法.在加密、解密的處理效率方面,DES算法優于RSA算法.在密鑰的管理方面,RSA算法比DES算法更加優越,DES算法從原理上不可能實現數字簽名和身份認證.因此,本文將采用對稱加密DES算法、非對稱加密RSA算法相結合,實現數據加密數據加密傳輸系統。[1]
研究網絡環境下的數據加密問題,首先需要建立一個可以進行信息交互的數據傳輸環境,在該環境下進行數據的加密傳輸才有意義,否則,脫離數據傳輸環境而研究數據加密技術是沒有任何意義的。[2]因此本文提出建立一個分布式入數據傳輸系統。系統的設計采用了分布式的結構,各個分布式部件的設計采用了Agent的形式,每個Agent既可單獨運行,同時又作為整個系統不可分割的一部分,受整個系統的調控,另一方面,由于采用了Agent的結構,使得任何一個部件的故障對系統的負面影響達到最小,從而保證了整個系統運行的健壯性。如下頁圖1所示。
發送端將要發送的明文交給數據傳輸模塊,數據傳輸模塊根據要求使用特定的加密算法對明文進行加密,然后將加密后的密文發送給接收端,接收端的數據傳輸模塊接收到相應的密文后選擇相應的解密函數進行解密,解密后的明文再傳給接收端的應用程序。[3]這個過程如圖2所示。

圖1 系統的整體框架

圖2 數據加密工作流程
(1)對稱密碼體制算法的選擇和實現
對稱密碼體制中DES算法是一種采用傳統加密方法的區組密碼。在該數據傳輸模塊設計中,DES采用64位分組進行加密,密鑰長度為56位,對64位的數據塊進行16輪自循環編碼。在每輪編碼時,48位的子密鑰由56位的完整密鑰經過循環左移、置換選擇得出來。
為進一步提高安全性,在數據傳輸模塊設計中使用 DES的改進算法,這種方法用三個密鑰對明文進行三次加密,假設三個密鑰是K1、K2和K3,P是明文,C是密文,則C=EK3[DK2[EK1[P]]]這要花費原來三倍的時間,但是采用三重DES的168位密鑰是很“強壯”的加密方式了。DES算法的實現過程由密鑰生成、加密、解密三個部分組成。為了使算法具有良好的跨平臺性,選擇了標準C語言作為算法的實現語言,將這三個過程封裝成三個子函數,并在 Linux和Windows環境下對算法的正確性進行檢驗。由于采用軟件實現DES加解密,速度較硬件實現慢,但軟件實現方便、成本低,能夠滿足系統的要求。
(2)非對稱密碼體制算法的選擇
非對稱密碼體制中RSA算法是一個既能用于數據加密也能用于數字簽名的加密算法。根據RSA算法的特點,可以使用RSA算法加密DES的加密密鑰,然后通過網絡傳遞經加密以后的密文,可有效的提高系統數據傳輸的安全性。但 RSA加密算法僅適用于組件向控制臺注冊的過程。[4]
實現過程中采用標準C語言將RSA密鑰的生成、加密、解密過程封裝成三個子函數,并在Linux和Windows環境下對算法的正確性進行檢驗。實驗表明RSA密鑰生成過程所需時間較長,根據不同機器的性能大約需要2~3 min,能夠滿足分布式入侵檢測系統的要求。[5]
數據傳輸模塊負責與中控器間的秘密數據傳輸。數據傳輸模塊的主要功能為:創建監聽線程監聽固定的端口,以便其它組件和中央控制器建立連接,發送信息給中央控制器;中央控制器和其它組件建立連接,發送信息給其它組件。數據傳輸模塊對應的類為 CCommunicator。數據傳輸模塊包括發送和接收信息和信息處理兩個子模塊。發送和接收信息子模塊:將一定格式的信息發送到中控器、從中控器接收信息;信息處理子模塊:負責信息的處理,如處理注冊過程、事件信息、處理中控器發送到主防火墻的信息以及向中控器發送信息。
(1)DES算法(見圖3)
DES算法的入口參數有三個:Key、Data、Mode。
其中Key為8個字節共64位,是DES算法的工作密鑰;Data是8個字節64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。
DES算法工作方式:如Mode為加密,則用Key 把數據Data進行加密, 生成Data的密碼形式(64位)作為DES的輸出結果;如Mode為解密,則用Key去把密碼形式的數據Data解密,還原為Data的明碼形式(64位)作為DES的輸出結果。在數據傳輸網絡的兩端,雙方約定一致的Key,在數據傳輸的源點用Key對核心數據進行DES加密,然后以密碼形式在網絡中傳輸到數據傳輸網絡的終點,數據到達目的地后,用同樣的Key對密碼數據進行解密,便再現了明碼形式的核心數據。這樣,便保證了核心數據(如PIN、MAC等)在網絡中傳輸的安全性和可靠性。[6]

圖3 DES算法示意
(2)DES算法的實現
DES加解密算法主要由三個部分組成:密鑰生成、加密函數、解密函數。為了使算法具有良好的跨平臺性,選擇了標準C作為算法的實現語言。

(3)DES加密模塊發送、接收的實現
發送子模塊的作用是將加解密子模塊的輸出作為輸入,然后按照設計的協議對數據進行封裝,然后利用 TCP/IP協議將數據完整的發送出去。[7]
接收子模塊的作用是利用 TCP/IP協議從網絡接收完整的數據,然后按照協議對數據進行解包,并將解包后的結果作為加解密子模塊的輸入,在完成解密后會將結果傳給上層的應用。
為了確保數據傳輸的準確、可靠,在發送、接收子模塊的具體實現中使用TCP協議作為低層的傳輸協議,同樣,為了使生成的代碼能運行于不同的平臺,使用了標準C的套接字編程,經過windows下的傳輸測試,一切工作良好。
系統采用VC6.0開發,是采用面向對象的方法設計,所有的功能全部集成到每一個子模塊里了,每一個子模塊由很多類組成,每一個類執行不同的功能。因此本系統的模塊圖層次很清楚,也很容易理解。系統由控制模塊、數據加密模塊、數字簽名模塊、數據數據傳輸模塊四個模塊組成,[8]模塊間的關系如圖4所示。

圖4 系統模塊的關系
系統控制模塊給加密模塊、簽名模塊和數據傳輸模塊發送指令,對他們進行控制;數據加密模塊進行數據的 DES加解密功能,簽名模塊進行數字簽名的功能,數據傳輸模塊進行數據傳輸功能,它有三種模式,第一是對話模式,考慮到數據傳輸雙方在傳送文件前可能進行簡單的對話,因此設計這個模式,可以將對話內容直接顯示在屏幕上;二是明文傳送模式,[9]它可以傳送各種正規格式的文件,只要文件不含有亂碼,都可以使用這種模式傳送文件;第三種模式可以傳送含有不規則符號的文件,它是專門為傳送一些特殊文件設計,一般不使用。
采用 DES、RSA和單程函數加密算法共同完成信息數據加、解密,提高了密文傳輸和認證的安全性。RSA的加密解密處理速度快,單程函數加密算法對于密鑰的管理比較簡單等特點,使其有很高的推廣價值。本文對網絡中數據傳輸過程中的加密設計方案進行現實,并在分布式系統中進行檢測,試驗表明該數據傳輸方案可靠、穩定、安全,能夠適應網絡環境下數據加密傳輸的要求。系統操作方便、簡單。但是所謂的計算機數據傳輸網絡的安全不是絕對的,[10]也不可能是永久性的,隨著相關技術的發展,系統需要不斷完善和更新。
[1] 陳明舉,陳善學.基于DES算法和RSA算法的數據加密方案[J].南昌工程學院學報,2006,25(01):43-46.
[2] 吳昊.基于DES算法和RSA算法的數據加密方案[J].焦作工學院學報:自然科學版,2002,21(05):396-397.
[3] 肖攸安,李臘元.數字簽名技術的研究[J].武漢理工大學學報:交通科學與工程版,2002,26(06):737-739.
[4] 程一飛.RSA算法及其應用[J].安慶師范學院學報:自然科學版,2004,10(02):68-69.
[5] 程庭,張明慧.石國營一種基于DES和RSA算法的數據加密方案及實現[J].河南教育學院學報:自然科學版,2003,12(02):69-71.
[6] 楊波.現代密碼學[M].北京:清華大學出版社,2003:18-21.
[7] 章照止.現代密碼學基礎[M].北京:郵電大學出版社,2004:57-59.
[8] 徐向文.藍牙技術中的一種基于DES加密的安全策略[J].通信技術,2008,41(11):150-152.
[9] 李海斌,周玉潔.一種抗 DPA攻擊的 DES設計[J].通信技術,2007,40(11):277-279.
[10] 石新峰,董蘊華,楊航.基于FPGA的3-DES雙向數據傳輸高速加/解密芯片設計[J].通信技術,2009,42(05):230-232.