丁曉暉,曹素珍,王彩芬
(1.西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州 730070;2.深圳技術(shù)大學(xué) 大數(shù)據(jù)與互聯(lián)網(wǎng)學(xué)院,廣東 深圳 518118)
隨著云計(jì)算技術(shù)的發(fā)展[1-3],越來越多的數(shù)據(jù)用戶(Data User,DU)選擇將數(shù)據(jù)存儲在云服務(wù)器(Cloud Server,CS)上。但由于云服務(wù)器是半可信的,因此不能保證上傳數(shù)據(jù)的機(jī)密性與完整性。雖然數(shù)據(jù)屬主(Data Owner,DO)可以先將數(shù)據(jù)進(jìn)行加密再上傳到云服務(wù)器以保證數(shù)據(jù)的機(jī)密性,但數(shù)據(jù)用戶如何從云服務(wù)器處搜索密文是一大難題。使用既可保證數(shù)據(jù)機(jī)密性又具有良好密文檢索性的可搜索加密技術(shù),能夠有效解決這一問題[4-5]。在現(xiàn)有的可搜索加密研究中,搜索云服務(wù)器通常被認(rèn)為是誠實(shí)且好奇的[6-7],然而在現(xiàn)實(shí)生活中,搜索云服務(wù)器可能會因?yàn)樯虡I(yè)利益等原因返回部分搜索結(jié)果,存在不誠實(shí)行為,而且由于搜索云服務(wù)器可以無限制地執(zhí)行密文搜索陷門的匹配測試,因此許多可搜索加密方案無法抵抗內(nèi)部關(guān)鍵字猜測攻擊。研究者考慮到智能合約(Smart Contract,SC)技術(shù)具有透明性以及不可修改性,陸續(xù)提出一些基于智能合約的可搜索加密方案用來抵抗內(nèi)部關(guān)鍵字猜測攻擊。然而,智能合約技術(shù)的透明性對用戶隱私構(gòu)成了較大威脅。例如,文獻(xiàn)[8]提出的方案在運(yùn)行智能合約時可能會泄露關(guān)鍵字搜索密鑰,這就導(dǎo)致了攻擊者可以獲取數(shù)據(jù)用戶所進(jìn)行的查詢信息,甚至可以根據(jù)泄露的關(guān)鍵字信息獲得加密數(shù)據(jù)的部分信息,造成嚴(yán)重的信息泄露。在可搜索加密中,信息泄露通常會引發(fā)一系列的安全問題[9]。2012 年,ISIAM等[10]分析了在可搜索解密中信息泄露可能帶來的后果,并指出即使是很小的泄露也可能會造成嚴(yán)重的安全隱患。2016 年,ZHANG等[11]指出,即便是泄漏率很低的可搜索加密方案,也可以通過簡單的文件注入攻擊來完整地揭示用戶在客戶端的查詢。因此,為了抵抗泄露濫用攻擊以及文件注入攻擊,近年來提出的可搜索加密方案強(qiáng)調(diào)前向安全與后向安全[12]這2 種新的安全屬性。
文獻(xiàn)[13]基于對稱密碼體制提出了一個滿足前向安全的可搜索加密方案,該方案相對于文獻(xiàn)[14]提出的方案具有更高的輸入輸出效率。文獻(xiàn)[15]等基于鍵控區(qū)塊鏈技術(shù)構(gòu)造了具有前向安全性的可搜索加密方案,該方案在搜索階段和更新及陷門生成階段的效率分別是文獻(xiàn)[14]方案的4 倍和300 倍。多數(shù)方案往往會忽略后向安全對一個動態(tài)可搜索加密方案的重要性,直到2017 年BOST 等在ACM SIGSAC 會議上給出了關(guān)于動態(tài)可搜索加密后向安全的正式定義[16],其將后向安全的等級分為3 類,分別是插入模式下的后向安全、更新模式下的后向安全和弱后向安全?;谖墨I(xiàn)[16]的工作,文獻(xiàn)[12,17]等分別提出了滿足后向安全的動態(tài)可搜索加密方案,其在構(gòu)造方式上較文獻(xiàn)[16]有一定的改進(jìn)。然而,以上提出的這些具有前向或者后向安全性的方案大多是基于對稱密碼體制的,而對稱密碼體制在部分實(shí)際應(yīng)用環(huán)境中存在密鑰管理的局限性。2004 年,BONEH等[18]提出了基于公鑰密碼體制的可搜索加密方案,此后,很多公鑰可搜索加密方案陸續(xù)被提出[19-20]。然而,上述這些公鑰可搜索加密方案均不滿足前后向安全性。2016 年,BOST等[14]在CCS 會議上提出了一個滿足前向安全的公鑰可搜索加密方案,但該方案涉及大量的雙線性對運(yùn)算操作,方案效率較低。文獻(xiàn)[21]提出的公鑰可搜索加密方案雖然效率較文獻(xiàn)[14]提出的方案有所提高,但其僅僅滿足前向安全性。由此可見,設(shè)計(jì)可抵抗內(nèi)部關(guān)鍵字猜測攻擊且滿足前后向安全性的動態(tài)公鑰可搜索加密方案是很有必要的。
現(xiàn)有多數(shù)可搜索加密方案主要存在以下3 個方面的缺陷:首先,由于搜索服務(wù)器可以無限制地執(zhí)行搜索陷門匹配測試,導(dǎo)致大部分方案不能抵抗內(nèi)部關(guān)鍵字猜測攻擊;其次,為了提高密文檢索的效率,動態(tài)的可搜索加密方案或多或少都會泄露一定的數(shù)據(jù)信息,但過多的信息泄露會導(dǎo)致信息泄露濫用攻擊以及文件注入攻擊,應(yīng)在滿足密文檢索效率的基礎(chǔ)上盡可能地減少數(shù)據(jù)信息的泄露,實(shí)現(xiàn)前向安全與后向安全;最后,基于公鑰密碼體制構(gòu)造的可搜索加密方案往往涉及大量的雙線性對運(yùn)算操作,從而導(dǎo)致方案效率較低,不適用于大數(shù)據(jù)通信的現(xiàn)實(shí)環(huán)境。
針對上述問題,本文提出一種智能合約輔助的動態(tài)可搜索加密方案FBSEBS。該方案只根據(jù)輸入返回正確且不可變的結(jié)果,并使用智能合約代替搜索服務(wù)器進(jìn)行關(guān)鍵字陷門匹配測試,可抵抗內(nèi)部關(guān)鍵字猜測攻擊,并且其滿足前向安全性與后向安全性,能夠抵抗信息泄露濫用攻擊以及文件注入攻擊。在本文方案的構(gòu)造過程中避免使用大量的雙線性對操作,從而提高搜索效率。
FBSEBS 方案中主要符號的說明如表1 所示。
表1 FBSEBS 方案中的符號說明Table 1 Symbol description in FBSEBS scheme
設(shè)q為一個素?cái)?shù),G1、G2是階為q的兩個循環(huán)群。定義一個雙線性映射e:G1×G1→G2,其 具有以下性質(zhì):
1)雙線性性:對任意g?G1,a,b?有e(ga,gb)=e(g,g)ab。
2)非退化性:存在g?G1,使得e(g,g)≠1。
3)可計(jì)算性:對于每一個g?G1,存在一個有效的算法計(jì)算e(g,g)。
本文方案存在的困難問題DBDH[22]描述如下:存在一個雙線性映射e:G1×G1→G2,g1為群G1的生成元,那么不存在概率多項(xiàng)式算法能夠以不可忽略的優(yōu)勢ε區(qū)分給定的數(shù)組,其中,a、b、c、z隨機(jī)選擇于有限域中。
文獻(xiàn)[23]給出了偽隨機(jī)置換函數(shù)的概念,其為一個多項(xiàng)式時間的可計(jì)算函數(shù),本文定義一個函數(shù)F:{0,1}L×{0,1}λ→{0,1}L是偽隨機(jī)置換函數(shù),其滿足以下定義:1)對于任何的A←{0,1}λ,函數(shù)F是一個從{0,1}L到{0,1}L的映射;2)對于任何多項(xiàng)式時間內(nèi)的敵手,都無法準(zhǔn)確地區(qū)分偽隨機(jī)置換函數(shù)與隨機(jī)函數(shù);3)對于任意的A←{0,1}λ,x←{0,1}L,存在一個有效的算法計(jì)算FA(x):→{0,1}L。此外,如果一個函數(shù)滿足FA(x)=y,且則稱F-1為偽隨機(jī)置換函數(shù)F的逆函數(shù)。
為使動態(tài)可搜索加密方案具有更高的搜索效率,通常允許向云服務(wù)器泄露一定的信息。根據(jù)文獻(xiàn)[13]的工作,定義一個泄露函數(shù)L=(LSetup,LSearch,LUpdate)來說明允許向敵手泄露的信息。因此,一個動態(tài)可搜索加密方案的機(jī)密性可以表述為泄露的信息不多于泄露函數(shù)所允許泄露的信息。
1.6.1 前向安全性
前向安全性[16]是指在進(jìn)行更新操作時不會泄露任何有關(guān)關(guān)鍵字的信息,或者舊的搜索陷門不能用于搜索更新后的文件,具體定義如下:
一個自適應(yīng)安全的動態(tài)可搜索加密方案,如果其更新泄露函數(shù)可以寫為則其滿足前向安全性。其中是一個無狀態(tài)函數(shù)。
1.6.2 后向安全性
后向安全性是指搜索算法不應(yīng)泄露已經(jīng)刪除的文件標(biāo)識符,即后續(xù)搜索不會泄露已刪除文件所對應(yīng)的索引信息。本文方案滿足文獻(xiàn)[16]提出的第3 類后向隱私。在給出具體定義之前,首先定義以下函數(shù):
1)TimeD(Wi):返回已經(jīng)添加到數(shù)據(jù)庫中且隨后沒有被刪除的關(guān)鍵字Wi的所有時間戳/文件標(biāo)識符的集合。
其中:u表示時間戳。
2)DleHist(Wi):向敵手返回所有已經(jīng)刪除的歷史條目。條目中包含插入時間戳uadd和刪除時間戳udel,此外,明確表示哪個刪除對應(yīng)哪個添加。
在本文提出的FBSEBS 方案中,共存在5 個實(shí)體,分別是數(shù)據(jù)屬主(DO)、可信授權(quán)中心(Trusted Authorization,TA)、數(shù)據(jù)用戶(DU)、智能合約(SC)以及云服務(wù)器(CS)。DO 受限于自身的存儲及計(jì)算能力,首先會選擇將加密的文件索引集以及對應(yīng)的關(guān)鍵字密文上傳到SC,然后將文件密文以及對應(yīng)的文件索引集上傳到CS。當(dāng)DU 想要從CS 處搜索準(zhǔn)確有效的數(shù)據(jù)文件時,會使用自己的私鑰以及關(guān)鍵字構(gòu)造關(guān)鍵字陷門上傳到SC 進(jìn)行搜索,搜索完成后DU 會獲得相應(yīng)的文件加密索引,利用自己的私鑰進(jìn)行解密后便可根據(jù)文件索引從CS 中獲得DO 外包的加密數(shù)據(jù)文件。FBSEBS 系統(tǒng)模型架構(gòu)如圖1 所示,具體步驟如下:
1)密鑰生成:如圖1 中第①步所示,TA 會計(jì)算生成系統(tǒng)的主公私鑰對以及DU 的公私鑰對,DU 在收到公私鑰對后,會秘密保存自己的私鑰,并將自己的公鑰公開。
2)生成關(guān)鍵字密文:如圖1 中第②步所示,DO會生成關(guān)鍵字密文及其對應(yīng)的加密文件索引集,并將他們上傳到SC 供DU 搜索。
3)加密的數(shù)據(jù)文件外包:如圖1 中第③步所示,DO 將加密的文件密文以及對應(yīng)的文件索引集外包給CS。本文方案主要側(cè)重于通過文件索引的構(gòu)建來實(shí)現(xiàn)前向與后向安全性,因此,對于文件的加密與解密沒有進(jìn)行詳細(xì)的描述。
4)關(guān)鍵字搜索:如圖1 中第④步所示,DU 使用自身私鑰以及關(guān)鍵字生成關(guān)鍵字陷門,并將其上傳到SC 進(jìn)行搜索,搜索完成后SC 返回加密的文件索引集給DU。
5)請求與返回?cái)?shù)據(jù):如圖1 中第⑤步所示,DU解密由第④步獲得的加密文件索引集,并根據(jù)文件索引集從CS 處獲得對應(yīng)的由DO 外包的加密文件。
圖1 FBSEBS 系統(tǒng)模型架構(gòu)Fig.1 Structure of FBSEBS system model
FBSEBS 方案由以下6 個算法構(gòu)成:
1)系統(tǒng)建立算法Setup(λ):該算法由TA 執(zhí)行,TA輸入系統(tǒng)安全參數(shù)λ,計(jì)算得出系統(tǒng)參數(shù)para。
2)密鑰生成算法KeyGen(para):該算法由TA 執(zhí)行,TA 輸入系統(tǒng)參數(shù),計(jì)算得出系統(tǒng)的主公私鑰對(s,PK)以及DU 的公私鑰對(PKdu,SKdu)。
3)數(shù)據(jù)更新階段算法Update(para,D,PKdu,Wi):該算法由DO 執(zhí)行,DO 輸入系統(tǒng)參數(shù)para、數(shù)據(jù)庫D、DU 公鑰PKdu以及關(guān)鍵字Wi,輸出一個加密的數(shù)據(jù)庫ED。
4)陷門生成算法Trapdoor(para,SKdu,Wi):該算法由DU 執(zhí)行,DU 輸入系統(tǒng)參數(shù)para、自己的私鑰SKdu以及關(guān)鍵字Wi,生成關(guān)鍵字陷門
6)解密階段算法Decrypt(para,SKdu,Wi,EI):該算法由DU 執(zhí)行,DU 輸入系統(tǒng)參數(shù)para、自己的私鑰SKdu、關(guān)鍵字Wi以及加密的文件索引集EI,輸出解密的文件索引集。
本文方案主要側(cè)重于通過文件索引的構(gòu)建來實(shí)現(xiàn)前向與后向安全性,因此,對于文件的加密與解密沒有進(jìn)行詳細(xì)的描述。
系統(tǒng)建立算法表示為Setup(λ)→para,具體描述如下:
TA 輸入一個系統(tǒng)安全參數(shù)λ,并建立兩個循環(huán)群G1、G2,其階均為素?cái)?shù)q。定義雙線性映射e:G1×G1→G2,P為群G1的生成元。選取9個安全的哈希函數(shù)選取一個偽隨機(jī)置換函數(shù):F:{0,1}λ×{0,1}λ→{0,1}λ,并且F-1是函數(shù)F的逆運(yùn)算。選取兩個鍵值函數(shù):G[key]=value,T[key]=value,其中,G[key]=value 用于存儲關(guān)鍵字的狀態(tài),T[key]=value 在數(shù)據(jù)屬主更新數(shù)據(jù)庫時使用。隨后,TA 公開系統(tǒng)參數(shù):para=(λ,q,G1,G2,P,e,H1,H2,H3,H4,H5,h1,h2,h3,h4,F,F-)。
密鑰生成算法表示為 KeyGen(para) →(PKdu,SKdu),具體描述如下:
數(shù)據(jù)更新階段算法表示為Update(para,D,PKdu,Wi)→ED,具體描述如下:
DO 執(zhí)行此算法,輸入系統(tǒng)參數(shù)para、DU 的公鑰PKdu以及數(shù)據(jù)庫D。其中:D:{O,FC,W};O:{add,del}表示加入和刪除操作;FC:{FC1,FC2,…,FCj,…}表示文件集合;W:{W1,W2,…,Wi,…}表示文件包含的關(guān)鍵字集合;?FC 表示所有包含關(guān)鍵字Wi的文件索引的集合。隨后,DO 通過以下步驟來生成一個加密的數(shù)據(jù)庫:
1)DO 隨機(jī)選取隨機(jī)數(shù)r,u←,計(jì)算當(dāng)前的數(shù)據(jù)庫狀態(tài)CDV=r?P,并將其公布。
2)對于每個關(guān)鍵字Wi?W:
陷門生成算法表示為Trapdoor(para,SKdu,Wi)→具體描述如下:
該算法由DU 執(zhí)行,當(dāng)輸入para、SKdu、Wi時,DU通過計(jì)算生成關(guān)鍵字陷門并將其上傳到SC。
該算法由SC 執(zhí)行,當(dāng)SC 接收到DU 上傳的關(guān)鍵字陷門后,輸入系統(tǒng)參數(shù)para、關(guān)鍵字陷門TWi以及加密的數(shù)據(jù)庫ED,進(jìn)行以下計(jì)算獲得加密的文件索引集。
解密階段算法表示為Decrypt(para,SKdu,Wi,EI)→RI,具體描述如下:
數(shù)據(jù)更新和搜索算法示意圖如圖2 所示。
圖2 更新與搜索算法示意圖Fig.2 Schematic diagram of update and search algorithms
算法2 詳細(xì)地說明了智能合約的設(shè)計(jì)流程,智能合約包括插入和搜索兩個階段。在插入階段,DO將加密的數(shù)據(jù)庫ED上傳到智能合約。在搜索階段,DU 通過發(fā)送關(guān)鍵字陷門來調(diào)用搜索合約完成搜索。盡管理論上智能合約可以執(zhí)行任何公鑰操作,例如雙線性對運(yùn)算等,但操作以及計(jì)算的復(fù)雜性會給其實(shí)現(xiàn)以及應(yīng)用帶來嚴(yán)重障礙。在本文方案中,智能合約只執(zhí)行一些簡單的哈希操作,計(jì)算以及通信開銷極低,因此可以很好地保證實(shí)用性。
算法1數(shù)據(jù)屬主執(zhí)行算法
定義1如果F是一個安全的偽隨機(jī)置換函數(shù),哈希函數(shù)是抗沖突的散列函數(shù),且DBDH 困難問題是成立的,那么本文提出的方案是滿足自適應(yīng)安全的公鑰可搜索加密方案。
定義2對于一個動態(tài)更新的公鑰可搜索加密方案,如果其泄露函數(shù)可以定義為:那么該公鑰可搜索加密方案滿足前向與后向安全性。
定理令F是一個安全的偽隨機(jī)置換函數(shù),哈希函數(shù)是抗沖突的散列函數(shù),且DBDH 困難問題是成立的。定義泄露函數(shù)那么稱方案是具有前向與后向安全性的L-adaptively-secure 的公鑰可搜索加密方案。
證明首先定義一個安全的偽隨機(jī)置換函數(shù)F,運(yùn)行所有的哈希函數(shù)作為隨機(jī)預(yù)言機(jī),每個哈希函數(shù)運(yùn)行模式相同,區(qū)別在于輸出長度不同。每一個隨機(jī)預(yù)言機(jī)維護(hù)一個哈希鏈表存儲輸入輸出對。例如,對于h1預(yù)言機(jī),輸入一個字符串x,預(yù)言機(jī)首先檢查h1-List 中是否存在x對應(yīng)的值,若不存在,隨機(jī)選擇一個字符串y=h1(x)作為輸入輸出對(x,y)存儲在哈希鏈表h1-List 中。令S 作為一個模擬器,A 作為一個敵手,定義以下兩個游戲:
1)HybridG1。游 戲G1除了在生成狀態(tài)stc時不使用偽隨機(jī)置換函數(shù)F外,其余過程與游戲相同。游戲維護(hù)一個狀態(tài)列表stList[Wi,c]=stc,在數(shù)據(jù)更新階段,當(dāng)需要使用stc時,會首先從stList 中檢索其是否存在,若存在,則返回相應(yīng)的元組,否則,隨機(jī)選擇一個字符串stc←(0,1)λ并將其插入狀態(tài)列表stList 中,而不是通過偽隨機(jī)置換函數(shù)stc=F(sc,stc-1)計(jì)算得到狀態(tài)stc。因?yàn)閭坞S機(jī)置換函數(shù)的安全性,所以無法區(qū)分偽隨機(jī)置換函數(shù)與隨機(jī)函數(shù),因此,游戲G1與游戲是不可區(qū)分的。
4)HybridG4。在最后一個游戲G4中,模擬器S通過使用泄露函數(shù)生成一個視圖,而不是通過真實(shí)的更新和查詢。泄露函數(shù)包括搜索模式和更新歷史,搜索模式顯示過去哪些查詢是關(guān)于關(guān)鍵字Wi的查詢,更新歷史會顯示過去哪些查詢是關(guān)于關(guān)鍵字Wi的更新查詢,以及更新的類型和文檔標(biāo)識符。在敵手看來,游戲G4與游戲G3的表現(xiàn)是完全一致的,它們是不可區(qū)分的所以有又因?yàn)樵诙囗?xiàng)式時間內(nèi)解決困難問題DBDH 的概率是可以忽略不計(jì)的,所以游戲RealΠA(λ)與是不可區(qū)分的。因此,可證明本文提出的方案是具有前向與后向安全性的L-adaptively-secure的公鑰可搜索加密方案。
將本文方案與文獻(xiàn)[5,14,21]方案進(jìn)行性能對比,其中符號說明如表2 所示,比較結(jié)果如表3 所示。
表2 性能對比中的符號說明Table 2 Symbol description in performance comparison
表3 各方案的計(jì)算開銷和安全性對比Table 3 Comparison of computing overhead and security of each scheme
在本文方案中,更新階段主要分為3 個部分,分別為生成狀態(tài)密文、生成索引密文以及生成授權(quán)密文。在生成狀態(tài)密文時,方案需要維護(hù)一個映射以及運(yùn)算偽隨機(jī)置換函數(shù)和哈希函數(shù),該階段的計(jì)算開銷為Tmtp+F+2Th,同理可計(jì)算出在生成索引密文時的計(jì)算開銷為N×2Th+Tsm,生成授權(quán)密文的計(jì)算開銷為Te+2Th+Tsm,因此,整個更新階段的計(jì)算開銷為Tmtp+F+4Th+Te+N×2Th+2Tsm。同理可得,文獻(xiàn)[5]方案加密階段的計(jì)算開銷為文獻(xiàn)[14]方案加密階段的計(jì)算開銷為Th+N×(2Th+T),文獻(xiàn)[21]方案加密階段的計(jì)算開銷為N×F+在陷門生成階段,本文方案的計(jì)算開銷為Tmtp+Tsm+Te,文獻(xiàn)[5,14,21]方案的計(jì)算開銷分別為Tmtp+Tsm、Th、Tsm。在搜索階段,本文方案避免了諸如雙線性映射等復(fù)雜計(jì)算操作,具有較高的搜索效率,計(jì)算開銷為N×2Th+4Th,文獻(xiàn)[5,14,21]方案的計(jì)算開銷分別為
在安全性方面:文獻(xiàn)[5]方案雖然基于公鑰密碼體制提出了一個輕量化的可搜索加密方案,但該方案的安全性明顯不足,不滿足前后向安全性,無法很好地抵抗文件注入攻擊;文獻(xiàn)[14]提出的對稱可搜索加密方案滿足前向安全性,且在陷門生成階段具有良好的效率,但是由于該方案基于對稱密碼體制,因此不適用于現(xiàn)實(shí)生活中大多數(shù)的應(yīng)用環(huán)境,如車聯(lián)網(wǎng)環(huán)境等;文獻(xiàn)[21]基于公鑰密碼體制提出了一個具有前向安全性的可搜索加密方案,解決了文件注入攻擊問題;本文方案在搜索效率以及后向安全性上,相較于文獻(xiàn)[21]方案均有一定的優(yōu)勢。
為更清楚地對比各方案的計(jì)算效率,在配備Intel Core i5-7500處理器、3.0 GHz主頻,以及8 GB的內(nèi)存環(huán)境下進(jìn)行模擬實(shí)驗(yàn),將本文方案同文獻(xiàn)[5,14,21]方案進(jìn)行計(jì)算效率對比,結(jié)果如圖3~圖5所示,結(jié)果表明,本文方案在加密算法階段效率要高于文獻(xiàn)[5]提出的輕量化公鑰可搜索加密方案以及文獻(xiàn)[14]提出的具有前向安全的對稱可搜索加密方案,與文獻(xiàn)[21]方案基本相當(dāng)。在陷門生成階段,本文方案的計(jì)算效率要略差與其他方案。在搜索算法階段,由于本文方案避免了大量的雙線性對計(jì)算操作,因此計(jì)算效率遠(yuǎn)高于其他方案,且隨著索引數(shù)量的不斷增加,其在搜索階段的計(jì)算效率優(yōu)勢會更加明顯。綜上所述,本文提出的公鑰可搜索加密方案在加密階段以及搜索階段的計(jì)算效率表現(xiàn)是比較有優(yōu)勢的,雖然在陷門生成算法階段的計(jì)算效率略低于其他方案,但作為安全性的折中,這是可以接受的。此外,由于本文方案在搜索算法階段避免了大量的雙線性對運(yùn)算操作,因此搜索效率要遠(yuǎn)高于其他方案,這也使得本文方案更適用于大數(shù)據(jù)通信環(huán)境。
圖3 更新(加密)算法消耗時間Fig.3 Time consuming of updating(encryption)algorithm
圖4 陷門生成算法消耗時間Fig.4 Time consuming of trapdoor generation algorithm
圖5 搜索算法消耗時間Fig.5 Time consuming of search algorithm
設(shè)置安全參數(shù)為λ=128 bit 且|G1|=512 bit,|G2|=1 536 bit,通過比較索引密文生成階段以及陷門生成階段的通信開銷大小來衡量本文方案在通信開銷上面的表現(xiàn),比較結(jié)果如表3 所示。由表3 可知,本文方案在計(jì)算索引密文時,主要的計(jì)算開銷為N×2Th+4Th,因此,其主要通信開銷為2Nλ+4λ,其中N為加密索引的個數(shù)。同理可知,文獻(xiàn)[5,14,21]方案的通信開銷分別為2Nλ、N(λ+|G2|)、N(λ+|G1|+|G2|)。此外,本文生成一個搜索陷門的最小通信開銷為λ,相對應(yīng)的文獻(xiàn)[5,14,21]方案的通信開銷為2λ、|G1|、|G1|,如圖6、圖7 所示。
圖6 索引密文生成階段通信開銷對比Fig.6 Comparison of communication overhead during index ciphertext generation
圖7 陷門生成階段通信開銷對比Fig.7 Comparison of communication overhead during trapdoor generation
在云計(jì)算環(huán)境下,采用可搜索加密技術(shù)能夠在保證數(shù)據(jù)機(jī)密性的同時實(shí)現(xiàn)高效的密文檢索,但當(dāng)前多數(shù)動態(tài)可搜索加密方案因不滿足前后向安全性導(dǎo)致難以抵抗泄露濫用攻擊以及文件注入攻擊。本文設(shè)計(jì)一個新的動態(tài)公鑰可搜索加密方案,其在智能合約的輔助下滿足前后向安全性,可抵抗內(nèi)部關(guān)鍵字猜測攻擊,并避免使用大量的雙線性對運(yùn)算操作,解決了現(xiàn)有公鑰可搜索加密方案計(jì)算開銷較大的問題。分析結(jié)果表明,本文方案在計(jì)算開銷以及安全性上的表現(xiàn)優(yōu)于文獻(xiàn)[5,14,21]方案。然而,本文構(gòu)造的動態(tài)可搜索加密方案僅支持單關(guān)鍵字搜索,下一步將構(gòu)造一個支持多關(guān)鍵字搜索,同時滿足前后向安全性的動態(tài)可搜索加密方案。