楊小東,陳桂蘭,李 婷,劉 瑞,趙曉斌
(1.西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州 730070; 2.甘肅安信信息安全技術(shù)有限公司,蘭州 730000)
隨著大數(shù)據(jù)和云計(jì)算的迅速發(fā)展,越來越多的組織和個(gè)人傾向于將數(shù)據(jù)遷移到云服務(wù)器,以便節(jié)省本地資源[1-2]。然而數(shù)據(jù)擁有者一旦將敏感數(shù)據(jù)上傳到云服務(wù)器,將會(huì)失去對數(shù)據(jù)的完全控制,從而導(dǎo)致未授權(quán)用戶和云服務(wù)器提供商訪問或惡意竊取用戶的敏感數(shù)據(jù)。因此,數(shù)據(jù)的安全性是云計(jì)算亟待解決的關(guān)鍵問題之一[3-4]。為實(shí)現(xiàn)數(shù)據(jù)的機(jī)密性,數(shù)據(jù)擁有者通常在數(shù)據(jù)外包之前對其進(jìn)行加密,但面臨加密數(shù)據(jù)有效檢索的問題[5-6]。可搜索加密技術(shù)具有密文的關(guān)鍵字搜索等功能,能保障加密數(shù)據(jù)的安全性和隱私性,已成為近年來云計(jì)算安全領(lǐng)域的一個(gè)研究熱點(diǎn)[7]。
自可搜索加密思想[8]被提出后,一些具有特殊性質(zhì)的可搜索加密方案相繼出現(xiàn)[9-10]。2004年,文獻(xiàn)[11]提出了公鑰可搜索加密方案,但需要在安全信道中傳輸關(guān)鍵字陷門。此后,文獻(xiàn)[12]提出了無安全信道的公鑰可搜索加密方案,但加密數(shù)據(jù)文件時(shí)需要訪問用戶和服務(wù)器的公鑰。文獻(xiàn)[13]提出了基于證書的可搜索加密方案,但只滿足選擇明文安全性。文獻(xiàn)[14]提出了另一個(gè)基于證書加密方案,通過引入第三方經(jīng)理減輕了云計(jì)算的負(fù)擔(dān)。然而,文獻(xiàn)[13-14]提出的可搜索加密方案都面臨復(fù)雜的證書管理開銷問題。對此,文獻(xiàn)[15-16]分別提出了基于身份的可搜索加密方案,但依然只滿足選擇明文攻擊下的不可區(qū)分性,并且需要一個(gè)可信的密鑰生成中心(Key Generation Center,KGC)生成用戶的私鑰。文獻(xiàn)[17-18]提出的基于無證書密碼體制的密文檢索方案,有效解決了密鑰托管問題,但都只適用于單用戶的密文數(shù)據(jù)檢索,在實(shí)際應(yīng)用中具有一定的局限性。
針對有可搜索加密方案計(jì)算開銷大和安全性現(xiàn)低[19-20]的問題,本文提出一種多用戶密文檢索方案。該方案采用無證書密碼體制生成關(guān)鍵字陷門,避免使用公鑰證書,支持多用戶的密文檢索,并可通過訪問用戶授權(quán)列表實(shí)現(xiàn)訪問用戶的加入與撤銷等功能。同時(shí),在關(guān)鍵字加密階段,數(shù)據(jù)擁有者無須指定訪問用戶的身份,由此提高計(jì)算性能,使方案適用于云存儲(chǔ)環(huán)境。
給定相同素?cái)?shù)階p的2個(gè)循環(huán)群G1和G2,雙線性映射e:G1×G1→G2滿足以下性質(zhì):
2)非退化性:e(g,g)≠1,其中,g是G1的一個(gè)生成元。
3)可計(jì)算性:對于?u,v∈G1,e(u,v)是有效可計(jì)算的。
定義1(BDH假設(shè)) 如果沒有一個(gè)多項(xiàng)式時(shí)間算法能以不可忽略的概率解決BDH問題,則稱BDH問題是困難的。
定義2(mDDH假設(shè)) 如果沒有一個(gè)多項(xiàng)式時(shí)間算法能以不可忽略的概率解決mDDH問題,則稱mDDH問題是困難的。
一個(gè)公鑰可搜索加密方案由以下9個(gè)多項(xiàng)式時(shí)間算法組成:
1)Setup(1λ):輸入安全參數(shù)λ,KGC生成主密鑰msk和系統(tǒng)公共參數(shù)param。
2)PatialKeyGen(param,msk,id):輸入param、msk以及某個(gè)實(shí)體的身份id,KGC生成相應(yīng)的部分私鑰psk。
3)KeyGen(param,psk):輸入param以及psk,該算法輸出對應(yīng)的公鑰pk以及完整私鑰sk。
4)Enc(param,pk,W,F):輸入param、服務(wù)器公鑰pk、關(guān)鍵字集W和數(shù)據(jù)文件F,輸出數(shù)據(jù)文件密文CT以及密文索引CF。
5)Auth(param,pkidi,k):輸入param、訪問用戶公鑰pkidi以及文檔密鑰k,輸出授權(quán)用戶授權(quán)列表LF。
6)Trapdoor(param,pkids,skidi,w′):輸入param、服務(wù)器公鑰pkids、數(shù)據(jù)擁有者私鑰skidi以及查詢關(guān)鍵字w′,輸出搜索陷門Tw′。
7)Search(param,skids,Tw′,I):輸入param、服務(wù)器私鑰skids、Tw′以及Ci,輸出相關(guān)數(shù)據(jù)文件密文。
8)Add(param,k,LF,pkidi):輸入k、授權(quán)列表LF以及待授權(quán)訪問用戶公鑰pkidi,將新用戶添加到授權(quán)列表中,輸出更新成功。
9)Revoke(LF,Ui):輸入授權(quán)列表LF以及待撤銷授權(quán)用戶Ui,將用戶從授權(quán)列表中刪除,輸出撤銷成功。
一個(gè)公鑰可搜索加密方案的安全模型[7]主要從密文索引不可區(qū)分性和陷門不可區(qū)分性兩方面進(jìn)行安全性定義,但在定義陷門不可區(qū)分性時(shí),關(guān)鍵字攻擊只考慮外部敵手而不考慮服務(wù)器猜測攻擊。
本文方案的系統(tǒng)模型如圖1所示,其中包括KGC、數(shù)據(jù)擁有者(Data Owner,DO)、n個(gè)訪問用戶{U1,U2,…,Un}以及云服務(wù)提供商(Cloud Server Provider,CSP)。其中:KGC主要負(fù)責(zé)生成系統(tǒng)參數(shù)和每個(gè)實(shí)體的部分私鑰;DO主要負(fù)責(zé)生成數(shù)據(jù)文件密文、關(guān)鍵字密文索引和訪問用戶的授權(quán)列表;訪問用戶Ui生成關(guān)鍵字陷門,并解密CSP返回的數(shù)據(jù)文件密文;CSP主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù)文件密文、關(guān)鍵字索引和訪問用戶的授權(quán)列表,并響應(yīng)訪問用戶的搜索請求。
圖1 本文方案的系統(tǒng)模型Fig.1 System model of the proposed model
本文方案中各算法的描述如下:
2)PatialKeyGen算法。KGC為收到的每個(gè)訪問用戶身份idi計(jì)算生成部分私鑰pskidi=H(idi)x,并將部分私鑰pskidi通過安全信道發(fā)送給訪問用戶;類似地,身份為ids的CSP獲得部分私鑰pskids=H(ids)x。
5)Auth算法。DO初始化數(shù)據(jù)文件F的訪問用戶授權(quán)列表LF=?。對于每個(gè)訪問用戶,首先利用其公鑰pkidi和文檔密鑰k計(jì)算授權(quán)信息ΔF→Ui=(pkidi)k=gsik,然后在LF中添加(pkidi,ΔF→Ui),最后將更新后的訪問用戶授權(quán)列表LF發(fā)送至CSP。
8)Add算法。當(dāng)收到訪問用戶Uj對數(shù)據(jù)文件F的授權(quán)請求后,DO利用其公鑰pkidj和文檔密鑰k計(jì)算ΔF→Ui=(pkidi)k=gsik,將(pkidj,ΔF→uj)提交給CSP,并請求更新文檔F的授權(quán)列表,同時(shí)將授權(quán)成功的信息發(fā)送給訪問用戶Uj。
9)Revoke算法。若DO想撤銷訪問用戶Ui對數(shù)據(jù)文件F的訪問授權(quán),則將Ui的公鑰pkidi發(fā)送給CSP。收到DO的撤銷請求后,CSP在LF中查找對應(yīng)條目(pkidi,ΔF→Ui),并將其從LF中刪除。
對本文方案進(jìn)行正確性分析:
CSP收到正確的關(guān)鍵字密文Ci=(Ci1,Ci2,Ci3)=(H2(e(H1(wi)k·ri,pkids)),gx·k,ri)和搜索陷門Tw′=(T1,T2,T3)=(gtr′,(H1(w′)·H(idi)x)1/si·gr′,H(ids)si)后,計(jì)算:
σ1=e(T2t/T1,ΔF→ui)e(H(ids)x,gsi)=
e(H1(w′),g)tke(H(idi),g)txke(H(ids),g)six
e(H(ids),g)six·e(H(idi),g)txk
σ3=σ1/σ2=e(H1(w′),g)tk
定理1在BDH假設(shè)下,本文方案在隨機(jī)預(yù)言機(jī)模型下滿足密文索引不可區(qū)分性。
定理2在mDDH假設(shè)下,本文方案在隨機(jī)預(yù)言機(jī)模型下對外部敵手滿足陷門不可區(qū)分性。
3)陷門詢問1。其過程與定理1的陷門詢問1相同。
5)陷門詢問2。此過程與定理1的陷門詢問2相同。
將本文方案與文獻(xiàn)[7,18]提出可搜索加密方案進(jìn)行計(jì)算開銷的比較,如表1所示。為便于表述,用E1表示G1上的一次指數(shù)運(yùn)算,h1和h2分別表示哈希函數(shù)H1和H2的一次運(yùn)算,P表示一次雙線性配對運(yùn)算??梢钥闯?在密鑰生成階段,本文方案較文獻(xiàn)[18]方案減少了5次指數(shù)運(yùn)算,但較文獻(xiàn)[7]增加了2次指數(shù)運(yùn)算;在關(guān)鍵字加密階段,本文方案較文獻(xiàn)[18]減少了6次指數(shù)運(yùn)算,但增加了1次H2運(yùn)算以及1次配對運(yùn)算;在陷門生成階段,本文方案較文獻(xiàn)[18]減少了3次指數(shù)運(yùn)算,但較文獻(xiàn)[7]增加了1次指數(shù)運(yùn)算;在搜索驗(yàn)證階段,本文方案較文獻(xiàn)[18]減少了1次指數(shù)運(yùn)算,增加了1次H2運(yùn)算,較文獻(xiàn)[7]減少了1次指數(shù)運(yùn)算,增加了3次配對運(yùn)算。由于文獻(xiàn)[7]方案面臨證書的管理開銷問題,而文獻(xiàn)[18]方案僅支持單用戶的密文檢索,因此本文方案具有較高的計(jì)算效率和安全性能。
表1 3種方案各階段的計(jì)算開銷Table 1 Computational overhead of three schemesin each stage
利用PBC庫對3種方案進(jìn)行仿真實(shí)驗(yàn),如圖2和圖3所示。硬件環(huán)境為:3.1 GHz英特爾酷睿i5-2400處理器,4 GB內(nèi)存,512 GB硬盤空間。軟件環(huán)境為:64位Windows 10操作系統(tǒng),密碼庫PBC-0.4.7-VC。
圖2所示為單個(gè)關(guān)鍵字情況下3種方案密鑰生成、關(guān)鍵字加密、關(guān)鍵字陷門生成以及搜索階段的計(jì)算開銷。同時(shí),從數(shù)據(jù)集中分別選取10個(gè)、20個(gè)、50個(gè)、100個(gè)關(guān)鍵字對3種方案的關(guān)鍵字加密算法、陷門生成算法以及搜索算法進(jìn)行計(jì)算開銷分析,如圖3所示。其中,圖3(a)反映了關(guān)鍵字加密時(shí)間隨關(guān)鍵字?jǐn)?shù)量的變化,圖3(b)反映了陷門生成時(shí)間隨關(guān)鍵字?jǐn)?shù)量的變化,圖3(c)反映了搜索時(shí)間隨關(guān)鍵字個(gè)數(shù)的變化。由圖2和圖3可知,本文方案在密鑰生成、關(guān)鍵字加密、關(guān)鍵字陷門生成以及搜索階段具有一定的計(jì)算優(yōu)越性。
圖2 單個(gè)關(guān)鍵字情況下3種方案的計(jì)算性能Fig.2 Computational performance of three schemes in thecase of a single keyword
圖3 多個(gè)關(guān)鍵字情況下3種方案的計(jì)算性能Fig.3 Computational performance of three schemes in thecase of multiple keywords
本文基于無證書密碼體制提出一種新的公鑰可搜索加密方案,其安全性依賴于BDH假設(shè)和mDDH假設(shè),并且在關(guān)鍵字加密階段無需指定用戶訪問權(quán)限,支持多用戶密文檢索,可通過授權(quán)列表實(shí)現(xiàn)了用戶的加入與撤銷等功能。分析結(jié)果表明,與文獻(xiàn)[7,18]提出的可搜索加密方案相比,該方案具有較高的計(jì)算性能,適用于多用戶的云端密文檢索環(huán)境。本文方案在隨機(jī)預(yù)言模型下是可證明安全的,下一步將在本文標(biāo)準(zhǔn)模型下設(shè)計(jì)基于無證書的多用戶密文檢索方案。