文件型數(shù)據(jù)庫加密技術(shù)分析(二)

發(fā)送方和接收方都必須知道n和e的數(shù)值,而只有接收方才知道d的數(shù)值。這就是使用公鑰ke={ d,n} 和私鑰kd={d,n}的一種公鑰加密算法。要使此算法滿足公鑰加密,必須符合以下要求:

(1) 能夠發(fā)現(xiàn)e、d、n 的值,其中對所有的M

(2) 對于所有的M

(3) 給定e和n,不能求出d。

前兩個要求很容易實現(xiàn),第三個要求對于較大的e和n才能實現(xiàn)。

RSA算法運用了數(shù)論中的Euler定理,即a、r 是兩個互素的正整數(shù),則az≡1 mod r,其中z為與r互素的正整數(shù)的個數(shù)(即Euler函數(shù))。

該算法取用一個合數(shù)( 該合數(shù)為兩個大素數(shù)的乘積 ),而不是取用一個大素數(shù)作為其模數(shù)r,使其具備剩余函數(shù)的單向陷門特性功能[4]。

總而言之 ,DES算法具有密碼使用簡便及處理速度快等優(yōu)點,但在密鑰的分配和保密管理方面存在問題;RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在,經(jīng)歷了各種攻擊考驗,被人們普遍認為是目前最優(yōu)秀的公鑰方案之一,并且RSA算法不需要秘密分配密鑰,密鑰的安全管理也很容易,但缺點是處理速度慢。

3 文件型數(shù)據(jù)庫加密技術(shù)的實現(xiàn)

根據(jù)現(xiàn)有資料分析,目前還沒有公認的專門針對數(shù)據(jù)庫加密的加密算法,因此一般根據(jù)數(shù)據(jù)庫特點選擇現(xiàn)有的加密算法來進行數(shù)據(jù)庫加密。一方面,對稱密鑰算法的運算速度比非對稱密鑰算法快很多,二者相差大約2~3個數(shù)量級;另一方面,在公開密鑰算法中,每個用戶有自己的密鑰對。而作為數(shù)據(jù)庫加密的密鑰如果因人而異,將產(chǎn)生異常龐大的數(shù)據(jù)存儲量。因此,在數(shù)據(jù)庫加密中一般采取對稱密鑰DES的分組加密算法。在此前提下,再使用庫內(nèi)加密和庫外加密等方式來實現(xiàn)文件型數(shù)據(jù)庫的加密。具體而言,就是使用數(shù)據(jù)庫安全保密中間件對數(shù)據(jù)庫進行加密,這是最簡便直接的方法,主要是在DBMS內(nèi)核層(服務(wù)器端)加密、在DBMS外層(客戶端)加密以及在系統(tǒng)中加密。

在DBMS內(nèi)核層實現(xiàn)加密,需要對數(shù)據(jù)庫管理系統(tǒng)本身進行操作,數(shù)據(jù)在物理存取之前就完成加解密工作。其優(yōu)點是加密功能強,并且加密功能幾乎不會影響DBMS的功能,可以實現(xiàn)加密功能與數(shù)據(jù)庫管理系統(tǒng)之間的無縫耦合;缺點是加密運算在服務(wù)器端進行,加重了服務(wù)器的負載,并且DBMS和加密器之間的接口需要DBMS開發(fā)商的支持。

在DBMS外層實現(xiàn)加密的好處是不會加重數(shù)據(jù)庫服務(wù)器的負載,并且可實現(xiàn)網(wǎng)上的傳輸,加密比較實際的做法是將數(shù)據(jù)庫加密系統(tǒng)做成DBMS的一個外層工具,根據(jù)加密要求自動完成對數(shù)據(jù)庫數(shù)據(jù)的加解密處理。采用這種加密方式進行加密,加解密運算可在客戶端進行,它的優(yōu)點是不會加重數(shù)據(jù)庫服務(wù)器的負載并且可以實現(xiàn)網(wǎng)上傳輸?shù)募用?,缺點是加密功能會受到一些限制,與數(shù)據(jù)庫管理系統(tǒng)之間的耦合性稍差。

在系統(tǒng)中加密,因在系統(tǒng)中無法辨認數(shù)據(jù)庫文件中的數(shù)據(jù)關(guān)系,需將數(shù)據(jù)先在內(nèi)存中進行加密,然后文件系統(tǒng)把每次加密后的內(nèi)存數(shù)據(jù)寫入到數(shù)據(jù)庫文件中去,讀入時再逆方向進行解密,這種加密方法相對簡單,只要妥善管理密鑰就可以了。缺點是對數(shù)據(jù)庫的讀寫都比較麻煩,每次都要進行加解密的工作,對程序的編寫和讀寫數(shù)據(jù)庫的速度都會有影響。

綜上所述,具體到實際運用上,由于每種加密技術(shù)都有自己的優(yōu)缺點,所以采用哪種加密方式需要綜合考慮各種因素,選擇最適合的加密方式,以保證數(shù)據(jù)的安全。