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