閆璽璽,趙 強,湯永利,李瑩瑩,李靜然
(河南理工大學 計算機科學與技術學院,河南 焦作 454003)
目前,云服務已經成為數據外包和共享的一個普遍和經濟的平臺,大多數用戶(包括企業用戶和個人用戶)都使用云服務對數據進行存儲和管理。但是當數據遷移到云服務器后,用戶會失去對數據的直接控制。為了保護數據的安全,在外包之前對數據進行加密以確保數據的隱私。然而,通過加密的形式外包數據,如何有效地訪問數據成為了新的難題,從而催生了可搜索加密。文獻[1]首次提出可搜索加密概念,將文件劃分為單詞并逐個加密,在檢索時單詞與密文進行掃描對比,查看密文中是否包含要查詢的關鍵字,但隨著文件數量的增加,服務器的計算開銷也會增大。為了解決與密文進行比對的問題,文獻[2]通過布隆過濾器將加密之后的關鍵字映射為比特到索引表中,搜索時只需將陷門同樣也映射成比特與索引表匹配即可。之后,可搜索加密方案對于檢索方式的研究得到飛速的發展。文獻[3]實現了多關鍵字查詢,并通過雙關鍵字索引結構提高了搜索效率。文獻[4]采用潛在狄利克雷分布(Latent Dirichlet Allocation,LDA)模型實現了基于語義的多關鍵字搜索,改進了TF-IDF(Term Frequency-Inverse Document Frequency)模型中忽略了關鍵字與文檔之間的語義關聯的缺點。文獻[5]實現了模糊關鍵字搜索,解決了精確搜索中無法接受關鍵字具有輕微拼寫錯誤和格式不一致的問題。
檢索方式的多樣性使檢索效率和精確率都得到了提升,但仍然無法避免在檢索過程中陷門與所有加密索引進行對比。文獻[6]通過提取關鍵字,根據關鍵字的相似性將相似文檔聚類在一起,列出簇中所有的關鍵字,并通過安全散列算法計算得到關鍵字的哈希值發送給數據擁有者。在檢索時,比較簇索引的哈希值和陷門哈希值‘0’的位置來找到匹配的簇。該方案解決了檢索文件時陷門與所有索引比較時開銷過大的問題,但是它忽略了關鍵字在文檔中的比重和每個簇的主題分布。文獻[7]使用k均值聚類(k-means clustering,k-means)算法對文檔進行聚類,通過計算其他文檔與質心的歐氏距離來進行聚類,提高了相同簇中文檔的相似性。文獻[8]首次提出使用潛在狄利克雷分布模型和k均值算法來解決隱私保護問題。
在實際應用場景中,可搜索加密機制需要為用戶提供相應的搜索權限,以使不同的用戶可以訪問不同的文件。最基本的解決方案是數據所有者使用不同的密鑰加密不同的文件。之后,數據所有者給每個用戶授權搜索的所有文件的加密/解密密鑰,顯然這個方法是繁瑣且低效的。文獻[9-10]提出了一個基于屬性的可搜索加密的方案,將私鑰、密文與屬性和訪問結構相關聯,陷門由用戶私鑰生成。在檢索過程中,當文檔的關鍵字索引和訪問結構與陷門中的關鍵字和屬性同時滿足時,用戶才可以從云服務器中獲得密文并解密。為了進一步提升效率,采用對稱加密的思想對文件和索引進行加密。文獻[11]添加了一個對稱密鑰進行加密。用戶在執行查詢操作時,需要先解密對稱密鑰才能生成陷門。在上述兩種方案中,密鑰的大小取決于數據擁有者的訪問控制策略中涉及的屬性總數。文獻[12]通過賦予授權證書來控制用戶的搜索權限,每當新用戶加入時,會為該用戶提供一個具有關鍵字列表的授權證書并結合聯合查詢使用戶只能對授權證書上的關鍵字進行查詢。但是該方案采用了布爾查詢,每次檢索返回所有匹配的文檔,可返回的文檔中有很多是用戶不需要的,且是無序的。由于下載了許多不必要的文件,且需要從檢索的結果中刪除不相關的文件,會導致通信成本的增加。文獻[13]采用廣播加密的方式,為每組用戶提供可訪問的加密文件,并允許用戶在被授權訪問的文件的子集內進行搜索關鍵字,但該方案不支持多關鍵字搜索。
為了滿足云環境下數據共享時靈活的訪問控制需求,且提高搜索效率,筆者提出了一種具有訪問控制功能的高效可搜索加密方案。主要貢獻如下:(1)為了減少搜索時間和保證搜索的精確率,使用k均值聚類算法將文檔集分為若干個簇,并結合文獻[8]中的文檔主題提取技術為每個簇生成主題,計算每個關鍵字的權重以及關鍵字在該主題的分布概率,對每個主題用關鍵字集合進行表示,減小搜索集的大小,從而提高搜索效率。(2)采用廣播加密體制在加密階段為每組用戶提供相應的訪問權限,進而縮短每個用戶的密鑰長度,達到常數大小。(3)構造多關鍵字搜索方案,對索引隱私、文件隱私和標識符隱私進行保護,減少搜索操作中陷門與索引的對比次數。與其他方案進行對比表明,這種方案同時支持靈活的訪問控制、多關鍵字搜索以及多客戶端設置,并通過實驗表明該方案在保證搜索精確率的情況下對搜索效率進行了優化。

廣播加密方案的概念模型一般由以下4部分構成。
(1) 系統建立Setup(λ,n):將安全參數λ和接收廣播消息用戶的最大數量n作為輸入,輸出系統主密鑰K0和系統公鑰集合K1,其中K0被私鑰生成中心秘密保存。
(2) 私鑰提取Extract(K1,K0,di):將公鑰K1、主密鑰K0和用戶身份di作為輸入,輸出用戶對應的私鑰Yi。

(4) 廣播解密Decrypt(S,d,Yi,hk,K1):將密文頭(hk,S)、公鑰K1、接收方身份d及其私鑰Yi作為輸入。如果d∈S,則輸出會話密鑰K2。當接收方要對密文主體Ck解密時,使用上述獲得的會話密鑰K2對Ck進行解密,輸出消息明文M。
該方案基于主題提取和聚類來減少搜索外包加密數據所需的比較次數,通過廣播加密控制數據用戶的訪問權限。模型包含3個實體,分別是數據擁有者、用戶和云服務器。
Setup(n,λ):算法將用戶數量n和安全參數λ作為輸入,輸出(K1,{Y1,…,Yn})。K1是系統公鑰集合,Yi是用戶i的私鑰。
Enc(K1,Wt,Sk,Mk,I(wi)):數據擁有者將文件Mk、簇的標識符Wt、公鑰K1、用戶集合Sk和關鍵字集合I(wi)作為輸入,輸出標識符密文Ck、文件密文C′k和加密關鍵字索引I′(wi),上傳到云服務器。
Trap(Yi,search query):用戶將私鑰Yi和搜索查詢作為輸入,輸出用戶i對于搜索查詢的陷門ti,W,發送給云服務器。
Test(K1,Sk,ti,W,Ck):云服務器將標識符密文Ck、陷門ti,W、用戶集合Sk、公鑰K1作為輸入,輸出β∈{0,1}。如果i∈Sk且陷門中的關鍵字集合所對應的簇屬于Ck,則輸出β=1;否則,輸出β=0。
Search(ti,W,I′(wi)):當β=1時,云服務器執行搜索算法,將相關性得分最高的前k個加密文件返回給用戶;當β=0時,則返回⊥。
Dec(K1,Yi,C′k,Sk):用戶接收到加密文件,將公鑰K1、私鑰Yi和文件密文C′k作為輸入,輸出明文Mk。
定義1(索引隱私) 如果敵手得到了一些加密的關鍵字索引和相關的私鑰,敵手無法在多項式時間內學習到關于關鍵詞的任何信息,則稱滿足索引隱私。
定義2(文件隱私) 通過挑戰者C和敵手A之間的游戲,為本方案中的文件隱私定義靜態語義安全。
初始化:A接收參數(n,λ)并且選擇想要挑戰的用戶集合S0,明文消息M0,M1。
設置:C運行Setup(n,λ)算法獲得公鑰K1,然后將公鑰K1發送給A。
問詢:A自適應地發出對用戶j?S0的私鑰查詢。C將用戶j的私鑰Yj發送給A。
挑戰:C選擇一個隨機數b∈{0,1},運行加密算法Enc(S0,K1,Mb)獲得密文C′,并將密文發送給A。
猜測:A要輸出一個猜測b′∈{0,1}。當b=b′時,宣布敵手在游戲中獲勝。
文件隱私游戲如果對所有攻擊|Pr[b=b′]-1/2|≤Nnegl(λ,n),則滿足選擇明文攻擊(Chosen-Plaintext Attack,CPA)安全。
定義3(標識符隱私) 在本方案中,通過敵手A和挑戰者C之間的游戲來定義標識符隱私的靜態語義安全。敵手A和挑戰者C將參數(n,λ)作為輸入。
初始化:A接收安全參數λ,并輸出希望挑戰的用戶集合S0和簇對應的標識符W0,W1。
設置:C運行Setup(n,λ)算法去獲得公鑰K1和一組私鑰Y1,…,Yn,然后將公鑰K1發送給A。
問詢:A自適應地發出查詢q1,…,qλ,其中qk是對用戶i和關鍵字集合W的陷門查詢。A進行陷門問詢時,當且僅當i?S0,且詢問的關鍵字集合所對應簇的標識符Wk滿足Wk≠Wb,b∈{0,1} 。對陷門查詢,挑戰者C運行陷門生成算法Trap(Yi,search query)→ti,Wt,獲取ti,Wt發送給A。
猜測:C選擇一個隨機數b∈{0,1},運行加密算法Enc(K1,Wb,S0),輸出(C0,S0),其中Wb是簇的標識符。A要輸出一個猜測b′∈{0,1},當b=b′時,宣布敵手在游戲中獲勝。
如果不存在多項式時間內A以不可忽略的優勢區分不同簇下加密的標識符密文,則本方案滿足標識符隱私。
(1) 密鑰生成

(1)
通過安全信道將私鑰發送給用戶i,私鑰Yi=(di,1,…,di,14,u,v)。
(2) 語義聚類
聚類用于在創建索引之前將文檔分為不同的簇。對文檔進行聚類應減少每個簇的文檔數量,以提高搜索過程的效率。為了執行聚類,數據擁有者將所有文檔收集到一個數據集F={f1,f2,…,fA}中。然后,數據擁有者在F上應用k均值算法,生成k個簇,即L={l1,l2,…,lk}。lt是一組相似文檔的集合,其中t=1,2,…,k。這意味著同一簇中的所有文檔應盡可能地相似,并且不同簇中的文檔應與所有其他簇中的文檔盡可能不相似。
k均值算法作為劃分式聚類算法,對于大部分數據都有較強的適用性。算法相對可伸縮,且計算簡單、高效;空間復雜度較低,為線性復雜度。相對于同為劃分式聚類算法的Single-Pass增量聚類算法,其對數據輸入時的順序十分敏感;基于層次的聚類算法相較于k均值算法,時間復雜度較高。文獻[8]中的實驗表明,k均值算法的搜索效率要高于層次聚類算法的;基于密度的聚類算法魯棒性很強,但是結果的精度與參數設置關系密切,實用性不強。
具體流程如下:① 隨機選擇k個文檔作為質心。② 計算各個文檔到各個質心的歐氏距離。③ 將文檔分配到距其最近的簇中。④ 分配完成后重新計算各類的質心,觀察聚類是否收斂。若收斂,則完成聚類算法;否則,繼續執行②至④步。
(3) 提取聚類主題和簇索引
主題建模是從文檔集合中生成關鍵字。采用潛在狄利克雷分布算法為L={l1,l2,…,lk}中的每個簇生成關鍵字,這些關鍵字將作為每個簇的索引。
使用潛在狄利克雷分布算法進行文本收集的主題建模分4個步驟執行:① 從帶有參數β的狄利克雷分布中選擇多項式θt作為每個主題t的主題分布,其中β為每個主題詞分布上的狄利克雷參數;② 對于每個文檔f,從帶有參數α的狄利克雷分布中選擇一個多項式文檔分布θd,其中α為每個文檔主題分布上的狄利克雷參數;③ 為文檔中的每個單詞w選擇來自θd的主題t;④ 從θt中選擇一個單詞w來代表文本文檔的主題。生成主題的概率為
(2)
其中,K是主題的數量,θp是文檔f的主題分布,β是在每個主題詞分布上的狄利克雷參數,N是文檔集中關鍵字的總數量,α是每個文檔主題分布上的狄利克雷參數,ti是文檔中第i個單詞的主題,θ是文檔的主體分布,wi是文檔第i個關鍵字,φ是一個主題的單詞分布。經過潛在狄利克雷分布算法處理后,每個簇會有該簇的關鍵字列表來表示該簇內文檔的主要信息。定義該關鍵字列表為Wt={w1,w2,…,wk},1≤t≤k,并將該關鍵字列表作為該簇的索引。
(4) 生成關鍵字索引
聚類結束后,數據擁有者使用潛在狄利克雷分布算法為每個簇創建一個索引,然后為每個簇內的文檔創建關鍵字索引。本方案構造關鍵字索引時使用文獻[14]中提出的索引技術,用排名功能來計算匹配文件與給定搜索請求的相關性得分。評估相關性分數使用的統計測量方法是TF-IDF規則。關鍵字索引創建步驟如下:
① 數據擁有者從文檔集合F={f1,f2,…,fA}中對每個文檔fi提取出對應的關鍵詞集合wj={w1,w2,…,wm},數據擁有者建立關鍵字索引I(wj)=d(fij),1≤i≤p,1≤j≤m。

③ 將關鍵字的相關性得分添加到索引中,即I(wj)=(d(fij)‖(sij))。
(5) 加密階段

(3)


(6) 陷門生成
Trap(ski,search query)→ti,Wt,用戶i選取r,r′∈Zp計算(tr,1,tr,2,…,tr,5)。
(4)

(7) 權限控制
Test(K1,Sk,ti,Wt,Ck)→β,云服務器接收到陷門之后,檢查下面的等式是否成立:
(5)
其中,T=e(hk,3,tr,3)e(hk,2,tr,2)e(hk,4,tr,3)。當該用戶屬于用戶集合Sk中,且陷門中的簇標識符Wt與Ck中的簇標識符Wt相同時,等式成立,返回測試值β=1;否則,返回β=0。驗證過程如下:
同理,可得


(8) 排名搜索

(9) 解密階段

定理1基于定義1,本方案滿足索引的隱私保護。

綜上所述,這種方法抵抗選擇密文攻擊是安全的。基于對關鍵字的加密方法及其對內部和外部敵手攻擊的安全強度,以及選擇密文攻擊,本方案滿足索引的隱私保護。
定理2主要構造在判定性-BDHE假設下具有文件隱私性。
初始化:A接收參數(n,λ)并且向C發送選擇挑戰的用戶集合S0,明文消息M0,M1。


聲明:當Z=e(g,v)時(即C的輸入是從PBDHE采樣的-BDHE元組中的),μ=0。此外因此對A才是一個有效的挑戰,如同在真實攻擊中一樣。另一方面,當Z是群G1中的一個隨機元素(即C的輸入是從RBDHE采樣的)時,和只是G1中的隨機獨立元素。
猜測:A輸出對于b的猜測b′。如果b=b′,則C輸出μ′=0,表示Z=e(g,v);否則,輸出μ′=1,表示Z是群G1一個隨機元素。
當(g,v,yg,α,,Z)是來自RBDHE的采樣時,A不能獲得Mb的有效密文,A只能純粹猜測b的值,因此而當b≠b′時,C輸出μ′=1,所以
當(g,v,yg,α,,Z)是來自PBDHE的采樣時,A可以獲得Mb的有效密文。由前面的假設可知,A攻破本方案的優勢(即區分密文)是ε,因此而當b=b′時,C輸出μ′=0,所以

綜上所述,C攻破定性-BDHE假設的優勢為
Adv-BDHE=
定理2證明完畢。
定理3(標識符隱私)本方案的主要構造在決策線性假設下具有標識符隱私性。
證明 敵手A對于簇關鍵字索引W0,W1,獲得標識符密文Cb,輸出猜測b′。若b=b′,則A挑戰成功(用Succ來表示該事件),挑戰者C利用A來攻擊判定線性假設。挑戰者C接收一個決策線性實例g,gz1,gz2,gz1z3,gz2z4,Z,Z為gz3+z4或者是G中的一個隨機元素,兩者的概率是相等的。為了方便起見,將其改寫為g,gz1,gz2,gz1z3,V,gt,gt=Z。游戲流程如下。
初始化:敵手A向挑戰者C發送希望挑戰的用戶集合S0和簇對應的關鍵字索引W0,W1。
設置:挑戰者選取隨機元素α,γ,ζ,a2,b2和b←R{0,1},使用與決策線性實例中相同的g,設置g1,…,gn,gn+2,…,g2n,υ,其中gi=gαi,υ=gγ,h0,1=g-Wb+,h1,1=g,h0,2=gz2(-Wb)g,h1,2=gz2。挑戰者C設置

問詢1:對(S,W)進行加密問詢,其中W≠Wb。挑戰者C選取,1,2計算出hk,1,…,hk,7發送給敵手A,計算方式如式(3)所示。
問詢2:對(i,W)進行陷門問詢,敵手A進行陷門問詢時當且僅當i?S0,且詢問的關鍵字集合所對應簇的關鍵字索引Wk滿足Wk≠Wb。挑戰者C選取ρi1,ρ′i1,ρi2,ρ′i2,r,r′計算出陷門中的(tr,1,tr,2,…,tr,5)發送給敵手A,計算方式如式(4)所示。
挑戰:挑戰者C以簇對應的關鍵字索引Wb和集合S0作為響應。假設t1=z3,挑戰者C隨機選取t2∈Zp,輸出密文。
猜測:令Γ0為事件敵手A輸出一個字節b′來猜測標識符密文Cb是屬于哪個索引的加密結果,如果b′=b,則輸出為1;否則,輸出為0。當輸出為1時,挑戰者C猜測B=gz2(t-z3),Z=gt;當輸出為0時,挑戰者C猜測B獨立于z1,z2,t,t1,t2時,Z是隨機的。
分析:令D表示B=gz2(t-z3),Z=gt;令R表示B獨立于z1,z2,t,t1,t2時,Z是隨機的。

再證明Pr[C(Γ0)=1|D]=Pr[S],S表示成功。因為事件D發生時,B=gz2(t-z3),Z=gt(z1,z2,t,t1,t2是隨機選取的),所以C輸出1當且僅當成功。
Pr[C(Γ0)=1=0]=Pr[D]Pr[C(Γ0)=1=0|D]+Pr[R]Pr[C(Γ0)=1=0|R]=
即如果A能以某個不可忽略的優勢ε區分不同簇索引下加密的標識符密文,則C可以以相同的優勢攻破判定線性假設。
將文中的功能特征與文獻[8,13]中的方案進行對比,如表1所示。文獻[8]中的方案支持多關鍵詞搜索,使用了排名關鍵詞搜索,并且通過減少陷門與索引的比較次數提高效率,但是文獻[8]不具備訪問控制功能和多客戶端設置。文獻[13]中的方案通過廣播加密的方式,實現了多客戶端設置,并在加密過程中將關鍵字一起加密實現訪問控制,但是文獻[13]中的方案只支持單關鍵詞查詢,而且每次查詢需要將陷門與所有索引進行對比。
從功能方面來看,筆者提出的方案在實現訪問控制和多客戶端的前提下,改進了文獻[13]中單關鍵詞搜索的權限,并通過聚類后的優勢減少了陷門與索引的對比次數。

表1 功能對比
將文中的方案與文獻[8,13]中的方案從計算開銷方面進行分析比較。在方案對比中,E表示模指數運算,P表示雙線性對計算,M表示群中模乘運算,X表示異或運算,H代表哈希運算,n代表文檔數量,j表示用戶數量,t表示陷門中的關鍵字個數。計算開銷如表2所示。
由于文獻[8]中的方案沒有細粒度訪問控制功能,所以無驗證階段并且不需要進行配對操作。文獻[13]中的方案為單關鍵字可搜索加密方案,因此生成陷門的計算開銷與關鍵字個數無關。筆者提出方案的主要優勢是對文獻[13]中的方案進行了功能性的擴展,并在搜索階段減少搜索集的大小來提高搜索效率。搜索效率的提高將在節4.4中進行闡述。

表2 計算開銷對比
(1) 數據集和評估環境
數據集(https://archive.ics.uci.edu/ml/datasets/NSF+Research+Award+Abstracts+1990-2003) 包含描述1990年至2003年NSF基礎研究獎項的129 000個摘要,選擇了3 000個摘要作為實驗數據,并提取了226個不同的關鍵字。實驗硬件環境為Intel Core i5-9300H,2.4 GHz,處理器內核數為4,內存為8 GB DDR4;軟件環境是Windows 10 64位操作系統和PyCharm開發平臺。本次實驗的主要內容是計算聚類操作后返回正確文檔的精確率以及對同一個可搜索加密方案進行聚類操作和未進行聚類操作的搜索時間對比。
在k均值算法中的聚類數目會影響搜索精度和搜索效率。聚類數目越小,每個簇的文檔數量就會增加,搜索精度就越高,但搜索效率會下降;聚類數目越大,每個簇的文檔數量就會減少,搜索精度就越低,但搜索效率會提升。因此,聚類數目的選取變得至關重要。為了保證每個簇中有一定的文檔數量,將聚類數目的區間設置在5~20之間,并采用肘部法則,按照遞增的順序嘗試不同的聚類數目,選取拐點作為聚類數目。經過實驗測試,選擇11為聚類數目。
(2) 搜索精度


表3 搜索精確率
(3) 搜索時間評估
將本方案對文檔集使用聚類算法和不使用聚類算法兩種情況的搜索時間進行對比,根據查詢關鍵字個數(q)、文檔數(m)和返回的文檔數(k)評估和分析了搜索時間(Δt)。圖1顯示了CSP基于授權用戶從陷門搜索文檔所需的時間,搜索時間包括獲取陷門中的關鍵字集合,并根據該關鍵字集合選擇相似性分數最高的簇中,計算該關鍵字集合在每個文檔中的分數。搜索時間隨著查詢關鍵字個數的增加而增加。如果對文檔集不使用聚類算法,雖然不用計算關鍵字集合和簇索引的相似性分數,但由于是在整個文檔集上進行搜索,當查詢關鍵字個數為10時,搜索時間約為39.89 ms;當查詢關鍵字個數為50時,搜索時間約為50.82 ms。當使用聚類算法后,搜索效率提高了約6倍,搜索時間分別約為5.53 ms和9.08 ms。
在圖2中,設定文檔總數為1 000,1 500,2 000,2 500,3 000。當未進行聚類操作時,可以發現文檔總數越多,搜索時間就越長,且遠高于聚類后的搜索時間。當文檔總數為1 500時,搜索時間約為10.5 ms;當文檔總數為2 500時,搜索時間約為18.92 ms。在進行聚類后,在簇中文檔數量相似的情況下來計算搜索時間。此次選擇的簇中文件數量約為80。當簇中文檔數量相似時,搜索時間分別約為1.18 ms,1.3 ms,1.19 ms,1.23 ms,1.26 ms。

圖1 基于查詢關鍵字個數的搜索時間

圖2 基于文檔總數的搜索時間
在圖3中顯示出搜索時間會隨著簇中文檔數量的增加而增加。當簇中文檔數量為107時,搜索時間約為1.56 ms;當簇中文檔數量為244時,搜索時間約為3.55 ms;當簇中文檔數量為392時,搜索時間約為5.6 ms。
圖2和圖3顯示出聚類后的搜索時間受到每個簇中文檔數量的影響,而不會受到文檔總數的影響,因此搜索時間不會因為文檔總數的增多而增加。
圖4顯示出搜索時間會隨著返回的文檔數量的增加而增加,且基于相同的返回文檔數量,進行聚類操作后的搜索時間要優于未進行聚類操作的搜索時間。隨著返回文檔數量的增加,兩者的搜索時間相差越大。當未進行聚類時,若返回文檔數量為50,則搜索時間約為20.72 ms;若返回文檔數量為150,則搜索時間約為 36.23 ms;若返回文檔數量為300,則搜索時間約為55.75 ms。當進行聚類后,選取簇中文檔數量為363的簇,若返回文檔數量為50,則搜索效率提高了約4倍;若返回文檔數量為150,則搜索效率提高了約5倍;若返回文檔數量為300,則搜索效率提高了6倍。

圖3 基于簇中最大文檔數的搜索時間

圖4 基于返回的文檔數量的搜索時間
綜上所述,筆者提出的方案在功能方面更加全面,實現了訪問控制功能、多關鍵字搜索以及多客戶端的設置。在搜索效率方面,對文檔集采用聚類方法,根據查詢關鍵字個數、文檔數和返回的文檔數,評估和分析了搜索時間。結果表明,在保持了搜索文檔的精確率前提下(精確率平均約為91.67%),大大提高了搜索效率,并使得搜索時間與文檔總數無關。
筆者提出的方案在可搜索加密方案的基礎上,對明文消息進行聚類,并對每個簇進行主題和摘要提取。通過陷門中的關鍵字集合來選擇在相關度最高的簇中進行搜索,以減少陷門與索引的對比次數。此外,對加密數據進行排序的多關鍵字搜索減少了文件檢索階段的通信開銷,從而以最小的誤報為用戶提供了最相關的文件。同時,將每個簇的摘要加入加密過程中,分發給用戶對于簇的權限控制。筆者提出的方案保證了用戶都只擁有常數大小的私鑰,網絡帶寬使用和服務器的存儲開銷不取決于被授權訪問文件的用戶數量。
未來將對聚類算法進行改進,以支持云環境中更高效的動態數據操作和對大型加密數據的排名多關鍵字搜索。另外,希望能高效地更新用戶集(從預定義的授權集中添加或刪除用戶)。