數(shù)據(jù)庫加密算法

雖然一些大型的數(shù)據(jù)庫管理系統(tǒng)都提供了用戶身份標識和認證、使用權(quán)限控制、視圖、審計等安全管理措施,但是一些重要部門或敏感領(lǐng)域的數(shù)據(jù)庫應(yīng)用系統(tǒng)僅靠這些措施還難以完全保證文件的安全性。因此,有必要對數(shù)據(jù)庫中存儲的重要文件進行加密處理,以實現(xiàn)數(shù)據(jù)存儲的安全保護。那么我們今天就介紹幾個適用于數(shù)據(jù)庫加密的加密算法。

數(shù)據(jù)庫加密算法選擇標準

數(shù)據(jù)庫中文件加密的粒度一般有表級、記錄級、字段級和數(shù)據(jù)級4種,加密粒度越小,則適用范圍越廣,但實現(xiàn)難度就越大。就目前研究現(xiàn)狀,以記錄或字段為加密粒度居多。因此,適于數(shù)據(jù)庫加密的加密算法必須符合以下標準:

1、 由于數(shù)據(jù)庫數(shù)據(jù)保存的時限相對較長,數(shù)據(jù)庫加密對加密算法強度的要求是第一位的。

2、 由于數(shù)據(jù)庫中數(shù)據(jù)量大,數(shù)據(jù)最大量的使用方式是隨機訪問,因此對加密算法的加密和解密效率要求較高,不能引起數(shù)據(jù)庫系統(tǒng)的性能大幅度下降。

3、加密后數(shù)據(jù)庫組織結(jié)構(gòu)對于數(shù)據(jù)庫管理系統(tǒng)而言不能有大的變動,應(yīng)盡可能做到明文和密文長度相等或至少相當。

4、由于時限較長和密鑰的復雜,密鑰管理機制應(yīng)更加靈活和堅固。

通過以上分析,我們可以得知,數(shù)據(jù)庫加密算法宜采用分組加密算法。由于數(shù)據(jù)庫字段的長度一般較小,如果加密算法的分組規(guī)模大,會在數(shù)據(jù)庫內(nèi)產(chǎn)生過多的填充信息,致使數(shù)據(jù)長度發(fā)生太大變化,涉及數(shù)據(jù)庫表結(jié)構(gòu)變化,這樣會增加實現(xiàn)的難度并降低系統(tǒng)運行效率,因此數(shù)據(jù)庫加密算法適合采用小分組加密算法。

由于DES加密算法的密鑰長度固定,無法擴展,并且已被攻破,安全性不太高;AES加密算法至少需要128位分組,都不太適合給數(shù)據(jù)庫加密。RSA公司提供的RC5和RC6加密算法,是目前最成熟的分組加密算法,并且尚未被攻破,具有較好的安全性,并且由于其分組長度和密鑰長度都可變。

數(shù)據(jù)庫加密算法分類:

一、RC5 加密算法

RC5加密算法是RSA公司提出的一個新的迭代分組密碼。

1、RC5加密算法的特點

分組長度2w,密鑰長度b和輪數(shù)r都是可變的。簡記為RC5-w/r/b。該密碼既適合于硬件實現(xiàn)又適合于軟件實現(xiàn),具有運行速度快、強度高、易于實現(xiàn)的優(yōu)點。

2、RC5加密算法的實現(xiàn)

它主要通過基于數(shù)據(jù)而變化的循環(huán)移位運算來實現(xiàn)數(shù)據(jù)的擴散和混淆。每次循環(huán)移位的位數(shù)都依賴于輸入的明文,事先不可預測。RC5加密算法中沒有非線性的置換表,循環(huán)移位是唯一的非線性運算,RC5的強度主要依靠與明文有關(guān)的數(shù)據(jù)循環(huán)移位。另外算法中的異或操作提供了加密時的雪崩效應(yīng),即一個明文輸入塊中一位的改變會引起后續(xù)輪中數(shù)據(jù)的多位改變。

二、RC6加密算法

RC6加密算法是AES第二輪測評評選出的5個候選加密算法之一,它是對RC5加密算法的改進,除了繼承RC5加密算法的基于數(shù)據(jù)的循環(huán)移位外,它還增加了乘法運算,增加了每輪的擴散速度,使得用更少的輪數(shù)就能實現(xiàn)更高的安全性和抵御更強的攻擊。

為抵抗RC5加密算法由于輪之間相對較慢的雪崩效應(yīng)而面對的一些攻擊,RC6加密算法使用二次F函數(shù)實現(xiàn)字內(nèi)的更快的混淆,以便實現(xiàn)循環(huán)移位位數(shù)的快速改變。

RC6加密算法中循環(huán)移位位數(shù)除一部分是不確定數(shù)外,還有一部分是固定數(shù),固定位數(shù)的循環(huán)移位使得對此算法的線性攻擊和微分攻擊變得復雜。

三、R加密算法

R加密算法是由RC5加密算法、RC6算法修改而成,它繼承了RC5加密算法的密鑰擴展算法,但對RC5的加密算法作了修改,將RC5加密算法的循環(huán)移位改為RC6加密算法的循環(huán)移位。除了繼承RC5加密算法的基于數(shù)據(jù)的循環(huán)移位外,增加了乘法運算,加快了每輪的擴散速度,使得用更少的輪數(shù)就能實現(xiàn)更高的安全性和抵御更強的攻擊。

為抵抗RC5加密算法由于輪之間相對較慢的雪崩效應(yīng)而面對的一些攻擊,使用RC6加密算法的二次F函數(shù)實現(xiàn)字內(nèi)的更快的混淆,以便實現(xiàn)循環(huán)移位位數(shù)的快速改變。另外由于采用RC6加密的循環(huán)移位,移位位數(shù)除一部分是不確定數(shù)外,還有一部分是固定數(shù),固定位數(shù)的循環(huán)移位使得對此算法的線性攻擊和微分攻擊變得復雜。

R加密算法綜合了RC5加密算法、RC6加密算法優(yōu)點并保持小的分組,使之更適合用于對數(shù)據(jù)庫加密。安全性比RC5加密算法、DES加密算法高,密鑰長度可變,能抵抗密鑰窮舉攻擊。加密和解密速度快,可滿足數(shù)據(jù)庫加密的要求。

小知識之雪崩效應(yīng)

雪崩效應(yīng)就是一種不穩(wěn)定的平衡狀態(tài)也是加密算法的一種特征,它指明文或密鑰的少量變化會引起密文的很大變化,就像雪崩前,山上看上去很平靜,但是只要有一點問題,就會造成一片大崩潰。