王 正,曹素珍,趙 曉,周大偉,邢丹丹
(西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州 730070)
隨著物聯(lián)網(wǎng)和5G 技術(shù)的廣泛應(yīng)用[1-2],現(xiàn)有云服務(wù)器的性能已不能滿(mǎn)足互聯(lián)網(wǎng)時(shí)代對(duì)海量數(shù)據(jù)的實(shí)時(shí)處理需求。邊緣設(shè)備[3-4]以低時(shí)延、移動(dòng)性支持等優(yōu)勢(shì)逐步成為解決上述問(wèn)題的一種新途徑。云服務(wù)器和邊緣設(shè)備是半誠(chéng)實(shí)的[5-7],因此為保證用戶(hù)數(shù)據(jù)的機(jī)密性,數(shù)據(jù)所有者(Data Owner,DO)通常將數(shù)據(jù)加密后再存儲(chǔ)于云端或邊緣設(shè)備,然而如何檢索密文成為數(shù)據(jù)用戶(hù)面臨的一大難題。文獻(xiàn)[8]提出可搜索加密(Searchable Encryption,SE)概念,有效解決了密文檢索的難題。
在早期的SE 方案中常采用單關(guān)鍵字SE 方案[9],但因存在大量的關(guān)鍵字索引重復(fù)問(wèn)題,從而導(dǎo)致搜索效率不高。為了提高搜索的準(zhǔn)確性,在后續(xù)的研究中用戶(hù)搜索的關(guān)鍵字通常采取多關(guān)鍵字方案[10-12]。文獻(xiàn)[13]提出一種多關(guān)鍵字SE 方案,通過(guò)匹配多關(guān)鍵字的索引和搜索陷門(mén)來(lái)提高搜索效率,但仍存在關(guān)鍵字與主題相關(guān)性不大的問(wèn)題。文獻(xiàn)[14]提出一種多關(guān)鍵字排序SE 算法,利用TF-IDF規(guī)則根據(jù)關(guān)鍵字相關(guān)的程度排序搜索結(jié)果,僅返回最滿(mǎn)足用戶(hù)需求的Top-k文件。上述文獻(xiàn)無(wú)論是采用對(duì)稱(chēng)或非對(duì)稱(chēng)加密算法均無(wú)法滿(mǎn)足數(shù)據(jù)共享時(shí)的細(xì)粒度訪(fǎng)問(wèn)控制需求。
文獻(xiàn)[15]提出屬性基可搜索加密(Attribute-Based Searchable Encryption,ABSE)概念,實(shí)現(xiàn)了外包加密數(shù)據(jù)上的安全搜索和細(xì)粒度訪(fǎng)問(wèn)控制。文獻(xiàn)[16-17]提出一種基于密文策略的ABSE 方案(CPABSE),在CP-ABSE 方案中私鑰與屬性相關(guān)聯(lián),密文與訪(fǎng)問(wèn)結(jié)構(gòu)相關(guān)聯(lián),使得訪(fǎng)問(wèn)密文的用戶(hù)由數(shù)據(jù)所有者設(shè)定的訪(fǎng)問(wèn)策略決定,達(dá)到細(xì)粒度訪(fǎng)問(wèn)控制的效果。KP-ABSE[18]方案是將策略嵌入用戶(hù)密鑰,屬性嵌入密文,但這兩種ABSE 方案都可能存在訪(fǎng)問(wèn)策略泄露問(wèn)題。文獻(xiàn)[19]提出一種基于隱藏策略和外包解密的白盒可跟蹤屬性加密方案,基于LSSS訪(fǎng)問(wèn)結(jié)構(gòu),該方案采用策略隱藏的方式只對(duì)屬性名進(jìn)行公開(kāi),缺陷在于不支持對(duì)多關(guān)鍵字的搜索排序,搜索結(jié)果不精準(zhǔn)。文獻(xiàn)[20-21]提出一種基于邊緣計(jì)算框架的高效密文索引檢索方案,結(jié)合可搜索加密技術(shù)與邊緣計(jì)算技術(shù)所定義的邊緣緩存網(wǎng)絡(luò)模型使密文檢索更加安全高效。文獻(xiàn)[22]提出IIoT 時(shí)代可持續(xù)邊緣云網(wǎng)絡(luò)的多關(guān)鍵詞排序搜索隱私保護(hù)方案,但該方案無(wú)法滿(mǎn)足大規(guī)模計(jì)算需求。
針對(duì)上述問(wèn)題,本文提出云邊協(xié)同下可排序的屬性基可搜索加密方案,主要工作如下:
1)利用云邊協(xié)同技術(shù),將加密后的數(shù)據(jù)上傳到云端,與其對(duì)應(yīng)的加密索引上傳到最近的邊緣節(jié)點(diǎn),提高了搜索效率,降低了用戶(hù)的計(jì)算負(fù)擔(dān)。
2)用戶(hù)的屬性由屬性名和屬性值組成,在構(gòu)造訪(fǎng)問(wèn)結(jié)構(gòu)時(shí),用戶(hù)僅通過(guò)公開(kāi)的屬性名進(jìn)行陷門(mén)搜索匹配,從而使得未經(jīng)授權(quán)的用戶(hù)無(wú)法獲取訪(fǎng)問(wèn)策略中的任何有效信息。
3)在密文檢索階段,可在排除無(wú)關(guān)關(guān)鍵字的情況下根據(jù)檢索關(guān)鍵字的重要程度進(jìn)行排序,最終返回與用戶(hù)需求最相關(guān)的Top-k密文,實(shí)現(xiàn)了多關(guān)鍵字排序搜索。
4)利用在線(xiàn)/離線(xiàn)加密技術(shù),數(shù)據(jù)所有者在上傳密文之前先進(jìn)行離線(xiàn)加密,降低客戶(hù)端的計(jì)算成本。
選擇兩個(gè)循環(huán)群G1、G2,p是它們的素?cái)?shù)階,定義一個(gè)雙線(xiàn)性映射e:G1×G1→G2滿(mǎn)足以下性質(zhì)[23]:
1)雙線(xiàn)性。對(duì)?x,y?G1,?a,b?,有e(xa,yb)=e(xb,ya)=e(x,y)ab成 立。
2)非退化性。?x,y?G1滿(mǎn)足e(x,y) ≠1。
3)可計(jì)算性。對(duì)?x,y?G1,存在一個(gè)多項(xiàng)式時(shí)間算法有效計(jì)算e(x,y)。
設(shè)P={P1,P2,…,Pn}表示參與者的集合,令2P={A|A?{P1,P2,…,Pn}},集合A?2P是單調(diào)的,當(dāng)且僅當(dāng)對(duì)于任意子集B,C?P,如果B?A且B?C,則C?A。若A是P={P1,P2,…,Pn}中的非空子集(單調(diào)的),即則 稱(chēng)A是一個(gè) 訪(fǎng)問(wèn)結(jié)構(gòu)(單調(diào)的)。對(duì)于任意集合D,若D?A,則D為授權(quán)集,否則為非授權(quán)集[24]。
定義P上的一個(gè)線(xiàn)性秘密共享方案π,滿(mǎn)足如下條件[25]:
2)每個(gè)線(xiàn)性秘密共享方案都有一個(gè)l×n的生成矩陣M,且存在單射函數(shù)ρ:{1,2,…,l} →P把M的每一行(i=1,2,…,l)映射到參與者ρ(i)??紤]向量v=(s,v2,v3,…,vn),s?是共享秘 密值,選 擇隨機(jī)數(shù)v2,v3,…,vn?隱藏共享秘密值s,則Mv是共享秘密份額,其中λi=(Mv)i是共享秘密值s的第i個(gè)秘密份額。
TF-IDF 用來(lái)評(píng)估指定關(guān)鍵字對(duì)于文檔集合中某一篇文檔的重要程度[26],值越大,說(shuō)明該關(guān)鍵字w在文檔f中的重要程度越靠前。TF 是計(jì)算指定關(guān)鍵字w在查詢(xún)文檔f中出現(xiàn)的次數(shù),IDF 是該關(guān)鍵詞出現(xiàn)在所有文檔中的數(shù)據(jù)集合。根據(jù)下述拆分規(guī)則計(jì)算Top-k文件。
拆分規(guī)則:基于隨機(jī)的n維二進(jìn)制向量P計(jì)算n維向量Q,利用P將Q拆分為兩個(gè)隨機(jī)向量(Q′,Q″),如式(1)所示:
困難問(wèn)題假設(shè)具體如下:
1)DBDH 假設(shè)。設(shè)一個(gè)循環(huán)群G,p是它的素?cái)?shù)階,g是G的一個(gè)生成元。隨機(jī)選擇a,b,c,z?Zp,給定多元組,如果不存在一種算法能夠在多項(xiàng)式時(shí)間內(nèi)以不可忽略的概率區(qū)分(g,ga,gb,gc,z),則DBDH 假設(shè)成立。
2)q-parallel DBDH 假設(shè)。選擇兩個(gè)乘法循環(huán)群G1、G2,p是它們的素?cái)?shù)階,g是G1的一個(gè)生成元。隨機(jī)選擇q+2 個(gè)元素x,a,b1,b2,…,bq?Zp,計(jì)算:
文中使用的一些符號(hào)和變量如表1 所示。
表1 符號(hào)和變量描述Table 1 Description of symbols and variables
所提方案的系統(tǒng)主要包括5 類(lèi)實(shí)體,分別是授權(quán)機(jī)構(gòu)(Authorization Attribute,AA)、云服務(wù)提供商(Cloud Service Provider,CSP)、邊緣節(jié)點(diǎn)(Edge Node,EN)、數(shù)據(jù)所有者和數(shù)據(jù)用戶(hù)(Data User,DU)。
該方案由一個(gè)受信任的AA 公開(kāi)發(fā)布全局參數(shù)并對(duì)主密鑰保密,DO 將加密文件上傳到CSP 存儲(chǔ),將相應(yīng)的關(guān)鍵字索引上傳到最近的EN。DU 根據(jù)訪(fǎng)問(wèn)策略生成搜索陷門(mén)發(fā)送給最近的EN,EN 接收到搜索陷門(mén)后先對(duì)CSP 中存儲(chǔ)的數(shù)據(jù)進(jìn)行搜索,CSP搜索出符合的文件返回給EN,EN 利用用戶(hù)生成的部分解密密鑰對(duì)其進(jìn)行部分解密,將Top-k文件返回給用戶(hù)解密,最后得到共享的數(shù)據(jù)文件。系統(tǒng)模型及流程如圖1 所示。
圖1 系統(tǒng)模型及流程Fig.1 System model and procedure
該模型在現(xiàn)實(shí)應(yīng)用中可適應(yīng)于大部分實(shí)際場(chǎng)景,如智能電網(wǎng)。假設(shè)電力運(yùn)營(yíng)公司使用該模型使某市的各小區(qū)之間可相互共享一些電網(wǎng)用戶(hù)數(shù)據(jù)。電網(wǎng)用戶(hù)查看自己相關(guān)的數(shù)據(jù)時(shí)只需要簡(jiǎn)單的身份注冊(cè),受信任的授權(quán)機(jī)構(gòu)根據(jù)其基本信息分發(fā)可解密本人數(shù)據(jù)的屬性密鑰。電網(wǎng)用戶(hù)根據(jù)屬性設(shè)置訪(fǎng)問(wèn)策略,系統(tǒng)將其轉(zhuǎn)換為一個(gè)矩陣并將其嵌入密文后上傳云服務(wù)器,相應(yīng)的關(guān)鍵字索引上傳到最近的邊緣節(jié)點(diǎn)。管理人員等其他想要訪(fǎng)問(wèn)數(shù)據(jù)的電網(wǎng)查詢(xún)者需要受信任的授權(quán)機(jī)構(gòu)審核其身份信息并為其分發(fā)屬性密鑰,在系統(tǒng)中輸入相關(guān)關(guān)鍵字,當(dāng)屬性滿(mǎn)足電網(wǎng)用戶(hù)設(shè)置的訪(fǎng)問(wèn)策略時(shí),則可解密搜索結(jié)果,否則無(wú)權(quán)查看,這在一定程度上保護(hù)了數(shù)據(jù)隱私。
1)AA。AA 是一個(gè)完全受信任的實(shí)體,由它生成全局參數(shù)和系統(tǒng)主密鑰,當(dāng)用戶(hù)想要查詢(xún)時(shí),可以根據(jù)其屬性集生成對(duì)應(yīng)的用戶(hù)私鑰。
2)CSP。CSP 是一個(gè)誠(chéng)實(shí)但好奇的半可信實(shí)體,會(huì)好奇云上存儲(chǔ)的數(shù)據(jù)但會(huì)誠(chéng)實(shí)地執(zhí)行任務(wù)。在該系統(tǒng)中,允許系統(tǒng)中的合法用戶(hù)上傳或訪(fǎng)問(wèn)存儲(chǔ)其上的密文數(shù)據(jù)。
3)EN。EN 用于存儲(chǔ)密文索引,當(dāng)從DU 接收搜索陷門(mén)時(shí),誠(chéng)實(shí)地執(zhí)行搜索算法,并將搜索結(jié)果發(fā)送到CSP。在獲得從CSP 返回的加密文件后,協(xié)助DU進(jìn)行部分密文解密操作,并根據(jù)TF-IDF 規(guī)則計(jì)算并返回給用戶(hù)最符合要求的Top-k文件。
4)DO。根據(jù)DO 設(shè)定的訪(fǎng)問(wèn)策略對(duì)數(shù)據(jù)和關(guān)鍵字進(jìn)行加密后上傳到EN。
5)DU。每個(gè)DU 計(jì)算搜索陷門(mén)并發(fā)送到邊緣節(jié)點(diǎn)進(jìn)行匹配查詢(xún),生成部分解密密鑰發(fā)送到邊緣節(jié)點(diǎn)以供對(duì)返回的搜索結(jié)果進(jìn)行部分解密操作。
所提方案的安全模型通過(guò)攻擊者A 和挑戰(zhàn)者C之間的模擬游戲定義。若攻擊者A 在多項(xiàng)式時(shí)間算法內(nèi)不能以不可忽略的優(yōu)勢(shì)在游戲中獲勝,則該方案具有選擇關(guān)鍵字攻擊(IND-CKA)安全性。
1)初始化。挑戰(zhàn)者C 調(diào)用SetUp 算法,通過(guò)安全參數(shù)λ計(jì)算得全局參數(shù)GP和系統(tǒng)主密鑰KM。
2)查詢(xún)階段1。攻擊者A 向挑戰(zhàn)者C 請(qǐng)求對(duì)應(yīng)屬性集SA的私鑰和待查詢(xún)關(guān)鍵字的集合W′的搜索陷門(mén)。
3)挑戰(zhàn)。攻擊者A 向挑戰(zhàn)者C 發(fā)送兩個(gè)大小相同的關(guān)鍵字w1、w2,攻擊者A 提供訪(fǎng) 問(wèn)策略(M,ρ),挑戰(zhàn)者C 隨機(jī)選擇b?{0,1},利用wb生成加密關(guān)鍵字索引Iwb返回給攻擊者A。
4)查詢(xún)階段2。攻擊者A 重復(fù)進(jìn)行查詢(xún)階段1,查詢(xún)更多與w1、w2不同的關(guān)鍵字集合的搜索陷門(mén)。
5)猜測(cè)階段。攻擊者A 輸出b的一個(gè)猜想b'?{0,1},若b=b',則攻擊者A 獲勝,攻擊者A 成功的優(yōu)勢(shì)為
算法描述具體如下:
1)設(shè) 置SetUp(1λ) →(GP,KM)。AA 執(zhí)行該 算法,輸入安全參數(shù)λ,輸出全局參數(shù)GP,主密鑰KM。
2)密鑰生成KeyGen(GP,KM,S)→(KS)。AA執(zhí)行該算法,輸入全局參數(shù)GP,根據(jù)主密鑰KM和用戶(hù)的屬性集S生成用戶(hù)的屬性密鑰KS。
3)加密。加密包括離線(xiàn)加密和在線(xiàn)加密。
(1)離線(xiàn)加密Offline.Enc(GP) →(CP)。在沒(méi)有確定關(guān)鍵字集合以及訪(fǎng)問(wèn)策略之前,DO 空閑時(shí)執(zhí)行該算法,輸入全局參數(shù)GP,根據(jù)用戶(hù)屬性S及選擇的秘密值s輸出中間密文CP,用于在線(xiàn)加密。
(2)在線(xiàn)加密Online.Enc(GP,CP,F,W,A(M,ρ)) →(CT,Iw)。DO 執(zhí)行該算法,輸入全局參數(shù)GP,離線(xiàn)加密時(shí)生成的中間密文CP,明文文件集F,關(guān)鍵字集合W,訪(fǎng)問(wèn)策略A(m,ρ),輸出對(duì)數(shù)據(jù)加密生成的加密密文CT和對(duì)關(guān)鍵字加密生成的加密索引Iw,并根據(jù)TF-IDF 規(guī)則計(jì)算索引向量Iw。
4)陷門(mén)生成Trapdoor(GP,KS,q) →(Tq)。DU 執(zhí)行該算法,輸入用戶(hù)私鑰KS和在關(guān)鍵字集合中隨機(jī)選擇的待搜索關(guān)鍵字q,生成查詢(xún)陷門(mén)用于密文搜索。同時(shí),根據(jù)TF-IDF 規(guī)則計(jì)算查詢(xún)向量與在線(xiàn)加密時(shí)生成的索引向量一同用于Top-k文件的分?jǐn)?shù)排序計(jì)算。
5)密文搜索Search(GP,CT,Iw,Tq)→(CT/⊥)。CSP執(zhí)行該算法,輸入查詢(xún)陷門(mén)Tq和關(guān)鍵字索引Iw,檢測(cè)其能否成功匹配,若能則繼續(xù)驗(yàn)證,否則終止。
6)驗(yàn)證Verify。驗(yàn)證返回結(jié)果的正確性,并根據(jù)TF-IDF 規(guī)則計(jì)算并返回給用戶(hù)需要的Top-k文件。
7)轉(zhuǎn)換Transform(GP,KS) →(KP)。由DU 執(zhí)行該算法,輸入DU 的私鑰KS,輸出邊緣節(jié)點(diǎn)的部分解密密鑰KP,用于協(xié)助密文的部分解密。
8)部分解密密文E.Dec(GP,KP,CT) →(CPT)。EN執(zhí)行該算法,輸入全局參數(shù)GP和邊緣節(jié)點(diǎn)的部分解密密鑰KP,對(duì)所得的Top-k文件密文進(jìn)行部分解密,輸出部分解密密文CPT。
9)解 密Dec(KS,CPT,Kτ) →(m)。DU 執(zhí)行該 算法,輸入DU 的私鑰KS,并利用中間解密密鑰中包含的轉(zhuǎn)換因子Kτ,對(duì)步驟8)得到的部分解密密文CPT解密后,獲得所需明文m。
方案構(gòu)造具體如下:
1)系統(tǒng)建立。先初始化系統(tǒng),輸入安全參數(shù)λ,設(shè)置全局參數(shù)U={1,2,…,N},設(shè)兩個(gè)乘法循環(huán)群G1、G2,p是它們 的素?cái)?shù) 階,設(shè)定雙 線(xiàn)性對(duì)e:G1×G1→G2,其中,g是G1的生成元,并選擇哈希函數(shù)H:{0,1}*→。AA 隨機(jī)選擇α,β,μ?,計(jì)算e(g,g)α、gβ、gμ。對(duì)于每個(gè)屬性i?U,AA 隨機(jī)選擇ai?,計(jì)算。最后生成系統(tǒng)的全局參數(shù)GP和主密鑰KM,如式(2)所示:
其中:GP由AA 公開(kāi);KM由AA 秘密保存。
3)離線(xiàn)加密。在沒(méi)有確定關(guān)鍵字集合以及訪(fǎng)問(wèn)策略之前先進(jìn)行離線(xiàn)計(jì)算。DO 選擇秘密值,計(jì)算密文,如式(4)所示:
4)在線(xiàn)加密。設(shè)l×n的訪(fǎng)問(wèn)矩陣Ml×n,其中對(duì)?i?[1,l],Mi是矩陣M的第i行,定義函數(shù)ρ將第i行映射到 相應(yīng)的 屬性名ai,ρ:ρ(i) →ai。最后將{Ml×n,ρ}以明文的形式作為訪(fǎng)問(wèn)結(jié)構(gòu)。
(1)數(shù)據(jù)加密
②計(jì)算λi=Ml×n×v。
(3)生成索引向量。DO 根據(jù)拆分規(guī)則式(1)設(shè)置索引向量與關(guān)鍵字索引一同作為密文索引發(fā)送到EN。
5)查詢(xún)
(1)生成查詢(xún)陷門(mén)。DU 選擇關(guān)鍵字集合W,隨機(jī)選擇q,計(jì)算查詢(xún)陷門(mén)如式(5)所示:
(2)生成查詢(xún)向量。DU 根據(jù)拆分規(guī)則式(1)設(shè)置查詢(xún)向量將其與查詢(xún)陷門(mén)一起發(fā)送到EN。
6)密文搜索。EN 檢測(cè)查詢(xún)陷門(mén)與關(guān)鍵字索引能否成功匹配,驗(yàn)證等式e(IWj,T1)e(I1,T3)=e(I2×I3,T2)是否成立,若成立則使用式(6)計(jì)算索引向量和查詢(xún)向量的相關(guān)分?jǐn)?shù):
將計(jì)算得到的相關(guān)分?jǐn)?shù)結(jié)果排序,僅返回Top-k文件密文CT,否則輸出⊥。
9)明文。DU 收到EN 返回的部分解密密文CPT后,計(jì)算明文m=并輸出。
1)關(guān)鍵字匹配正確性
檢查式(7)是否成立來(lái)判斷用戶(hù)生成的陷門(mén)和密文對(duì)應(yīng)的關(guān)鍵字是否匹配:
綜上,關(guān)鍵字匹配的正確性得證。
2)解密密文正確性
邊緣節(jié)點(diǎn)接收到DU 的部分解密密鑰后計(jì)算部分解密密文。邊緣節(jié)點(diǎn)輔助解密的正確性證明如下:
根據(jù)上述可得解密密文的正確性證明如下:
綜上,解密密文的正確性得證。
定理1若多項(xiàng)式時(shí)間內(nèi)的算法允許攻擊者A以可忽略的優(yōu)勢(shì)獲勝,則該方案具有IND-CKA 安全性。
1)初始化。輸入安全參數(shù)λ,選擇一個(gè)循環(huán)群G1,p是它的素?cái)?shù)階,g是G1的生成元,隨機(jī)選擇α,β,μ?和哈希函數(shù)H:{0,1}*→,挑戰(zhàn)者 C 調(diào) 用SetUp(1λ) →(GP,KM)算法。最后生成系統(tǒng)的全局參數(shù)GP和主密鑰KM,GP由AA公開(kāi),KM由AA秘密保存。
2)查詢(xún)階段1。查詢(xún)階段1 包括私鑰查詢(xún)和陷門(mén)查詢(xún)。
4)查詢(xún)階段2。攻擊者A 重復(fù)進(jìn)行查詢(xún)階段1,查詢(xún)更多與w1、w2不同的關(guān)鍵字集合的搜索陷門(mén)。
5)猜測(cè)階段。攻擊者A 輸出b的一個(gè)猜想b'?{0,1},若b'=b,則攻擊者A 輸出b'=b的概率為,若b'≠b,則攻擊者A 輸出b'≠b的概率為因此攻擊者A 成功的優(yōu)勢(shì)如下:
由于攻擊者A 成功的優(yōu)勢(shì)是可忽略的,因此所提方案是安全的,證畢。
為了證明所提方案的有效性,進(jìn)行在線(xiàn)/離線(xiàn)加密、策略隱藏、搜索結(jié)果排序等方面的比較實(shí)驗(yàn),比較方案選擇文獻(xiàn)[12-14,19]方案,比較結(jié)果如表2 所示,其中,√表示具備該功能,×表示不具備該功能。
表2 功能比較Table 2 Function comparison
由表2 可知,除文獻(xiàn)[19]方案外的其他方案都支持多關(guān)鍵字搜索,從而提高了方案對(duì)文件檢索的準(zhǔn)確性,特別是文獻(xiàn)[14]方案和所提方案可以對(duì)搜索后得到的文件進(jìn)行Top-k排序,但只有所提方案在加密時(shí)引入了在線(xiàn)/離線(xiàn)加密機(jī)制,因而實(shí)現(xiàn)了較低的計(jì)算開(kāi)銷(xiāo)。此外,在所提方案中,運(yùn)用邊緣節(jié)點(diǎn)輔助解密的設(shè)計(jì),密文在被DU 解密之前會(huì)被EN 部分解密,大大減少了DU 的計(jì)算開(kāi)銷(xiāo),減輕了客戶(hù)端負(fù)擔(dān)。文獻(xiàn)[19]方案引入外包輔助加/解密的技術(shù),雖降低了客戶(hù)端的成本,但外包密鑰的生成和驗(yàn)證需要額外的開(kāi)銷(xiāo)導(dǎo)致效果不理想。文獻(xiàn)[12-13]方案并未實(shí)現(xiàn)對(duì)訪(fǎng)問(wèn)策略的隱藏,對(duì)用戶(hù)的敏感信息有巨大的安全隱患。相比較而言,所提方案不僅可滿(mǎn)足多關(guān)鍵字的密文排序搜索,以及實(shí)現(xiàn)策略隱藏和細(xì)粒度訪(fǎng)問(wèn)控制,同時(shí)與其他方案相比,在降低用戶(hù)開(kāi)銷(xiāo)方面具有更好的性能。
將所提方案與文獻(xiàn)[12-14,19]方案在計(jì)算、存儲(chǔ)開(kāi)銷(xiāo)方面進(jìn)行對(duì)比,結(jié)果如表3 和表4 所示,其中,分別表 示中元素 的長(zhǎng)度,n1、n2分別表示訪(fǎng)問(wèn)策略中的屬性個(gè)數(shù)、與用戶(hù)相關(guān)的屬性個(gè)數(shù),i表示關(guān)鍵字集中關(guān)鍵字的個(gè)數(shù),E1、E2表示G1、G2上的群指數(shù)運(yùn)算,P表示雙線(xiàn)性對(duì)運(yùn)算。
表3 計(jì)算開(kāi)銷(xiāo)比較Table 3 Computational cost comparison
表4 存儲(chǔ)開(kāi)銷(xiāo)比較Table 4 Storage cost comparison
對(duì)于計(jì)算開(kāi)銷(xiāo)的比較,所提方案在加/解密階段采用了在線(xiàn)/離線(xiàn)加密技術(shù),與其他方案相比開(kāi)銷(xiāo)較低。對(duì)于存儲(chǔ)開(kāi)銷(xiāo)的比較,因?yàn)樵品?wù)器的存儲(chǔ)容量不受限,所以所提方案并不考慮云中的密文存儲(chǔ)開(kāi)銷(xiāo)。由于用戶(hù)的密鑰長(zhǎng)度只與屬性相關(guān),因此在所有方案中用戶(hù)只存儲(chǔ)其長(zhǎng)度隨n2增加而線(xiàn)性增加的屬性。雖然當(dāng)屬性較少時(shí)所提方案需要的存儲(chǔ)空間較大,但是當(dāng)屬性數(shù)隨著n2線(xiàn)性增加時(shí),所提方案的密鑰存儲(chǔ)開(kāi)銷(xiāo)低于其他方案。以上表明,所提方案在計(jì)算和存儲(chǔ)開(kāi)銷(xiāo)方面較其他方案有一定優(yōu)勢(shì)。
為了更準(zhǔn)確地評(píng)估方案的實(shí)際性能,實(shí)驗(yàn)平臺(tái)配置在Intel?CoreTMi5-8250U CPU @ 160 GHz 8.00 GB RAM 的筆記本上,基于Java 配對(duì)加密庫(kù)(JPBC),采用Type A 型素?cái)?shù)階橢圓曲線(xiàn)y2=x3+x進(jìn)行仿真實(shí)驗(yàn)。為了方便定量分析,假定關(guān)鍵字集中關(guān)鍵字的數(shù)量為50,屬性數(shù)量的取值范圍為[10,50],當(dāng)屬性數(shù)量取值為10、20、30、40、50 時(shí),各方案在加密和陷門(mén)生成階段的計(jì)算時(shí)間隨屬性數(shù)量的變化情況分別如圖2 和圖3 所示。
圖2 各方案加密階段的計(jì)算時(shí)間比較Fig.2 Comparison of computing time in encryption stage of each scheme
圖3 各方案陷門(mén)生成階段的計(jì)算時(shí)間比較Fig.3 Comparison of computing time in trapdoor generation stage of each scheme
由圖2 和圖3 可知,各方案的加密和陷門(mén)生成時(shí)間都與屬性數(shù)量成線(xiàn)性正比關(guān)系,所提方案在加密和陷門(mén)生成階段的計(jì)算時(shí)間相比于次優(yōu)的文獻(xiàn)[12]方案降低了10%和25%。在加密階段,雖然當(dāng)屬性數(shù)量較少時(shí)所提方案的計(jì)算時(shí)間不是最少,但隨著屬性數(shù)量的增加計(jì)算時(shí)間一直少于其他方案。在陷門(mén)生成階段,與其他方案相比,所提方案的計(jì)算時(shí)間一直保持在最低的常數(shù)級(jí)水平。
實(shí)驗(yàn)結(jié)果分析表明,所提方案不僅實(shí)現(xiàn)了高效的多關(guān)鍵字搜索和密文的訪(fǎng)問(wèn)控制,而且具有更好的性能和實(shí)用價(jià)值。
本文提出云邊協(xié)同下可排序的屬性基可搜索加密方案。采用在線(xiàn)/離線(xiàn)加密和邊緣節(jié)點(diǎn)輔助計(jì)算,在確定訪(fǎng)問(wèn)策略前進(jìn)行預(yù)加密,通過(guò)將加密后的數(shù)據(jù)上傳到云端,與其對(duì)應(yīng)的加密索引上傳到最近的邊緣節(jié)點(diǎn)來(lái)降低用戶(hù)的計(jì)算負(fù)擔(dān)。將關(guān)鍵字拆分成關(guān)鍵字名和關(guān)鍵字值,用戶(hù)只能通過(guò)公開(kāi)的關(guān)鍵字名進(jìn)行匹配,保證了方案安全性。在實(shí)現(xiàn)多關(guān)鍵字搜索的情況下對(duì)關(guān)鍵字的重要程度進(jìn)行排序,提高了搜索效率。分析與對(duì)比結(jié)果表明,所提方案滿(mǎn)足IND-CKA 安全性,并且與同類(lèi)方案相比更具高效性。后續(xù)將進(jìn)一步加強(qiáng)所提方案的搜索效率及實(shí)用性。