朱國斌,謝 鑫,張 星,趙 洋,熊 虎
(1. 電子科技大學(xué)信息與軟件工程學(xué)院 成都 610054;2. 網(wǎng)絡(luò)與數(shù)據(jù)安全四川省重點(diǎn)實(shí)驗(yàn)室 成都 610054)
隨著以云存儲為代表的大規(guī)模分布式存儲技術(shù)的成熟與推廣,具有隱私保護(hù)與訪問控制功能的密碼機(jī)制有了重要的應(yīng)用價(jià)值[1-2]。在基于身份加密算法的基礎(chǔ)上,文獻(xiàn)[3]提出了屬性基加密(attributebased encryption, ABE)方案。通過引入屬性的概念,采用屬性集替代用戶身份,以實(shí)現(xiàn)對數(shù)據(jù)的細(xì)粒度訪問。在屬性基加密中,用戶擁有的屬性與加解密過程關(guān)聯(lián),只有當(dāng)用戶屬性滿足預(yù)定的訪問結(jié)構(gòu)時(shí),用戶才能夠正確執(zhí)行解密過程。屬性基加密采用一對多的模式,將訪問控制與數(shù)據(jù)加密相結(jié)合,通過用戶屬性的與、或、非和門限操作的組合,可以實(shí)現(xiàn)靈活的細(xì)粒度訪問控制策略管理[4-5]。依據(jù)訪問控制策略實(shí)現(xiàn)的方式,屬性基加密算法可以被分為為兩種類型:密文策略屬性基加密(ciphertextpolicy ABE, CP-ABE)[6]和密鑰策略屬性基加密(keypolicy ABE, KP-ABE)[7]。KP-ABE 將密文與解密策略關(guān)聯(lián),CP-ABE 則將用戶私鑰與解密策略關(guān)聯(lián)。
早期的研究工作中,多數(shù)ABE 方案主要關(guān)注對訪問策略的表達(dá)與實(shí)現(xiàn)能力,未對用戶屬性撤銷問題進(jìn)行關(guān)注[8-11]。在實(shí)際應(yīng)用中,不同用戶通常擁有部分相同的屬性,屬性到期、屬性變更、密鑰泄露、用戶動態(tài)加入與退出等情況往往會引發(fā)屬性撤銷的問題。具體地,實(shí)用的屬性基加密應(yīng)該在用戶訪問權(quán)限出現(xiàn)變化時(shí),能夠通過權(quán)限更新使得用戶屬性變化后不滿足訪問結(jié)構(gòu)的用戶無法使用舊密鑰解密密文,同時(shí)不影響其他訪問權(quán)限未發(fā)生變化的用戶。因此,構(gòu)建支持高效屬性撤銷的ABE 方案成為亟需解決的關(guān)鍵問題[12]。
文獻(xiàn)[13]首次提出用戶屬性撤銷的概念。文獻(xiàn)[14]采用基于身份的組播加密技術(shù)和線性秘密共享技術(shù),提出了屬性撤銷的兩種實(shí)現(xiàn)方式:間接撤銷與直接撤銷。間接撤銷是指由可信的授權(quán)機(jī)構(gòu)定期更新未撤銷用戶的密鑰,被撤銷的用戶因不會收到更新而使得密鑰失效。間接撤銷的優(yōu)勢在于不需要維護(hù)撤銷列表,其缺點(diǎn)是需要授權(quán)中心進(jìn)行在線密鑰更新,密鑰更新的開銷與用戶數(shù)量線性相關(guān),因此容易形成系統(tǒng)瓶頸。直接撤銷由發(fā)送方在信息加密階段將撤銷用戶的列表信息加入密文,從而實(shí)現(xiàn)對指定用戶的撤銷。直接撤銷方案[15-17]中大部分使用了廣播加密技術(shù),開銷較大。為減輕授權(quán)機(jī)構(gòu)的工作量,文獻(xiàn)[18]采用版本號標(biāo)記密鑰密文,同時(shí)引入代理服務(wù)器,將代理重加密技術(shù)與CP-ABE 相結(jié)合,降低了授權(quán)機(jī)構(gòu)的工作量,實(shí)現(xiàn)了較小開銷的屬性撤銷。文獻(xiàn)[19]構(gòu)造了一個基于中國剩余定理的可撤銷CP-ABE 方案,在實(shí)現(xiàn)直接撤銷的同時(shí)可保持固定的密文和密鑰長度。上述所有支持撤銷的屬性基加密方案仍然存在著屬性撤銷開銷較大的問題,具有進(jìn)一步優(yōu)化的空間。
本文結(jié)合中國剩余定理和多值通配與門訪問策略,提出了一個支持直接撤銷功能的CP-ABE 方案,該方案同時(shí)還具有密文長度和解密開銷固定的特點(diǎn)。在給出形式化定義和安全模型后,采用雙線性映射給出了方案的具體構(gòu)造。形式化的安全證明和實(shí)驗(yàn)分析都表明本文方案是高效而安全的。
以上方程組的解是唯一的:
依據(jù)訪問策略的不同,使用較多的是正負(fù)通配與門和多值通配與門,其中多值通配與門在相同訪問策略下具有更好的靈活性,故本文選用了多值通配與門來表示訪問控制結(jié)構(gòu)。現(xiàn)假設(shè)有訪問策略如表1 所示。
表1 訪問策略示例
本方案中共有5 個參與者:數(shù)據(jù)訪問者、數(shù)據(jù)擁有者、數(shù)據(jù)存儲服務(wù)器、外包解密服務(wù)器、權(quán)威中心。具體說明如下:
1) 權(quán)威中心(trusted center, TC):一個可信的第三方,其可以初始化系統(tǒng)的主公鑰和主私鑰,為用戶生成和分發(fā)屬性私鑰。在用戶撤銷時(shí),TC 執(zhí)行撤銷算法更新密文,使被撤銷用戶失去密文的解密權(quán)限。
2) 數(shù)據(jù)擁有者(data owner, DO):將盲化處理后的明文發(fā)送給TC,并接收TC 加入撤銷參數(shù)的返回結(jié)果,然后使用TC 生成的公鑰對明文加密后發(fā)送給數(shù)據(jù)存儲服務(wù)器。
3) 數(shù)據(jù)訪問者(data visitor, DV):從TC 中獲取自身屬性集關(guān)聯(lián)的私鑰,在屬性集滿足解密所需的訪問策略時(shí),DV 能使用私鑰解密密文獲得正確的明文。
4) 數(shù)據(jù)存儲服務(wù)器(data storage server, DSS):提供密文的存儲服務(wù)。
5) 外包解密服務(wù)器(outsourcing decryption server, ODS):主要協(xié)助DV 完成解密工作。方案中假定ODS 是不可信的,其計(jì)算產(chǎn)生的結(jié)果為中間密文,DV 需在本地執(zhí)行少量計(jì)算獲得明文。
本方案的工作流程可描述為:1) TC 初始化系統(tǒng),DO 從TC 處獲取公鑰,依據(jù)訪問結(jié)構(gòu)和撤銷參數(shù),對明文進(jìn)行加密處理,然后將密文發(fā)送給DSS 存儲;2) 在數(shù)據(jù)訪問過程中,DV 首先從DSS 上下載密文,并將轉(zhuǎn)換密鑰和密文一起發(fā)送給ODS 進(jìn)行預(yù)解密操作,并接收從ODS 發(fā)回的預(yù)解密結(jié)果;3) DV 在預(yù)解密結(jié)果上執(zhí)行本地解密過程,最后獲取解密后的明文;4) 當(dāng)需要進(jìn)行用戶撤銷時(shí),TC 執(zhí)行撤銷過程,對DSS 中涉及用戶撤銷的密文進(jìn)行更新,完成對用戶透明的撤銷過程。
在屬性基加密方案的安全分析中,通常做法是將敵手對方案的攻擊歸約到具體困難問題的求解,由于這些困難問題利用現(xiàn)有知識無法在多項(xiàng)式時(shí)間內(nèi)找到其對應(yīng)的解,因此其對應(yīng)算法是安全的。
本節(jié)將證明方案在DBDH 假設(shè)下是選擇明文攻擊下的不可區(qū)分性(indistinguishability under chosenplaintext attack, IND-CPA)安全的,IND-CPA 游戲模式如圖1 所示。不可區(qū)分選擇明文安全模型中包含兩個參與方,分別是敵手和挑戰(zhàn)者。敵手通過對挑戰(zhàn)者發(fā)起詢問,可以得到任意明文所對應(yīng)的密文信息。根據(jù)已知的明文與密文的對應(yīng)關(guān)系,敵手將嘗試對加密系統(tǒng)進(jìn)行破解。在之后的挑戰(zhàn)階段,敵手會向挑戰(zhàn)者發(fā)送兩條等長的明文,挑戰(zhàn)者將隨機(jī)選擇一條明文進(jìn)行加密,并將加密后的密文發(fā)送給敵手,敵手根據(jù)該密文猜測其對應(yīng)明文,如果敵手能夠以不可忽略的優(yōu)勢猜出對應(yīng)明文,則稱敵手在該過程中取得勝利。
圖1 IND-CPA 游戲
本節(jié)對方案的性能進(jìn)行分析,如表2 所示。
表2 性能對比
本文的性能分析主要選取的指標(biāo)為:1)密文長度,該指標(biāo)主要反映DSS 上存儲加密文件的開銷;2)用戶私鑰的大小,該指標(biāo)主要反映DV 本地存儲密鑰的開銷;3)解密開銷:該指標(biāo)主要反映DV 解密密文的計(jì)算開銷[26]。在考慮解密開銷時(shí),僅考慮DV 本地計(jì)算的開銷,忽略方案中外包計(jì)算的開銷。群G和Gt中單個成員的比特長度用|G|和|Gt|表示,n為屬性域中的屬性個數(shù)。在解密開銷中,主要考慮雙線性運(yùn)算和指數(shù)運(yùn)算這兩類開銷最大的計(jì)算次數(shù)。TGt為在群Gt上完成指數(shù)運(yùn)算的時(shí)間,Te為完成雙線性映射運(yùn)算的時(shí)間。
文獻(xiàn)[18]、[19]和[22]均實(shí)現(xiàn)了密文固長。文獻(xiàn)[18]在實(shí)現(xiàn)了固長密文和密鑰的同時(shí)降低了DSS 和DV 的存儲開銷,但其解密開銷為本方案的兩倍。本文方案的密文長度比文獻(xiàn)[16]和文獻(xiàn)[19]小,但略大于文獻(xiàn)[22]。文獻(xiàn)[22]通過犧牲應(yīng)用的靈活性,對存儲開銷和計(jì)算開銷都進(jìn)行了優(yōu)化,但優(yōu)化導(dǎo)致該方案在應(yīng)用時(shí)要求所有滿足或不滿足訪問結(jié)構(gòu)的屬性均對應(yīng)才能解密,因此降低了實(shí)用性。
由于本方案實(shí)現(xiàn)了密文固長,且密文長度只有2|G|+|Gt|,與實(shí)現(xiàn)了撤銷功能的文獻(xiàn)[18]、[19]、[25]和實(shí)現(xiàn)了外包功能的文獻(xiàn)[20]相比,本方案有更小的密文與密鑰存儲開銷。
如表3 所示,除了文獻(xiàn)[20]和[22]以外,其他的文獻(xiàn)都實(shí)現(xiàn)了撤銷機(jī)制,而方案[18]實(shí)現(xiàn)了間接撤銷。除了文獻(xiàn)[18]和[22],其他在適應(yīng)性安全模型下都是安全的。而本文所提方案是支持直接撤銷的CP-ABE,且方案安全性在適應(yīng)性安全模型中被規(guī)約到DBDH 假設(shè)上。
在解密開銷方面,本方案實(shí)現(xiàn)了外包計(jì)算,將方案中復(fù)雜雙線性計(jì)算的部分交由外包服務(wù)器完成,DV 在本地只需進(jìn)行少量運(yùn)算,開銷僅為2TGt,故DV 的運(yùn)算開銷相比于文獻(xiàn)[18]、文獻(xiàn)[22]、文獻(xiàn)[24]、文獻(xiàn)[25]和解密復(fù)雜度與撤銷次數(shù)相關(guān)的文獻(xiàn)[21]更小。
表3 各文獻(xiàn)方案比較
此外,在具有Intel Core i5-8 400 CPU @ 2.8GHz和16 GB 內(nèi)存的Windows 10 PC 的實(shí)驗(yàn)環(huán)境下,使用JPBC 庫對性能分析中所涉及的方案通過實(shí)驗(yàn)?zāi)M進(jìn)一步進(jìn)行分析和比較[27]。實(shí)驗(yàn)主要模擬了各方案的解密過程。由圖2 所示,隨著屬性域中屬性個數(shù)的增加,文獻(xiàn)[18]、[21]、[22]、[24]以及 [25]的解密時(shí)間增加。本文所提方案、文獻(xiàn)[19]、[20]以及[22]所提方案的解密所需時(shí)間基本保持不變,而又在這幾個方案之中,本文所提出的方案具有最短的解密時(shí)間,因此具有較高的效率。
圖2 解密時(shí)間比較
本文提出了一種高效直接撤銷且具有外包解密功能的屬性基加密方案。該方案以中國剩余定理為基礎(chǔ)實(shí)現(xiàn)了用戶撤銷功能,只需更新密文即可撤銷用戶權(quán)限,達(dá)到了可撤銷存儲的目的,確保了系統(tǒng)的前向安全性,不影響未撤銷用戶的私鑰,滿足高效、便捷的動態(tài)權(quán)限變更需求。同時(shí),方案采用了相對更加靈活的多值通配與門構(gòu)造基礎(chǔ)方案,降低了訪問策略的構(gòu)造復(fù)雜度。本方案實(shí)現(xiàn)了密文固長,顯著降低了存儲開銷。此外,為減少用戶本地的解密開銷,本方案將復(fù)雜運(yùn)算安全地外包至第三方服務(wù)器,進(jìn)一步降低了解密過程開銷。在安全性上,本方案采用IND-CPA 安全模型,將安全性規(guī)約至DBDH 問題,完成了安全性證明。與同類方案的對比分析結(jié)果表明,本方案在靈活性和性能上有一定的優(yōu)勢,有良好的實(shí)用價(jià)值。