陳蘭香 周書明
(福建師范大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院 福建 福州 350108)(福建師范大學(xué)網(wǎng)絡(luò)安全與密碼技術(shù)重點實驗室 福建 福州 350108)
云存儲中基于二進制向量索引的密文云數(shù)據(jù)排序查詢方法
陳蘭香 周書明
(福建師范大學(xué)數(shù)學(xué)與計算機科學(xué)學(xué)院 福建 福州 350108)(福建師范大學(xué)網(wǎng)絡(luò)安全與密碼技術(shù)重點實驗室 福建 福州 350108)
設(shè)計一種適用于公共云存儲環(huán)境下的密文云數(shù)據(jù)排序查詢方法,其核心思想是使用二進制向量索引,并且使用Hash函數(shù)計算向量元素為1的位置。這種方法使得建立索引向量非常方便,并且更易于建立查詢向量以及進行后續(xù)數(shù)據(jù)更新操作。由用戶對其文件集構(gòu)建二進制向量索引,當(dāng)用戶要求訪問包含某些關(guān)鍵詞的文件時,首先根據(jù)查詢關(guān)鍵詞構(gòu)建查詢二進制向量,然后根據(jù)查詢二進制向量與文件的索引二進制向量之間的內(nèi)積判斷該文件是否包含用戶的查詢關(guān)鍵詞。根據(jù)內(nèi)積計算結(jié)果可知哪些文件的相關(guān)性更強,并且內(nèi)積計算效率高。實驗表明,該方法的索引創(chuàng)建與查詢效率都非常高。
云存儲 密文檢索 二進制向量索引 排序查詢
在云存儲環(huán)境下,要保護用戶數(shù)據(jù)機密性和隱私性,加密是一種常用的方法,但是數(shù)據(jù)加密后,密文數(shù)據(jù)檢索問題亟待解決。
目前主要有兩種典型的方法來解決密文云數(shù)據(jù)檢索問題:第一種是直接對密文進行線性搜索,第二種方法基于安全索引。線性搜索對密文中單詞逐個進行比對,確認(rèn)關(guān)鍵詞是否存在以及出現(xiàn)的次數(shù);安全索引先對文檔建立關(guān)鍵詞索引,然后將文檔和索引加密后上傳至云端,搜索時從索引中查詢關(guān)鍵詞是否存在于某個文檔中。第一種方法缺點在于搜索效率不高,且無法應(yīng)對海量數(shù)據(jù)的搜索場景。第二種方法是目前的研究主流,原因是其查詢效率更好,安全性能更高,適用于大規(guī)模的云存儲密文檢索系統(tǒng)。
對于大型企業(yè)或組織,當(dāng)其數(shù)據(jù)量很大時,可以構(gòu)建私有云存儲服務(wù)。但是對于一些中小企業(yè)或個人用戶,為了節(jié)省成本及訪問方便,更加需要公共云存儲服務(wù)。
用戶的主要數(shù)據(jù)存放在家用或辦公臺式機上,而平時主要使用手機與平板電腦等手持設(shè)備訪問網(wǎng)絡(luò),這是目前很多用戶的現(xiàn)實情況。讓用戶可以隨時隨地使用任意設(shè)備訪問其數(shù)據(jù)是用戶最迫切需要實現(xiàn)的功能,公共云存儲服務(wù)即是一個最佳選擇。
用戶的數(shù)據(jù)類型很豐富,有文檔、照片、視頻等各種數(shù)據(jù)類型。有些文件,比如用戶的一些私人照片,用戶并不希望被別人看見,因此其文件存放到云端前,用戶需要對數(shù)據(jù)進行加密處理。數(shù)據(jù)一旦加密,如果沒有可用的檢索機制,用戶只有將文件全部下載到本地解密后才能找到當(dāng)前需要訪問的文件,這種方式顯然不實用,會帶來太大的網(wǎng)絡(luò)與計算開銷。因此,如果在將所有文件進行加密前,對其按關(guān)鍵詞建立索引,查詢文件時使用關(guān)鍵詞進行搜索,只將符合查詢關(guān)鍵詞的文件下載到本地才是實用的。
本文的目標(biāo)就在于設(shè)計一種適用于以上場景的密文云數(shù)據(jù)查詢方法。
本文設(shè)計一種適用于公共云存儲環(huán)境下的密文云數(shù)據(jù)排序查詢方法,該方法基于二進制向量索引,使用向量內(nèi)積計算判斷某文件是否包含指定關(guān)鍵詞。該方法的優(yōu)點如下:(1) 完全基于對稱密碼技術(shù),效率很高;(2) 支持多關(guān)鍵詞查詢;(3) 查詢基于內(nèi)積計算,計算效率高;(4) 該方法易于進行數(shù)據(jù)更新。最后用戶的文件可以是任何類型,比如可以是壓縮文件、多媒體文件等,只需事前建立二進制向量索引。
2000年,Song等[1]第一次提出基于對稱密碼的可檢索加密方法SSE(Searchable Symmetric Encryption),并提出一個非交互式的基于單關(guān)鍵詞的檢索方案。該方案主要是在加密結(jié)果中增加一種基于流密碼的信息檢索算法的驗證機制,具有極強的抵抗統(tǒng)計分析的能力。但在海量數(shù)據(jù)環(huán)境下,復(fù)雜的驗證過程會消耗大量的服務(wù)器資源。
為了改進效率,Goh[2]提出使用安全索引的方法實現(xiàn)對海量密文數(shù)據(jù)的快速檢索,并基于Bloom Filters構(gòu)建了一種適應(yīng)性選擇關(guān)鍵字攻擊安全的稱為Z-IDX的安全索引。在該索引上進行查詢時處理每個文檔的時間為O(1),并且能夠處理任意長度單詞。但是BloomFilters的引入使得該方法的檢索結(jié)果具有一定的錯誤率。Chang等[3]構(gòu)造了一個相似的查詢時間為O(n)而沒有誤報的文件索引方案。
Curtmola等[4]提出第一個子線性搜索時間的方案SSE-1和SSE-2。所提方案為整個文檔集關(guān)聯(lián)一個加密的倒序索引,每個入口由關(guān)鍵詞的門陷和相關(guān)文檔標(biāo)識符的加密集組成。方案的搜索時間是O(r),r是包含關(guān)鍵詞的文件數(shù)量。他們利用廣播加密實現(xiàn)多用戶環(huán)境下的查詢授權(quán),并在Song[1]的基礎(chǔ)上給出更嚴(yán)格的安全性定義。Kurosawa等[5]研究了可驗證的通用可組合安全的SSE方案。
以上方案都沒有考慮數(shù)據(jù)更新。
Wang等[6]考慮關(guān)鍵詞詞頻信息,提出基于對稱密碼保序加密技術(shù)OPSE(OrderPreservingSymmetricEncryption)的單關(guān)鍵詞分級密文排序檢索方法RSSE(RankedSSE),利用信息檢索中的統(tǒng)計排序方法,在建立索引的同時為每個文件嵌入權(quán)重信息,從而能夠按用戶的要求返回前N個符合要求的結(jié)果。由于服務(wù)器知道相關(guān)性得分信息,所以O(shè)PSE雖然可以提高效率但沒有SSE安全。
Li等[7]針對關(guān)鍵詞精確匹配的不足提出基于編輯距離的加密字符串模糊檢索方案。所提方案使用編輯距離量化字符串的相似度,并為每個字符串附加一個基于通配符的模糊字符串組,用多個精確匹配來實現(xiàn)模糊檢索。
Wang等[8]提出一個隱私保護的相似性檢索機制,利用壓縮技術(shù)建立存儲高效的相似關(guān)鍵詞集合,使用編輯距離作為相似性度量。通過建立基于遍歷樹的索引實現(xiàn)常量時間復(fù)雜度的相似檢索功能,并且自然地支持模糊檢索,用于容忍用戶輸入時的拼寫錯誤或表示的不一致。
黃汝維等[9]設(shè)計了一個基于矩陣和向量運算的可計算加密方案CESVMC。該方案將云數(shù)據(jù)分為字符串和數(shù)值數(shù)據(jù)兩大類,通過運用向量和矩陣的各種運算,實現(xiàn)了對數(shù)據(jù)的加密。支持對加密字符串的模糊檢索和對加密數(shù)值數(shù)據(jù)的加、減、乘、除四種算術(shù)運算,并保證了數(shù)據(jù)存儲、運算過程中的隱私安全性。
Liesdonk等[10]第一次明確地提出動態(tài)性的SSE方案,但他們的方案只支持有限次的更新。Kamara等[11]擴展Curtmola等[4]的倒排索引的方法,提出動態(tài)SSE的形式化的安全定義,并構(gòu)造第一個動態(tài)的、CKA2安全的SSE方案。接下來,在文獻[12]中,他們基于關(guān)鍵詞紅黑樹KRB(keywordred-black)構(gòu)造可并行并且支持更新的SSE方案。他們的研究結(jié)果表明使用KRB樹可以建立文檔索引,使得關(guān)鍵詞檢索可以在O(rlogn)串行時間和O(r/plogn)并行時間完成。
Hahn等[13]提出一個子線性檢索時間的對稱密碼可搜索加密方案,實現(xiàn)了數(shù)據(jù)動態(tài)更新,其更新只泄露數(shù)據(jù)訪問模式。Stefanov等[14]使用文檔關(guān)鍵字對的對數(shù)級層次結(jié)構(gòu)實現(xiàn)數(shù)據(jù)更新。Kurosawat等[15]提出一種可驗證的更新方案。但該方案需要為每個關(guān)鍵詞生成一個MAC,所以修改文件的效率比較低。Naveed等[16]引入一個新的元語:盲存儲,允許用戶存儲一組文件在遠程服務(wù)器上,但服務(wù)器并不知道存儲了多少文件,也不知道單個文件的長度,當(dāng)文件被檢索時,服務(wù)器只是知道文件的存在,但不知道文件名及內(nèi)容。
以上都是針對單關(guān)鍵詞的方案,關(guān)于多關(guān)鍵詞密文搜索也有一些方案。
Cao等[17]提出一個多關(guān)鍵詞排序檢索方案,擴展了Wang等[6]的工作以支持多關(guān)鍵詞查詢,并基于安全kNN(k-nearestneighbor)查詢技術(shù)中索引向量與查詢向量間“內(nèi)積相似度”來實現(xiàn)排序查詢并進行隱私保護增強。
Sun等[18]提出一種支持相似度排序的多關(guān)鍵詞文本檢索方案,基于詞頻和向量空間模型構(gòu)建索引,并利用余弦相似性度量來實現(xiàn)更高的搜索精度。該方案基于樹的索引結(jié)構(gòu)及多維算法,從而得到比線性搜索更好的檢索效率。Moatazt等[19]提出一種基于關(guān)鍵詞域上的格拉姆-施密特正交化過程的布爾檢索方案,檢索時只需進行簡單的內(nèi)積計算,并且對查詢進行隨機化處理,從而隱藏搜索模式。
王尚平等[20]采用授權(quán)用戶和存儲服務(wù)器先后對關(guān)鍵詞加密的方式提出了一個基于連接關(guān)鍵詞的可搜索加密方案。該方案使授權(quán)用戶能利用連接關(guān)鍵詞的陷門搜索加密文檔,并證明方案在確定性Diffie-Hellman問題假設(shè)下是安全的。
文獻[21,22]圍繞可搜索加密技術(shù)基本定義、典型構(gòu)造和擴展研究,對可搜索加密相關(guān)工作進行了綜述。
當(dāng)用戶數(shù)據(jù)豐富,平時習(xí)慣使用手機、平板電腦等手持設(shè)備訪問其數(shù)據(jù)時,他們便需要使用公共云存儲服務(wù)來實現(xiàn)隨時隨地任意設(shè)備來訪問其數(shù)據(jù)。本文設(shè)計一種適用于此場景的密文云數(shù)據(jù)查詢方法,該方法基于二進制向量索引,使用向量內(nèi)積計算判斷某文件是否包含指定關(guān)鍵詞。該方法完全基于對稱密碼技術(shù),效率很高;數(shù)據(jù)查詢基于內(nèi)積計算,計算效率高;支持多關(guān)鍵詞查詢,并且該方法易于進行數(shù)據(jù)更新。
2.1 符號定義
F={f1,f2,…,fm}:用戶文件集合;
W={w1,w2,…,wn}:關(guān)鍵詞集合;



R=Qt·I:內(nèi)積運算,符號“·”表示求兩個向量的內(nèi)積;
g:{0,1}t×{0,1}l→{0,1}l,偽隨機函數(shù)PRF(Pseudo-randomFunction),用作偽隨機數(shù)生成器;
h:{0,1}k×{1,2,…,n}→{1,2,…,n},偽隨機置換PRP(Pseudo-randomPermutation),用于確定關(guān)鍵詞的位置。
其中,k是密鑰長度,關(guān)鍵詞wi在數(shù)組中的存放位置p=hk(wi) modq,q為比n略大的素數(shù)。
2.2 二進制向量索引構(gòu)建方法
用戶使用已有分詞算法對其文件集提取關(guān)鍵詞,構(gòu)建關(guān)鍵詞集合,并構(gòu)建所有文件的二進制向量索引。然后對文件使用對稱密碼機制進行加密,如果是基于數(shù)據(jù)塊,還要將文件按設(shè)定數(shù)據(jù)塊大小進行分塊,最后將加密的文件發(fā)送到云端。
二進制向量索引構(gòu)建方法如下:用戶根據(jù)每個文件中是否包含關(guān)鍵詞集合中的對應(yīng)關(guān)鍵詞來構(gòu)建二進制向量索引,將每個文件提取的關(guān)鍵詞進行Hash計算,并模一個素數(shù)q作為存放該關(guān)鍵詞的二進制向量的下標(biāo),即關(guān)鍵詞wi在向量中的下標(biāo)為p=hk(wi) modq(q為比n大的素數(shù)),將此位置1,其余所有位全部置0。
為了有效地實現(xiàn)數(shù)據(jù)更新,在有效關(guān)鍵詞基礎(chǔ)上增加20%的空余位,假設(shè)有1 000個關(guān)鍵詞,每個二進制索引向量將占1 200bits。
查詢某個關(guān)鍵詞是否在關(guān)鍵詞集合中時,只須將該關(guān)鍵詞進行Hash計算并模一個素數(shù)以查詢該下標(biāo)的向量元素值,如果為1,表明該關(guān)鍵詞存在關(guān)鍵詞集合中,否則不存在。
舉一個簡單的例子,如圖1所示,假設(shè)關(guān)鍵詞集合為{云計算,云存儲,加密,數(shù)據(jù)檢索,二進制向量},關(guān)鍵詞總數(shù)為5,那么增加20%的bit位,最接近的素數(shù)q可以設(shè)為7。文件1包含關(guān)鍵詞{云計算,加密},則其索引二進制向量計算方法如下:
P11=hk(“云計算”) mod 7,P12=hk(“加密”) mod 7,假設(shè)計算結(jié)果P11=2,P12=4,則文件1的二進制索引向量為I1=(0,0,1,0,1,0,0),文件2包含關(guān)鍵詞{云存儲,加密,數(shù)據(jù)檢索,二進制向量},則P21=hk(“云存儲”) mod 7,P22=hk(“加密”) mod 7,P23=hk(“數(shù)據(jù)檢索”) mod 7,P24=hk(“二進制向量”) mod 7,假設(shè)計算結(jié)果P21=3,P22=4,P23=1,P24=6,則文件2的索引二進制向量為I2=(0,1,0,1,1,0,1)。

圖1 二進制向量索引圖
對于有10 000個關(guān)鍵詞的文件集,每個文件的二進制向量索引只占12Kbits,100個文件占150KB,相比于倒排索引,每個關(guān)鍵詞一個索引表,10 000個關(guān)鍵詞將產(chǎn)生10 000個索引表。
3.1 方案設(shè)計
用戶根據(jù)查詢關(guān)鍵詞與關(guān)鍵詞集合構(gòu)建查詢二進制向量,并使用查詢二進制向量與所有文件的索引二進制向量進行內(nèi)積計算以判斷文件是否包含查詢關(guān)鍵詞,然后向云端請求包含查詢關(guān)鍵詞的文件密文。
構(gòu)建查詢二進制向量方法如下:用戶根據(jù)查詢關(guān)鍵詞是否在關(guān)鍵詞集合中構(gòu)建查詢二進制向量,設(shè)Ii是文檔Fi的二進制索引向量,其中Ii[j]∈{0, 1}表示關(guān)鍵詞wj是否在文檔中存在;Q是一個查詢向量,其中Q[j]∈{0, 1}表示關(guān)鍵詞wj是否在查詢關(guān)鍵詞集合中。文檔Fi與查詢關(guān)鍵詞集合的相似性得分通過內(nèi)積方式計算出來,即IQ。當(dāng)內(nèi)積計算結(jié)果為非0時,表明該文件包含查詢關(guān)鍵詞,當(dāng)內(nèi)積計算結(jié)果為0時,表明該文件不包含查詢關(guān)鍵詞。并且內(nèi)積計算結(jié)果的值越大,表明包含的關(guān)鍵詞越多。

可以將算法形式化地表示為一個五元算法(Setup,IndxStrc,Enc,Query,Dec),簡單描述如下。
初始化階段Setup():用戶使用偽隨機函數(shù)g生成隨機數(shù)s∈{0, 1}l,并生成文件加密密鑰。
索引構(gòu)建IndxStrc():用于構(gòu)建索引,對每個文件fj,用戶為其生成二進制索引Ij,滿足:如果文件fj包含關(guān)鍵詞wi,則Ij[p]=1,否則為Ij[p]=0,其中p=hs(wi) modq,q為比n略大的素數(shù)。
加密Enc():使用文件加密密鑰對文件F={f1,f2,…,fm}進行對稱加密,得到密文C={c1,c2,…,cm},用戶將加密文件集C存放于云存儲服務(wù)器。

解密文件Dec():使用相應(yīng)文件密鑰解密返回的文件,就是按相關(guān)度排序后的文件。
用戶只需將關(guān)鍵詞集合、所有文件的二進制向量索引及文件密鑰存于所使用的任何訪問設(shè)備上便可實現(xiàn)隨時隨地訪問。
3.2 數(shù)據(jù)更新
數(shù)據(jù)更新涉及到多種操作,包括修改、增加、刪除等。
修改數(shù)據(jù)只需要對涉及到修改的文件進行更新,如果有增加新的關(guān)鍵詞,將關(guān)鍵詞加入關(guān)鍵詞集合,然后重新對數(shù)據(jù)建立二進制向量索引,對數(shù)據(jù)重新加密,然后將加密的文件發(fā)送至云端,將以前的數(shù)據(jù)刪除。
增加數(shù)據(jù)與修改數(shù)據(jù)類似,對增加的數(shù)據(jù)構(gòu)建二進制向量索引,對數(shù)據(jù)加密,然后將加密的文件發(fā)送至云端。
添加文件時,因為在索引向量構(gòu)建時預(yù)留了20%的空閑空間,因此只需要對新文件分詞,將原有關(guān)鍵詞集合中沒有的關(guān)鍵詞(假設(shè)有t個)加入關(guān)鍵詞集合后面,對新文件構(gòu)建二進制向量索引,而其他文件索引均無須修改。
刪除數(shù)據(jù)時只需要將云端相應(yīng)數(shù)據(jù)刪除,而將本地的相應(yīng)索引及文件密鑰刪除。
本方法具有以下的優(yōu)勢:
(1) 數(shù)據(jù)更新方便,建立索引的過程由用戶完成,關(guān)鍵詞集合信息由用戶保管,當(dāng)有文件需要更新時,用戶只需要更新文件的二進制向量索引,并重新加密文件,然后將加密的文件發(fā)送至云端。
(2) 使用二進制向量內(nèi)積計算非常高效,只需要在用戶端增加少量的存儲就可以實現(xiàn)高效的檢索。
因為數(shù)據(jù)的加解密及檢索操作均在本地完成,所以不向云端服務(wù)器泄露任何信息,本方法適用于公共云存儲環(huán)境下的密文云數(shù)據(jù)查詢,主要優(yōu)勢在于其效率。
在訪問效率上,通過以上過程可以發(fā)現(xiàn)使用密文查詢機制給用戶帶來的方便性:首先,用戶不需要為了沒有包含關(guān)鍵字的文件浪費網(wǎng)絡(luò)和存儲資源,提高計算效率;其次,用戶不必對不符合條件的文件進行解密操作,節(jié)省了本地的計算資源。
本文提出的二進制向量索引方案與已有方案在索引大小、查詢時間復(fù)雜度等方面的對比見表1所示,二進制向量索引方案均是最優(yōu)的。

表1 二進制向量索引方案與其它方案的比較
其中,m是文件集中包含的文件數(shù),n是關(guān)鍵詞的數(shù)量,|F|是文件集數(shù)據(jù)量的大小。
二進制向量索引方案的關(guān)鍵詞與索引的存儲空間需求見表2,為了便于更新,設(shè)置索引預(yù)留20%的空間,設(shè)一個漢字占2個字節(jié),一個關(guān)鍵詞設(shè)為最多5個漢字,占10個字節(jié),假設(shè)有1 000個關(guān)鍵詞,存儲關(guān)鍵詞集合只需要約10KB字節(jié)的存儲空間。每個文件的二進制向量索引大小為1 200bits,為15B,1 000個文件,只需要15KB的索引存儲空間。假設(shè)關(guān)鍵詞總數(shù)為4 000個,那么每個文件的索引存儲空間為600B,1 000個文件就是600KB。相比于倒排索引,每個關(guān)鍵詞一個索引表,10 000個關(guān)鍵詞將產(chǎn)生10 000個索引表。

表2 關(guān)鍵詞與索引的存儲空間
本實驗在配置為Intel Core i5 CPU 1.6 GHz,4 GB RAM的機器上基于Java語言使用HMAC-SHA256算法創(chuàng)建索引。創(chuàng)建索引的主要開銷在于計算關(guān)鍵詞的向量下標(biāo),所以與每個文件包含的關(guān)鍵詞平均數(shù)有關(guān),假設(shè)平均每個文件包含5個關(guān)鍵詞。實驗時,我們假設(shè)關(guān)鍵詞已經(jīng)提取,當(dāng)關(guān)鍵詞總數(shù)為n=2 000,其索引創(chuàng)建時間與文件數(shù)的關(guān)系如圖2所示,從圖中可以看出創(chuàng)建索引的開銷與文件數(shù)呈線性增長。設(shè)文件集中包含的文件數(shù)m=1 000,其索引創(chuàng)建時間與關(guān)鍵詞數(shù)量的關(guān)系如圖3所示。

圖2 索引創(chuàng)建時間與文件數(shù)的關(guān)系

圖3 索引創(chuàng)建時間與關(guān)鍵詞數(shù)量的關(guān)系
查詢時間開銷如圖4和圖5所示,設(shè)查詢關(guān)鍵詞總數(shù)為10個,查詢時間開銷與文件數(shù)的關(guān)系如圖4所示,從圖中可以看出查詢時間開銷與文件數(shù)呈線性增長。設(shè)文件集中包含的文件數(shù)m=1 000,查詢時間開銷與查詢關(guān)鍵詞總數(shù)的關(guān)系如圖5所示。

圖4 查詢時間開銷與文件數(shù)的關(guān)系

圖5 查詢時間開銷與查詢詞數(shù)量的關(guān)系
本文提出一種基于二進制向量索引的密文云數(shù)據(jù)排序查詢方法,由用戶對其文件集構(gòu)建二進制向量索引,并使用對稱密碼機制加密文件集,然后將加密文件集發(fā)送至公共云存儲服務(wù)器上,將索引存放在本地或加密后存放在服務(wù)器上,因為二進制索引占用存儲空間少,可存于本地。當(dāng)用戶要求訪問包含某些關(guān)鍵詞的文件時,根據(jù)查詢關(guān)鍵詞與關(guān)鍵詞集合構(gòu)建查詢二進制向量,并將查詢二進制向量與每個文件的索引二進制向量進行內(nèi)積計算以判斷該文件是否包含用戶的查詢關(guān)鍵詞。該方法完全基于對稱密碼技術(shù),效率很高,并且支持多關(guān)鍵詞查詢,用戶的文件可以是任何類型,比如可以是壓縮文件、多媒體文件等,只需事前建立二進制向量索引。本方法能實現(xiàn)比目前廣泛使用的倒排索引更高效的查詢。
[1]SongDX,WagnerD,PerrigA.Practicaltechniquesforsearchesonencrypteddata[C]//ProceedingofIEEESymposiumonSecurityandPrivacy,2000:44-55.
[2]GohEJ.Secureindexes[R/OL].CryptologyePrintArchive:Report2003/216.http://eprint.iacr.org/2003/216.
[3]ChangYC,MitzenmacherM.Privacypreservingkeywordsearchesonremoteencrypteddata[C]//ProceedingofAppliedCryptographyandNetworkSecurity(ACNS),2005:442-455.
[4]CurtmolaR,GarayJ,KamaraS,etal.Searchablesymmetricencryption:improveddefinitionsandefficientconstructions[C]//ProceedingofTheACMConferenceonComputerandCommunicationsSecurity(CCS),2006:79-88.
[5]KurosawaK,OhtakiY.UC-securesearchablesymmetricencryption[C]//ProceedingofFinancialCryptography,2012:285-298.
[6]WangC,CaoN,LiJ,etal.Enablingsecureandefficientrankedkeywordsearchoveroutsourcedclouddata[J].IEEETransactionsonParallelandDistributedSystems,2012,23(8):1467-1479.
[7]LiJ,WangQ,WangC,etal.Fuzzykeywordsearchoverencrypteddataincloudcomputing[C]//ProceedingofInternationalConferenceonComputerCommunications,2010:441-445.
[8]WangC,RenK,YuS,etal.Achievingusableandprivacy-assuredsimilaritysearchoveroutsourcedclouddata[C]//ProceedingofInternationalConferenceonComputerCommunications,2012:451-459.
[9] 黃汝維,桂小林,余思,等.云環(huán)境中支持隱私保護的可計算加密方法[J].計算機學(xué)報,2011,34(12):2391-2402.
[10]LiesdonkPV,SedghiS,DoumenJ,etal.Computationallyefficientsearchablesymmetricencryption[C]//ProceedingofSIAMInternationalConferenceonDataMining,2010:87-100.
[11]KamaraS,PapamanthouC,RoederT.Dynamicsearchablesymmetricencryption[C]//ProceedingofTheACMConferenceonComputerandCommunicationsSecurity(CCS),2012:965-976.
[12]KamaraS,PapamanthouC.Parallelanddynamicsearchablesymmetricencryption[C]//ProceedingofFinancialCryptography,2013:258-274.
[13]HahnF,KerschbaumF.Searchableencryptionwithsecureandefficientupdates[C]//ProceedingofTheACMConferenceonComputerandCommunicationsSecurity(CCS),2014:310-320.
[14]StefanovE,PapamanthouC,ShiE.Practicaldynamicsearchablesymmetricencryptionwithsmallleakage[C]//ProceedingofTheNetworkandDistributedSystemSecuritySymposium,2014:1-15.
[15]KurosawaK,OhtakiY.Howtoupdatedocumentsverifiablyinsearchablesymmetricencryption[C]//ProceedingofInternationalConferenceonCryptologyandNetworkSecurity,2013:309-328.
[16]NaveedM,PrabhakaranM,GunterCA.Dynamicsearchableencryptionviablindstorage[C]//ProceedingofIEEESymposiumonSecurityandPrivacy,2014:639-654.
[17]CaoN,WangC,LiM,etal.Privacy-preservingmulti-keywordrankedsearchoverencryptedclouddata[C]//ProceedingofInternationalConferenceonComputerCommunications,2011:829-837.
[18]SunW,WangB,CaoN,etal.Privacy-preservingmulti-keywordtextsearchinthecloudsupportingsimilarity-basedranking[C]//ProceedingofTheACMConferenceonComputerandCommunicationsSecurity(CCS),2013:71-82.
[19]MoatazT,ShikfaA.Booleansymmetricsearchableencryption[C]//ProceedingofTheACMSymposiumonInformation,ComputerandCommunicationsSecurity,2013:265-276.
[20] 王尚平,劉利軍,張亞玲.一個高效的基于連接關(guān)鍵詞的可搜索加密方案[J].電子與信息學(xué)報,2013,35(9):2266-2271.
[21] 沈志榮,薛巍,舒繼武.可搜索加密機制研究與進展[J].軟件學(xué)報,2014,25(4):880-895.
[22] 李經(jīng)緯,賈春福,劉哲理,等.可搜索加密技術(shù)研究綜述[J].軟件學(xué)報,2015,26(1):109-128.
ORDERED ENCRYPTED DATA SEARCHING METHOD BASED ONBINARY-VECTOR INDEX IN CLOUD STORAGE
Chen Lanxiang Zhou Shuming
(SchoolofMathematicsandComputerScience,FujianNormalUniversity,Fuzhou350108,Fujian,China)(KeyLabofNetworkSecurityandCryptology,FujianNormalUniversity,Fuzhou350108,Fujian,China)
A ranking query method of ciphertext cloud data in cloud storage is designed. The basic idea is to build binary vector index, and use the Hash function to calculate the position of the vector in which is filled “1”. This method makes it easy to establish the index vector, and is easier to build the query vector and update the data. Binary vector index is constructed by the user. When the user requests access to a file containing some keywords, the query binary vector is built by the query keywords and the keyword set. Then the inner product of the query vector and index vector is calculated to determine whether the file contains the queried keywords. According to the inner product, it is able to know that which files are more relevant to the query and have higher computational efficiency. The experiments show that the efficiency of index creation and query are very high.
Cloud storage Ciphertext search Binary-vector index Ranked query
2016-01-06。國家自然科學(xué)基金面上項目(61572010);福建省自然科學(xué)
2015J01240);福建省教育廳科技項目(JK2014009);福州市科技計劃項目(2014-G-80)。陳蘭香,副教授,主研領(lǐng)域:云存儲,存儲安全。周書明,教授。
TP309.2
A
10.3969/j.issn.1000-386x.2017.03.002