Web數(shù)據(jù)庫(kù)加密技術(shù)之混合加密體制
數(shù)據(jù)庫(kù)加密技術(shù)是實(shí)現(xiàn)數(shù)據(jù)庫(kù)文件安全的一項(xiàng)關(guān)鍵技術(shù),能從根本上解決信息在網(wǎng)絡(luò)上的安全傳輸問(wèn)題,即使數(shù)據(jù)庫(kù)文件受到入侵或者數(shù)據(jù)在傳輸過(guò)程中被人非法截獲,入侵者或截獲者得到的只是加了密的數(shù)據(jù)文件,無(wú)法得到真實(shí)信息,能最大限度地保護(hù)數(shù)據(jù)庫(kù)中的信息資源。
一、混合加密體制概述
目前,常見(jiàn)的加密體制分為兩種:對(duì)稱加密體制和公鑰加密體制。而混合加密體制是將公鑰加密體制與對(duì)稱加密體制相結(jié)合的一種方法。
1、對(duì)稱加密體制
對(duì)稱加密體制又稱單鑰加密體制,加密方利用一個(gè)密鑰對(duì)數(shù)據(jù)文件進(jìn)行加密,解密方接收到數(shù)據(jù)文件后需要用同一密鑰來(lái)進(jìn)行解密。該加密體制的特點(diǎn)是數(shù)學(xué)運(yùn)算量小,加解密速度快,易于處理,但密鑰的分發(fā)和管理比較困難,n個(gè)用戶要使用n(n -1)/2個(gè)密鑰。比較有代表性的加密算法有:DES,3DES,GOST,AES加密算法等。
2、公鑰加密體制
公鑰加密體制是把加密密鑰和解密密鑰分離,加密密鑰一般通過(guò)公共數(shù)據(jù)庫(kù)或在傳輸中對(duì)外公開(kāi),根據(jù)不同的算法可用于加密信息或驗(yàn)證數(shù)字簽名;解密密鑰則必須秘密保存,根據(jù)不同的加密算法可用于解密信息或進(jìn)行簽名驗(yàn)證。公鑰加密體制的核心是單向陷門(mén)函數(shù),該函數(shù)從一個(gè)方向求解容易,但從另一個(gè)方向求解非常困難。該加密體制的特點(diǎn)是數(shù)學(xué)運(yùn)算量大、加密速度相對(duì)于對(duì)稱密碼慢,對(duì)選擇密文攻擊脆弱但密鑰管理方便。比較有代表性的算法有:DH加密算法和RSA加密算法等。
3、混合加密體制
鑒于以上兩種加密體制的優(yōu)缺點(diǎn),混合加密系統(tǒng)將公鑰加密體制與對(duì)稱加密體制相結(jié)合,使用帶隨機(jī)會(huì)話密鑰的對(duì)稱加密算法來(lái)加密消息,使用公開(kāi)密鑰加密算法來(lái)產(chǎn)生主密鑰并加密隨機(jī)會(huì)話密鑰。這樣既可以獲得較快的加密速度,又可以獲得較大的加密強(qiáng)度。正因如此,混合密碼系統(tǒng)在安全領(lǐng)域起著重要的作用。
二、數(shù)據(jù)庫(kù)文件加密設(shè)計(jì)
對(duì)于共享網(wǎng)絡(luò)數(shù)據(jù)庫(kù),若數(shù)據(jù)庫(kù)文件加密和解密在服務(wù)器上進(jìn)行,則網(wǎng)絡(luò)上傳輸?shù)亩际敲鲾?shù)據(jù),數(shù)據(jù)庫(kù)文件加密成為空談,所以加密和解密必須在客戶端進(jìn)行。由于不同的用戶往往需要
訪問(wèn)同一個(gè)加密數(shù)據(jù)庫(kù),因此必須采用統(tǒng)一的加密和解密算法和相同的加密和解密密鑰,密鑰的管理也是整個(gè)加密數(shù)據(jù)庫(kù)文件的安全核心。
1、采用AES的改進(jìn)加密算法對(duì)數(shù)據(jù)文件加密
通過(guò)對(duì)常用的對(duì)稱加密算法(DES、IDEA和AES)的評(píng)測(cè),我們最終選擇了AES加密算法,AES加密算法是一個(gè)數(shù)據(jù)塊長(zhǎng)度和密鑰長(zhǎng)度均可變的迭代分組密碼,數(shù)據(jù)塊和密鑰長(zhǎng)度都可分別為128、192或256位,并且由數(shù)據(jù)塊長(zhǎng)度和密鑰長(zhǎng)度決定加密圈數(shù)N為10、12或14圈。明文經(jīng)過(guò)N圈的S盒變換、行移位變換、列混淆變換、圈密鑰加變換等編碼過(guò)程輸出密文,其文件加密過(guò)程下圖所示。

圖1中的F為圈變換(包括S盒變換、行移位變換、列混淆變換、圈密鑰變換),Ki為第i圈加密時(shí)所用的圈密鑰j明文經(jīng)N次圈變換之后加密成密文輸出,當(dāng)數(shù)據(jù)分組長(zhǎng)度和密1鑰長(zhǎng)度均為128位時(shí),要加密的數(shù)據(jù)分成128位一組,按每行4個(gè)字節(jié)(1個(gè)字節(jié)8位)排成4行,稱為一個(gè)狀態(tài)。數(shù)據(jù)的寫(xiě)入和讀出均按列優(yōu)先順序,以字節(jié)為單位操作。將明文數(shù)據(jù)分組后,對(duì)每一個(gè)分組都要進(jìn)行10圈數(shù)據(jù)文件加密,每一圈要進(jìn)行如下變換:S盒變換BYrE SUB、行移位變換sr-nFTROW、列混淆變換MIX COLUMN、圈密鑰變換ADD ROUNDKEY,最后一圈要少做第3步列混淆變換。
在使用分組密碼時(shí),對(duì)明文尾部不滿一個(gè)整組的碎片通常采用填充隨機(jī)數(shù)的辦法將其擴(kuò)充為一個(gè)整組,然后進(jìn)行正常文件加密。由于尾組的擴(kuò)充,使得密文的長(zhǎng)度大于明文的長(zhǎng)度。這樣就不能滿足數(shù)據(jù)庫(kù)加密后文件長(zhǎng)度不變的要求。針對(duì)這一問(wèn)題,我們采用了“密碼挪用法”來(lái)解決。例如,當(dāng)待加密的長(zhǎng)度為24碼(即為192位)時(shí),密碼挪用法加密過(guò)程如圖2:

第一整組(1-16碼)加密后截取第9-16碼的密文與尾部(17 -24碼)組成一個(gè)整組進(jìn)行加密,加密所得密碼接在前一組的第8個(gè)密碼之后。其中,第9 - 16碼實(shí)際上進(jìn)行了二次加密,在解密時(shí)也應(yīng)該進(jìn)行二次解密。該方案保證了128位分組加密,同時(shí)又保證了數(shù)據(jù)庫(kù)文件加密以后,數(shù)據(jù)長(zhǎng)度不會(huì)變化。
2、采用RSA加密算法建立安全的密鑰管理機(jī)制
加密數(shù)據(jù)庫(kù)文件的密鑰管理是本系統(tǒng)實(shí)現(xiàn)加密數(shù)據(jù)庫(kù)文件安全共享的核心問(wèn)題之一。在此混合加密體制中我們采用基于RSA加密算法的數(shù)字簽名技術(shù)實(shí)現(xiàn)對(duì)加密數(shù)據(jù)庫(kù)文件密鑰的安全管理。
為敘述方便,規(guī)定以下記號(hào):管理員A對(duì)加密數(shù)據(jù)庫(kù)文件的內(nèi)容進(jìn)行管理,設(shè)其RSA加密算法為FA( Key,Data),其中Key是密鑰,Data是需要加解密的密鑰,公鑰為EA,私鑰為DA。管理員A通過(guò)授權(quán)機(jī)制授予用戶B訪問(wèn)加密數(shù)據(jù)庫(kù)的權(quán)利,稱為用戶B為獲得授權(quán)的用戶,設(shè)其RSA加密算法為FB(Key,Data),公鑰為EB,私鑰為DB。為了對(duì)公鑰密碼的正確性進(jìn)行檢測(cè),可以建立密鑰證書(shū)KC如下:
![]()
顯然,數(shù)據(jù)庫(kù)的密鑰證書(shū)KC必須加密存放在服務(wù)器上,對(duì)發(fā)出授權(quán)的管理員A自己而言,計(jì)算FA(EA,KC)保存在服務(wù)器上即可。但對(duì)于獲得授權(quán)的用戶B而言,無(wú)法解密得到KC,因此還必須建立安全的管理機(jī)制進(jìn)行密鑰的分發(fā)。方法如下(見(jiàn)圖3):

注:(1)步驟一:A用B的公鑰EB和算法FB加密;
(2)步驟二:A用自己的私鑰DA和算法FA加密;
(3)CKC為加密后的密鑰證書(shū)。
管理員A計(jì)算CKC的過(guò)程,即為A對(duì)KC的簽名過(guò)程。A在計(jì)算出CKC后,保存到服務(wù)器上的密鑰管理表TKC中,密鑰管理表TKC的結(jié)構(gòu)為:
![]()
用戶B在獲得授權(quán)認(rèn)證后,可以訪問(wèn)密鑰管理表,讀取被加密的密鑰證書(shū)C KC。CKC的解密過(guò)程如下(見(jiàn)圖4):

注:(1)步驟一:B用A的公鑰EA和算法FA解密;
(2)步驟二:B用自己的私鑰DB和算法FB加密;
用戶B獲得密鑰證書(shū)KC的同時(shí),也就獲得了密鑰K。我們可以證明此密鑰管理方案是正確的:

管理員A要撤銷用戶B已獲得的授權(quán)時(shí),從密鑰管理表中刪除相應(yīng)的記錄即可。用戶B在授權(quán)被撤銷后,使用該數(shù)據(jù)庫(kù)時(shí)不能通過(guò)授權(quán)認(rèn)證,更得不到密鑰證書(shū)。當(dāng)然,為了防止用戶B保留密鑰證書(shū)的副本,通過(guò)其他非法手段攻擊加密數(shù)據(jù)庫(kù),管理員A最好更換數(shù)據(jù)庫(kù)密鑰K,同時(shí)更新密鑰管理表。
三、在RS-MIS中數(shù)據(jù)庫(kù)加密模塊的應(yīng)用
在某干部部門(mén)的人事管理系統(tǒng)的開(kāi)發(fā)中,我們將基于混合加密體制的數(shù)據(jù)庫(kù)文件加密技術(shù)運(yùn)用其中,達(dá)到了理想的效果。
1、加密算法
加密開(kāi)始時(shí),首先將輸入轉(zhuǎn)換為狀態(tài)矩陣。在初始化圈密鑰后,通過(guò)執(zhí)行圈變換函數(shù)10次,對(duì)狀態(tài)矩陣進(jìn)行變換。其中,加密算法的最后一輪變換與前Nr-1輪稍有不同。最后,將最終的狀態(tài)取出作為輸出口在加密中用到的變換分別為:Shift Rows()、Sub Bytes()、Mix Columns()和Add Round Key()。
2、解密算法
將加密進(jìn)行逆變換就可以產(chǎn)生AES加密算法的解密。在解密中用到的變換分別為:Inv Shift Rows(),Inv SubBytes():,Inv Mix Columns()和Add Round Key()。
3、RS-MIS中數(shù)據(jù)文件加密的具體實(shí)現(xiàn)
在人事管理系統(tǒng)(RS-MIS)中,數(shù)據(jù)庫(kù)表中需要加密的數(shù)據(jù)文件主要是一些敏感字段。下表就是人事檔案表中的敏感數(shù)據(jù)如:“任免建議”經(jīng)過(guò)上述加密算法和解密算法進(jìn)行加密、解密后的數(shù)據(jù)文件(其中密碼取自用戶通過(guò)數(shù)字簽名技術(shù)從管理員處獲得的授權(quán)密碼),由下表可知樣,明文字段經(jīng)過(guò)AES加密算法加密后,是以密文形式存儲(chǔ)到數(shù)據(jù)庫(kù)中的,從而保護(hù)了敏感信息。

4、安全性分析
利用本方案,可以實(shí)現(xiàn)加密數(shù)據(jù)庫(kù)文件的安全共享,為信息管理系統(tǒng)(MIS)的正常運(yùn)行提供了有力的安全保障。非法用戶侵入系統(tǒng)試圖訪問(wèn)加密數(shù)據(jù)庫(kù)時(shí),由于其不能破譯合法用戶的RSA公鑰密碼,得不到授權(quán)認(rèn)證更不能還原密鑰證書(shū)KC,確保了加密信息的安全。、密鑰證書(shū)中包含消息認(rèn)證碼,可以檢測(cè)出數(shù)據(jù)錯(cuò)誤或非法篡改,只有數(shù)據(jù)完全正確時(shí),才能通過(guò)檢驗(yàn)。發(fā)出授權(quán)的管理員用自己的私鑰對(duì)證書(shū)進(jìn)行數(shù)字簽名,其他用戶得不到其私鑰,無(wú)法偽造證書(shū),不能進(jìn)行重放攻擊,同時(shí)也可防止管理員否認(rèn)和抵賴已發(fā)出的授權(quán)。
用戶的私鑰是本方案的安全核心之一,應(yīng)由用戶個(gè)人嚴(yán)格保護(hù),可以采用硬件和軟件相結(jié)合的方式對(duì)其予以保護(hù),如可以保存在IC卡、閃存、軟盤(pán)等移動(dòng)存儲(chǔ)設(shè)備上。使用時(shí)通過(guò)IC卡身份認(rèn)證后才能正確讀取私鑰。
在數(shù)據(jù)庫(kù)安全所采用的策略中,加密技術(shù)是一項(xiàng)備受關(guān)注的技術(shù)?;旌霞用荏w制結(jié)合了公鑰加密體制易于密鑰分配和對(duì)稱密碼體制易于計(jì)算、速度快的特點(diǎn),為數(shù)據(jù)庫(kù)的安全和便捷使用提供了良好的途徑。
小知識(shí)之加密體質(zhì)
加密體制也叫密碼系統(tǒng),是指能完整地解決信息安全中的機(jī)密性、數(shù)據(jù)完整性、認(rèn)證、身份識(shí)別、可控性及不可抵賴性等問(wèn)題中的一個(gè)或幾個(gè)的一個(gè)系統(tǒng)。對(duì)一個(gè)密碼體制的正確描述,需要用數(shù)學(xué)方法清楚地描述其中的各種對(duì)象、參數(shù)、解決問(wèn)題所使用的算法等。









