曹素珍,杜霞玲,王友琛,劉雪艷
(西北師范大學(xué) a.計(jì)算機(jī)科學(xué)與工程學(xué)院; b.數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,蘭州730070)
云計(jì)算技術(shù)[1]在各行業(yè)中的廣泛應(yīng)用,使數(shù)據(jù)用戶(hù)更青睞于將大量數(shù)據(jù)存儲(chǔ)到云服務(wù)器中,在降低本地資源開(kāi)銷(xiāo)的同時(shí)實(shí)現(xiàn)數(shù)據(jù)資源共享。但將數(shù)據(jù)直接以明文的形式交于云服務(wù)器管理面臨一定的風(fēng)險(xiǎn),如用戶(hù)隱私泄露、數(shù)據(jù)非法訪問(wèn)、數(shù)據(jù)篡改等。為解決此類(lèi)云安全問(wèn)題,學(xué)者從保障數(shù)據(jù)機(jī)密性、完整性和可用性方面出發(fā)進(jìn)行了較多研究。
文獻(xiàn)[2]提出對(duì)稱(chēng)可搜索加密的概念,對(duì)加密后的數(shù)據(jù)進(jìn)行直接檢索,有效地保護(hù)了數(shù)據(jù)的機(jī)密性??紤]到用對(duì)稱(chēng)密鑰加密的數(shù)據(jù)不易被多個(gè)用戶(hù)同時(shí)使用,文獻(xiàn)[3]提出支持關(guān)鍵字搜索的公鑰加密方案,使可搜索加密技術(shù)更切合于現(xiàn)實(shí)環(huán)境的需求。
對(duì)數(shù)據(jù)加密僅是解決云安全問(wèn)題的部分手段,而對(duì)數(shù)據(jù)的訪問(wèn)控制[4]則是解決云安全問(wèn)題的關(guān)鍵所在。文獻(xiàn)[5]提出屬性基加密的概念,將用戶(hù)的屬性嵌套在密文或密鑰中,從而細(xì)粒度地控制用戶(hù)訪問(wèn)數(shù)據(jù)的權(quán)限,有效防止數(shù)據(jù)的非法訪問(wèn)。文獻(xiàn)[6]將可搜索技術(shù)與屬性基加密技術(shù)結(jié)合,提出屬性基可搜索加密方案。該方案打破了傳統(tǒng)“一對(duì)一”的通信方式,使數(shù)據(jù)的共享可以在群組之間進(jìn)行,但方案需要授權(quán)中心為用戶(hù)生成搜索憑證,造成了額外的開(kāi)銷(xiāo)且檢索語(yǔ)義單一,僅支持單個(gè)關(guān)鍵字檢索。
此后,屬性基可搜索加密技術(shù)成為密碼學(xué)的研究熱點(diǎn)[7-8]。文獻(xiàn)[8]提出多服務(wù)器多關(guān)鍵字的可搜索加密方案,用多個(gè)服務(wù)器存儲(chǔ)數(shù)據(jù)及多關(guān)鍵字的搜索語(yǔ)義表達(dá),提高了檢索數(shù)據(jù)的效率及處理海量數(shù)據(jù)的能力。但該方案中的服務(wù)器被定義為誠(chéng)實(shí)且好奇的,即云服務(wù)器除對(duì)存儲(chǔ)在其上的數(shù)據(jù)進(jìn)行好奇的猜測(cè)外,也可能會(huì)返回錯(cuò)誤的檢索結(jié)果,缺乏對(duì)檢索結(jié)果的正確性驗(yàn)證。此外,方案通過(guò)維護(hù)用戶(hù)表和文件訪問(wèn)權(quán)限表來(lái)控制數(shù)據(jù)用戶(hù)訪問(wèn)文件的權(quán)限,當(dāng)涉及大規(guī)模用戶(hù)或海量文件時(shí),對(duì)表的維護(hù)增加了系統(tǒng)的開(kāi)銷(xiāo)。由此可見(jiàn),同時(shí)滿(mǎn)足靈活的用戶(hù)訪問(wèn)控制及檢索結(jié)果驗(yàn)證的可搜索加密方案是云環(huán)境數(shù)據(jù)管理的現(xiàn)實(shí)需求。
文獻(xiàn)[9-10]提出支持檢索結(jié)果驗(yàn)證的屬性基可搜索加密方案,但都不能抵抗關(guān)鍵字猜測(cè)攻擊。文獻(xiàn)[11-12]提出能夠有效抵抗關(guān)鍵字猜測(cè)攻擊的屬性基可搜索方案,但不能實(shí)現(xiàn)對(duì)檢索結(jié)果的驗(yàn)證。為更好地滿(mǎn)足用戶(hù)查詢(xún)需求,文獻(xiàn)[13]基于安全k近鄰檢索提出支持多關(guān)鍵字排序搜索的密文搜索方案。但該方案沒(méi)有考慮不同關(guān)鍵字在不同文檔中的比重,因此,對(duì)檢索結(jié)果排序的準(zhǔn)確度不高。文獻(xiàn)[14]運(yùn)用詞頻和向量空間模型構(gòu)建索引存儲(chǔ)結(jié)構(gòu),并通過(guò)計(jì)算向量間的余弦值來(lái)比較、排序關(guān)鍵字與文檔的相關(guān)性分值,從而提高檢索準(zhǔn)確性。文獻(xiàn)[15]基于數(shù)組和鏈表實(shí)現(xiàn)了支持多關(guān)鍵字的排序的可搜索加密,文獻(xiàn)[16]則在屬性密碼體制下提出支持多關(guān)鍵排序的可搜索方案。文獻(xiàn)[17-18]基于樹(shù)的索引結(jié)構(gòu)構(gòu)造多關(guān)鍵字排序可搜索方案,雖然都提高了搜索結(jié)果排序的精確度,但未對(duì)搜索結(jié)果進(jìn)行驗(yàn)證,且不支持細(xì)粒度的訪問(wèn)控制。
本文在多服務(wù)器模式下利用向量空間模型和詞頻統(tǒng)計(jì)技術(shù)構(gòu)造多維B+索引存儲(chǔ)結(jié)構(gòu),將索引與密文分開(kāi)存儲(chǔ)。在此基礎(chǔ)上,利用剪枝搜索策略實(shí)現(xiàn)多關(guān)鍵字的排序查找,同時(shí)使用指定服務(wù)器驗(yàn)證搜索結(jié)果,以提高搜索的精確度。
對(duì)本文中用到的符號(hào)進(jìn)行說(shuō)明,如表1所示。
假設(shè)G1、G2是階為素?cái)?shù)p、q的循環(huán)群,g是群G1的生成元,雙線(xiàn)性映射:e:G1×G1→G2滿(mǎn)足以下性質(zhì):
2)非退化性:存在g∈G1,使e(g,g)≠1,其中1是G2的單位元。
3)可計(jì)算性:對(duì)于所有的P,Q∈G1,存在有效的算法計(jì)算e(P,Q)。
在向量空間模型中,文檔及用戶(hù)的查詢(xún)請(qǐng)求可用向量表示[19]。通過(guò)計(jì)算向量間的余弦值,可以得到文檔索引向量和查詢(xún)請(qǐng)求向量間的相關(guān)性分值,將其存儲(chǔ)在下文構(gòu)建的多維索引B+樹(shù)中,能夠進(jìn)行多關(guān)鍵字的排序查找。在TF-IDF技術(shù)中:詞頻(Term Frequency,TF)代表一個(gè)詞在文檔中出現(xiàn)的次數(shù),用于表示文檔向量;逆向文檔頻率(Inverse Document Frequency,IDF)代表一個(gè)詞在整個(gè)文檔集中的重要性,用于表示用戶(hù)的查詢(xún)請(qǐng)求。相關(guān)性分值計(jì)算公式如下:
(1)
其中,TFdi,wj表示關(guān)鍵字wj在文檔di中歸一化的TF值,計(jì)算公式如下:
(2)
查詢(xún)向量IDFwj計(jì)算公式如下:
(3)
其中,IDF′wj表示關(guān)鍵字的逆文檔頻率,IDF′wj=ln(1+N/Nwj),N表示總的文檔數(shù)量,Nwj表示包含關(guān)鍵字的文檔數(shù)量。
以樹(shù)作為索引存儲(chǔ)結(jié)構(gòu)時(shí),檢索時(shí)間與樹(shù)的高度成正比,相比其他樹(shù),B+樹(shù)的高度低很多,而多維的B+樹(shù)[21]相比B+樹(shù)更節(jié)約存儲(chǔ)空間。因此,本文采用多維B+樹(shù)作為索引存儲(chǔ)結(jié)構(gòu)。多維B+樹(shù)的內(nèi)部節(jié)點(diǎn)存儲(chǔ)關(guān)鍵字在文檔中的詞頻值定義如下:
node=<{Dwi,did},ID,ID[wi,did]>
其中,Dwi,did為關(guān)鍵字wi在文檔集(d1,did,…,dN)中的TFwi,did值,ID=(id1,id2,…,idN)為文檔標(biāo)識(shí)符集合,fid[wi,did]為指向孩子節(jié)點(diǎn)的指針。
假設(shè)關(guān)鍵字集W={w1,w2,w3}在文檔集(d1,d2,…,d12)中的詞頻分布如表2所示,其中,關(guān)鍵字w1的詞頻值取值范圍為(0.1,0.5,0.9),關(guān)鍵字w2的詞頻值取值范圍為(0.5,0.9,1.0),關(guān)鍵字w3的詞頻值取值范圍為(0.2,0.4,0.5,0.6,0.7,0.8,1.0)。
表2 關(guān)鍵字在文檔中的分值Table 2 Scores of keywords in document
本文采用自下而上的方式建立多維索引B+樹(shù)。樹(shù)的每一層存儲(chǔ)一個(gè)關(guān)鍵字在文檔集中的詞頻值,第1層存儲(chǔ)關(guān)鍵字w1的信息,以此類(lèi)推hi-1層存儲(chǔ)關(guān)鍵字wi的信息,hi為樹(shù)的高度,如圖1所示。
圖1 多維B+樹(shù)結(jié)構(gòu)
以檢索包含關(guān)鍵字(w1,w2,w3)的前k(k=3)個(gè)文檔為例進(jìn)行說(shuō)明:為存儲(chǔ)檢索結(jié)果,構(gòu)建一個(gè)結(jié)果列表ResultList=
2)遍歷以P1,max-1=0.5為根節(jié)點(diǎn)的子樹(shù),因P1,max-1=0.5 定義1q-BDHE假設(shè)[22] 設(shè)存在階為素?cái)?shù)p的群G,G2、g為G的生成元,有雙線(xiàn)性映射e:G×G→GT,隨機(jī)選取a,s,b1,b2,…,bq∈p。給定一個(gè)多元組: y={g,gs,ga,…,gaq,gaq+2,…,ga2q,?1≤j≤q: gs·bj,ga/bj,…,gaq/bj,gaq+2/bj,…,ga2q/bj, ?1≤j,k≤q,k≠j:gasbk/bj,…,gaqsbk/bj} 任何多項(xiàng)式時(shí)間敵手獲得y后,不存在概率多項(xiàng)式時(shí)間算法B,以不可忽略的優(yōu)勢(shì)判斷T的輸出是T=e(g,g)aq+1·s∈G2還是G2中的隨機(jī)元素。算法B的優(yōu)勢(shì)定義為: Pr[B(y,T∈G2)=0]| 定義2判定性雙線(xiàn)性(DL)假設(shè)[23] Pr[λ(g,f,h,gs,fμ,hμ+s)=1]- Pr[λ(g,f,h,gs,fμ,Q)=1]≥ε 如圖2所示,本文方案參與實(shí)體包括授權(quán)中心、存儲(chǔ)服務(wù)器、搜索服務(wù)器、驗(yàn)證服務(wù)器、數(shù)據(jù)屬主以及數(shù)據(jù)用戶(hù)。 1)授權(quán)中心:將系統(tǒng)公共參數(shù)發(fā)送給數(shù)據(jù)屬主,為數(shù)據(jù)用戶(hù)生成屬性密鑰。 3)數(shù)據(jù)用戶(hù):計(jì)算搜索憑證Tk1,并將其發(fā)送給存儲(chǔ)服務(wù)器;計(jì)算搜索憑證Tk2,并將其發(fā)送給搜索服務(wù)器。 4)存儲(chǔ)服務(wù)器:根據(jù)數(shù)據(jù)用戶(hù)發(fā)送的搜索憑證Tk1,完成多關(guān)鍵字的排序查找,并將檢索到的前k個(gè)結(jié)果發(fā)送給搜索服務(wù)器。 5)搜索服務(wù)器:根據(jù)數(shù)據(jù)用戶(hù)發(fā)送的搜索憑證Tk2,檢驗(yàn)用戶(hù)的合法性,若合法,將包含關(guān)鍵字的前k個(gè)文檔發(fā)送給驗(yàn)證服務(wù)器;否則輸出⊥。 6)驗(yàn)證服務(wù)器:與搜索服務(wù)器進(jìn)行交互,驗(yàn)證搜索結(jié)果是否正確,若正確將包含查詢(xún)關(guān)鍵字的前k個(gè)文檔發(fā)送給數(shù)據(jù)用戶(hù);否則輸出⊥。 圖2 本文方案系統(tǒng)模型 本文方案中選擇明文攻擊游戲建立在判定性q-BDHE困難問(wèn)題基礎(chǔ)上,挑戰(zhàn)者利用敵手解決困難問(wèn)題,最終選擇明文攻擊游戲規(guī)約到困難問(wèn)題的難解性,保證選擇明文攻擊的安全性。選擇明文攻擊游戲定義如下: 1)選擇明文攻擊游戲 初始化敵手提交要挑戰(zhàn)的訪問(wèn)結(jié)構(gòu)(M*,ρ*)給挑戰(zhàn)者。 系統(tǒng)建立挑戰(zhàn)者運(yùn)行系統(tǒng)建立算法Setup(1λ,Atts),將公共參數(shù)Params發(fā)送給敵手。 詢(xún)問(wèn)階段1敵手可以在任意時(shí)間內(nèi)訪問(wèn)以下預(yù)言機(jī): OSk(Atts)私鑰提取詢(xún)問(wèn):敵手向挑戰(zhàn)者詢(xún)問(wèn)關(guān)于選定屬性集Atts的私鑰,挑戰(zhàn)者運(yùn)行屬性密鑰生成算法,將生成屬性鑰Sk={Atts,K1,K2,Kxi}發(fā)送給敵手。 詢(xún)問(wèn)階段2敵手重復(fù)詢(xún)問(wèn)階段1的操作。 猜測(cè)敵手輸出對(duì)b′的猜測(cè)值。如果b′=b,則敵手猜測(cè)成功,獲得任意消息的有效密文,猜測(cè)成功的優(yōu)勢(shì)定義為AdvA=|Pr[b′=b]-1/2|。 2)選擇關(guān)鍵字攻擊游戲 本文方案選擇關(guān)鍵字攻擊游戲是建立在DL困難問(wèn)題基礎(chǔ)上,挑戰(zhàn)者利用敵手解決困難問(wèn)題,最終將選擇關(guān)鍵字攻擊游戲規(guī)約到DL問(wèn)題的難解性上,保證選擇關(guān)鍵字攻擊的安全性。 初始化敵手提交要挑戰(zhàn)的訪問(wèn)結(jié)構(gòu)(M*,ρ*)給挑戰(zhàn)者。 系統(tǒng)建立挑戰(zhàn)者運(yùn)行系統(tǒng)建立算法Setup(1λ,Atts),將公共參數(shù)Params發(fā)送給敵手。 詢(xún)問(wèn)階段1敵手可以在任意時(shí)間內(nèi)訪問(wèn)以下預(yù)言機(jī): OSk(Atts)私鑰提取詢(xún)問(wèn):敵手向挑戰(zhàn)者詢(xún)問(wèn)關(guān)于選定屬性集Atts的私鑰,挑戰(zhàn)者運(yùn)行屬性密鑰生成算法,將生成屬性鑰Sk={Atts,K1,K2,Kxi}發(fā)送給敵手。 詢(xún)問(wèn)階段2敵手重復(fù)詢(xún)問(wèn)階段1的操作。 猜測(cè)敵手輸出對(duì)c′的猜測(cè)值。如果c′=c,敵手猜測(cè)成功,獲得任意消息的有效密文,猜測(cè)成功的優(yōu)勢(shì)定義為AdvA=|Pr[c′=c]-1/2|。 數(shù)據(jù)屬主對(duì)于文檔集D中每一個(gè)文檔di∈[1,N]隨機(jī)生成2個(gè)|n+2|×|n+2|維的可逆矩陣M1、M2和|n+2|維的二進(jìn)制向量S,其中1≤i≤N,并將SKIndex={S,M1,M2}發(fā)送給用戶(hù)。 1)數(shù)據(jù)屬主為每個(gè)文檔di∈[1,N]生成n維索引向量Ddi,j,其中向量Ddi,j的第j位表示關(guān)鍵字wi在文檔di中所占的比重。隨機(jī)選取2個(gè)向量D′di,j、D″di,j,并初始化為空。 加密階段2 3)計(jì)算λi=Mi·v,λ′i=Mi·ω,其中Mi是矩陣M的第i行,且與某一屬性唯一相關(guān)。 4)計(jì)算W0=gb(μ+s)gasH(wi),W1=gcs,B=gμ,Ai=Mide(g,g)bcμ。 6)將索引及文檔簽名信息CT=({Ci},{Sigi})發(fā)送給搜索服務(wù)器。 用戶(hù)針對(duì)同一個(gè)搜索關(guān)鍵字集W′={w1,w2,…,wn}執(zhí)行以下2個(gè)步驟: 1)首次搜索 存儲(chǔ)服務(wù)器收到搜索憑證Tk1后,計(jì)算數(shù)據(jù)屬主加密向量與用戶(hù)關(guān)鍵字請(qǐng)求向量的余弦值: τ(Ddi,jQ+η)+σ (4) 將計(jì)算結(jié)果降序排列,返回相關(guān)分?jǐn)?shù)值最高的前k個(gè)密文集C=(c′1,c′2,…,c′k)和對(duì)應(yīng)的文檔標(biāo)識(shí)符集ID=(id′1,id′2,…,id′k)給搜索服務(wù)器。 2)二次搜索 收到搜索陷門(mén)Tk2及存儲(chǔ)服務(wù)器返回的首次搜索結(jié)果(C,ID)后,搜索服務(wù)器執(zhí)行以下計(jì)算,完成二次搜索: (5) T1=e(W0,tok2)·ER= e(gb(μ+s)gsaH(wi),gcr)e(g,g)μatr= e(g,g)crμb+crsb+crsaH(wi)+μatr (6) e(gcs,gbrgarH(wj))e(gμ,g(bc+at)r)= e(g,g)csbr+csarH(wj)+μcrb+μatr (7) 2)驗(yàn)證服務(wù)器通過(guò)式(8)驗(yàn)證搜索結(jié)果是否正確,若正確,則將搜索結(jié)果發(fā)送給用戶(hù);否則輸出⊥。 (8) 用戶(hù)本地解密階段,即(Ctop-k,Params,SKAtts)→Dtop-k/⊥。輸入用戶(hù)私鑰SKAtts,系統(tǒng)公共參數(shù)Params及可信第三方返回的前k個(gè)密文文檔Ctop-k。在本地執(zhí)行解密算法,通過(guò)計(jì)算下式完成解密: (9) Mid=Ai/Z=Mide(g,g)bcμ/e(g,g)bcμ (10) 4.1.1 索引與搜索陷門(mén)的機(jī)密性 4.1.2 搜索陷門(mén)的不可區(qū)分性 引入隨機(jī)數(shù)τ、σ擴(kuò)充請(qǐng)求向量Q,使生成向量Q的算法不確定。此外,用戶(hù)生成搜索憑證Tk2時(shí),每次選取不同的隨機(jī)數(shù)r,使生成搜索憑證Tk2的算法也不確定,即使存儲(chǔ)服務(wù)器和搜索服務(wù)器合謀也不能推斷出搜索陷門(mén)(Tk1,Tk2)間的關(guān)聯(lián)信息。因此,本文方案具有搜索陷門(mén)的不可區(qū)分性。 定理1給定q-BDHE假設(shè),本文方案在隨機(jī)預(yù)言模型下抗選擇明文攻擊。 證明若存在多項(xiàng)式時(shí)間敵手A能以不可忽略的優(yōu)勢(shì)ε=AdvA攻破本文方案,則存在一個(gè)挑戰(zhàn)者C能夠利用敵手A求解出q-BDHE難題。C和A進(jìn)行如下游戲: 初始化挑戰(zhàn)者C將(p,g,G,GT,e)及q-BDHE問(wèn)題的實(shí)例y發(fā)送給敵手A。A將要挑戰(zhàn)的訪問(wèn)結(jié)構(gòu)(M*,ρ*)發(fā)送給C,M*是一個(gè)(l*×n*)大小的矩陣,其中,l*,n*≤q。 下面介紹如何通過(guò)隨機(jī)預(yù)言機(jī)H詢(xún)問(wèn)來(lái)建立哈希列表Hlist,該列表是由挑戰(zhàn)者C持有,初始為空,當(dāng)敵手可以在任何時(shí)候進(jìn)行適應(yīng)性的詢(xún)問(wèn)隨機(jī)預(yù)言機(jī)H。挑戰(zhàn)者C按如下方式回答詢(xún)問(wèn)。 詢(xún)問(wèn)階段敵手可以在任意多項(xiàng)式時(shí)間內(nèi)多次詢(xún)問(wèn)以下預(yù)言機(jī): 挑戰(zhàn)敵手A向挑戰(zhàn)者C發(fā)送2個(gè)等長(zhǎng)的明文(d1,d2),挑戰(zhàn)者C隨機(jī)選取b∈{0.1},加密消息db并進(jìn)行如下回答: 猜測(cè)敵手A輸出對(duì)b的猜測(cè)b′∈{0,1}。當(dāng)b=b′時(shí),挑戰(zhàn)者C輸出1,表明T=e(g,g)aq+1·s;否則輸出0,表明T是G2的隨機(jī)值,挑戰(zhàn)者解決困難問(wèn)題的概率計(jì)算過(guò)程如下: 當(dāng)輸出1時(shí),T=e(g,g)aq+1·s,敵手得到了關(guān)于db的有效密文,由定義可知敵手能正確猜出結(jié)果具有不可忽略的優(yōu)勢(shì)ε,則有Pr[b≠b′|(y,T=e(g,g)aq+1·s)=0]=1/2+AdvA。 當(dāng)輸出0時(shí),說(shuō)明T是群G2中的隨機(jī)值,敵手無(wú)法獲得有關(guān)db的任何有效信息,此時(shí)的概率為Pr[b≠b′|(y,T∈G2)=0]=1/2。 因此,挑戰(zhàn)者C能成功解決判定性q-BDHE問(wèn)題的概率為ε/2。證畢。 定理2給定DL假設(shè)和一個(gè)抗碰撞的安全哈希函數(shù)H。本文方案在隨機(jī)預(yù)言模型下抗關(guān)鍵字猜測(cè)攻擊。 詢(xún)問(wèn)階段敵手可以在任意多項(xiàng)式時(shí)間內(nèi)多次詢(xún)問(wèn)以下預(yù)言機(jī),進(jìn)行私鑰提取詢(xún)問(wèn)和陷門(mén)值詢(xún)問(wèn)。 2)索引鑰詢(xún)問(wèn)OSKIndex(D):挑戰(zhàn)者C對(duì)敵手提交的文檔集D中的每一個(gè)文檔di,∈[1,N],隨機(jī)選取兩個(gè)|n+2|×|n+2|維的可逆矩陣M1、M2和|n+2|維的二進(jìn)制向量S,其中1≤i≤N,并將索引密鑰SkIndex={S,M1,M2}發(fā)送給敵手。 猜測(cè)敵手輸出猜測(cè)c′。若c′=c,挑戰(zhàn)者輸出1,則Q=gμ+s;否則輸出0,表明Q是G中的隨機(jī)數(shù)。挑戰(zhàn)者解決困難問(wèn)題的概率計(jì)算過(guò)程如下: 當(dāng)輸出1時(shí),Q=gμ+s,表明敵手得到有效的密文。由定義可知敵手能正確猜出結(jié)果具有不可忽略的優(yōu)勢(shì)ε,則有Pr[c′≠c|(g,gs,gμ,gμ+s)=1]=1/2+AdvA。 當(dāng)輸出0時(shí),說(shuō)明Q是群G中的隨機(jī)值,敵手看到得是一串與關(guān)鍵字信息無(wú)關(guān)的隨機(jī)數(shù),從而有Pr[λ(g,gs,gμ,Q=R)=1]=1/2。因此,挑戰(zhàn)者C能成功解決DL問(wèn)題的概率為ε/2。證畢。 對(duì)本文方案和文獻(xiàn)[15-17]方案從訪問(wèn)結(jié)構(gòu)、是否支持多關(guān)鍵字排序查找、索引存儲(chǔ)結(jié)構(gòu)以及是否支持檢索結(jié)果的正確性驗(yàn)證等方面進(jìn)行分析,比較結(jié)果如表3所示??梢钥闯?在均支持多關(guān)鍵字排序檢索的情況下,本文方案與文獻(xiàn)[16]方案支持細(xì)粒度的訪問(wèn)控制,同時(shí),本文方案可實(shí)現(xiàn)檢索結(jié)果的正確性驗(yàn)證,而在索引存儲(chǔ)結(jié)構(gòu)上,本文方案采用多維的B+樹(shù),能更快速地實(shí)現(xiàn)多關(guān)鍵字的排序查找。 表3 4種方案的特點(diǎn)對(duì)比Table 3 Comparison of characteristic of four schemes 基于對(duì)理論數(shù)值的分析,將本文方案與文獻(xiàn)[15-17]方案進(jìn)行對(duì)比,如表4所示。其中,s代表數(shù)據(jù)用戶(hù)的屬性個(gè)數(shù),l代表訪問(wèn)策略中的屬性個(gè)數(shù),E和E′分別代表表示群G和GT上的指數(shù)運(yùn)算,e代表群上的對(duì)運(yùn)算,H1為哈希函數(shù),|D|代表文檔的數(shù)量,|W|代表關(guān)鍵字的個(gè)數(shù)??梢钥闯?在密鑰生成開(kāi)銷(xiāo)上,本文方案性能明顯優(yōu)于文獻(xiàn)[15-17]方案,在忽略離線(xiàn)階段的數(shù)據(jù)加密向量和關(guān)鍵字請(qǐng)求向量計(jì)算的情況下,其在加密、門(mén)限生成及搜索開(kāi)銷(xiāo)上也優(yōu)于其他3種方案。 表4 4種方案的計(jì)算開(kāi)銷(xiāo)對(duì)比Table 4 Comparison of computation overhead of four schemes 本文采用向量空間模型和TF-IDF技術(shù)構(gòu)造多維B+樹(shù)作為索引存儲(chǔ)結(jié)構(gòu),將索引和密文分開(kāi)存儲(chǔ),搜索時(shí)利用提前剪枝策略去除相關(guān)性較低的子樹(shù),從而實(shí)現(xiàn)多關(guān)鍵字的快速排序查找,并且通過(guò)多個(gè)服務(wù)器的協(xié)作完成數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)搜索、數(shù)據(jù)驗(yàn)證等數(shù)據(jù)處理,使用戶(hù)快速得到所需數(shù)據(jù)。本文方案利用線(xiàn)性秘密共享技術(shù)定義訪問(wèn)結(jié)構(gòu),令數(shù)據(jù)屬主將秘密值分割給不同屬性的用戶(hù),只允許屬性滿(mǎn)足訪問(wèn)結(jié)構(gòu)的用戶(hù)可恢復(fù)秘密值,進(jìn)而通過(guò)對(duì)接索陷門(mén)的驗(yàn)證檢索到包含查詢(xún)關(guān)鍵字的文檔,實(shí)現(xiàn)搜索行為的可控性。分析結(jié)果表明,該方案可有效提高檢索性能,減小計(jì)算開(kāi)銷(xiāo)。下一步將在無(wú)安全信道環(huán)境下實(shí)現(xiàn)基于屬性密碼體制的多關(guān)鍵字排序密文檢索。1.7 判斷性q-BDHE假設(shè)
1.8 判定性雙線(xiàn)性假設(shè)
2 系統(tǒng)模型及安全模型
2.1 系統(tǒng)模型
2.2 安全模型
3 方案設(shè)計(jì)
3.1 系統(tǒng)建立
3.2 密鑰生成
3.3 數(shù)據(jù)加密
3.4 搜索陷門(mén)生成
3.5 搜索
3.6 算法驗(yàn)證
3.7 用戶(hù)本地解密
4 安全性分析與證明
4.1 安全性分析
4.2 安全性證明
5 效率分析
6 結(jié)束語(yǔ)