Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

數(shù)據(jù)庫加密技術(shù)是實現(xiàn)數(shù)據(jù)庫文件安全的一項關(guān)鍵技術(shù),能從根本上解決信息在網(wǎng)絡(luò)上的安全傳輸問題,即使數(shù)據(jù)庫文件受到入侵或者數(shù)據(jù)在傳輸過程中被人非法截獲,入侵者或截獲者得到的只是加了密的數(shù)據(jù)文件,無法得到真實信息,能最大限度地保護數(shù)據(jù)庫中的信息資源。

一、混合加密體制概述

目前,常見的加密體制分為兩種:對稱加密體制和公鑰加密體制。而混合加密體制是將公鑰加密體制與對稱加密體制相結(jié)合的一種方法。

1、對稱加密體制

對稱加密體制又稱單鑰加密體制,加密方利用一個密鑰對數(shù)據(jù)文件進行加密,解密方接收到數(shù)據(jù)文件后需要用同一密鑰來進行解密。該加密體制的特點是數(shù)學(xué)運算量小,加解密速度快,易于處理,但密鑰的分發(fā)和管理比較困難,n個用戶要使用n(n -1)/2個密鑰。比較有代表性的加密算法有:DES,3DES,GOST,AES加密算法等。

2、公鑰加密體制

公鑰加密體制是把加密密鑰和解密密鑰分離,加密密鑰一般通過公共數(shù)據(jù)庫或在傳輸中對外公開,根據(jù)不同的算法可用于加密信息或驗證數(shù)字簽名;解密密鑰則必須秘密保存,根據(jù)不同的加密算法可用于解密信息或進行簽名驗證。公鑰加密體制的核心是單向陷門函數(shù),該函數(shù)從一個方向求解容易,但從另一個方向求解非常困難。該加密體制的特點是數(shù)學(xué)運算量大、加密速度相對于對稱密碼慢,對選擇密文攻擊脆弱但密鑰管理方便。比較有代表性的算法有:DH加密算法和RSA加密算法等。

3、混合加密體制

鑒于以上兩種加密體制的優(yōu)缺點,混合加密系統(tǒng)將公鑰加密體制與對稱加密體制相結(jié)合,使用帶隨機會話密鑰的對稱加密算法來加密消息,使用公開密鑰加密算法來產(chǎn)生主密鑰并加密隨機會話密鑰。這樣既可以獲得較快的加密速度,又可以獲得較大的加密強度。正因如此,混合密碼系統(tǒng)在安全領(lǐng)域起著重要的作用。

二、數(shù)據(jù)庫文件加密設(shè)計

對于共享網(wǎng)絡(luò)數(shù)據(jù)庫,若數(shù)據(jù)庫文件加密和解密在服務(wù)器上進行,則網(wǎng)絡(luò)上傳輸?shù)亩际敲鲾?shù)據(jù),數(shù)據(jù)庫文件加密成為空談,所以加密和解密必須在客戶端進行。由于不同的用戶往往需要
訪問同一個加密數(shù)據(jù)庫,因此必須采用統(tǒng)一的加密和解密算法和相同的加密和解密密鑰,密鑰的管理也是整個加密數(shù)據(jù)庫文件的安全核心。

1、采用AES的改進加密算法對數(shù)據(jù)文件加密

通過對常用的對稱加密算法(DES、IDEA和AES)的評測,我們最終選擇了AES加密算法,AES加密算法是一個數(shù)據(jù)塊長度和密鑰長度均可變的迭代分組密碼,數(shù)據(jù)塊和密鑰長度都可分別為128、192或256位,并且由數(shù)據(jù)塊長度和密鑰長度決定加密圈數(shù)N為10、12或14圈。明文經(jīng)過N圈的S盒變換、行移位變換、列混淆變換、圈密鑰加變換等編碼過程輸出密文,其文件加密過程下圖所示。

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

圖1中的F為圈變換(包括S盒變換、行移位變換、列混淆變換、圈密鑰變換),Ki為第i圈加密時所用的圈密鑰j明文經(jīng)N次圈變換之后加密成密文輸出,當(dāng)數(shù)據(jù)分組長度和密1鑰長度均為128位時,要加密的數(shù)據(jù)分成128位一組,按每行4個字節(jié)(1個字節(jié)8位)排成4行,稱為一個狀態(tài)。數(shù)據(jù)的寫入和讀出均按列優(yōu)先順序,以字節(jié)為單位操作。將明文數(shù)據(jù)分組后,對每一個分組都要進行10圈數(shù)據(jù)文件加密,每一圈要進行如下變換:S盒變換BYrE SUB、行移位變換sr-nFTROW、列混淆變換MIX COLUMN、圈密鑰變換ADD ROUNDKEY,最后一圈要少做第3步列混淆變換。

在使用分組密碼時,對明文尾部不滿一個整組的碎片通常采用填充隨機數(shù)的辦法將其擴充為一個整組,然后進行正常文件加密。由于尾組的擴充,使得密文的長度大于明文的長度。這樣就不能滿足數(shù)據(jù)庫加密后文件長度不變的要求。針對這一問題,我們采用了“密碼挪用法”來解決。例如,當(dāng)待加密的長度為24碼(即為192位)時,密碼挪用法加密過程如圖2:

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

第一整組(1-16碼)加密后截取第9-16碼的密文與尾部(17 -24碼)組成一個整組進行加密,加密所得密碼接在前一組的第8個密碼之后。其中,第9 - 16碼實際上進行了二次加密,在解密時也應(yīng)該進行二次解密。該方案保證了128位分組加密,同時又保證了數(shù)據(jù)庫文件加密以后,數(shù)據(jù)長度不會變化。

2、采用RSA加密算法建立安全的密鑰管理機制

加密數(shù)據(jù)庫文件的密鑰管理是本系統(tǒng)實現(xiàn)加密數(shù)據(jù)庫文件安全共享的核心問題之一。在此混合加密體制中我們采用基于RSA加密算法的數(shù)字簽名技術(shù)實現(xiàn)對加密數(shù)據(jù)庫文件密鑰的安全管理。

為敘述方便,規(guī)定以下記號:管理員A對加密數(shù)據(jù)庫文件的內(nèi)容進行管理,設(shè)其RSA加密算法為FA( Key,Data),其中Key是密鑰,Data是需要加解密的密鑰,公鑰為EA,私鑰為DA。管理員A通過授權(quán)機制授予用戶B訪問加密數(shù)據(jù)庫的權(quán)利,稱為用戶B為獲得授權(quán)的用戶,設(shè)其RSA加密算法為FB(Key,Data),公鑰為EB,私鑰為DB。為了對公鑰密碼的正確性進行檢測,可以建立密鑰證書KC如下:

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

顯然,數(shù)據(jù)庫的密鑰證書KC必須加密存放在服務(wù)器上,對發(fā)出授權(quán)的管理員A自己而言,計算FA(EA,KC)保存在服務(wù)器上即可。但對于獲得授權(quán)的用戶B而言,無法解密得到KC,因此還必須建立安全的管理機制進行密鑰的分發(fā)。方法如下(見圖3):

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制
注:(1)步驟一:A用B的公鑰EB和算法FB加密;

(2)步驟二:A用自己的私鑰DA和算法FA加密;

(3)CKC為加密后的密鑰證書。

管理員A計算CKC的過程,即為A對KC的簽名過程。A在計算出CKC后,保存到服務(wù)器上的密鑰管理表TKC中,密鑰管理表TKC的結(jié)構(gòu)為:

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

用戶B在獲得授權(quán)認(rèn)證后,可以訪問密鑰管理表,讀取被加密的密鑰證書C KC。CKC的解密過程如下(見圖4):

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

注:(1)步驟一:B用A的公鑰EA和算法FA解密;

(2)步驟二:B用自己的私鑰DB和算法FB加密;

用戶B獲得密鑰證書KC的同時,也就獲得了密鑰K。我們可以證明此密鑰管理方案是正確的:

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

管理員A要撤銷用戶B已獲得的授權(quán)時,從密鑰管理表中刪除相應(yīng)的記錄即可。用戶B在授權(quán)被撤銷后,使用該數(shù)據(jù)庫時不能通過授權(quán)認(rèn)證,更得不到密鑰證書。當(dāng)然,為了防止用戶B保留密鑰證書的副本,通過其他非法手段攻擊加密數(shù)據(jù)庫,管理員A最好更換數(shù)據(jù)庫密鑰K,同時更新密鑰管理表。

三、在RS-MIS中數(shù)據(jù)庫加密模塊的應(yīng)用

在某干部部門的人事管理系統(tǒng)的開發(fā)中,我們將基于混合加密體制的數(shù)據(jù)庫文件加密技術(shù)運用其中,達到了理想的效果。

1、加密算法

加密開始時,首先將輸入轉(zhuǎn)換為狀態(tài)矩陣。在初始化圈密鑰后,通過執(zhí)行圈變換函數(shù)10次,對狀態(tài)矩陣進行變換。其中,加密算法的最后一輪變換與前Nr-1輪稍有不同。最后,將最終的狀態(tài)取出作為輸出口在加密中用到的變換分別為:Shift Rows()、Sub Bytes()、Mix Columns()和Add Round Key()。

2、解密算法

將加密進行逆變換就可以產(chǎn)生AES加密算法的解密。在解密中用到的變換分別為:Inv Shift Rows(),Inv SubBytes():,Inv Mix Columns()和Add Round Key()。

3、RS-MIS中數(shù)據(jù)文件加密的具體實現(xiàn)

在人事管理系統(tǒng)(RS-MIS)中,數(shù)據(jù)庫表中需要加密的數(shù)據(jù)文件主要是一些敏感字段。下表就是人事檔案表中的敏感數(shù)據(jù)如:“任免建議”經(jīng)過上述加密算法和解密算法進行加密、解密后的數(shù)據(jù)文件(其中密碼取自用戶通過數(shù)字簽名技術(shù)從管理員處獲得的授權(quán)密碼),由下表可知樣,明文字段經(jīng)過AES加密算法加密后,是以密文形式存儲到數(shù)據(jù)庫中的,從而保護了敏感信息。

Web數(shù)據(jù)庫加密技術(shù)之混合加密體制

4、安全性分析

利用本方案,可以實現(xiàn)加密數(shù)據(jù)庫文件的安全共享,為信息管理系統(tǒng)(MIS)的正常運行提供了有力的安全保障。非法用戶侵入系統(tǒng)試圖訪問加密數(shù)據(jù)庫時,由于其不能破譯合法用戶的RSA公鑰密碼,得不到授權(quán)認(rèn)證更不能還原密鑰證書KC,確保了加密信息的安全。、密鑰證書中包含消息認(rèn)證碼,可以檢測出數(shù)據(jù)錯誤或非法篡改,只有數(shù)據(jù)完全正確時,才能通過檢驗。發(fā)出授權(quán)的管理員用自己的私鑰對證書進行數(shù)字簽名,其他用戶得不到其私鑰,無法偽造證書,不能進行重放攻擊,同時也可防止管理員否認(rèn)和抵賴已發(fā)出的授權(quán)。

用戶的私鑰是本方案的安全核心之一,應(yīng)由用戶個人嚴(yán)格保護,可以采用硬件和軟件相結(jié)合的方式對其予以保護,如可以保存在IC卡、閃存、軟盤等移動存儲設(shè)備上。使用時通過IC卡身份認(rèn)證后才能正確讀取私鑰。

在數(shù)據(jù)庫安全所采用的策略中,加密技術(shù)是一項備受關(guān)注的技術(shù)?;旌霞用荏w制結(jié)合了公鑰加密體制易于密鑰分配和對稱密碼體制易于計算、速度快的特點,為數(shù)據(jù)庫的安全和便捷使用提供了良好的途徑。

小知識之加密體質(zhì)

加密體制也叫密碼系統(tǒng),是指能完整地解決信息安全中的機密性、數(shù)據(jù)完整性、認(rèn)證、身份識別、可控性及不可抵賴性等問題中的一個或幾個的一個系統(tǒng)。對一個密碼體制的正確描述,需要用數(shù)學(xué)方法清楚地描述其中的各種對象、參數(shù)、解決問題所使用的算法等。