朱作付,徐超,,錢俊
(1.徐州工業職業技術學院信息工程系,江蘇 徐州221000;2.武漢大學計算機學院,湖北 武漢430072)
一種分布式數據加密傳輸系統的算法設計
朱作付1,徐超1,2,錢俊2
(1.徐州工業職業技術學院信息工程系,江蘇 徐州221000;2.武漢大學計算機學院,湖北 武漢430072)
通過對DES和RSA加密技術進行分析,建立一個包括信息交換格式、交換協議和加解密算法的數據傳輸系統.系統的整體設計建立于現在流行的分布式系統的基礎上,由于采用agent的結構,使得任何一個部件的故障對系統的負面影響達到最小,從而保證整個系統運行的健壯性.即保證各個agent與中央控制器進行安全數據傳輸,具有良好的可操作性,能夠適用于不同的應用環境.
算法;傳輸系統;數據加密;分布式系統
目前對稱加密算法DES和非對稱加密算法RSA的安全性都較好,還沒有在短時間內破譯它們的有效方法,常常采用DES與RSA相結合的加密算法.在加密、解密的處理效率方面,DES算法優于RSA算法.在密鑰的管理方面,RSA算法比DES算法更加優越,DES算法從原理上不可能實現數字簽名和身份認證.因此,本文中將采用對稱加密DES算法、非對稱加密RSA算法相結合,實現數據加密傳輸系統[1].
1.1 系統的整體設計 首先需要建立一個可以進行信息交互的數據傳輸環境,在該環境下進行數據的加密傳輸才有意義,否則,脫離數據傳輸環境而研究數據加密技術是沒有任何意義的[2].本文中提出建立一個分布式數據傳輸系統.系統的設計采用分布式結構,各個分布式部件的設計采用agent的形式,每個agent既可單獨運行,同時又作為整個系統不可分割的一部分,受整個系統的調控,另一方面,由于采用agent的結構,使得任何一個部件的故障對系統的負面影響達到最小,從而保證整個系統運行的健壯性.如圖1所示.

圖1 系統的整體框架
1.2 數據加解密方案的設計 發送端將要發送的明文交給數據傳輸模塊,數據傳輸模塊根據要求使用特定的加密算法對明文進行加密,然后將加密后的密文發送給接收端,接收端的數據傳輸模塊接收到相應的密文后選擇相應的解密函數進行解密,解密后的明文再傳給接收端的應用程序[3].這個過程如圖2所示.

圖2 數據加密工作流程
對正文的加密和解密運算均采用56位DES算法,而DES算法的密鑰則由RSA算法進行加密.假設數據的發送方和接收方分別稱為A和B.在A端進行加密時,首先采用RSA算法,用A的私用密鑰SA對DES的加密密鑰K進行第一次加密,然后用加密后的結果加上自己的帳號作為下一次加密的原始明文,再用B的公開密鑰PB進行第二次RSA加密.接收方B接到報文后,采用相反的方向進行解密.即先用其私用密鑰SB對密文進行RSA解密,便可得到一包含發送方帳號的明文,有了發送方的帳號,B就知道報文為A所發,故去掉此帳號后,再用A的公開密鑰PA解密,便得到DES算法的密鑰K.對DES算法的密鑰K進行加密的過程如圖3所示.最后使用解得的DES算法密鑰K對后面傳過來的報文進行DES解密,便可得到最終的明文文件.數據接收方在接收到數據并進行身份認證正確后,應向數據發送方發回一簽收確認信號.
上述加解密過程可以實現數字簽名和身份認證的功能.用戶B可以確信報文是用戶A所發,因為除了用戶A本人,其他任何人都無法用明文K產生出密文ESA(K),所以就相當于用戶A落下了他自己的簽名.用戶A的私用密鑰規定只能由他本人保存和使用,無疑具有“專一性”,因此由他處理的信息K經2次加密后的EPB(ESA(K)+A)自然就隱含了用戶A的個人特征.一般情況下,倘若有第三方也能制造出同樣的數字信息,那么最大的可能是用戶A有意或無意地泄露了他自己私人保存的私用密鑰SA,所以責任要由其自己承擔.由此可見,這種數字簽名方法能起到和手工簽名一樣的效果.接收方在第一次解密后就可以了解到是誰發來的報文,而且用其他人的公開密鑰對EPB(ESA(K))解密也將無得到有效的DES密鑰K,因此用這種方法還可以對發送方的身份進行認證.
正文和DES密鑰應分開進行傳輸.正文數據文件可以加密傳送,也可以不加密傳送.加密過的報文需解密處理,而未經加密的報文則不需解密處理.每一個用戶的RSA密鑰長期有效,但在每次通信過程中,DES的加密密鑰K由數據發送方動態生成,而且只在當次通信中有效.因此,整個系統保密的關鍵就在于RSA的私用密鑰是否安全[5].

圖3 用RSA算法對DES算法的密鑰K進行加密的過程
2.1 數據傳輸模塊 數據傳輸模塊負責與中控器間的秘密數據傳輸.數據傳輸模塊的主要功能為:創建監聽線程監聽固定的端口,以便其他組件和中央控制器建立連接,發送信息給中央控制器;中央控制器和其他組件建立連接,發送信息給其他組件.數據傳輸模塊對應的類為CCommunicator.數據傳輸模塊包括發送、接收信息和信息處理2個子模塊.發送、接收信息子模塊是將一定格式的信息發送到中控器,從中控器接收信息;信息處理子模塊是負責信息的處理,如處理注冊過程、事件信息、處理中控器發送到主防火墻的信息以及向中控器發送信息.
2.2 WDES的DES加解密模塊
2.2.1 DES算法 DES算法的入口參數有3個:Key、Data、Mode.
其中Key為8個字節共64位,是DES算法的工作密鑰;Data是8個字節64位,是要被加密或被解密的數據;Mode為DES的工作方式,有2種:加密和解密.
DES算法工作方式:如Mode為加密,則用Key把數據Data進行加密,生成Data的密碼形式(64位)作為DES的輸出結果;如Mode為解密,則用Key把密碼形式的數據Data解密,還原為Data的明碼形式(64位)作為DES的輸出結果.在數據傳輸網絡的兩端,雙方約定一致的Key,在數據傳輸的源點用Key對核心數據進行DES加密,然后以密碼形式在網絡中傳輸到數據傳輸網絡的終點,數據到達目的地后,用同樣的Key對密碼數據進行解密,便再現了明碼形式的核心數據.這樣,便保證了核心數據(如PIN、MAC等)在網絡中傳輸的安全性和可靠性[6].
2.2.2 DES算法的實現 DES加解密算法主要由3個部分組成:密鑰生成、加密函數、解密函數.為了使算法具有良好的跨平臺性,選擇了標準C作為算法的實現語言.其算法示意圖如圖4.
DES密鑰結構:

2.2.3 DES加密模塊發送、接收信息的實現 發送子模塊的作用是將加解密子模塊的輸出作為輸入,然后按照設計的協議對數據進行封裝,然后利用TCP/IP協議將數據完整的發送出去[7].
接收子模塊的作用是利用TCP/IP協議從網絡接收完整的數據,然后按照協議對數據進行解包,并將解包后的結果作為加解密子模塊的輸入,在完成解密后會將結果傳給上層的應用.
為了確保數據傳輸的準確、可靠,在發送、接收子模塊的具體實現中使用TCP協議作為低層的傳輸協議,同樣,為了使生成的代碼能運行于不同的平臺,使用了標準C的套接字編程,經過在windows下的傳輸測試,一切工作良好.
2.3 WDES系統的設計實現
2.3.1 系統主要模塊流程圖 由于系統設計采用模塊化設計,系統也調用了MFC類庫.本系統也是采用標準準類庫設計,每一個模塊由幾個類組成,也調用了部分MFC標準類.如圖5、6所示.

圖4 DES算法示意圖

圖5 系統模塊流程圖1

圖6 系統模塊流程圖2

圖7 系統功能模塊圖
2.3.2 系統實現 系統采用VC6.0開發,是采用面向對象的方法設計,所有的功能全部集成到每一個子模塊里,每一個子模塊由很多類組成,每一個類執行不同的功能.因此本系統的模塊圖層次很清楚,也很容易理解.系統由控制模塊、數據加密模塊、數字簽名模塊、數據傳輸模塊4個組成[8],模塊間的關系如圖7所示.
系統控制模塊給加密模塊、簽名模塊和數據傳輸模塊發送指令,對他們進行控制;數據加密模塊進行數據的DES加解密功能,簽名模塊進行數字簽名的功能,數據傳輸模塊進行數據傳輸功能,它有3種模式,第一是對話模式,考慮到數據傳輸雙方在傳送文件前可能進行簡單的對話,因此設計這個模式,可以將對話內容直接顯示在屏幕上;二是明文傳送模式[9],它可以傳送各種正規格式的文件,只要文件不含有亂碼,都可以使用這種模式傳送文件;第三種模式可以傳送含有不規則符號的文件,它是專門為傳送一些特殊文件設計,一般不使用.
采用DES、RSA和單程函數加密算法共同完成信息數據加、解密,提高密文傳輸和認證的安全性.RSA的加、解密處理速度快,單程函數加密算法對于密鑰的管理比較簡單等特點,使其有很高的推廣價值.系統操作方便、簡單.但是所謂的計算機數據傳輸網絡的安全不是絕對的[10],也不可能是永久性的,隨著相關技術的發展,系統需要不斷完善和更新.
[1]陳明舉,陳善學.基于 DES算法和 RSA算法的數據加密方案[J].南昌工學院學報,2006,25(1):23-24.
[2]吳昊.基于 DES算法和 RSA算法的數據加密方案[J].焦作工學院學報:自然科學版,2002,21(5):396-397.
[3]肖攸安,李臘元.數字簽名技術的研究[J].武漢理工大學學報:交通科學與工程版,2002,26(6):737-739.
[4]程一飛.RSA算法及其應用[J].安慶師范學院學報:自然科學版,2004,10(2):68-69.
[5]程庭,張明慧,石國營.一種基于DES和RSA算法的數據加密方案及實現[J].河南教育學院學報:自然科學版,2003,12(2):69-71.
[6]楊波.現代密碼學[M].北京:清華大學出版社,2003(2):18-21.
[7]章照止.現代密碼學基礎[M].北京:郵電大學出版社,2004(2):57-59.
[8]徐向文.藍牙技術中的一種基于DES加密的安全策略[J].通信技術,2008,41(11):19-21.
[9]孫駿,韓澤耀.一種抗 DPA攻擊的 DES設計[J].中國集成電路,2006,84(5):28-31.
[10]石新峰,董蘊華,楊航.基于FPGA的3-DES雙向數據傳輸高速加/解密芯片設計[J].通信技術,2009,42(5):230-232.
A distributed data encryption algorithm for transmission system design
ZHU Zuofu1,XU Chao1,2,QIAN Jun2
(1.Department of Information Engineering,Xuzhou College of Industrial Technology,Xuzhou 221000,China;2.School of Computer,Wuhan University,Wuhan 430072,China)
By analysising DES and RSA encryption technology,a data transmission system including information exchange ormats,exchange protocol and processing the data decryption algorithm had been established.The overall design of system established on the basis of structure of the popular distributed system.By using the agent structure in this system,it made a component with failure minimize the negative impact and ensured the system robustness.Namely,this ensured that all of the agens and the central controller had a secure data transmission and a good operability.It could be applied to different applications.
algorithm;transmission system;data encryption;distributed system
TP392
A
1000-2375(2011)03-0366-04
2011-03-01
朱作付(1968-),男,碩士,副教授
(責任編輯 趙燕)