曹來成, 王瑋婷, 康一帆, 郭顯, 馮濤
(蘭州理工大學(xué) 計算機與通信學(xué)院,甘肅,蘭州 730050)
隨著云計算技術(shù)的日益普及[1-2],使越來越多地用戶都愿意將數(shù)據(jù)交給云存儲服務(wù)器(cloud storage server,CSS)來完成,但是云存儲服務(wù)器并非完全可信,它對用戶的數(shù)據(jù)存在一定的好奇心,這就使得云存儲面臨嚴峻的安全挑戰(zhàn). 其中對數(shù)據(jù)的加密存儲是防止信息暴露在云存儲服務(wù)器中的最好辦法,但是對數(shù)據(jù)加密之后會增大數(shù)據(jù)使用者對訪問數(shù)據(jù)的搜索難度,一些可搜索加密方案[3-4]的提出解決了上面的問題.
Sahai和Waters[5]提出的模糊IBE方案中首次給出了基于屬性加密的概念. 該方案使用了門陷訪問結(jié)構(gòu),接收者能夠解密發(fā)送者的密文,當(dāng)且僅當(dāng)接收者的屬性集與發(fā)送者的屬性集相似度大于或等于某個門陷值. 文獻[6-7]將基于屬性加密(attribute-based encryption, ABE)機制分為兩部分:密鑰策略(key-policy)的ABE(KP-ABE)和密文策略(ciphertext-policy)的ABE(CP-ABE). 在KP-ABE協(xié)議[8]中,訪問控制策略存在于密鑰中,而屬性集合包含在密文中. 在CP-ABE[9]協(xié)議中卻恰恰相反,密鑰中包含了屬性集合,而密文中包含了訪問控制策略. 文獻[10]中提出了一種可驗證的基于屬性關(guān)鍵字搜索(verifiable attribute-based keyword search, VABKS)方案,通過構(gòu)建一種訪問樹來制定訪問控制策略,并且在這個訪問樹可以進行秘密共享. 但是在構(gòu)建的訪問樹中,每個葉子節(jié)點表示和關(guān)鍵字相關(guān)的屬性暴露在半可信的云存儲服務(wù)器中.
文獻[11]中介紹了一種通過離線/在線的方法有效增強屬性關(guān)鍵字搜索(attribute-based keyword search efficiency enhancement via an online/offline approach, OO-ABKS)方案,主要是針對于離線或者在線的移動設(shè)備而構(gòu)建. 數(shù)據(jù)擁有者分別對數(shù)據(jù)進行離線加密和在線加密,同時使用者也需要在線解密和離線解密. 雖然最后將大量的解密計算分配到了離線部分,但是相對的兩次加解密大大增加了計算開銷.
由于一般的CP-ABE可搜索加密方案中屬性關(guān)鍵字都會以明文的形式暴露在云服務(wù)器中,這樣云存儲服務(wù)器就有可能依據(jù)這些與屬性相關(guān)的關(guān)鍵字做一些惡意操作[12]. 故本文提出了一種屬性盲化的模糊可搜索加密云存儲(attribute blinding fuzzy searchable encryption cloud storage, ABFSECS)方案.
ABFSECS方案系統(tǒng)模型如圖1所示,它由4個實體組成:可信授權(quán)中心、云存儲服務(wù)器、數(shù)據(jù)擁有者和數(shù)據(jù)使用者.
① 可信授權(quán)中心(trusted authorization center):它是一個完全可信的密鑰生成中心. 它根據(jù)每一個數(shù)據(jù)擁有者的屬性集生成加密外包數(shù)據(jù)的私鑰;也為每一個數(shù)據(jù)使用者生成解密私鑰.
② 云存儲服務(wù)器(cloud storage server):用來執(zhí)行數(shù)據(jù)的訪問控制策略并對加密數(shù)據(jù)進行預(yù)解密操作. 云服務(wù)器檢查是否使用者的屬性集滿足數(shù)據(jù)擁有者定義的訪問控制策略,若不滿足則終止,否則云服務(wù)器幫助數(shù)據(jù)使用者進行預(yù)解密計算,最后將預(yù)解密信息發(fā)送給數(shù)據(jù)使用者.
③ 數(shù)據(jù)擁有者(data owner):根據(jù)公私鑰對加密上傳數(shù)據(jù),生成加密密文和關(guān)鍵字索引,自己根據(jù)屬性集定義一個訪問控制策略,將加密密文和索引一起上傳至云存儲服務(wù)器.
④ 數(shù)據(jù)使用者(data user):利用公私鑰和身份生成與屬性相關(guān)的門陷值,當(dāng)門陷值滿足訪問控制策略時,進行最后簡單的解密操作獲得相關(guān)明文信息.
設(shè)G和GT是兩個素數(shù)階為q的循環(huán)群,g是G的一個生成元,如果映射e:G×G→GT滿足下面3條性質(zhì)[13]:
① 雙線性:對?α,β∈Zq,?P,Q∈G,e(P,Q)αβ=e(Pα,Qβ).
② 可計算性:對?P,Q∈G,存在有效的算法計算e(P,Q)∈GT.
③ 非退化性:e(P,Q)≠1.
那么稱e是一個雙線性映射,將G作為加法群,GT作為乘法群. 映射e是對稱的:e(P,Q)αβ=e(Pα,Qβ)=e(Pβ,Qα).
定義1 數(shù)據(jù)使用者屬性集.
設(shè)n個數(shù)據(jù)使用者u1,u2,…,un的屬性集為A,則A={A1,A2,…,An},其中數(shù)據(jù)使用者ui(i=1,2,…,n)的屬性Ai={ai1,ai2,…,aimi},令
(1)
(2)
ABFSECS方案的設(shè)計思想為:①系統(tǒng)以雙線性對體制為基礎(chǔ)產(chǎn)生可信授權(quán)中心的公鑰pk和主密鑰msk,由可信授權(quán)中心產(chǎn)生數(shù)據(jù)擁有者的私鑰skDO和數(shù)據(jù)使用者的私鑰skDU;②為了保護數(shù)據(jù)使用者的屬性隱私,可信授權(quán)中心對所有數(shù)據(jù)使用者的屬性進行盲化運算;③數(shù)據(jù)擁有者為了保護自己的數(shù)據(jù)隱私,使用自己的私鑰skDO對自己的數(shù)據(jù)明文m加密為密文C,產(chǎn)生供數(shù)據(jù)使用者搜索時進行屬性權(quán)限認證的關(guān)鍵字索引Index,并上傳它們到云服務(wù)器存儲;④當(dāng)數(shù)據(jù)使用者進行搜索時,利用公鑰pk和自己的私鑰skDU產(chǎn)生搜索關(guān)鍵字的門陷值Trapdoor,并提交給云服務(wù)器進行屬性權(quán)限認證,若認證成功,云存儲服務(wù)器發(fā)送預(yù)解密密文m′給數(shù)據(jù)使用者;⑤數(shù)據(jù)使用者利用預(yù)解密密文m′和自己的私鑰skDU,解密密文C得要搜索的明文m. 具體步驟如下.
步驟1 Setup(1λ)→(pk,msk),系統(tǒng)建立步驟輸入安全參數(shù)λ,輸出公鑰pk和主私鑰msk.
可信授權(quán)中心通過運行Setup算法初始化系統(tǒng). 它選擇兩個素數(shù)階為p的循環(huán)群G和GT,其中g(shù)是G的生成元,并選擇一個雙線性映射e:G×G→GT. 令H:{0,1}*→G是隨機預(yù)言機中一個哈希函數(shù). 隨機選擇α,β,δ,r∈Zp和G→g. 令公鑰pk=(G,GT,e(g,g)r,g,gα,gβ,gδ,H),主密鑰msk=(α,β,δ).
步驟2 BlindAttrs(A)→b,屬性盲化步驟輸入n個數(shù)據(jù)使用者的屬性集A,輸出A的聚合盲化屬性b.
為了防止數(shù)據(jù)使用者ui(i=1,2,…,n)的屬性Ai在訪問控制樹中以明文形式分配在葉子節(jié)點中,需要首先對屬性進行盲化處理以保護數(shù)據(jù)使用者ui的屬性隱私,如圖2所示.
圖2 盲化數(shù)據(jù)使用者的屬性Fig.2 Blinding attribute of the data users
① 數(shù)據(jù)擁有者選擇隨機數(shù)τ∈Zp,盲化數(shù)據(jù)使用者ui的屬性aij:
(gaij)τ=bij(i=1,2,…,n;j=1,2,…,mi).
② 聚合盲化屬性bij,根據(jù)式(1)得
gτai=bi(i=1,2,…,n)
③ 聚合盲化屬性bi,根據(jù)式(2)得
步驟3KeyGen(pk,msk,SDO,SDU)→(skDO,skDU)
密鑰生成步驟輸入主私鑰msk,公鑰pk,使用者的屬性集SDU. 最后分別輸出數(shù)據(jù)擁有者和使用者的私鑰skDO和skDU.
步驟4Encrypt(m,pk,skDO)→(C),加密步驟輸入明文m、公鑰pk和數(shù)據(jù)擁有者的私鑰skDO,輸出數(shù)據(jù)密文C.
數(shù)據(jù)擁有者使用其私鑰加密數(shù)據(jù)m. 數(shù)據(jù)擁有者隨機選擇r1,r2∈Zp,計算C1=mE,C2=gα(r1+r2),C3=gβ r2,則生成密文C=(C1,C2,C3).
步驟5IndexGen(pk,skDO)→(Index),索引生成步驟輸入明文m的l個關(guān)鍵字W={w1,w2,…,wl},公鑰pk,數(shù)據(jù)擁有者私鑰skDO,輸出關(guān)鍵字W索引Index.
① 數(shù)據(jù)擁有者計算數(shù)據(jù)使用者搜索1個關(guān)鍵字的l個元素的索引集
i=1,2,…,l}.
i,j=1,2,…,l,i≠j}.
i,j,t=1,2,…,l,i≠j且i≠t且j≠t}.
C2gβr1H(w1‖w2‖…‖wl)}.
則數(shù)據(jù)使用者搜索1,2,…,l個關(guān)鍵字的索引集為
⑥ 數(shù)據(jù)擁有者計算KW2=gδ b,KW3=Db,KW4=gβ r2.
則關(guān)鍵字W的索引為
Index=(KW1,KW2,KW3,KW4).
步驟6TrapdGen(pk,skDU)→(Trapdoor),門陷生成步驟輸入公鑰pk、數(shù)據(jù)使用者私鑰skDU,輸出門陷值Trapdoor.
1)利用公鑰pk,數(shù)據(jù)使用者計算TD1:
TD1=(gδ)r1=gδr1.
2)數(shù)據(jù)使用者利用自己的私鑰skDU計算TD2.
① 若數(shù)據(jù)使用者以W={w1,w2,…,wl}中某1個關(guān)鍵字wi(i∈{1,2,…,l})進行搜索,則令w=wi.
② 若數(shù)據(jù)使用者以W={w1,w2,…,wl}中某2個關(guān)鍵字wi,wj(i,j∈{1,2,…,l}且i≠j)進行搜索,則令w=wi‖wj.
③ 若數(shù)據(jù)使用者以W={w1,w2,…,wl}中某3個關(guān)鍵字wi,wj,wt(i,j,t∈{1,2,…,l}且i≠j且i≠t且j≠t)進行搜索,則令w=wi‖wj‖wt.
④ 同理,若數(shù)據(jù)使用者以W={w1,w2,…,wl}中某4,5,…,l-1個關(guān)鍵字進行搜索,則令w為這4,5,…,l-1個關(guān)鍵字的級聯(lián).
⑤ 若數(shù)據(jù)使用者以W={w1,w2,…,wl}中某l個關(guān)鍵字w1,w2,…,wl進行搜索,則令w=w1‖w2‖…‖wl. 計算TD2=gQgRH(w),則Trapdoor=(TD1,TD2).
步驟7Search(Trapdoor,skDU)→(1/0),搜索步驟輸入門陷值Trapdoor和使用者的私鑰skDU,當(dāng)搜索滿足時輸出1,否則輸出0.
數(shù)據(jù)使用者使用其私鑰skDU和r2計算EDU=e(g,g)Pr2.
云服務(wù)器根據(jù)數(shù)據(jù)使用者提供的門陷值Trapdoor和擁有者提供的關(guān)鍵字索引集運行下面的匹配算法:
e(kw1,KW2)/(EDUe(KW3,KW4))=
e(TD1,TD2).
(3)
步驟8PreDec(pk,d)→(m′),預(yù)解密步驟輸入公鑰pk和聚合后的盲化屬性b,輸出預(yù)解密密文m′.
若計算式(3),輸出為1,云存儲服務(wù)器計算
m′=(e(g,g)r)b=e(g,g)rb.
云存儲服務(wù)器發(fā)送m′給數(shù)據(jù)使用者.
步驟9Decrypt(C,m′,skDU)→(m),解密步驟輸入密文C、預(yù)解密密文m′和使用者的私鑰skDU,輸出數(shù)據(jù)明文m.
數(shù)據(jù)使用者根據(jù)本地接收到的密文、預(yù)解密密文和解密密鑰skDU做簡單的解密計算得到明文:
me(g,g)α b/e(g,g)α b=m.
證明等式式(3)的正確性.
設(shè)數(shù)據(jù)使用者進行模糊查詢,輸入關(guān)鍵字
w∈{w1,w2,…,wl}∪{w1‖w2,w1‖
w3,…,wl-1‖wl}∪{w1‖w2‖w3,w1‖
w2‖w4,…,wl-2‖wl-1‖wl}∪
{w1‖w2‖…‖wl-1‖wl}.
由式(3)得,存在由w計算出的kw1∈KW1,則
e(kw1,KW2)/(EDUe(KW3,KW4))=
e(C2gβ r1H2(W),gδ b)/
(e(g,g)r br2e(Db,gβ r2))=
e(g,g)α δbr1e(g,g)β δbr1H2(W)e(TD1,TD2)=
e(gδr1,gQgRH(W))=
e(g,g)α δbr1e(g,g)β δbr1H2(W).
故
e(kw1,KW2)/(EDUe(KW3,KW4))=
e(TD1,TD2).
由上面的證明可以得出等式式(3)成立. 說明只有當(dāng)使用者的門陷值和擁有者的關(guān)鍵字索引相匹配時最后才返回1,表示使用者已經(jīng)被授權(quán)訪問加密數(shù)據(jù). 否則返回0.
4.2.1 抗偽造攻擊性
定義2:攻擊模型.
挑戰(zhàn)者C隨機選擇α,β,δ,r∈Zp,生成pk=(G,GT,e(g,g)r,g,gα,gβ,gδ,H)和msk=(α,β,δ),將pk發(fā)送給攻擊者Λ,msk自己保留. 攻擊者遞交一組屬性集Q作為數(shù)據(jù)使用者屬性集.
以兩個關(guān)鍵字為例,設(shè)攻擊者Λ產(chǎn)生兩個關(guān)鍵字w0和w1,這兩個關(guān)鍵字必須在之前的搜索中沒有出現(xiàn)過,將w0和w1提交挑戰(zhàn)者C.
挑戰(zhàn)者C產(chǎn)生模仿門陷Trapdoor,攻擊者Λ輸出一個β的猜測β′使β′=β.
定理1 如果BDH問題是計算困難的,則對于定義2,ABFSECS方案不存在攻擊者能以不可忽略的優(yōu)勢在在多項式時間內(nèi)贏得挑戰(zhàn)者,即ABFSECS方案具有不可偽造性.
證明 假設(shè)存在一個多項式時間攻擊者Λ具有不可忽略的優(yōu)勢Adv抵抗ABFSECS方案的構(gòu)建.
Setup:挑戰(zhàn)者C運行Setup(1λ)步驟生成pk=(G,GT,e(g,g)r,g,gα,gβ,gδ,H)和msk=(α,β,δ),將pk發(fā)送給攻擊者Λ,msk自己保留.
Guess:攻擊者Λ輸出β的一個猜測β′.
由于gα,gβ為系統(tǒng)公鑰,假設(shè)攻擊者Λ可以計算出gβ2,攻擊者Λ計算:
當(dāng)攻擊者Λ猜測到β′=β時,則攻擊者Λ以一個不可忽略的優(yōu)勢計算出e(g,g)α βδ,即他有不可忽略的優(yōu)勢解決BDH問題,同理可證攻擊者Λ猜測到α′=α和δ′=δ時,結(jié)論相同.
故ABFSECS方案不存在攻擊者能以不可忽略的優(yōu)勢在在多項式時間內(nèi)贏得挑戰(zhàn)者.
4.2.2 抗共謀攻擊性
定理2 數(shù)據(jù)密文抵抗數(shù)據(jù)使用者與云存儲服務(wù)器間的共謀攻擊.
證明 因為在數(shù)據(jù)加密過程中會生成隨機參數(shù)r1,r2→Zp并嵌入到密文中,所以云存儲服務(wù)器根本得不到任何與明文相關(guān)的信息. 當(dāng)n個數(shù)據(jù)使用者利用他們的屬性私鑰skDUi(i=1,2,…,n)組合起來訪問加密數(shù)據(jù)時,就必須得到數(shù)據(jù)的加密私鑰skDO. 但是加密私鑰skDO是由主密鑰msk生成. 共謀者們必須通過恢復(fù)e(g,g)α βδ解決BDH問題來獲得主私鑰,這在實際計算中是不可行的. 所以數(shù)據(jù)使用者間或同云存儲服務(wù)器間的共謀攻擊是無法實現(xiàn)的.
4.2.3 抗屬性隱私泄露性
定理3 訪問控制樹不會泄露數(shù)據(jù)使用者的屬性隱私信息.
證明 首先根據(jù)步驟2的①,數(shù)據(jù)擁有者通過隨機數(shù)τ∈Zp對數(shù)據(jù)使用者ui(i=1,2,…,n)的每個屬性aij進行離散對數(shù)盲化操作,然后根據(jù)步驟2的②,數(shù)據(jù)擁有者對每個數(shù)據(jù)使用者的盲化屬性聚合成一個盲化屬性,最后根據(jù)步驟2的③,數(shù)據(jù)擁有者對所有數(shù)據(jù)使用者的盲化屬性再次聚合為一個盲化屬性b,由計算離散對數(shù)的困難性可知,云存儲服務(wù)器要得到數(shù)據(jù)使用者的屬性信息在計算上是不可行的.
4.2.4 抗數(shù)據(jù)隱私泄露性
定理4 ABFSECS方案不會泄露數(shù)據(jù)擁有者的數(shù)據(jù)隱私信息.
表1從抗屬性隱私泄露性、抗偽造攻擊性、抗共謀攻擊性、抗數(shù)據(jù)隱私泄露性等方面對比了ABFSECS方案和文獻[4]的MACSPP方案及文獻[16]的AKPS. 可以發(fā)現(xiàn),只有ABFSECS方案對數(shù)據(jù)使用者的屬性進行了盲化,具有抗屬性隱私泄露性.
表1 方案的安全性比較分析Tab.1 Comparison and analysis of schems security
文獻[16]中使用了基于屬性關(guān)鍵字的加密(attribute-keyword based data publish-subscribe, AKPS)方案,實現(xiàn)了數(shù)據(jù)發(fā)布和訂閱的隱私保護. 并且也對密文數(shù)據(jù)進行了預(yù)解密操作,但是它使用的是線性的秘密共享方案(linear ecret sharing scheme, LSSS),算法復(fù)雜度高于訪問樹很多.
由于文獻[4,16]不具有屬性盲化步驟BlindAttrs,所以本文主要從數(shù)據(jù)擁有者的私鑰skDO生成、數(shù)據(jù)使用者的私鑰skDU生成、加密步驟Encrypt、索引生成步驟IndexGen、門陷生成步驟TrapdGen、搜索步驟Search、預(yù)解密步驟PreDec和解密步驟Decrypt等8方面比較分析ABFSECS方案和文獻[4,16]的MACSPP方案和AKPS方案的計算開銷,如表2所示. 其中E為求冪運算,M為乘法運算,e為雙線性對的操所,H為哈希函數(shù)運算;相比較于上面的運算,將Zp中的計算開銷忽略不計,S表示數(shù)據(jù)使用者的屬性數(shù).
表2 方案的計算開銷比較分析Tab.2 Comparison and analysis of schems computing time
從表2可得,MACSPP方案總的計算開銷為
T1=(25+3S)E+20M+(5+2S)e+(2+2M)H.
AKPS方案總的計算開銷為
T2=(26+4S)E+16M+8e+(3+2S)H.
ABFSECS方案總的計算開銷(舍去3個影響不大的常量時間)為
T=(11+S)E+8M+7e+2H+3≈
(11+S)E+8M+7e+2H.
T1-T=((25+3S)E+20M+(5+2S)e+
(2+2M)H)-((11+S)E+8M+7e+2H)=
(14+2S)+12M+(2S-2)e+2MH>0.
T2-T=((26+4S)E+16M+8e+
(3+2S)H)-((11+S)E+8M+7e+2H)=
(15+3S)E+8M+e+(1+2S)H>0.
即T 另外,在密鑰生成步驟中ABFSECS方案生成數(shù)據(jù)擁有者的私鑰skDO和數(shù)據(jù)使用者的私鑰skDU比AKPS方案少1次哈希函數(shù)運算、(6+S)次求冪運算、2次乘法運算和S次哈希函數(shù)運算,索引生成步驟中ABFSECS方案生成索引比AKPS方案少5次求冪運算、2次乘法運算和2次哈希函數(shù)運算,門陷生成步驟中ABFSECS方案生成門陷比AKPS方案少3S次求冪運算、4次乘法運算和1次哈希函數(shù)運算,總體上ABFSECS方案的計算開銷比AKPS方案少15+3S個求冪運算、8次乘法運算、1次雙線性對運算和1+2S個哈希函數(shù)運算. 存儲開銷主要包括:①系統(tǒng)建立步驟中系統(tǒng)參數(shù)及公鑰pk和主密鑰msk及群Zp的存儲開銷;②密鑰生成步驟中數(shù)據(jù)擁有者和使用者的私鑰skDO和skDU的存儲開銷;③加密步驟中密文C的存儲開銷;④索引生成步驟中關(guān)鍵字W索引Index的存儲開銷. 用|GT|、|G|和|Zp|表示群GT、G和Zp中元素的長度大小,|e|表示雙線性對的長度大小,|pk|、|msk|、|skDO|和|skDU|表示公鑰pk、主密鑰msk、數(shù)據(jù)擁有者的私鑰skDO和數(shù)據(jù)使用者的私鑰skDU的長度大小,|C|表示密文C的長度大小,|I|表示每個關(guān)鍵字對應(yīng)的索引的平均長度大小. 表3比較了ABFSECS方案和文獻[4]的MACSPP方案及文獻[16]的AKPS方案的存儲開銷,其中,n表示數(shù)據(jù)使用者個數(shù),l表示查詢關(guān)鍵字集W的個數(shù). 可以看出,系統(tǒng)建立步驟、密鑰生成步驟和加密步驟中ABFSECS方案和文獻[4]的MACSPP方案及文獻[16]的AKPS方案的存儲開銷相同. 在索引生成步驟中文獻[4]的MACSPP方案及文獻[16]的AKPS方案的存儲開銷相同,而ABFSECS方案的存儲開銷高于這兩種方案,原因在于ABFSECS方案實現(xiàn)了模糊可搜索加密,相對于云服務(wù)器強大的云存儲服務(wù)而言,為獲得模糊可搜索加密所付出的存儲開銷代價是值得的. 表3 方案的存儲開銷比較分析Tab.3 Comparison and analysis of schems storage time 通信開銷主要包括:①密鑰生成步驟中可信授權(quán)中心發(fā)送數(shù)據(jù)擁有者和使用者的私鑰|skDO|和|skDU|的通信開銷;②加密步驟中數(shù)據(jù)擁有者發(fā)送密文C到云存儲服務(wù)器的通信開銷;③索引生成步驟中數(shù)據(jù)擁有者發(fā)送關(guān)鍵字索引Index的通信開銷;④搜索步驟中數(shù)據(jù)使用者發(fā)送搜索關(guān)鍵字門陷值Trapdoor的通信開銷;⑤預(yù)解密步驟中云存儲服務(wù)器發(fā)送預(yù)解密密文m′的通信開銷. 用|skDO|和|skDU|表示數(shù)據(jù)擁有者的私鑰skDO和數(shù)據(jù)使用者的私鑰skDU的長度大小,|C|為密文C的長度大小,|I|為每個關(guān)鍵字對應(yīng)的索引的平均長度大小,|T|為數(shù)據(jù)使用者某次搜索時搜索關(guān)鍵字門陷值Trapdoor的長度大小,|m′|為預(yù)解密密文m′的長度大小. 表4比較了ABFSECS方案和文獻[4]的MACSPP方案及文獻[16]的AKPS方案的通信開銷,其中,n為數(shù)據(jù)使用者個數(shù),l為查詢關(guān)鍵字集W的個數(shù). 可以看出,密鑰生成步驟、加密步驟、索引生成步驟和預(yù)解密步驟中ABFSECS方案和文獻[4]的MACSPP方案及文獻[16]的AKPS方案的通信開銷相同. 在索引生成步驟中文獻[4]的MACSPP方案及文獻[16]的AKPS方案的通信開銷相同,而ABFSECS方案的通信開銷高于這兩種方案,原因在于ABFSECS方案實現(xiàn)了模糊可搜索加密,相對于云存儲通信的較高帶寬而言,為獲得模糊可搜索加密所付出的通信開銷代價是值得的. 表4 方案的通信開銷比較分析 步驟MACSPP[4]AKPS[16]ABFSECSKeyGen|skDO|+n|skDU|同 MACSPP同 MACSPPEncrypt|C|同 MACSPP同 MACSPPIndexGenl|I|+3同 MACSPP2l|I|+2Search|T|同 MACSPP同 MACSPPPreDec|m'|同 MACSPP同 MACSPP 實驗環(huán)境為Intel(R) Core(TM) i7-7700服務(wù)器處理器,3.60 GHz CPU主頻,16 GB內(nèi)存,運行Windows Server2008 R2 Enterprise操作系統(tǒng). 對本文提出的ABFSECS方案、文獻[4]的MACSPP方案及文獻[14]的AKPS方案進行了仿真實驗. 設(shè)置方案中數(shù)據(jù)使用者數(shù)目為40,搜索關(guān)鍵字數(shù)目為6,數(shù)據(jù)使用者的平均屬性個數(shù)的取值|A|={4,8,12,16,20,24},圖3(a)對比了ABFSECS方案、文獻[4]的MACSPP方案及文獻[16]的AKPS方案的計算開銷,可以看出隨著數(shù)據(jù)使用者的平均屬性個數(shù)的增加而計算開銷線性增加,ABFSECS方案的計算開銷要小于文獻[4]及文獻[16]中方案的計算開銷. 同樣,設(shè)置方案中數(shù)據(jù)使用者為40,數(shù)據(jù)使用者的平均屬性個數(shù)為8,搜索關(guān)鍵字數(shù)目的取值|W|={3,6,9,12,15,18},圖3(b)對比了ABFSECS方案、文獻[4]的MACSPP方案及文獻[16]的AKPS方案的計算開銷,可以看出隨著搜索關(guān)鍵字數(shù)目的增加而計算開銷線性增加,ABFSECS方案的計算開銷要小于文獻[4]及文獻[16]中方案的計算開銷. 圖3 關(guān)鍵字數(shù)目變化時計算開銷的對比Fig.3 Comparison of computing time when the number of keywords changes 針對保護基于屬性的密文策略可搜索加密云存儲機制中數(shù)據(jù)使用者的屬性隱私和實現(xiàn)云存儲模糊可搜索加密,提出了一種屬性盲化的模糊可搜索加密云存儲方案. 該方案可以減少數(shù)據(jù)使用者的計算時間開銷,具有不可偽造性,可抵抗數(shù)據(jù)使用者與云存儲服務(wù)器間的共謀攻擊,不會泄露數(shù)據(jù)使用者的屬性隱私信息,具有較高的執(zhí)行效率. 下一步工作是在本方案的基礎(chǔ)上針對關(guān)聯(lián)關(guān)鍵字搜索等方面進行研究.5.2 存儲開銷
5.3 通信開銷
6 實驗驗證
7 結(jié)束語