張克君 張國(guó)亮 姜 琛 楊云松
1(北京電子科技學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 北京 100070)2(西安電子科技大學(xué)計(jì)算機(jī)學(xué)院 陜西 西安 710071)
云環(huán)境下基于可搜索加密技術(shù)的密文全文檢索研究
張克君1張國(guó)亮2姜 琛1楊云松1
1(北京電子科技學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 北京 100070)2(西安電子科技大學(xué)計(jì)算機(jī)學(xué)院 陜西 西安 710071)
為了解決云存儲(chǔ)技術(shù)帶來的數(shù)據(jù)安全和高效檢索問題,在深入研究可搜索加密技術(shù)基礎(chǔ)上,提出一種基于云存儲(chǔ)的密文全文檢索模型,給出基于可搜索加密技術(shù)的密文全文索引構(gòu)建和檢索策略,并對(duì)方案的安全性進(jìn)行分析。實(shí)驗(yàn)表明,云存儲(chǔ)環(huán)境下基于可搜索加密技術(shù)的密文全文檢索方案既保證了數(shù)據(jù)的安全性,又具有很好的檢索效率,可適用于海量數(shù)據(jù)的加密存儲(chǔ)與高效安全檢索。
云存儲(chǔ) 可搜索加密 全文檢索 密文全文索引
隨著云時(shí)代的來臨,為節(jié)約企業(yè)成本和提高數(shù)據(jù)訪問的便捷性,越來越多的企業(yè)喜歡將自己的海量數(shù)據(jù)交給第三方云存儲(chǔ)提供商進(jìn)行存儲(chǔ)和管理,甚至包括企業(yè)員工emails、員工健康數(shù)據(jù)、員工的視頻和照片、公司財(cái)務(wù)數(shù)據(jù)等[1]敏感信息。這些數(shù)據(jù)一旦存儲(chǔ)至第三方云存儲(chǔ)平臺(tái)中,由第三方對(duì)數(shù)據(jù)進(jìn)行管理和控制,從而完全脫離了企業(yè)的控制范圍,數(shù)據(jù)極有可能被第三方云存儲(chǔ)平臺(tái)的管理員或黑客獲取,導(dǎo)致敏感信息的泄露。為保護(hù)數(shù)據(jù)的安全性,現(xiàn)在采用的通用做法是數(shù)據(jù)在客戶端加密后托管給第三方云存儲(chǔ)服務(wù)提供商。然而,隨著企業(yè)數(shù)據(jù)的日益增長(zhǎng),存儲(chǔ)在云端的密文數(shù)據(jù)最終會(huì)達(dá)到海量級(jí),對(duì)海量加密數(shù)據(jù)的檢索成為云存儲(chǔ)中亟待解決的問題。
目前針對(duì)密文檢索國(guó)內(nèi)外的研究者提出了很多方案。Song等人[2]首次提出了可搜索加密的概念,實(shí)現(xiàn)了線性掃描算法,通過檢索詞和密文文檔中的密文依次匹配的方法,解決了在單篇密文文檔中關(guān)鍵詞的檢索問題,但多密文文檔檢索時(shí),檢索時(shí)間過長(zhǎng),具有一定的局限性。為實(shí)現(xiàn)多文檔的密文檢索,Goh[3]提出了Z-IDX的密文檢索方案,通過對(duì)每篇文檔構(gòu)建索引的方式實(shí)現(xiàn)了多密文的檢索,提高了文檔的檢索效率。2009年,Liu等人[4]提出了一種基于對(duì)稱加密的密文檢索方法,實(shí)現(xiàn)了單用戶的密文檢索。Boneh等人[5]提出了一種基于公鑰加密的可搜索加密方法,實(shí)現(xiàn)了多用戶密文檢索。為實(shí)現(xiàn)傳統(tǒng)檢索中的模糊檢索,Wang等人[6]提出了模糊關(guān)鍵詞檢索,即使存在小的拼寫和格式錯(cuò)誤,仍能進(jìn)行正常的檢索,提高了密文檢索的容錯(cuò)性能。近年來,隨著全同態(tài)加密的發(fā)展,基于同態(tài)加密技術(shù),Haclgümü等人[7]提出了一種密文聚集檢索方案。以上方案僅支持?jǐn)?shù)據(jù)量較小的密文檢索,并不支持海量加密數(shù)據(jù)的關(guān)鍵詞檢索。一旦加密數(shù)據(jù)達(dá)到海量級(jí)別,密文檢索效率將大大降低,難以滿足用戶的檢索需求。
為解決云環(huán)境下密文檢索問題,本文提出了一種基于加密云存儲(chǔ)的密文全文檢索模型,設(shè)計(jì)并實(shí)現(xiàn)了基于可搜索加密的密文全文檢索方案,基于可搜索加密的全文索引可有效抵抗語義分析攻擊和基于詞頻的統(tǒng)計(jì)分析攻擊。同時(shí),整個(gè)檢索過程沒有任何數(shù)據(jù)解密操作,有效保證了數(shù)據(jù)檢索的安全。在保證數(shù)據(jù)機(jī)密性的前提下,有效提高了密文檢索的效率。
對(duì)于在云端進(jìn)行大量文本存儲(chǔ)的個(gè)人用戶而言,目前的公共云存儲(chǔ)能夠?yàn)閭€(gè)人提供足夠的存儲(chǔ)空間,但用戶主要擔(dān)心數(shù)據(jù)的安全性,李暉等[8]對(duì)公用云存儲(chǔ)服務(wù)中數(shù)據(jù)的安全性和隱私保護(hù)技術(shù)進(jìn)行了研究,為公共云中數(shù)據(jù)保護(hù)提供了指導(dǎo)。對(duì)于企業(yè)、組織或政府部門來說,企業(yè)私有云的搭建可以保證數(shù)據(jù)的安全性,但給數(shù)據(jù)的使用帶來了很大的不便,李文成等[9]對(duì)企業(yè)云存儲(chǔ)數(shù)據(jù)的加密方法和密文全文檢索技術(shù)進(jìn)行了深入的研究,解決了企業(yè)云中加密數(shù)據(jù)高效檢索問題。公共云相對(duì)企業(yè)云具有更高的開放性,在安全性方面的挑戰(zhàn)更加嚴(yán)峻。
目前,云端安全存儲(chǔ)的標(biāo)準(zhǔn)方案是對(duì)數(shù)據(jù)加密后上傳至云端。用戶自云端下載所有自己的加密數(shù)據(jù)后再對(duì)數(shù)據(jù)進(jìn)行解密,該方案僅僅適用于小數(shù)據(jù)量的情況。當(dāng)前,信息交流日益頻繁,產(chǎn)生的數(shù)據(jù)急劇增加。隨著用戶數(shù)據(jù)的日積月累,用戶存儲(chǔ)在云端的數(shù)據(jù)將達(dá)到海量級(jí)別。當(dāng)用戶要獲取數(shù)據(jù)中某些特定信息時(shí),如果仍然下載所有的加密數(shù)據(jù),然后對(duì)這些數(shù)據(jù)本地解密。不僅會(huì)浪費(fèi)大量帶寬,失去數(shù)據(jù)的便捷性,而且會(huì)降低數(shù)據(jù)的可用性。
云存儲(chǔ)使得數(shù)據(jù)獲取更加方便,提高了數(shù)據(jù)的可用性,降低用戶的存儲(chǔ)成本。對(duì)用戶來說,數(shù)據(jù)的便捷性和可用性遠(yuǎn)遠(yuǎn)不夠,用戶同時(shí)希望自己的隱私數(shù)據(jù)對(duì)第三方用戶或管理員是保密的,但對(duì)于自己查找云端存儲(chǔ)的大量隱私數(shù)據(jù)又具有同明文相近的檢索效率。
為實(shí)現(xiàn)在海量加密云存儲(chǔ)數(shù)據(jù)中的高效檢索,設(shè)計(jì)合適的加密方案和采用恰當(dāng)?shù)拿芪臋z索技術(shù)是云環(huán)境中密文檢索的關(guān)鍵。本文提出的基于云存儲(chǔ)的密文全文檢索模型,是在開放的公共云中實(shí)現(xiàn)海量加密文本的全文檢索。在模型設(shè)計(jì)上,從數(shù)據(jù)自身和索引進(jìn)行存儲(chǔ)保護(hù),數(shù)據(jù)的安全性是依賴于加密的安全性。因而,該模型比企業(yè)云存儲(chǔ)具有更高的安全性,在應(yīng)用范圍上更加廣泛。
基于加密云存儲(chǔ)的密文全文檢索模型如圖1所示。主要包括一個(gè)密鑰分發(fā)中心,一個(gè)云存儲(chǔ)中心,一個(gè)數(shù)據(jù)擁有者和若干個(gè)數(shù)據(jù)訪問者。密鑰分發(fā)中心在本模型中是一個(gè)可信的第三方,主要為用戶生成主密鑰和分發(fā)授權(quán)密鑰;云存儲(chǔ)中心是誠(chéng)實(shí)而好奇的不可信第三方數(shù)據(jù)中心。它負(fù)責(zé)密文數(shù)據(jù)的存儲(chǔ)和檢索;數(shù)據(jù)擁有者在上傳文件前,對(duì)明文數(shù)據(jù)生成安全密文全文索引,并對(duì)明文數(shù)據(jù)進(jìn)行整體加密,最后將索引文件和密文文檔上傳至云存儲(chǔ)中心;數(shù)據(jù)訪問者在向云存儲(chǔ)中心提供查詢請(qǐng)求時(shí),需要事先獲得數(shù)據(jù)擁有者的授權(quán),然后才可以檢索加密數(shù)據(jù)。
圖1 基于加密云存儲(chǔ)的密文全文檢索模型
2.1 符號(hào)和函數(shù)說明
F:明文文檔集合。
W:從F中經(jīng)過分詞后產(chǎn)生的關(guān)鍵詞集合,W={w1,w2,…,wn}。
EW:對(duì)關(guān)鍵詞集合W={w1,w2,…,wn}加密后的密文詞條集合,EW={Ew1,Ew2,…,Ewn}。
DocID:密文文檔編號(hào),與密文文件文檔一一對(duì)應(yīng)。
EIndex:本地構(gòu)建的密文倒排索引。
Ki:密鑰生成算法產(chǎn)生的密鑰集合,K={k1,k2,…,ki}。
T(wi):檢索時(shí),用戶向云服務(wù)器提交的基于可搜索加密生成的關(guān)鍵詞,即關(guān)鍵詞wi的陷門。
可搜索加密算法主要包括密鑰生成算法、陷門生成算法、索引建立算法和索引查詢算法,各個(gè)算法的簡(jiǎn)要描述如下:
Keygen(n):密鑰生成算法,通過輸入安全參數(shù)n,輸出一個(gè)對(duì)應(yīng)的密鑰k。
BuildIndex(K,F):索引建立算法,數(shù)據(jù)所有者根據(jù)文件構(gòu)建關(guān)鍵詞集合,基于可搜索加密機(jī)制建立密文全文索引。
Trapdoor(K,w):陷門生成算法,檢索用戶在本地使用數(shù)據(jù)擁有者的授權(quán)密鑰和關(guān)鍵詞w,生成檢索陷門T(w)。
Search(I,T(w)):索引查詢算法,檢索服務(wù)器根據(jù)接收的T(w)和密文索引中的密文詞條進(jìn)行計(jì)算,判斷該倒排索引記錄是否滿足搜索請(qǐng)求,將搜索結(jié)果返回用戶。
2.2 基于可搜索加密的全文索引構(gòu)建
(1) 密鑰生成算法
密鑰生成算法中,通過輸入安全參數(shù)n,輸出一個(gè)對(duì)應(yīng)的密鑰k,本方案利用偽隨機(jī)數(shù)生成器生成密鑰,通過不同的安全參數(shù)ni,生成若干個(gè)ki。密鑰ki是在用戶需要時(shí)生成的,即使攻擊方在服務(wù)器端直接獲得到用戶的身份驗(yàn)證信息,但只要用戶不暴露安全參數(shù)ni,攻擊方就無法獲知密鑰,自然無法對(duì)用戶加密的信息進(jìn)行解密。同時(shí),密鑰是在用戶有加解密需求時(shí)生成,對(duì)密文的加解密毫無影響,也保證了用戶信息的安全性。
(2) 密文全文索引建立算法
目前多文檔的可搜索加密方案主要采用的是“索引-文件”思想實(shí)現(xiàn),即對(duì)每個(gè)文檔進(jìn)行分詞,然后對(duì)所有關(guān)鍵詞加密,將加密后的關(guān)鍵詞集合作為該文檔的索引,檢索時(shí),只需要檢索加密后的關(guān)鍵詞集合中是否包含檢索詞就可知文檔中是否是所需要的文檔。然而,基于“索引-文件”思想的可搜索加密方案的檢索時(shí)間和文檔的數(shù)目成正比,隨著文檔的增加,檢索效率將降低。因此,本文對(duì)可搜索加密索引構(gòu)建算法進(jìn)行了改進(jìn),構(gòu)建了密文全文索引,以保證海量密文環(huán)境下密文的檢索效率。
首先對(duì)可搜索加密方案中采用“索引-文件”思想實(shí)現(xiàn)的Z-IDX[3]方案進(jìn)行了分析。在Z-IDX索引構(gòu)建過程中,通過兩次偽隨機(jī)函數(shù)將關(guān)鍵詞生成為碼字,然后構(gòu)建文檔索引。第一次偽隨機(jī)函數(shù)以關(guān)鍵詞Wi為輸入,然后在子密鑰K1,K2,…,Kr作用下產(chǎn)生xi1,xi2,…,xir;為了保證相同關(guān)鍵詞在不同文件中形成不同的碼字,第二次偽隨機(jī)函數(shù)以上一次的輸出值xi1,xi2,…,xir為輸入,在文件標(biāo)識(shí)符的作用下生成碼字yi1,yi2,…,yir。最后,在布隆過濾器中隨機(jī)添加若干個(gè)1,產(chǎn)生混淆以防止關(guān)鍵詞數(shù)據(jù)被攻擊。
通過對(duì)Z-IDX方案中索引構(gòu)建過程的分析可知,其構(gòu)建的索引并不是全文索引,而只是文件索引,即一篇文檔對(duì)應(yīng)一個(gè)索引項(xiàng),在文檔集合比較小的時(shí)候,具有較好的適用性。本文研究的是海量密文環(huán)境,數(shù)據(jù)量非常巨大,為保證檢索效率,結(jié)合全文檢索技術(shù),對(duì)所有文檔建立密文全文索引。
可搜索加密的密文全文索引建立過程。首先對(duì)文檔進(jìn)行分詞處理,形成關(guān)鍵詞集合,然后再使用改進(jìn)的可搜索加密對(duì)關(guān)鍵詞進(jìn)行加密,形成密文索引詞。最后,對(duì)密文索引詞構(gòu)建倒排索引。
可搜索加密的改進(jìn)。本文對(duì)Z-IDX方案中的索引構(gòu)建算法進(jìn)行了改進(jìn),關(guān)鍵詞Wi在子密鑰K1,K2,…,Kr和偽隨機(jī)函數(shù)的作用下生成xi1,xi2,…,xir,然后進(jìn)行異或運(yùn)算,其結(jié)果作為密文索引詞EWi。如圖2為可搜索加密的改進(jìn)示意圖所示。
圖2 可搜索加密改進(jìn)示意圖
本文的索引詞用到的偽隨機(jī)方法是HMAC-SHA256算法。對(duì)同一關(guān)鍵詞,在不同的密鑰作用下進(jìn)行哈希運(yùn)算,然后對(duì)生成的多個(gè)哈希值進(jìn)行異或運(yùn)算,最后將運(yùn)算結(jié)果作為密文詞條,構(gòu)建安全密文索引。由于不同長(zhǎng)度的關(guān)鍵詞通過多個(gè)HMAC-SHA256算法處理后,最終的輸出值都是256位的字符串,可以有效防止密碼分析者期望通過關(guān)鍵詞長(zhǎng)度不同猜測(cè)明文索引詞的相關(guān)信息。詞條可搜索加密算法如下。
算法1 詞條可搜索加密算法
輸入:關(guān)鍵詞明文Wi,子密鑰集合K[r]=K1,K2,…,Kr
輸出:密文詞條T
searchEncryp(K[r], Wi)
BEGIN
Start
1:for(int i=1;i<=r;i++){
//使用不同的子密鑰執(zhí)行r詞哈希運(yùn)算
2: hash= HMAC-SHA256 (K[i],Wi);
//計(jì)算本次哈希值
T=XOR(hash,T);
//本次哈希值與之前哈希值異或運(yùn)算
}
3:return T
END
在本算法中,通過以下幾點(diǎn)保證了散列值的安全性:子密鑰至少三個(gè)以上,保證了哈希運(yùn)算至少進(jìn)行了三次,當(dāng)哈希運(yùn)算的次數(shù)超過3次后,已經(jīng)無法通過哈希值獲取原文;每次使用不同的密鑰進(jìn)行哈希運(yùn)算,并且進(jìn)行了異或運(yùn)算,很難還原某一次的真實(shí)哈希值;采用的是安全單向函數(shù)算法,即使密碼分析者獲得了密文詞條,仍然無法逆向推出原始明文信息。
詞條加密后,本文構(gòu)建密文全文索引。傳統(tǒng)的全文索引保證檢索的高效并沒有對(duì)數(shù)據(jù)的安全性進(jìn)行考慮,存在安全性的問題。本文對(duì)其進(jìn)行了安全性分析,并提出了相應(yīng)的改進(jìn)策略。最終,構(gòu)建了一種基于可搜索加密的密文全文索引結(jié)構(gòu)。
在全文索引中,倒排索引中的詞表是有序的,為攻擊者留下了可乘之機(jī),必須予以屏蔽。因此,本文在構(gòu)建詞匯表之前,對(duì)詞匯表中的索引詞進(jìn)行了加密處理,加密后的密文詞條再進(jìn)行密文排序,由于密文的順序與語義無關(guān),攻擊者無法通過密文索引和明文索引的對(duì)比發(fā)現(xiàn)它們的對(duì)應(yīng)關(guān)系,從而保證了索引的安全性。
全文索引一旦建立,將保持靜態(tài)不變,只有文檔變化時(shí),才會(huì)在系統(tǒng)空閑時(shí)進(jìn)行索引更新。因而,索引不發(fā)生改變時(shí),密碼分析者可能根據(jù)邏輯記錄指針獲得倒排索引集合和相關(guān)的關(guān)鍵信息。例如,密碼分析者追蹤一個(gè)密文詞條的檢索記錄,就可以根據(jù)邏輯記錄指針獲得邏輯記錄號(hào),從而獲知倒排文檔地址集合,了解到該密文詞條在哪些文檔中出現(xiàn)過。在上一步的基礎(chǔ)上,本文進(jìn)一步對(duì)索引文件中的邏輯記錄指針進(jìn)行加密。在物理位置上,將索引文件和倒排文件存儲(chǔ)在隔離的服務(wù)器中。為防范統(tǒng)計(jì)攻擊,必須屏蔽掉倒排文件中容易泄露文檔關(guān)鍵信息的詞條位置和頻率信息。本文構(gòu)建的密文全文索引結(jié)構(gòu)如圖3所示。
圖3 密文全文索引結(jié)構(gòu)
2.3 密文檢索
(1) 陷門生成算法
本方案與以往可搜索加密方案中使用偽隨機(jī)方法生成偽隨機(jī)陷門不同,只使用了部分偽隨機(jī)方法,主要依賴于定義的單射函數(shù),通過單射函數(shù)的異或運(yùn)算生成偽隨機(jī)陷門。詳細(xì)算法如下:
根據(jù)密鑰生成算法生成的密鑰,對(duì)檢索關(guān)鍵詞進(jìn)行加密,然后隨機(jī)選取部分單射函數(shù)對(duì)加密后的關(guān)鍵詞分別進(jìn)行處理。由于HMAC算法依賴于哈希函數(shù),因此,偽隨機(jī)方法使用HMAC-SHA256算法。HMAC算法的基本代碼如下:
Function hmac (key, message)
……
return hash(o_key_pad || hash(i_key_pad || message))
end function
HMAC返回的是哈希函數(shù)的結(jié)果,哈希函數(shù)使用的是SHA256算法,屬于安全哈希函數(shù),滿足安全哈希函數(shù)的三個(gè)特征:one-way、collision-resistant和映射分布均勻性。
根據(jù)HMAC運(yùn)算獲得的所有哈希函數(shù)返回值,進(jìn)行異或運(yùn)算,最終生成本方案中的可搜索加密方案中的檢索陷門T(w)。
(2) 云服務(wù)器檢索
檢索時(shí),用戶通過發(fā)送檢索陷門給檢索服務(wù)器,服務(wù)器接收用戶提交的檢索陷門,在密文索引庫上進(jìn)行檢索。如果檢索成功,則將檢索獲得的密文文檔集合發(fā)送到查詢用戶;如果失敗,則返回檢索失敗信息。當(dāng)授權(quán)用戶得到索引庫中對(duì)應(yīng)的索引數(shù)據(jù)后,根據(jù)文檔編號(hào)檢索密文文檔庫。最后,用戶對(duì)密文文檔集合進(jìn)行解密。
基于倒排索引結(jié)構(gòu)構(gòu)建的密文全文索引,主要容易遭受唯密文攻擊和選擇明文攻擊,下面對(duì)這兩種攻擊模型在理論上進(jìn)行安全性分析。
唯密文攻擊中,密碼分析者僅僅擁有密文索引和加密算法,加密密鑰有用戶保存在電子卡中,密碼分析者無法獲取到。密文索引的安全性由可搜索加密算法和加密密鑰保證,在上文中我們使用預(yù)言機(jī)模型對(duì)索引的安全性進(jìn)行了證明,結(jié)果表明其具有較高的安全性。因此,密碼分析者很難依靠加密算法對(duì)密文索引進(jìn)行解密操作,獲知其中的明文信息。
選擇明文攻擊環(huán)境中,假設(shè)密碼分析者獲得了部分明文文檔集合F,并可以構(gòu)建相應(yīng)的明文索引Index。同時(shí),密碼分析者可以竊取到該明文文檔集合構(gòu)建的密文索引EIndex,并可以通過對(duì)密文索引進(jìn)行分析獲得文檔Fi所對(duì)應(yīng)的密文索引詞集合EW(Ew1,Ew2,…,Ewn),但由于密文索引結(jié)構(gòu)中沒有存儲(chǔ)索引詞的位置信息,分析者只能隨機(jī)地猜測(cè)明文索引詞對(duì)應(yīng)的密文信息。因而分析者猜中某個(gè)索引詞對(duì)應(yīng)的密文索引詞的可能是1/n,其中n為文檔Fi的全部索引規(guī)模。系統(tǒng)中采用的是成熟的加密算法,即使分析者猜中部分明文的密文信息,也難以對(duì)密文文檔內(nèi)容和密鑰產(chǎn)生威脅。
4.1 云平臺(tái)的測(cè)試環(huán)境
本文的密文全文檢索系統(tǒng)主要由兩方面組成,一方面是客戶端,主要負(fù)責(zé)索引的構(gòu)建和檢索陷門的生成;另一方面是服務(wù)器端,主要使用Hadoop搭建分布式集群,作為本文的云存儲(chǔ)平臺(tái),存儲(chǔ)密文文檔和密文索引,還需要負(fù)責(zé)索引的維護(hù)和管理、文件的管理、關(guān)鍵詞檢索等。因此,我們首先搭建了一個(gè)云存儲(chǔ)平臺(tái)。
本文使用ApacheHadoop來搭建分布式集群,作為方案的云存儲(chǔ)平臺(tái)。由于ApacheHadoop是基于Java的平臺(tái),基于平臺(tái)更好的兼容性,本文使用Java來實(shí)現(xiàn)密文全文檢索系統(tǒng)。通過使用了4臺(tái)主機(jī)作為實(shí)驗(yàn)集群,并對(duì)Hadoop進(jìn)行了相應(yīng)的配置。首先在四臺(tái)機(jī)器上搭建SSH集群通信管道,用于集群間的數(shù)據(jù)傳輸,同時(shí)還搭建了集群同步軟件rsync。在搭建完成后,Hadoop集群中預(yù)設(shè)的Master主機(jī)可以無密碼的登錄其他Slave主機(jī)。然后將Hadoop軟件下載到我們的Master主機(jī)并在Master主機(jī)上進(jìn)行配置,分別進(jìn)行HDFS配置、mapreduce配置、hadoop核心配置和主機(jī)路由配置,配置完成之后通過SSH進(jìn)行數(shù)據(jù)分發(fā)。最后通過Master主機(jī)啟動(dòng)Hadoop集群。
本文使用Java語言作為開發(fā)語言,利用的開發(fā)工具是eclipse開發(fā)環(huán)境,同時(shí)使用了Maven軟件開發(fā)框架。開發(fā)實(shí)現(xiàn)的機(jī)器的配置為CPUIntelCore(TM)i5-2450M2.5GHz,內(nèi)存為2GB,1.81GB內(nèi)存可用,32位Windows7系統(tǒng)。分詞工具采用中國(guó)科學(xué)院的漢語詞法分析系統(tǒng)ICTCLAS(InstituteofComputingTechnology,ChineseLexicalAnalysisSystem),Lucene3.3作為密文全文檢索引擎的架構(gòu)。同時(shí)本文還采用了Java自身的加密系統(tǒng),主要用到了AES算法和HMAC-SHA256算法,AES算法作為加密方案的實(shí)現(xiàn)。
4.2 索引文件空間性能
全文檢索中索引的空間大小是一項(xiàng)重要的性能指標(biāo)。索引文件的大小對(duì)索引的檢索速度具有一定的影響,因此有必要對(duì)密文索引文件的膨脹率進(jìn)行測(cè)試分析。本文對(duì)相同規(guī)模的測(cè)試文檔集(1 000~10 000篇),測(cè)試分別建立Lucene索引、安全密文全文檢索索引和2-MCIS[10]索引空間開銷,索引文件空間性能測(cè)試數(shù)據(jù)結(jié)果如圖4所示。
圖4 索引文件空間性能測(cè)試圖
其中縱軸是以兆字節(jié)為單位,表示索引文件空間的大小。橫軸表示測(cè)試的文檔數(shù)量,以1 000為單位。圖中共有三條線,其中最下面的一條是在不同數(shù)量文檔中建立的Lucene的索引文件空間,與之相近的是2-MCIS構(gòu)建的索引空間折線,兩條折線之所以空間大小相差不大,主要是因?yàn)閮烧叨际遣捎脝巫址麡?gòu)建的索引,索引詞數(shù)量非常小,索引結(jié)構(gòu)基本一致,因此,索引空間大小相差很小。與這兩條折線相差比較大的是本文提出的密文全文檢索系統(tǒng)中構(gòu)建的索引文件,由于本文對(duì)索引詞進(jìn)行了可搜索加密和偽隨機(jī)處理,索引詞位數(shù)有所增加,但我們沒有存儲(chǔ)索引詞詞頻和位置信息,因而索引文件與其他兩種生成的文件沒有出現(xiàn)劇烈的增大,索引空間規(guī)模略有增加,而且對(duì)于云存儲(chǔ)空間來說,用戶的檢索效率是第一位,如果損失掉部分存儲(chǔ)空間,但能帶來更快的檢索速度,云服務(wù)提供商和用戶都是樂于接受的。
本文的密文全文檢索系統(tǒng),密文全文索引相對(duì)于Lucene索引和2-MCIS索引體積增加不大,其膨脹率較小,主要是因?yàn)長(zhǎng)ucene和2-MCIS本質(zhì)上均采用單字符索引,索引詞數(shù)量更小,密文全文檢索系統(tǒng)中的關(guān)鍵詞經(jīng)過加密和偽隨機(jī)處理位數(shù)有所增加,但沒有存儲(chǔ)索引詞詞頻和位置信息,因此索引空間規(guī)模略有增加。實(shí)驗(yàn)比對(duì)結(jié)果表明:密文全文檢索系統(tǒng)在索引空間性能上可以很好的適用于海量文檔的密文全文檢索應(yīng)用。
4.3 索引構(gòu)建性能
全文索引是全文檢索的核心,其中全文索引的構(gòu)建時(shí)間尤為重要。索引的構(gòu)建時(shí)間越長(zhǎng),對(duì)索引的更新影響越大,有可能導(dǎo)致索引和文檔不一致的結(jié)果。因此,本文對(duì)相同規(guī)模的測(cè)試文檔集(1 000~10 000篇),分別測(cè)試構(gòu)建Lucene、2-MCIS和密文全文檢索系統(tǒng)的時(shí)間開銷,全文索引構(gòu)建性能測(cè)試如圖5所示。
圖5 索引構(gòu)建性能測(cè)試圖
其中縱軸以1 000毫秒為單位,表示索引的構(gòu)建時(shí)間。橫軸以1 000為單位,表示測(cè)試文檔的數(shù)量。圖中共有三條折線,由于Lucene是直接在明文上進(jìn)行索引構(gòu)建,沒有任何數(shù)據(jù)加密過程,因此索引構(gòu)建時(shí)間最短,在三條折線中位于最下方。上面相近的兩條是本文提出的密文全文檢索系統(tǒng)和2-MCIS的所有構(gòu)建時(shí)間,2-MCIS只對(duì)每個(gè)字符進(jìn)行簡(jiǎn)單的哈希變換,沒有其他的加密過程。為了提高索引的安全性,本文提出的方案中使用了可搜索加密方案,在可搜索加密過程中,不僅有加密運(yùn)算,還有哈希運(yùn)算和異或運(yùn)算,索引構(gòu)建過程耗時(shí)比較長(zhǎng)。因此,我們提出的方案是三條折線中最上面的那條。同其他方案相比,本文索引構(gòu)建時(shí)間與2-MCIS相差很小,同Lucene索引構(gòu)建時(shí)間有較大的增加。這是由于所有的密文全文檢索方案,為了保證索引的安全性,都會(huì)采用不同的加密方案,勢(shì)必增加所有構(gòu)建的時(shí)間。同時(shí),索引的構(gòu)建并不會(huì)對(duì)系統(tǒng)的檢索過程產(chǎn)生很大的影響,系統(tǒng)一般在空閑時(shí),才對(duì)索引進(jìn)行統(tǒng)一構(gòu)建。
我們實(shí)現(xiàn)的密文全文檢索系統(tǒng),密文索引的構(gòu)建時(shí)間比Lucene索引和2-MCIS索引構(gòu)建時(shí)間有所增加。主要原因是對(duì)關(guān)鍵詞的可搜索加密消耗了一定的時(shí)間。基于簡(jiǎn)單hash變換處理單字索引的2-MCIS需要對(duì)每個(gè)字符進(jìn)行hash運(yùn)算,花費(fèi)時(shí)間較大,同樣,本文提出的密文全文索引構(gòu)建過程中也需要對(duì)每個(gè)關(guān)鍵詞進(jìn)行多次偽隨機(jī)運(yùn)算。實(shí)驗(yàn)結(jié)果表明:密文索引構(gòu)建時(shí)間相對(duì)較長(zhǎng),主要是為保證安全性付出了一定的時(shí)間開銷。
4.4 檢索性能
全文檢索系統(tǒng)中的檢索效率是影響信息檢索系統(tǒng)價(jià)值的主要因素,評(píng)價(jià)信息檢索質(zhì)量的重要指標(biāo)。本文對(duì)相同規(guī)模的測(cè)試文檔集(1 000~10 000篇),測(cè)試分別檢索相同關(guān)鍵詞時(shí)Lucene、2-MCIS和密文全文檢索系統(tǒng)時(shí)間開銷,檢索性能測(cè)試如圖6所示。
圖6 檢索性能測(cè)試圖
其中,縱軸以毫秒為單位,表示響應(yīng)時(shí)間。橫軸以1 000為單位,表示測(cè)試文檔的數(shù)量。圖中共有三條折線,最下方的是Lucene的檢索響應(yīng)時(shí)間,顯然明文的檢索過程比密文檢索更加簡(jiǎn)單,因此,響應(yīng)時(shí)間相對(duì)較短。中間一條是本文提出的密文全文檢索系統(tǒng)上的檢索響應(yīng)時(shí)間,之所以響應(yīng)時(shí)間比2-MCIS快,是因?yàn)槲覀兪褂昧巳乃饕?,檢索效率大大提高。同時(shí),我們的系統(tǒng)檢索時(shí)間復(fù)雜度與詞匯的空間有關(guān),不會(huì)隨著文檔的增加導(dǎo)致檢索效率的下降,比于其他線性檢索方案更加穩(wěn)定。最上面的一條是2-MCIS,其檢索過程需要對(duì)字符串進(jìn)行哈希運(yùn)算,而且沒有采用任何優(yōu)化措施,檢索響應(yīng)時(shí)間最長(zhǎng)。
在相同測(cè)試規(guī)模的文檔集中檢索相同的關(guān)鍵詞時(shí),密文索引比明文索引的檢索時(shí)間較長(zhǎng),這是由于用戶發(fā)出查詢請(qǐng)求時(shí)需構(gòu)建檢索陷門,增加了檢索時(shí)間。尤其是2-MICS由于需要獲得所有可能的查詢條件,檢索效率明顯偏低。實(shí)驗(yàn)結(jié)果表明:本文提出的密文全文檢索方案,比其他密文檢索的線性時(shí)間更快,適用于安全、快速和高效的密文檢索云環(huán)境。
云環(huán)境下密文檢索是一個(gè)新興的研究領(lǐng)域,對(duì)云存儲(chǔ)、信息加密和信息檢索都具有已經(jīng)的使用價(jià)值。本文基于可搜索加密和全文檢索技術(shù)實(shí)現(xiàn)了一種密文全文檢索方案。
首先,提出了一種基于云存儲(chǔ)的密文全文檢索模型,滿足了海量加密信息的安全高效檢索需求?;谠撃P?,實(shí)現(xiàn)了一個(gè)基于可搜索加密的密文全文檢索方案,能夠?qū)γ芪倪M(jìn)行全文檢索。
其次,針對(duì)海量密文環(huán)境中現(xiàn)有的密文檢索方案效率低的問題進(jìn)行了改良,提出了一種基于可搜索加密的密文全文檢索方案,使用可搜索加密對(duì)關(guān)鍵詞進(jìn)行加密,然后構(gòu)建密文全文索引,提高了檢索效率。
最后,分析了傳統(tǒng)全文索引結(jié)構(gòu)的安全性問題,構(gòu)建了一個(gè)密文全文索引結(jié)構(gòu),可有效抵抗語義分析攻擊和詞頻統(tǒng)計(jì)的分析攻擊。
本文的研究只是密文檢索中的冰山一角,仍有許多問題有待我們進(jìn)一步研究。密文數(shù)據(jù)的訪問控制機(jī)制研究,用于防止非授權(quán)用戶對(duì)密文數(shù)據(jù)進(jìn)行檢索。進(jìn)一步提高檢索效率,從而在海量密文環(huán)境下更快地響應(yīng)用戶的檢索請(qǐng)求。
[1]KamaraS,LauterK.Cryptographiccloudstorage[C]//Proceedingsofthe14thInternationalConferenceonFinancialCryptographyandDataSecurity,2010:136-149.
[2]SongDX,WagnerD,PerrigA.Practicaltechniquesforsearchonencrypteddata[C]//2000IEEESymposiumonSecurityandPrivacy,2000:44-55.
[3]GohEJ.Secureindexes[R/OL].http://eprint.iacr.org/2003/216.
[4]LiuQ,WangG,WuJ.Anefficientprivacypreservingkeywordsearchschemeincloudcomputing[C]//Proceedingsofthe12thIEEEInternationalConferenceonComputationalScienceandEngineering(CSE’ 09),Vancouver,Canada,2009:715-720.
[5]BonehD,CrescenzoGD,OstrovskyR,etal.Publickeyencryptionwithkeywordsearch[C]//Proceedingsofthe2004InternationalConferenceontheTheoryandApplicationsofCryptographicTechniques.Springer,2004:506-522.
[6]WangJ,MaH,TangQ,etal.Efficientverifiablefuzzykeywordsearchoverencrypteddataincloudcomputing[J].ComputerScienceandInformationSystems,2013,10(2):667-684.
[7]HaclgümüH,IyerB,MehrotraS.Efficientexecutionofaggregationqueriesoverencryptedrelationaldatabases[C]//Proceedingsofthe9thInternationalConferenceonDatabaseSystemsforAdvancedApplications(DASFAA2004).Springer,2004:125-136.
[8] 李暉,孫文海,李鳳華,等.公共云存儲(chǔ)服務(wù)數(shù)據(jù)安全及隱私保護(hù)技術(shù)綜述[J].計(jì)算機(jī)研究與發(fā)展,2014,51(7):1397-1409.
[9] 李文成,趙逢禹.企業(yè)云存儲(chǔ)數(shù)據(jù)的加密與密文全文檢索研究[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(2):429-432.
[10] 王檸,趙威,劉國(guó)華,等.外包數(shù)據(jù)庫中字符數(shù)據(jù)的k-映射密文索引技術(shù)[J].燕山大學(xué)學(xué)報(bào),2009,33(5):438-443.
A STUDY OF CIPHERTEXT FULL-TEXT RETRIEVAL BASED ON SEARCHABLE ENCRYPTION IN CLOUD ENVIRONMENT
Zhang Kejun1Zhang Guoliang2Jiang Chen1Yang Yunsong1
1(DepartmentofComputerScienceandTechnology,BeijingElectronicScienceandTechnologyInstitute,Beijing100070,China)2(ComputerInstitute,XidianUniversity,Xi’an710071,Shaanxi,China)
To solve the problems of data security and efficient retrieval in cloud storage technology, on the basis of in-depth study searchable encryption, a ciphertext full-text retrieval model based on cloud storage is proposed. We give the ciphertext full-text index building and search strategies based on searchable encryption and analyze the security of the scheme. Experimental results show that the ciphertext full-text retrieval scheme based on searchable encryption in cloud environment not only ensures the security of data, but also has good retrieval efficiency, so it can be applied to the mass storage of data encryption and efficient security search.
Cloud storage Searchable encryption Full-text retrieval Ciphertext full-text index
2016-01-07。國(guó)家自然科學(xué)基金項(xiàng)目(61170037);北京電子科技學(xué)院重點(diǎn)實(shí)驗(yàn)室項(xiàng)目(2014GC2-ZKJ)。張克君,副教授,主研領(lǐng)域:數(shù)據(jù)挖掘,信息檢索,信息安全。張國(guó)亮,碩士生。姜琛,碩士生。楊云松,碩士生。
TP3
A
10.3969/j.issn.1000-386x.2017.04.007