呂海翠,郭 玲
(1.陜西科技大學(xué)鎬京學(xué)院,陜西 西安 712046;2.陜西理工大學(xué),陜西 漢中 723000)
數(shù)據(jù)信息在生產(chǎn)和生活中表現(xiàn)出越來越重要的地位,無論是企業(yè)還是個人,產(chǎn)生的數(shù)據(jù)信息越來越多,這些數(shù)據(jù)通常被保存在本地數(shù)據(jù)庫或者云端數(shù)據(jù)庫。由于數(shù)據(jù)能夠體現(xiàn)用戶的基本信息和服務(wù)偏好,所以對敏感信息的保護很重要[1]。為降低數(shù)據(jù)被攻擊篡改的風(fēng)險,現(xiàn)在的通用做法是對數(shù)據(jù)進行認證、審計或者加密處理。帶來的好處就是提高了數(shù)據(jù)信息安全性,同時,不計代價的安全處理也可能會造成數(shù)據(jù)訪問的效率降低[2]。于是,如何能夠在有效保護數(shù)據(jù)信息安全的同時,獲得良好的數(shù)據(jù)訪問速度[3],是數(shù)據(jù)庫信息加密算法研究的難點問題。
何文才[4]等人在CAS框架基礎(chǔ)上,提出了Logistic-Henon混沌加密。仿真結(jié)果表明,該方法能夠防止內(nèi)部威脅,但是存在一定程度的初值敏感。朱沙沙[5]在對一些獨立算法優(yōu)缺點分析的基礎(chǔ)上,提出了融合3DES-RSA加密算法。仿真主要針對數(shù)據(jù)庫存儲和查詢進行分析,沒有對安全性進行具體說明。何文才[6]等人針對Andriod的SQLite提出了AES-128加密算法。該算法通過二輪密鑰提升了AES的加密性能,且加解密效率也得到優(yōu)化,但是只適用于Andriod移動設(shè)備本地。周藝華[7]等人為提高加密算法的查詢效率,設(shè)計了優(yōu)化mOPE算法。該算法過于注重數(shù)據(jù)庫查詢開銷的優(yōu)化,同樣缺乏對算法安全性的考慮。周福才[8]等人設(shè)計了多層嵌套加密,可以實現(xiàn)多種SQL查詢。該算法對用戶的隱私性較好,但是多層嵌套導(dǎo)致了效率的下降。上述研究成果存在各自的優(yōu)缺點,考慮到加密算法在敏感信息保護方面的優(yōu)勢,本文在保序加密基礎(chǔ)上設(shè)計了可變保序加密,應(yīng)用于明文域加密。消除了明文順序相同對加密性能的影響,同時隨機函數(shù)的非均勻特性和明文域等分有利于增強加密。隨后針對敏感信息采取量子加密,并對加密過程進行了設(shè)計優(yōu)化。整個加密算法充分考慮了數(shù)據(jù)庫操作效率和數(shù)據(jù)信息安全性。
傳統(tǒng)保序加密算法是把密文和保序編碼同時持久化到數(shù)據(jù)庫中,為了確保安全,普遍遵循IND-OCPA規(guī)定。根據(jù)IND-OCPA標(biāo)準(zhǔn)要求,編碼為明文的序列映射,也就是對編碼的攻擊過程中,僅可以獲取明文順序信息。但是如果存在排序一致的編碼,明密文映射情況將會被破解。因此,還是具有很大的風(fēng)險。于是,本文在保序加密的框架下,對明文數(shù)據(jù)進行加密設(shè)計,再持久化到數(shù)據(jù)庫。
根據(jù)加密系統(tǒng)的元素,可以將加密模型描述為{P,M,K,A}。其中元素P={p1,p2,…,pn}為等差數(shù)列,用于表示明文域;M={m1,m2,…,mn}表示密文域,mi是Pi的映射;K表示密鑰,利用K可以完成密文域的構(gòu)造;A表示算法,通過A算法完成Pi至mi的映射,即加密過程,可以描述如下:
(1)
A算法映射過程中會形成結(jié)果集,需要在集合內(nèi)選擇出最終的加密結(jié)果。
為防止因明文順序相同而影響加密性能,本文采取隨機發(fā)生函數(shù)構(gòu)建密鑰,進而使明密文域形成統(tǒng)計差異。將隨機函數(shù)表示為R(),通過R()可以獲得l個任意數(shù),并保證這l個任意數(shù)符合非均勻散布。在函數(shù)計算時,為加強非均勻特性,R()設(shè)計為如下非線性函數(shù):
(2)
式中Pmax表示明文域最大值;Pmin表示明文域最小值;P表示明文域公差;0<ω<1表示權(quán)重系數(shù);0 (3) 由于R()結(jié)果的非均勻分布,導(dǎo)致序列r呈現(xiàn)非等差。將r內(nèi)的任意相鄰元素ri和ri+1進行組合,得到區(qū)間為[ri,ri+1)。利用構(gòu)造密鑰ki,于是K的公式表示為 (4) mi=map(K,p),i∈[1,n] (5) 對于任意d∈P,需要確定d在等分后域中的位置,且對應(yīng)區(qū)間內(nèi)元素數(shù)量。當(dāng)d對應(yīng)區(qū)間內(nèi)僅包含一個元素,輸出密文map(Ki,pi)。整個保序加密處理流程描述如圖1所示。 圖1 可變保序加密 為了給數(shù)據(jù)庫敏感信息提供更高級別的保護,對敏感信息采取二次加密。設(shè)定明文域中一共包含m條敏感信息,在構(gòu)造其密鑰的時候,引入量子計算。得到對應(yīng)的量子糾纏態(tài),表示如下 (6) (7) 將明文域中敏感信息對應(yīng)的編碼表示為U={u1,u2,…,ui}。結(jié)合密鑰生成函數(shù),得到其加密稀疏程度為OU=-U/G,密鑰生成時的振蕩函數(shù)表示為 V=R(x)+λb (8) 式中R(x)表示非線性隨機函數(shù);λ表示振蕩因子;b表示編碼因子。設(shè)定原始加密矩陣為E,采取加密處理后有 (9) Jij=E(β+Di/Ki) (10) 這里的β表示解密系數(shù);Di表示敏感信息數(shù)量;ki表示解密密鑰數(shù)量。依據(jù)式(10)可以獲得解密密鑰的特征,結(jié)合加密過程中的模糊狀態(tài),可以計算出加密傳函如下 (11) 式中i∈[1,m];T表示檢測周期。如果模糊狀態(tài)ai大于零,即有傳函結(jié)果大于等于所有模糊狀態(tài)之和,說明對應(yīng)的密鑰有效,此時可得傳遞密鑰表示為 (12) 式中f′表示敏感函數(shù);χ表示融合特征;ωχ表示χ的權(quán)重系數(shù)。至此,便完成了敏感信息的整個加密過程。對應(yīng)的流程描述如圖2所示。 圖2 敏感信息加密 在實際使用中,很多時候采用多條數(shù)據(jù)同時管理,這種情況下一般存在若干個字段。要想獲得最好的數(shù)據(jù)安全性,應(yīng)該采取一次一密的方式存取。于是,基于提出的數(shù)據(jù)庫敏感信息可變保序加密算法,通過JaVa編程來實現(xiàn)。同時還實現(xiàn)了mOPE算法模型,與本文算法進行比較。關(guān)于構(gòu)建安全算法模型的環(huán)境及參數(shù)如表1所示。 表1 實現(xiàn)環(huán)境及參數(shù) 實驗過程中,在Mysql中通過批量操作商品信息產(chǎn)生包含1萬條數(shù)據(jù)的測試表,每條數(shù)據(jù)包含12個字段。為模擬敏感信息,設(shè)定“商品ID”、“分類ID”、“創(chuàng)建人”和“修改人”字段為敏感信息。數(shù)據(jù)表信息的具體描述如表2所示。 表2 測試數(shù)據(jù)表 對加密安全算法的效率進行實驗分析,分別從加密時間、數(shù)據(jù)插入時間以及查詢時間三個方面考慮。利用mOPE算法對測試數(shù)據(jù)進行加密,同時利用本文算法對測試數(shù)據(jù)進行可變保序加密和對敏感信息加密。實驗過程中,分別得到1000條數(shù)據(jù)與5000條數(shù)據(jù)兩種情況下,不同算法的加密時間。每組情況的最終結(jié)果為多次實驗的平均值,每次從數(shù)據(jù)庫中隨機抽取測試數(shù)據(jù)。加密時間結(jié)果如表3所示。 本文加密安全算法一共由兩部分組成:可變保序加密和敏感信息加密。經(jīng)過表3中的時間對比可以發(fā)現(xiàn),可變保序加密階段完成的任務(wù)量與mOPE加密的任務(wù)量基本是一致的,mOPE算法采用二叉樹完成明文序列,本文采用等差數(shù)列完成明文序列,加之明文域的等分處理提高了加密效率,使得可變保序加密過程比mOPE加密用時有所降低。雖然本文方法增加了對敏感信息的加密處理,但是敏感信息計算復(fù)雜度不高,使得對總加密時間的影響不是很大。在1000條數(shù)據(jù)和5000條數(shù)據(jù)情況下,僅比mOPE加密模型用時多了2.2ms和13ms。 表3 加密時間比較 向測試數(shù)據(jù)表中插入數(shù)據(jù),插入數(shù)據(jù)量從1000至10000,得到兩種算法的插入時間,如圖3所示。經(jīng)過曲線對比可以發(fā)現(xiàn),本文算法的插入時間較mOPE明顯縮短,這是因為本文算法無需遍歷二叉樹,也無需對所有數(shù)據(jù)形成新密鑰。 圖3 插入時間比較 對測試數(shù)據(jù)表進行查詢操作,查詢數(shù)據(jù)量從1000至10000,得到兩種算法的查詢時間曲線,如圖4所示。對比可以發(fā)現(xiàn),本文算法在查詢數(shù)量增加時,查詢時間較mOPE也有明顯降低,說明加密安全算法具有更高的查詢效率,更適合批量處理。 圖4 查詢時間比較 為描述加密算法的安全性,通過抗攻擊度進行衡量。該指標(biāo)描述了加密處理時數(shù)據(jù)的抗擾程度??构舳仍礁?,代表加密算法的安全性越高。通過模擬得到10次攻擊對應(yīng)的抗攻擊度結(jié)果,如圖5所示。經(jīng)過比較可知,mOPE算法的抗攻擊度平均為82.66%,本文算法的抗攻擊度平均為93.23%,較mOPE有顯著提升。這是由于本文在可變保序加密算法基礎(chǔ)上,對數(shù)據(jù)庫敏感信息采用了量子加密,提高了加密的穩(wěn)定性。 圖5 抗攻擊比較 為表述對數(shù)據(jù)庫敏感信息的保護程度,通過對敏感信息披露率衡量加密算法性能。披露率越低,代表對敏感信息的保護效果越好。模擬得到10次攻擊對應(yīng)的敏感信息披露結(jié)果,如圖6所示。比較可以發(fā)現(xiàn),mOPE算法的披露率大部分處于10%以上,經(jīng)過本文算法加密后,披露率大幅縮減,整體不超過5%,敏感信息能夠得到有效保護。 圖6 敏感信息安全比較 為了增強數(shù)據(jù)庫信息的操作性和安全性,本文將數(shù)據(jù)庫信息采用兩次加密。第一次對整個明文域進行可變保序加密,第二次對敏感信息進行量子加密?;谂坎僮鳟a(chǎn)生包含1萬條數(shù)據(jù)的數(shù)據(jù)庫測試表,分別從效率和安全性兩方面對加密算法進行性能驗證。通過Mysql數(shù)據(jù)庫的實驗,得到如下結(jié)果: 1)本文方法的加密時間基本與mOPE相差無幾,插入時間和查詢時間則明顯優(yōu)于mOPE,當(dāng)操作數(shù)據(jù)量為10000時,插入時間為420ms,查詢時間為37ms。 2)本文方法的抗攻擊度可達93.23%,敏感信息披露率僅為4.14%。 實驗結(jié)果充分表明本文方法能夠獲得更好的加密效果,對數(shù)據(jù)庫敏感信息具有更好的保護性能;并且獲得了良好的數(shù)據(jù)插入和查詢速度,操作效率得到顯著提升。4 敏感信息加密
5 實驗與結(jié)果分析
5.1 實驗環(huán)境設(shè)置
5.2 效率分析
5.3 安全分析
6 結(jié)束語