郭麗峰,王倩麗
(1.山西大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,太原 030006;2.山西大學(xué)大數(shù)據(jù)科學(xué)與產(chǎn)業(yè)研究院,太原 030006)
近年來(lái),政府對(duì)云計(jì)算產(chǎn)業(yè)發(fā)展的高度重視使得其產(chǎn)業(yè)規(guī)模迅速增長(zhǎng)。作為云計(jì)算中一種典型的應(yīng)用場(chǎng)景,云存儲(chǔ)的應(yīng)用領(lǐng)域從政府到民生,并逐漸向全行業(yè)延伸拓展。但由于云存儲(chǔ)服務(wù)提供商是不可信的,可能存在數(shù)據(jù)篡改、數(shù)據(jù)泄露等安全隱患。因此,用戶選擇將數(shù)據(jù)以密文形式存儲(chǔ)在云上。但大部分加密體制提供了一對(duì)一的數(shù)據(jù)共享方式,不適用于云存儲(chǔ)中一對(duì)多的數(shù)據(jù)共享要求。隨后,文獻(xiàn)[1]提出了屬性基加密方案,該方案提供了一種一對(duì)多的細(xì)粒度訪問(wèn)控制方式,并逐漸成為云存儲(chǔ)環(huán)境中最具發(fā)展前景的加密體制。
文獻(xiàn)[1]于2005 年提出了一種模糊的基于身份的加密方案,該方案將身份標(biāo)識(shí)看作一串描述性屬性,匹配加密用戶與解密用戶的身份標(biāo)識(shí),若匹配結(jié)果滿足預(yù)先設(shè)定的閾值,用戶可以解密獲得明文。為了提高訪問(wèn)策略的靈活性,文獻(xiàn)[2]提出了密鑰策略的屬性基加密(Key-Policy Attribute-based Encryption,KP-ABE),文獻(xiàn)[3]提出了密文策略的屬性基加密(Ciphertext-Policy Attribute-based Encryption,CP-ABE),KP-ABE的特性是訪問(wèn)策略和密鑰相關(guān)聯(lián),屬性集合和密文相關(guān)聯(lián);CP-ABE 的特性是訪問(wèn)策略和密文相關(guān)聯(lián),屬性集合和密鑰關(guān)聯(lián)。文獻(xiàn)[4]在標(biāo)準(zhǔn)模型下證明了該方案的安全性,文獻(xiàn)[5]利用雙系統(tǒng)技術(shù)證明了所提的屬性基加密方案是自適應(yīng)安全的。屬性基加密方案提供了一對(duì)多的細(xì)粒度訪問(wèn)控制方式,但云存儲(chǔ)環(huán)境中數(shù)據(jù)種類繁多,用戶可以利用關(guān)鍵字搜索方案快速地檢索所需消息,文獻(xiàn)[6]提出了一種帶關(guān)鍵字搜索的公鑰加密(Public Encryption with Keyword Search,PEKS)方案,該方案由云服務(wù)器在不知道關(guān)鍵字的前提下對(duì)關(guān)鍵字索引和陷門進(jìn)行匹配,實(shí)現(xiàn)數(shù)據(jù)檢索功能。關(guān)鍵字可搜索方案的提出,提高了用戶在云存儲(chǔ)環(huán)境中查找數(shù)據(jù)的效率,文獻(xiàn)[7-11]進(jìn)一步改善了關(guān)鍵字搜索的公鑰加密體制。為了實(shí)現(xiàn)帶關(guān)鍵字搜索的細(xì)粒度訪問(wèn)控制,文獻(xiàn)[12]將關(guān)鍵字搜索集成到屬性基加密中,并將解密階段的計(jì)算降低到常量級(jí)。文獻(xiàn)[13]提出了一種訪問(wèn)策略為布爾公式的通用的KP-ABE方案,且該方案支持布爾公式作為搜索條件。文獻(xiàn)[14]利用CP-ABE 和關(guān)鍵字搜索方案提出了一種應(yīng)用在局域網(wǎng)上的細(xì)粒度的密文數(shù)據(jù)的搜索方案,所提的方案可以同時(shí)為資源受限的用戶提供關(guān)鍵字搜索和輕量級(jí)訪問(wèn)。
由于屬性基加密采用了雙線性對(duì)運(yùn)算,給用戶帶來(lái)大量的本地計(jì)算成本。文獻(xiàn)[15]首次提出了外包屬性基加密(Outsourced Attribute-based Encryption,OABE)方案,該方案利用服務(wù)器完成一次密文的轉(zhuǎn)換,將解密階段的計(jì)算外包給云服務(wù)器以降低用戶的本地計(jì)算成本。在不影響帶關(guān)鍵字搜索的細(xì)粒度訪問(wèn)控制的前提下,文獻(xiàn)[16]提出了一種在線/離線密文策略屬性基關(guān)鍵字可搜索加密方案,該方案采用預(yù)計(jì)算方法降低加密用戶的本地計(jì)算成本,并且由云服務(wù)器完成關(guān)鍵字匹配以及部分解密的工作,使得解密用戶的本地計(jì)算成本降低到常量級(jí),但該方案必須保證密鑰生成機(jī)構(gòu)是完全可信的。文獻(xiàn)[17]提出了一種適用于物聯(lián)網(wǎng)的帶平等測(cè)試的關(guān)鍵字可搜索的屬性基加密方案,該方案將密鑰生成、加密和解密階段的計(jì)算完全外包給服務(wù)器,同時(shí)利用平等測(cè)試驗(yàn)證不同的訪問(wèn)策略下密文是否包含相同的明文,從而減少用戶需要解密的次數(shù),但該方案中包含的參數(shù)較多,計(jì)算較為繁瑣。文獻(xiàn)[18]提出了一種多授權(quán)機(jī)構(gòu)的帶關(guān)鍵字搜索的密文策略的屬性基加密,該方案利用離線加密和外包解密技術(shù)以降低用戶的本地計(jì)算成本,且該方案支持對(duì)惡意權(quán)威機(jī)構(gòu)的追蹤,但該方案是面向小屬性集合的,當(dāng)增加新的屬性時(shí)需要更新整個(gè)系統(tǒng)。同時(shí),現(xiàn)有的帶關(guān)鍵字搜索的外包屬性基加密方案大部分是在素?cái)?shù)階群下的選擇模型中證明的安全性。
基于上述問(wèn)題,本文提出了一種自適應(yīng)安全的帶關(guān)鍵字搜索的外包屬性基加密(Outsourced Attribute-Based Encryption with Keyword Search,OABE-KS)方案。該方案利用關(guān)鍵字搜索技術(shù)提高用戶在云服務(wù)器中檢索數(shù)據(jù)的效率,最后利用云服務(wù)器降低加解密用戶的本地計(jì)算成本到常量級(jí)。本文的具體工作如下:
1)面向大屬性集合增強(qiáng)了系統(tǒng)的靈活性。系統(tǒng)需要添加屬性時(shí),無(wú)需對(duì)整個(gè)系統(tǒng)進(jìn)行更新,只需要在密鑰生成階段添加對(duì)應(yīng)的屬性即可。
2)降低加解密用戶的本地計(jì)算負(fù)擔(dān)。由云服務(wù)器輔助用戶完成加/解密,將用戶本地計(jì)算成本降低到常量級(jí),使得方案更適用于計(jì)算資源有限的移動(dòng)設(shè)備。
3)解密用戶無(wú)需為外包解密計(jì)算轉(zhuǎn)換密鑰。由于權(quán)威機(jī)構(gòu)是利用用戶公鑰為用戶生成密鑰,從而可以在保證信息安全的前提下將全部的解密密鑰發(fā)送給云服務(wù)器用于外包解密。
4)提高用戶檢索數(shù)據(jù)的效率。在外包屬性基加密的基礎(chǔ)上,利用云服務(wù)器的公私鑰實(shí)現(xiàn)了免安全信道傳輸?shù)年P(guān)鍵字搜索功能。
5)在標(biāo)準(zhǔn)模型下利用雙系統(tǒng)技術(shù)證明了該方案是完全安全的。
合數(shù)階雙線性群最早由文獻(xiàn)[19]提出。令G表示群算法生成器,輸入安全參數(shù)λ,得到雙線性群的描述(N,G,GT,e)。其中N=p1p2p3是三個(gè)互不相同的素?cái)?shù)的乘積,G,GT是N階乘法循環(huán)群,e:G×G→GT是一個(gè)映射,有:
1)雙線性性:?g,h∈G,a,b∈ZN,有e(ga,hb)=e(g,h)ab。
2)非退化性:?g∈G,使e(g,g)在GT中的階為N。
3)可計(jì)算性:?g,h∈G,可以有效地計(jì)算e(g,h)。
令參與方集合表示為P={P1,P2,…,Pn}。對(duì)于?B,C,如果B∈A,且B?C,有C∈A,則稱集合是單調(diào)的。一個(gè)(單調(diào)的)訪問(wèn)結(jié)構(gòu)A是{P1,P2,…,Pn}的一個(gè)非空(單調(diào)的)子集,即。在A中的集合稱為授權(quán)集,不在A中的集合稱為非授權(quán)集。
在參與方集合P上的秘密共享方案∏是線性的,如果以下條件成立:
1)每個(gè)參與方的份額構(gòu)成群Zp上的一個(gè)向量;
2)在∏上存在一個(gè)份額生成矩陣M。對(duì)于所有的j=1,2,…,l,函數(shù)ρ將M的第j行映射到一個(gè)參與方ρ(j)??紤]一個(gè)列向量v=(s,v2,v3,…,vn)用于共享秘密值s∈Zp,其中v2,v3,…,vn∈Zp是隨機(jī)選擇的,則λ=Mv是方案∏上秘密共享值s的有效份額的向量,其中,λj=(Mv)j表示參與方ρ(j)的份額。
線性重構(gòu)性:∏是訪問(wèn)結(jié)構(gòu)A對(duì)應(yīng)的線性秘密共享方案。S是一個(gè)授權(quán)集,定義I={i:ρ(i)∈S}。如果{λi}是秘密s的有效份額,那么可以在多項(xiàng)式時(shí)間內(nèi)找到一組常數(shù),使得=s成立。
假設(shè)1 通用子群判定假設(shè)。令G表示群生成器,且Z0,Z1,…,Zk表示集合{1,2,3}的非空子集,其中,每個(gè)Zi(i≥2) 滿 足Z0∩Zi≠?≠Z1∩Zi或 者Z0∩Zi=?=Z1∩Zi。定義如下分布:
對(duì)于一系列固定的集合Z0,Z1,…,Zk,定義敵手A攻破以上假設(shè)的優(yōu)勢(shì)為:
如果對(duì)于任意的PPT 敵手A以及任意恰當(dāng)?shù)淖蛹盗衂0,Z1,…,Zk,(λ)是可忽略的,則稱G滿足以上假設(shè)。
假設(shè)2 給定群生成器G,定義如下分布:
定義敵手A攻破以上假設(shè)的優(yōu)勢(shì)為:
如果對(duì)于所有的PPT 敵手,(λ)是可忽略的,則稱G滿足以上假設(shè)。
本文提出了一種帶關(guān)鍵字搜索的外包屬性基加密(OABE-KS)方案,系統(tǒng)結(jié)構(gòu)如圖1所示,該方案包含6個(gè)實(shí)體:權(quán)威機(jī)構(gòu)(AUThority,AUT)、外包加密服務(wù)器(Encryption Server Provider,ESP)、數(shù)據(jù)擁有者(Data Owner,DO)、云服務(wù)商(Cloud Server Provider,CSP)、數(shù)據(jù)使用者(Data User,DU)和外包解密服務(wù)器(Decryption Server Provider,DSP)。
圖1 帶關(guān)鍵字搜索的外包屬性基加密方案的系統(tǒng)結(jié)構(gòu)Fig.1 System structure of outsourced attribute-based encryption scheme with keyword search
其中,權(quán)威機(jī)構(gòu)(AUT)為系統(tǒng)生成公共參數(shù),同時(shí)為數(shù)據(jù)使用者驗(yàn)證云服務(wù)器外包計(jì)算的正確性;數(shù)據(jù)擁有者(DO)在兩個(gè)不可合謀的服務(wù)器ESP 的協(xié)助下完成加密,并將密文上傳到云服務(wù)器;數(shù)據(jù)使用者(DU)為所需關(guān)鍵字生成陷門并將其傳送給云服務(wù)器;云服務(wù)器(CSP)通過(guò)匹配陷門和關(guān)鍵字索引,將匹配成功的密文返回給數(shù)據(jù)使用者;解密服務(wù)器(DSP)為數(shù)據(jù)使用者完成部分解密,降低數(shù)據(jù)使用者的計(jì)算負(fù)擔(dān)。
本文的方案OABE-KS 是基于文獻(xiàn)[5]的合數(shù)階群下的方案構(gòu)造的,該方案包含以下12個(gè)多項(xiàng)式算法:
Setup(1λ) →(mpk,msk):系統(tǒng)初始化算法由AUT 執(zhí)行。輸入安全參數(shù)λ,輸出系統(tǒng)公共參數(shù)mpk和系統(tǒng)主密鑰msk。
SetupU(mpk) →(pku,sku):數(shù)據(jù)使用者公私鑰生成算法由DU 執(zhí)行。輸入系統(tǒng)公共參數(shù)mpk,輸出數(shù)據(jù)使用者的公私鑰對(duì)(pku,sku)。
SetupC(mpk) →(pkc,skc):云服務(wù)器公私鑰生成算法由CSP執(zhí)行。輸入系統(tǒng)公共參數(shù)mpk,輸出云服務(wù)器的公私鑰對(duì)(pkc,skc)。
KeyGen(msk,S,mpk,pku) →sk:用戶解密密鑰生成算法由AUT 執(zhí)行。輸入系統(tǒng)主密鑰msk,系統(tǒng)公共參數(shù)mpk,用戶屬性集合S,用戶公鑰pku,為數(shù)據(jù)使用者生成解密密鑰sk。
Secret_Destribute(1λ) →(s1,s2):輔助服務(wù)器ESP的秘密值生成算法由DO執(zhí)行。該算法為兩個(gè)ESP輸出秘密值s1,s2。
Part_EncryptESPi(mpk,(Μ,ρ)) →cti:外包加密算法由ESP1和ESP2分別執(zhí)行。該算法輸入系統(tǒng)公共參數(shù)mpk和數(shù)據(jù)擁有者設(shè)置的訪問(wèn)結(jié)構(gòu)(M,ρ),為其生成兩部分密文ct1,ct2。
Encrypt((Μ,ρ),mpk,ct1,ct2,w,pkc,m) →CT:最終加密算法由DO 執(zhí)行。該算法輸入兩部分密文ct1,ct2,系統(tǒng)公共參數(shù)mpk,關(guān)鍵字w,云服務(wù)器公鑰pkc以及明文消息m,輸出包含關(guān)鍵字索引的密文CT。
Trapdoor(mpk,sk,sku,w') →Tw':陷門生成算法由DU 執(zhí)行。該算法輸入系統(tǒng)公共參數(shù)mpk,數(shù)據(jù)使用者的解密密鑰sk,數(shù)據(jù)使用者私鑰sku以及數(shù)據(jù)使用者想查詢的關(guān)鍵字w',最后生成陷門Tw'。
Test(Tw',index,skc) →CT⊥:匹配算法由CSP 執(zhí)行。該算法輸入陷門Tw',關(guān)鍵字索引index和云服務(wù)器私鑰skc,對(duì)關(guān)鍵字索引和陷門進(jìn)行匹配,若匹配成功,云服務(wù)器返回相應(yīng)的密文CT;否則,返回終止符⊥。
Decryptout(CT,mpk,sk) →C:外包解密算法由DSP 執(zhí)行。該算法輸入密文CT,系統(tǒng)公開參數(shù)mpk,數(shù)據(jù)使用者解密密鑰sk,計(jì)算得到外包解密結(jié)果C。
Decrypt(C,sku,CT) →m⊥:解密算法由DU 執(zhí)行。該算法輸入外包解密結(jié)果C,數(shù)據(jù)使用者私鑰sku和密文CT,調(diào)用審計(jì)算法Audit,若Audit輸出為1,DU 可以執(zhí)行解密得到明文消息m;否則,輸出終止符⊥。
Audit(C,msk,C1)→10:審計(jì)算法由AUT執(zhí)行。該算法輸入外包解密結(jié)果C,系統(tǒng)主密鑰msk,密文C1,若驗(yàn)證云服務(wù)器解密結(jié)果正確,則返回1;否則,返回0。
本節(jié)定義了在假設(shè)1 和假設(shè)2 下OABE-KS 方案中外包屬性基加密的完全安全性以及帶關(guān)鍵字搜索的安全性。
2.3.1 外包CP-ABE的完全安全
本節(jié)給出了OABE-KS方案中外包CP-ABE 的完全安全的定義。這個(gè)安全性通過(guò)一個(gè)挑戰(zhàn)算法B和一個(gè)敵手A的游戲來(lái)描述。游戲過(guò)程如下:
1)Setup:算法B 運(yùn)行Setup,得到系統(tǒng)公共參數(shù)mpk,并將mpk發(fā)送給敵手A;同時(shí)B 生成數(shù)據(jù)使用者的公私鑰(pku,sku)和云服務(wù)器的公私鑰(pkc,skc)。
2)Phase 1:敵手A提交屬性集合S1,S2,…,以及用戶公鑰pku進(jìn)行解密密鑰查詢,算法B 運(yùn)行KeyGen 得到sk并將其返回給A。
3)Challenge:敵手A提交2 個(gè)等長(zhǎng)的消息key0、key1和一個(gè)訪問(wèn)結(jié)構(gòu)(M*,ρ*),注意,Phase 1 中查詢的屬性集合S1,S2,…,均不滿足訪問(wèn)結(jié)構(gòu)(M*,ρ*)。算法B 隨機(jī)選擇b∈{0,1},并在訪問(wèn)結(jié)構(gòu)(M*,ρ*)下加密keyb,得到密文CT,并將其發(fā)送給敵手A。
4)Phase 2:同Phase 1,要求查詢的屬性集合,…,SQ不滿足挑戰(zhàn)訪問(wèn)結(jié)構(gòu)(M*,ρ*)。
5)Guess:敵手A輸出猜測(cè)b'。
在外包屬性基加密(OABE)這個(gè)游戲中,敵手A的優(yōu)勢(shì)是:
定義1一個(gè)外包CP-ABE 方案是完全安全的,如果任意多項(xiàng)式時(shí)間的敵手A在以上的安全游戲中的優(yōu)勢(shì)是可忽略的。
2.3.2 關(guān)鍵字可搜索方案的選擇關(guān)鍵字攻擊
本節(jié)給出了標(biāo)準(zhǔn)模型下外部攻擊者進(jìn)行選擇關(guān)鍵字攻擊(Chose Keyword Attack,CKA)的安全性分析。攻擊者A和挑戰(zhàn)算法B之間的交互游戲過(guò)程如下:
1)Setup:算法B 執(zhí)行Setup 得到公開參數(shù)mpk和主密鑰msk,生成數(shù)據(jù)使用者和云服務(wù)器的公私鑰對(duì),并發(fā)送公開參數(shù)給敵手A。
2)Phase 1:敵手A向算法B進(jìn)行密鑰查詢和陷門查詢。
3)Challenge:敵手A提交要挑戰(zhàn)的關(guān)鍵字w0,w1,算法B隨機(jī)選擇關(guān)鍵字wb∈{w0,w1},生成關(guān)鍵字索引index,并將其返回給敵手A。
4)Phase 2:同Phase 1,但敵手查詢的關(guān)鍵字滿足如下條件(w≠w0)∧(w≠w1)。
5)Guess:敵手輸出猜測(cè)b'。
在以上游戲中,敵手A的優(yōu)勢(shì)為:
定義2如果敵手在以上游戲中優(yōu)勢(shì)是可忽略的,則稱該方案可抗選擇關(guān)鍵字攻擊。
本文的方案OABE-KS 是基于文獻(xiàn)[5]提出的合數(shù)階群下的方案提出的,具體過(guò)程如下:
定理1如果假設(shè)1 和假設(shè)2 成立,則方案是完全安全的。
證明 本文方案在文獻(xiàn)[5]的屬性基加密方案的基礎(chǔ)上,實(shí)現(xiàn)了外包加密以及外包解密,并增加了關(guān)鍵字可搜索功能,加快用戶在云存儲(chǔ)服務(wù)器中檢索數(shù)據(jù)的速度,但其中外包屬性基加密方案的安全性證明和文獻(xiàn)[5]的相同,因此,此處不再對(duì)外包屬性基加密方案的安全性證明過(guò)程進(jìn)行贅述。
定理2如果假設(shè)1 和假設(shè)2 成立,則該方案對(duì)外部攻擊者是選擇關(guān)鍵字安全的。
本文的安全性證明過(guò)程是通過(guò)一系列游戲的混合論證完成的。令Gamereal表示之前安全性定義中的真實(shí)游戲。為描述接下來(lái)的游戲,引入了半功能密鑰和半功能關(guān)鍵字索引。令g2表示子群Gp2中的固定生成元。
1)半功能密鑰:為屬性集合S生成半功能密鑰,首先運(yùn)行正常的密鑰生成算法KeyGen 得到K0,K1,K2,{Ki,1,Ki,2}i∈[1,k]。然后隨機(jī)選擇W∈,按如下形式構(gòu)成半功能密鑰為:
2)半功能關(guān)鍵字索引:為關(guān)鍵字w生成半功能關(guān)鍵字索引,首先調(diào)用通過(guò)調(diào)用Encrypt 算法生成正常關(guān)鍵字索引index=(I1,I2,I3,C2)。其中,yc為云服務(wù)器私鑰,H(w)為關(guān)鍵字的哈希值,隨機(jī)選擇a',s'∈ZN,有:
用Q表示敵手A進(jìn)行密鑰查詢的總次數(shù)。定義游戲如下:
Gamereal表示真實(shí)的安全游戲。對(duì)于k∈[0,Q],在Gamek中,挑戰(zhàn)階段生成的關(guān)鍵字索引以及前k次查詢得到的密鑰是半功能的,其余是正常的密鑰。Gamefinal中返回給敵手A是隨機(jī)關(guān)鍵字的半功能索引,其余返回信息和GameQ一致。
混合論證按從Gamereal到Game0,到Game1,再到GameQ,最后到Gamefinal。在GameQ中,返回給敵手A的挑戰(zhàn)密文和A查詢得到的密鑰都是半功能的。最后,轉(zhuǎn)換到Gamefinal,此時(shí)證明方案在選擇關(guān)鍵字攻擊下是安全的,因?yàn)閿呈諥在Gamefinal中的優(yōu)勢(shì)是0。
引理1如果假設(shè)1成立,則沒(méi)有概率多項(xiàng)式時(shí)間敵手能以不可忽略的優(yōu)勢(shì)區(qū)分Gamereal和Game0。
證明 假設(shè)有一個(gè)概率多項(xiàng)式時(shí)間敵手A能以不可忽略的優(yōu)勢(shì)區(qū)分Gamereal和Game0,因此可以創(chuàng)建一個(gè)概率多項(xiàng)式時(shí)間挑戰(zhàn)算法B 以集合Z0={1},Z1={1,2},Z2={1},Z3={3}打破假設(shè)1。輸入g1,g3,T給算法B,其中g(shù)1是的生成元,g3是的生成元,T是或者中的隨機(jī)元素,根據(jù)輸入,算法B與敵手A模擬Gamereal和Game0。
2)Query 1:敵手A向算法B 提交要查詢的屬性集合S1,S2,…,,算法B運(yùn)行密鑰生成算法Keygen得到對(duì)應(yīng)的正常的密鑰,具體過(guò)程如下:
a)密鑰查詢:B 初始化一個(gè)空集合D和一個(gè)空列表T。A提交屬性集合S進(jìn)行密鑰查詢時(shí),B 令集合D=D∪S,同時(shí)調(diào)用密鑰生成算法KeyGen 為屬性集合S生成解密密鑰sk,將(S,sk)存入列表T中,并返回(S,sk)給敵手A。
b)陷門查詢:A針對(duì)屬性集合S和關(guān)鍵字w進(jìn)行陷門查詢時(shí),若T中有(S,sk),則取出sk,利用數(shù)據(jù)使用者私鑰sku和關(guān)鍵字哈希值H(w)生成陷門Tw,將陷門返回給敵手A。
若T∈,則第k次查詢得到的是正常密鑰,表示B 很好地模擬了Gamek-1;若T∈,則是一個(gè)半功能密鑰,B模擬了Gamek。若敵手A可以區(qū)分出游戲中第k次查詢得到的陷門是半功能的還是正常的,B可以利用敵手A區(qū)分Gamek-1和Gamek的優(yōu)勢(shì)去攻破假設(shè)1。
引理3如果假設(shè)2成立,則沒(méi)有概率多項(xiàng)式時(shí)間敵手能以不可忽略的優(yōu)勢(shì)區(qū)分GameQ和Gamefinal。
4)Query 2:同Query 1,限制敵手A查詢的屬性集合不滿足Challenge階段挑戰(zhàn)的訪問(wèn)結(jié)構(gòu)(M*,ρ*)。
5)Guess:敵手A輸出猜測(cè)b'。
若T=e(g1,g1)αs,所得結(jié)果是關(guān)鍵字wb的半功能關(guān)鍵字索引,則算法B 很好地模擬了GameQ;若T是GT中的一個(gè)隨機(jī)元素,所得結(jié)果是隨機(jī)關(guān)鍵字wR的半功能關(guān)鍵字索引,B模擬了Gamefinal。因此,若敵手A可以不可忽略的優(yōu)勢(shì)區(qū)分T,那么B可以利用A的優(yōu)勢(shì)攻破假設(shè)2。
本節(jié)在理論上將本文方案與文獻(xiàn)[8]方案、文獻(xiàn)[16]方案、文獻(xiàn)[17]方案、文獻(xiàn)[18]方案、文獻(xiàn)[5]方案進(jìn)行性能對(duì)比。文獻(xiàn)[8]方案是合數(shù)階群下的關(guān)鍵字可搜索方案,文獻(xiàn)[16-18]方案是帶關(guān)鍵字搜索的外包屬性基加密,通過(guò)與文獻(xiàn)[5]方案的對(duì)比體現(xiàn)出本文方案的優(yōu)勢(shì)。各方案實(shí)現(xiàn)的功能以及各方案的安全性對(duì)比如表1 所示,理論上各個(gè)方案在不同階段的計(jì)算成本對(duì)比結(jié)果如表2所示。
由表1 的對(duì)比可以看出,本文方案是面向大屬性集合的,同時(shí)支持外包加密和外包解密,最后在標(biāo)準(zhǔn)模型下利用雙系統(tǒng)技術(shù)證明本文方案是完全安全的,而在同類型的帶關(guān)鍵字搜索屬性基加密的方案中,文獻(xiàn)[16]方案、文獻(xiàn)[17]方案與文獻(xiàn)[18]方案是在選擇模型下證明了方案的安全性,文獻(xiàn)[18]方案和文獻(xiàn)[5]方案是面向小屬性集合的。
表1 不同方案的功能及安全性對(duì)比Tab.1 Function and security comparison of different schemes
表2 對(duì)系統(tǒng)初始化的計(jì)算成本、加密用戶和解密用戶的本地計(jì)算成本,以及云服務(wù)器完成關(guān)鍵字匹配的計(jì)算成本進(jìn)行對(duì)比。其中,|U|表示系統(tǒng)屬性集合的大小,|l|表示訪問(wèn)矩陣M的行數(shù),|S|表示用戶屬性集合的大小,P表示群GT上的雙線性對(duì)運(yùn)算,EG,分別表示群G,GT上的模冪運(yùn)算。
表2 不同方案的性能對(duì)比Tab.2 Performance comparison of different schemes
方案效率對(duì)比所采用的實(shí)驗(yàn)環(huán)境是Windows 10 操作系統(tǒng),Intel Core i7-7700 CPU @3.60 GHz 的處理器,以及16 GB的內(nèi)存。其中,對(duì)合數(shù)階群采用Type A1 的橢圓曲線,對(duì)素?cái)?shù)階群采用Type A 的橢圓曲線,用到的群的階數(shù)均采用256位,最后,所采用的運(yùn)行時(shí)間是100 次結(jié)果的平均值,以保證運(yùn)行結(jié)果的準(zhǔn)確性。但需注意的是合數(shù)階群下的運(yùn)算速度比素?cái)?shù)階群下的運(yùn)算速度慢,因此,在效率圖中與理論分析階段可能有所差別。
系統(tǒng)初始化建立階段的運(yùn)行時(shí)間如圖2 所示,加密用戶本地的運(yùn)行時(shí)間如圖3 所示,云服務(wù)器執(zhí)行關(guān)鍵字匹配時(shí)間如圖4所示,解密用戶本地的運(yùn)行時(shí)間如圖5所示。需注意的是,這里均是按單關(guān)鍵字進(jìn)行實(shí)現(xiàn)的。同時(shí),由圖5 可知,合數(shù)階群的運(yùn)行時(shí)間多于素?cái)?shù)階群,對(duì)于同樣的計(jì)算量EGT,在實(shí)現(xiàn)的過(guò)程中仍會(huì)有不同的運(yùn)行時(shí)間。從圖2 可以看出,對(duì)于系統(tǒng)屬性為小屬性集的文獻(xiàn)[5]方案和文獻(xiàn)[18]方案,系統(tǒng)初始化建立的時(shí)間會(huì)隨著屬性數(shù)量的增加而增加;在圖3~5中未表示出文獻(xiàn)[5]方案的性能,是因?yàn)槲墨I(xiàn)[5]方案中各階段計(jì)算量太大,會(huì)導(dǎo)致無(wú)法看出其他方案的差異;文獻(xiàn)[8]方案為合數(shù)階群下的帶關(guān)鍵字搜索,該方案不含屬性這一概念,因此只對(duì)比云服務(wù)器匹配關(guān)鍵字的時(shí)間,在圖4中呈現(xiàn)。
圖2 不同方案的系統(tǒng)初始化建立時(shí)間Fig.2 Time of system initialization and setup for different schemes
圖3 不同方案的加密用戶本地運(yùn)行時(shí)間Fig.3 Local running time of encryption user for different schemes
圖4 不同方案的云服務(wù)器搜索時(shí)間Fig.4 Search time of cloud server for different schemes
圖5 不同方案的解密用戶本地運(yùn)行時(shí)間Fig.5 Local running time of decryption user for different schemes
對(duì)以上結(jié)果綜合分析可以發(fā)現(xiàn),本文的方案在系統(tǒng)初始化、用戶加解密以及云服務(wù)器匹配關(guān)鍵字的時(shí)間上均為常量級(jí),不會(huì)隨著屬性數(shù)量的增加而增加。此外,本文方案在標(biāo)準(zhǔn)模型下利用雙系統(tǒng)技術(shù)證明了所提方案是完全安全的。
針對(duì)云服務(wù)器中數(shù)據(jù)繁瑣以及云存儲(chǔ)服務(wù)提供商不可信的問(wèn)題,本文提出了一種自適應(yīng)安全的帶關(guān)鍵字搜索的外包屬性基加密方案,即在降低加解密用戶本地計(jì)算成本到常量級(jí)的基礎(chǔ)上,利用關(guān)鍵字搜索提高云服務(wù)器檢索數(shù)據(jù)的效率,最后利用雙系統(tǒng)技術(shù)證明了所提方案是自適應(yīng)安全的。同時(shí),本文實(shí)現(xiàn)了外包解密的正確性驗(yàn)證。接下來(lái)的工作中,可以利用密碼協(xié)議,如比特承諾、零知識(shí)證明等,實(shí)現(xiàn)方案中主密鑰對(duì)權(quán)威機(jī)構(gòu)的保密性。