摘要:該文討論當(dāng)前企業(yè)應(yīng)用中普遍存在的大數(shù)據(jù)量存儲及傳輸中的安全及性能問題,提出了一種安全、高效且可續(xù)傳的數(shù)據(jù)交換模型。該模型采用RSA公鑰、密鑰結(jié)合動態(tài)生成DES密鑰的方式實現(xiàn)大數(shù)據(jù)量的加密、傳輸和解密,在性能接近DES算法的前提下,力圖使安全性接近RSA算法的水平。同時提出在該方案下,傳輸意外中斷后續(xù)傳的解決方案。
關(guān)鍵詞:數(shù)據(jù)交換;DES;RSA;續(xù)傳
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2009)15-3888-02
Continues Passes on the Data the Network Dynamic Encryption Exchange Model
PAN Hu-ling
(Gansu Province Qin'an County productive forces promotion center,Qin'an 741600,china)
Abstract: This article discusses in the current enterprise application in the universal existence great data quantity memory and the transmission security and the performance question, proposed one kind of security, highly effective also may continue the data exchange model which passes on.This model uses the RSA public key, the key union dynamic produces the DES key the way to realize the great data quantity encryption, the transmission and the decipher, in under the performance close DES algorithm premise, tries hard to cause the secure close RSA algorithm the level.Simultaneously proposed under this plan, the transmission accident interrupts the following biography the solution.
Key words: The data exchange; DES; RSA; continues the biography
隨著社會信息化的快速發(fā)展帶來的信息膨脹,和以云計算服務(wù)為典型的公共計算應(yīng)用在企業(yè)應(yīng)用中的廣泛流行,基于Internet的大容量數(shù)據(jù)傳輸和存儲服務(wù)正在各行各業(yè)承擔(dān)起越來越重要的角色。然而,企業(yè)在享受基于公務(wù)計算服務(wù)所帶來的優(yōu)惠時,不得不考慮這種新模式下所面臨的挑戰(zhàn)—數(shù)據(jù)安全。以數(shù)據(jù)交換為例,采用Internet上存儲供應(yīng)商提供的服務(wù)來臨時存放待交換的數(shù)據(jù),固然可以極大節(jié)約成本,而對于參與數(shù)據(jù)交換的雙方企業(yè)來說,都存在著數(shù)據(jù)泄露的潛在危險,尤其對于涉及商業(yè)機密的數(shù)據(jù)而言,存儲服務(wù)本身是不可信任的,因此數(shù)據(jù)加密成為解決問題的首選。而現(xiàn)今普遍采用的加密方式或多或少存在著安全系數(shù)與性能方面問題,如何實現(xiàn)一種安全與高性能兼得的加密方式一直以來都是數(shù)據(jù)交換面對的一個重要的課題。
1 動態(tài)生成DES密鑰結(jié)合RSA的加密方案
當(dāng)前,基于如DES、AES等的對稱加密算法因其加密、解密速度較快而被普遍應(yīng)用與大數(shù)據(jù)量傳輸中,然而,對稱加密算法存在諸如自身安全性不高、加密和解密采用同一密鑰而帶來密鑰傳播等固有問題。而以RSA算法[1]為代表的非對稱加密體系具備更高的強度,公鑰-私鑰體系更富靈活性,不過,非對稱加密解密算法普遍存在的問題就是運算量大,因而非對稱算法并不適用于大數(shù)據(jù)量的加密和解密。
1.1 動態(tài)加密與上傳
采用動態(tài)生成DES密鑰且結(jié)合RSA加密的方法可以充分發(fā)揮兩者的優(yōu)點,即在保證動態(tài)生成的DES密鑰安全的前提下,整個數(shù)據(jù)由多個隨機生成的DES密鑰分段加密,DES密鑰本身及其對應(yīng)的分段信息由RSA公鑰加密。如圖1所示,源數(shù)據(jù)需加密后傳輸至公共倉庫。加密與傳輸前,客戶端從倉庫獲取接收數(shù)據(jù)用戶(或用戶組)對應(yīng)的RSA公鑰。傳輸一開始,由一個DES密鑰生成器隨機生成一個包含校驗信息的64 bit DES密鑰,客戶端依照某種算法選取數(shù)值N,從源數(shù)據(jù)讀取N 字節(jié)并由該DES密鑰加密為長度為M字節(jié)的密文(DES加密所得密文與明文長度可等長或不等長)。與此同時,將該DES密鑰及M值捆綁,共同由接收端的RSA公鑰加密為一段密文,并同N字節(jié)源數(shù)據(jù)加密后的密文,一同作為一個數(shù)據(jù)包上傳至倉庫。客戶端繼續(xù)工作,重新生成隨機DES密鑰和隨機數(shù)N,重復(fù)上述過程,發(fā)送第二個直至最后一個數(shù)據(jù)包。
上述過程實現(xiàn)了動態(tài)數(shù)據(jù)加密,即加密數(shù)據(jù)用的DES密鑰隨機動態(tài)生成,每個密鑰負責(zé)加密一段數(shù)據(jù),各DES密鑰均由接收端提供的RSA公鑰加密保護,并隨密文數(shù)據(jù)一同上傳至公共倉庫。
1.2 加密數(shù)據(jù)結(jié)構(gòu)
為使數(shù)據(jù)接收端方便解析且應(yīng)中斷后續(xù)傳的需要,設(shè)計數(shù)據(jù)包結(jié)構(gòu)如圖2所示。每個數(shù)據(jù)包的前128 bit為一個動態(tài)生成的64bit DES密鑰與一個用64bit表示的源數(shù)據(jù)片段被加密后的密文長度值N共同經(jīng)RSA加密后的密文。因N由某種算法隨機生成,故各數(shù)據(jù)包長度是不等的。當(dāng)分包數(shù)為S時,傳輸數(shù)據(jù)中共存在S個動態(tài)生成的64 bit DES密鑰和S個64 bit密文長度信息。當(dāng)采用的DES加密算法為非冗余,即明文數(shù)據(jù)與密文數(shù)據(jù)等長時,所有數(shù)據(jù)包所產(chǎn)生的通信開銷[2]為128×S bit。
1.3 下載與解密
僅當(dāng)接收端解密數(shù)據(jù)時,動態(tài)生成的DES密鑰被RSA私鑰解開并僅使用一次,因此實現(xiàn)了DES密鑰的“一次性”使用,避免了同一密鑰重復(fù)使用和反復(fù)傳播帶來的風(fēng)險。
解密一開始,數(shù)據(jù)接收端讀入第一個128bit,用接收端的RSA密鑰將其翻譯成明文,得到的前64bit作為一個DES密鑰,后64bit作為獲得的密文長度數(shù)值L并將其后的L字節(jié)數(shù)據(jù)讀出且視作密文,由該DES密鑰解密,解密后的明文追加到待保存的目標(biāo)數(shù)據(jù)中。至此,完成了對一個數(shù)據(jù)包的解密過程,其中涉及的DES密鑰將不再參加運算。重復(fù)上述過程,直至完成所有數(shù)據(jù)包的解密,這樣就得到了加密前的原始數(shù)據(jù)。
2 傳輸中斷后的續(xù)傳
對于大數(shù)據(jù)量的傳輸,意外中斷后的續(xù)傳也是設(shè)計中需要解決的重要問題之一。前文中討論的加密方法,其DES加密前后的明文與密文可等長或不等長,這取決于加密算法本身。同時密文中存在加密后的DES密鑰和密文長度為冗余數(shù)據(jù),故續(xù)傳分上傳(加密)和下載(解密)做如下討論。
2.1 上傳中的續(xù)傳
上傳中斷后,公共倉庫中存在未傳輸完畢的部分數(shù)據(jù)。然而,由于發(fā)送端是隨機生成密鑰并對隨機長度的數(shù)據(jù)實施加密的,因而僅通過獲知倉庫中已傳輸?shù)臄?shù)據(jù)長度是無法定位發(fā)送端原始數(shù)據(jù)的續(xù)傳起始點的。要實現(xiàn)上傳中的斷點續(xù)傳,在傳輸順利完成以前,至少需要在發(fā)送端或倉庫中的一處保留實時的傳輸進度信息。
例如,發(fā)送端每成功發(fā)送一個數(shù)據(jù)包,即在倉庫確認收到數(shù)據(jù)包后,在發(fā)送端更新已發(fā)送源數(shù)據(jù)字節(jié)數(shù)Nsum=N1+ N2+ …+ Nk及對應(yīng)的密文字節(jié)數(shù)總和Ssum= M1+ M 2+ …+ M k+16×k(設(shè)當(dāng)前已完成第k包數(shù)據(jù)的發(fā)送)。則可源文件的Nsum+1字節(jié)開始續(xù)傳,倉庫數(shù)據(jù)由Ssum+1開始繼續(xù)追加。
這種續(xù)傳方式因其需要在每數(shù)據(jù)包傳輸成功后記錄相關(guān)信息,因而對發(fā)送端和倉庫端程序控制要求較高。并不是一種良好的方案,同時也正是該數(shù)據(jù)交換模型的缺點所在。
2.2 下載中的續(xù)傳
不同于上傳,續(xù)傳在下載中可采用另一種策略。由于倉庫中數(shù)據(jù)是完整的,現(xiàn)假設(shè)接收方在傳輸中斷前已接收并解密得到了N字節(jié)的數(shù)據(jù),則可以通過“快速遍歷的方法”對倉庫中的密文用RSA密鑰做128bit解密,并取出明文中后64bit的值T,跳過T字節(jié)后,再取128bit解密,如此往復(fù)累加Tsum直至其等于N,由此定位到續(xù)傳起始點,開始續(xù)傳。對于一個含有A個DES密鑰的傳輸而言,最壞情況下的續(xù)傳定位需完成A-1次RSA解密運算。
3 性能分析
理論上說,只要分包數(shù)(即動態(tài)生成的DES密鑰數(shù))大于等于2,則密文數(shù)據(jù)無法獲知如何分割以適應(yīng)DES破解。在源數(shù)據(jù)已采用某種編碼(如壓縮)的情況下,可基本杜絕DES破解的可能性[3]。從這一點講,這種加密方式使安全性接近了RSA的標(biāo)準(zhǔn)[4]。
圖3顯示了DES密鑰數(shù)量與通信開銷的關(guān)系,隨著分包數(shù)量的增加,通信開銷在整個上傳傳輸中的比例不斷增大,通信開銷最主要的部分為RSA解密。以1MB數(shù)據(jù)解密為例,當(dāng)分包數(shù)量達到200時,RSA解密DES密鑰的工作即占據(jù)了一半以上的開銷。而當(dāng)分包數(shù)量等于3時,RSA解密DES密鑰所花費開銷小于總開銷的2%,對性能影響不明顯。續(xù)傳方面,經(jīng)測試,定位1GB的密文數(shù)據(jù)的續(xù)傳點花費不超過30秒,完全處于可接受范圍內(nèi)。因此,建議DES密鑰的數(shù)量控制在3個/MB以內(nèi)。
4 結(jié)束語
支持續(xù)傳的動態(tài)加密數(shù)據(jù)交換解決方案相比單純使用對稱算法加密數(shù)據(jù),其被破解的可能性大為減小,而性能損失仍然控制在可接受的范圍。在分包數(shù)大于2時,加密的可靠性遠大于單純的DES算法,而當(dāng)分包數(shù)控制在一定范圍內(nèi)時,其加密、解密速度又遠低于單純的RSA算法,且該數(shù)據(jù)交換模型在下載的續(xù)傳中表現(xiàn)良好。因而,對于基于公共數(shù)據(jù)交換服務(wù)的應(yīng)用,其安全性與性能達到一個平衡點,從而具有一定的現(xiàn)實意義。
參考文獻:
[1] Rivest R, Shamir A, Adleman L. A method for obta- ining digital signatures and public key crypto-systems[J]. Comm ACM, 1978, 21(2): 120-126.
[2] Zheng Y. Digital signcryption or how to achieve cost[C] Crypto’97,LNCS 1294.Berlin:SpringerVerlag, 1997: 165-179.
[3] 曹建國等,基于RSA公鑰密碼安全性的研究[J],計算機技術(shù)與發(fā)展,2007,17(1):172-174.
[4] 朱文余,孫琦.計算機密碼應(yīng)用基礎(chǔ)[M].北京:科學(xué)出版社,2003.
[5] Spillman R.經(jīng)典密碼學(xué)與現(xiàn)代密碼學(xué)[M].葉阮健等譯.北京:清華大學(xué)出版社,2004.
[6] 周玉潔,馮登國.公開密鑰密碼算法及其快速實現(xiàn)[M] .北京:國防工業(yè)出版社,2002.