程大勇
數(shù)據(jù)安全是當(dāng)前信息技術(shù)領(lǐng)域的一個(gè)重要課題,也是許多專家、軟件工作者共同關(guān)心的問(wèn)題.目前的信息化環(huán)境下,所有的數(shù)據(jù)都是通過(guò)數(shù)據(jù)庫(kù)進(jìn)行儲(chǔ)存和處理,因此,數(shù)據(jù)庫(kù)的安全性就是最終的保障[1].雖然當(dāng)前大多數(shù)主流的數(shù)據(jù)庫(kù)產(chǎn)品都具備了比較完備的安全保護(hù)措施,但隨著軟件系統(tǒng)的日益復(fù)雜化,一些漏洞也隨之顯現(xiàn),導(dǎo)致數(shù)據(jù)庫(kù)的安全性問(wèn)題頻發(fā)[2?5].一旦使用者將資料上傳至云端服務(wù)器,便會(huì)喪失對(duì)資料的實(shí)際控制權(quán),資料的安全性則由云端服務(wù)器決定.所以,常規(guī)的技術(shù)和方法只能提高黑客攻擊云服務(wù)器的難度,很難從根源上阻止用戶的信息泄露[6].因此,為避免云端數(shù)據(jù)出現(xiàn)泄露風(fēng)險(xiǎn),保持?jǐn)?shù)據(jù)庫(kù)的機(jī)密是至關(guān)重要的.
劉格昌等[7]介紹了一種以可檢索密碼為基礎(chǔ)的區(qū)塊鏈密鑰保密機(jī)制.利用區(qū)塊鏈技術(shù)對(duì)關(guān)鍵資料進(jìn)行存儲(chǔ),能有效地阻止明文信息的泄露.通過(guò)引入雙線性圖的數(shù)學(xué)性質(zhì),構(gòu)建一個(gè)區(qū)塊鏈碼的交易單,并在該交易單中添加一個(gè)密鑰,以實(shí)現(xiàn)對(duì)關(guān)鍵字的檢索.使用者可以利用可搜尋的私有密鑰建立特定的關(guān)鍵字搜尋.此方案在個(gè)人健康數(shù)據(jù)區(qū)塊鏈中應(yīng)用,可有效地避免個(gè)人健康資料泄露問(wèn)題,在11.23 s 內(nèi)完成2 400 字的檢索.張人上等[8]針對(duì)擴(kuò)展頻譜通信中存在的問(wèn)題,提出了一種新的基于混沌的多源異質(zhì)信息加密方法.基于多源異構(gòu)的混沌映射,在混沌圖的路徑上,建立了多源異構(gòu)的混沌序列,并由Merlay狀態(tài)機(jī)對(duì)其進(jìn)行控制.在控制過(guò)程中給出一個(gè)子鍵發(fā)生的信號(hào),在時(shí)間限制下通過(guò)特殊的閾值功能生成子鍵,然后使用該子鍵對(duì)多源異構(gòu)的數(shù)據(jù)進(jìn)行正向、反向異或和模式化,從而完成多源異構(gòu)的擴(kuò)頻異構(gòu)信息編碼.實(shí)驗(yàn)結(jié)果顯示:+10?13 的密鑰誤差不能對(duì)正確的資料進(jìn)行解碼;圖像和音頻數(shù)據(jù)加密后相關(guān)性顯著降低;該算法的編碼時(shí)間從16.451 s到18.630 s 不等,均在上限以下.
基于以上研究背景,本文將區(qū)塊鏈技術(shù)應(yīng)用到敏感數(shù)據(jù)庫(kù)屬性加密算法中,從而提高敏感數(shù)據(jù)的安全性.
在加密敏感數(shù)據(jù)庫(kù)的屬性之前,先按照順序?qū)γ舾袛?shù)據(jù)庫(kù)的屬性進(jìn)行儲(chǔ)存[9],通過(guò)計(jì)算檢索關(guān)鍵詞出現(xiàn)的概率,實(shí)現(xiàn)敏感數(shù)據(jù)庫(kù)的屬性檢索,具體步驟如下:
Step1:在敏感數(shù)據(jù)庫(kù)中,采集屬性信息pi,經(jīng)過(guò)文檔轉(zhuǎn)換之后,獲取敏感數(shù)據(jù)庫(kù)屬性的信息層次,將其表示為:
其中:y代表敏感數(shù)據(jù)庫(kù)屬性信息的表征,Ωy代表不同屬性信息之間產(chǎn)生的映射集合,?y代表敏感數(shù)據(jù)庫(kù)中屬性信息的聚類中心,?代表敏感性屬性在敏感數(shù)據(jù)庫(kù)中所占的比例.
Step2:分類處理敏感數(shù)據(jù)庫(kù)的屬性信息,建立屬性檢索格式,即:
其中:Uk表示敏感數(shù)據(jù)庫(kù)中屬性信息的類別函數(shù),φ(k)表示敏感數(shù)據(jù)庫(kù)中存在k種敏感屬性的概率.
Step3:假設(shè)數(shù)據(jù)庫(kù)中敏感屬性為S,將其劃分為Si={s1,s2,…,sn},保證敏感 屬性滿足任意兩個(gè)數(shù)據(jù)的劃分.
Step4:將敏感數(shù)據(jù)庫(kù)屬性信息的劃分函數(shù)定義為f(sn),該函數(shù)可以將敏感屬性sn分為兩個(gè)類別[10],而且可以保證每一個(gè)類別中的敏感屬性值都比最初設(shè)定的閾值大.敏感數(shù)據(jù)庫(kù)中敏感屬性劃分的期望值為qi(qi∈sn),計(jì)算公式為:
其中:(qs?qi)表示敏感數(shù)據(jù)庫(kù)屬性信息檢索的范疇參數(shù),?表示敏感數(shù)據(jù)庫(kù)屬性信息的值,i表示敏感數(shù)據(jù)庫(kù)屬性的方位向量.
Step5:根據(jù)敏感數(shù)據(jù)庫(kù)中敏感屬性劃分的期望值,構(gòu)建敏感數(shù)據(jù)庫(kù)屬性的檢索序列[11],即:
其中:Φ(k,b) 表示敏感數(shù)據(jù)庫(kù)屬性在檢索過(guò)程中的時(shí)間序列表示敏感數(shù)據(jù)庫(kù)屬性檢索的時(shí)間間隔.
Step6:利用敏感數(shù)據(jù)庫(kù)屬性的檢索序列,建立敏感數(shù)據(jù)庫(kù)屬性集合,表示為:
根據(jù)以上過(guò)程,檢索出敏感數(shù)據(jù)庫(kù)的屬性,為敏感數(shù)據(jù)庫(kù)中重復(fù)屬性的刪除提供依據(jù).
根據(jù)敏感數(shù)據(jù)庫(kù)屬性的檢索情況,刪除敏感數(shù)據(jù)庫(kù)內(nèi)的重復(fù)屬性.假設(shè)R=[R1,R2,…,Rk,…,Rn]T表示待刪除的重復(fù)屬性樣本集合,為了保證敏感數(shù)據(jù)庫(kù)的安全性,通常將備份的屬性保存在遠(yuǎn)程終端[12],得到變換處理后的屬性信息,即:
其中:G?a代表變換處理算子.如果敏感數(shù)據(jù)庫(kù)內(nèi)的屬性信息存在非高斯性,通過(guò)公式(7)計(jì)算出屬性信息的混合累積情況:
其中:K表示敏感數(shù)據(jù)庫(kù)內(nèi)屬性信息的帶寬,g(j)代表濾波函數(shù),j表示敏感數(shù)據(jù)庫(kù)的屬性信息,ε表示敏感數(shù)據(jù)庫(kù)中存在非高斯性的屬性信息.
采用Fourier 變換方法[13],對(duì)敏感數(shù)據(jù)庫(kù)的屬性特征進(jìn)行累積,實(shí)現(xiàn)敏感數(shù)據(jù)庫(kù)屬性信息之間分配關(guān)系的配比,利用式(8)可以得到期望輸出,即:
其中:HO代表分配敏感數(shù)據(jù)庫(kù)屬性信息之間關(guān)系的配比,k代表屬性信息的訓(xùn)練樣本數(shù)量,J代表總訓(xùn)練樣本數(shù)量.
根據(jù)敏感數(shù)據(jù)庫(kù)屬性信息之間分配關(guān)系的配比[14],可以得到刪除重復(fù)屬性的輸出,即:
通過(guò)敏感數(shù)據(jù)庫(kù)屬性信息的變換處理,計(jì)算出屬性信息的混合累積情況,根據(jù)敏感數(shù)據(jù)庫(kù)屬性信息之間分配關(guān)系的配比,刪除敏感數(shù)據(jù)庫(kù)內(nèi)的重復(fù)屬性.
將敏感數(shù)據(jù)庫(kù)內(nèi)的重復(fù)屬性刪除之后,區(qū)塊鏈可以通過(guò)對(duì)敏感數(shù)據(jù)庫(kù)屬性進(jìn)行加密[15],達(dá)到保護(hù)敏感數(shù)據(jù)庫(kù)的目的.假設(shè)s?Key代表區(qū)塊鏈生成的私有密鑰,g?Key表示區(qū)塊鏈生成的公有密鑰,每個(gè)區(qū)塊的產(chǎn)生速率會(huì)對(duì)區(qū)塊鏈的安全產(chǎn)生影響[16],如果利用V表示每個(gè)區(qū)塊的產(chǎn)生速率,可以反映出每次組隊(duì)所需的工作負(fù)荷與期望結(jié)果.每個(gè)區(qū)塊的產(chǎn)生速率與區(qū)塊鏈的安全程度呈現(xiàn)相反的關(guān)系,因此可以使用1/V描述區(qū)塊的安全程度.假設(shè)B表示一個(gè)區(qū)塊鏈中的交易量,σs表示區(qū)塊的尺寸,td表示每個(gè)加密回合所用的時(shí)長(zhǎng),其關(guān)系可以表示為:
區(qū)塊在敏感數(shù)據(jù)庫(kù)中生成的時(shí)間間隔為ti,與每個(gè)加密回合所用的時(shí)長(zhǎng)之間屬于正比例關(guān)系[17],因此將上式改寫為:
通過(guò)上式可以發(fā)現(xiàn),區(qū)塊鏈中的交易量、區(qū)塊在敏感數(shù)據(jù)庫(kù)中生成的時(shí)間間隔和區(qū)塊的尺寸都會(huì)影響敏感數(shù)據(jù)庫(kù)的安全性[18].
區(qū)塊在敏感數(shù)據(jù)庫(kù)中生成的時(shí)間間隔與區(qū)塊的尺寸之間存在著如下關(guān)系:
其中:N表示敏感屬性在敏感數(shù)據(jù)庫(kù)中的平均尺寸,B*表示單位時(shí)間內(nèi)敏感數(shù)據(jù)庫(kù)中某一屬性的檢索數(shù)量,F(xiàn)(X,V)表示敏感數(shù)據(jù)庫(kù)中敏感屬性的聚類函數(shù).
根據(jù)每個(gè)加密回合所用的時(shí)長(zhǎng)、區(qū)塊的尺寸、區(qū)塊鏈中的交易量、區(qū)塊在敏感數(shù)據(jù)庫(kù)中生成的時(shí)間間隔與區(qū)塊鏈安全性之間的關(guān)系,合理調(diào)整其中一個(gè)指標(biāo),通過(guò)私有密鑰和公有密鑰完成敏感數(shù)據(jù)庫(kù)屬性的加密.
為了驗(yàn)證文中算法在實(shí)際應(yīng)用中的性能,采用DRM 系統(tǒng)作為測(cè)試平臺(tái),對(duì)DRM 系統(tǒng)的敏感數(shù)據(jù)庫(kù)進(jìn)行屬性加密,實(shí)驗(yàn)平臺(tái)頁(yè)面如圖1 所示.
實(shí)驗(yàn)過(guò)程中,選擇Windows7 操作系統(tǒng)執(zhí)行實(shí)驗(yàn)平臺(tái),實(shí)驗(yàn)平臺(tái)運(yùn)行的環(huán)境參數(shù)如下:
硬件環(huán)境:PC 主頻2 GHz.
處理器:Intel(R)Core(TM)2 Duo T6500 2.10 GHz 的CPU.
內(nèi)存:4 GB.
編程環(huán)境:Eclipse+Oracle9 數(shù)據(jù)庫(kù).
實(shí)驗(yàn)所使用的數(shù)據(jù)來(lái)自某一大型企業(yè)員工的基本信息,以員工的姓名、電話、電子郵箱和月基本工資共同組成敏感數(shù)據(jù)庫(kù),在敏感數(shù)據(jù)庫(kù)中,一共包括5 000 份員工基本信息的敏感數(shù)據(jù)樣本,選擇其中1 000 份敏感數(shù)據(jù)樣本用于實(shí)驗(yàn)測(cè)試,其中部分敏感數(shù)據(jù)如表1所示.
表1 實(shí)驗(yàn)數(shù)據(jù)樣本
通過(guò)對(duì)敏感數(shù)據(jù)庫(kù)的屬性進(jìn)行加密,可以保證表1 中員工基本信息的敏感數(shù)據(jù)具有較高的安全性.
分別在噪聲干擾和濾波干擾下,模擬惡意攻擊行為,對(duì)敏感數(shù)據(jù)進(jìn)行攻擊,采用文中算法對(duì)敏感數(shù)據(jù)庫(kù)的屬性進(jìn)行加密之后,測(cè)試了攻擊攔截比例,結(jié)果如圖2 所示.
圖2 攻擊攔截比例測(cè)試結(jié)果
由圖2 的結(jié)果可知,文中算法在區(qū)塊鏈的支撐下,對(duì)員工基本信息的敏感數(shù)據(jù)進(jìn)行加密之后,不會(huì)受到噪聲和濾波的干擾,對(duì)攻擊的攔截比例均在80%以上,說(shuō)明文中算法對(duì)敏感數(shù)據(jù)庫(kù)的屬性加密效果較好.
為了突出文中算法在敏感數(shù)據(jù)庫(kù)屬性加密性能中的優(yōu)勢(shì),引入基于可搜索加密的算法和基于混沌系統(tǒng)的算法作對(duì)比,進(jìn)行安全性測(cè)試和魯棒性測(cè)試.
2.4.1 安全性對(duì)比
安全性測(cè)試中,以DRM 系統(tǒng)為依據(jù),測(cè)試敏感數(shù)據(jù)遭受攻擊的成功率,結(jié)果如圖3 所示.
圖3 攻擊成功率測(cè)試結(jié)果
由圖3 的結(jié)果可知,當(dāng)敏感數(shù)據(jù)庫(kù)的屬性被攻擊的時(shí)候,利用基于可搜索加密的算法對(duì)敏感數(shù)據(jù)庫(kù)的屬性進(jìn)行加密,使得攻擊者的成功率超過(guò)了25%,原因是可搜索加密對(duì)敏感數(shù)據(jù)庫(kù)的屬性搜索存在一定誤差,導(dǎo)致攻擊成功率偏高,降低了敏感數(shù)據(jù)庫(kù)的安全性;采用基于混沌系統(tǒng)的加密算法時(shí),對(duì)敏感數(shù)據(jù)庫(kù)的屬性加密之后,攻擊成功率雖然有所下降,但是仍然超過(guò)了20%;然而采用文中算法對(duì)敏感數(shù)據(jù)庫(kù)的屬性加密時(shí),攻擊成功率可以控制在10%以內(nèi),提高了敏感數(shù)據(jù)庫(kù)的安全性.
2.4.2 魯棒性測(cè)試
敏感數(shù)據(jù)遭受攻擊之后,利用信息損失率衡量加密的魯棒性,結(jié)果如圖4 所示.
圖4 敏感數(shù)據(jù)的信息損失率測(cè)試結(jié)果
從圖4 的結(jié)果可以看出,當(dāng)敏感數(shù)據(jù)受到攻擊之后,會(huì)出現(xiàn)信息損失嚴(yán)重的現(xiàn)象,采用基于可搜索加密的算法和基于混沌系統(tǒng)的算法時(shí),隨著敏感數(shù)據(jù)量的增加,其信息損失率也在不斷增加,說(shuō)明這兩種方法會(huì)導(dǎo)致敏感數(shù)據(jù)的信息大量損失,造成敏感數(shù)據(jù)的質(zhì)量下降;而采用文中算法時(shí),由于使用了區(qū)塊鏈,隨著敏感數(shù)據(jù)量的增加,雖然敏感數(shù)據(jù)的信息損失率有上升的趨勢(shì),但是始終在20%以內(nèi),說(shuō)明文中算法通過(guò)引入?yún)^(qū)塊鏈可以保護(hù)敏感數(shù)據(jù)的安全性.
本文研究將區(qū)塊鏈應(yīng)用于敏感數(shù)據(jù)庫(kù)屬性加密算法設(shè)計(jì),通過(guò)實(shí)驗(yàn)測(cè)試發(fā)現(xiàn),該算法具有較好的加密效果和性能,可以保護(hù)敏感數(shù)據(jù)的安全性.但是本文的研究還存在諸多不足,在今后的研究中,應(yīng)考慮到用戶之間的可信度因素.對(duì)于可信用戶而言,由于不同的用戶需要不同的密鑰,所以要對(duì)密鑰的設(shè)置進(jìn)行特殊處理;對(duì)于不可信用戶而言,多密鑰管理值得進(jìn)一步研究.