朱國斌,謝 鑫,張 星,趙 洋,熊 虎
(1. 電子科技大學信息與軟件工程學院 成都 610054;2. 網絡與數據安全四川省重點實驗室 成都 610054)
隨著以云存儲為代表的大規模分布式存儲技術的成熟與推廣,具有隱私保護與訪問控制功能的密碼機制有了重要的應用價值[1-2]。在基于身份加密算法的基礎上,文獻[3]提出了屬性基加密(attributebased encryption, ABE)方案。通過引入屬性的概念,采用屬性集替代用戶身份,以實現對數據的細粒度訪問。在屬性基加密中,用戶擁有的屬性與加解密過程關聯,只有當用戶屬性滿足預定的訪問結構時,用戶才能夠正確執行解密過程。屬性基加密采用一對多的模式,將訪問控制與數據加密相結合,通過用戶屬性的與、或、非和門限操作的組合,可以實現靈活的細粒度訪問控制策略管理[4-5]。依據訪問控制策略實現的方式,屬性基加密算法可以被分為為兩種類型:密文策略屬性基加密(ciphertextpolicy ABE, CP-ABE)[6]和密鑰策略屬性基加密(keypolicy ABE, KP-ABE)[7]。KP-ABE 將密文與解密策略關聯,CP-ABE 則將用戶私鑰與解密策略關聯。
早期的研究工作中,多數ABE 方案主要關注對訪問策略的表達與實現能力,未對用戶屬性撤銷問題進行關注[8-11]。在實際應用中,不同用戶通常擁有部分相同的屬性,屬性到期、屬性變更、密鑰泄露、用戶動態加入與退出等情況往往會引發屬性撤銷的問題。具體地,實用的屬性基加密應該在用戶訪問權限出現變化時,能夠通過權限更新使得用戶屬性變化后不滿足訪問結構的用戶無法使用舊密鑰解密密文,同時不影響其他訪問權限未發生變化的用戶。因此,構建支持高效屬性撤銷的ABE 方案成為亟需解決的關鍵問題[12]。
文獻[13]首次提出用戶屬性撤銷的概念。文獻[14]采用基于身份的組播加密技術和線性秘密共享技術,提出了屬性撤銷的兩種實現方式:間接撤銷與直接撤銷。間接撤銷是指由可信的授權機構定期更新未撤銷用戶的密鑰,被撤銷的用戶因不會收到更新而使得密鑰失效。間接撤銷的優勢在于不需要維護撤銷列表,其缺點是需要授權中心進行在線密鑰更新,密鑰更新的開銷與用戶數量線性相關,因此容易形成系統瓶頸。直接撤銷由發送方在信息加密階段將撤銷用戶的列表信息加入密文,從而實現對指定用戶的撤銷。直接撤銷方案[15-17]中大部分使用了廣播加密技術,開銷較大。為減輕授權機構的工作量,文獻[18]采用版本號標記密鑰密文,同時引入代理服務器,將代理重加密技術與CP-ABE 相結合,降低了授權機構的工作量,實現了較小開銷的屬性撤銷。文獻[19]構造了一個基于中國剩余定理的可撤銷CP-ABE 方案,在實現直接撤銷的同時可保持固定的密文和密鑰長度。上述所有支持撤銷的屬性基加密方案仍然存在著屬性撤銷開銷較大的問題,具有進一步優化的空間。
本文結合中國剩余定理和多值通配與門訪問策略,提出了一個支持直接撤銷功能的CP-ABE 方案,該方案同時還具有密文長度和解密開銷固定的特點。在給出形式化定義和安全模型后,采用雙線性映射給出了方案的具體構造。形式化的安全證明和實驗分析都表明本文方案是高效而安全的。

以上方程組的解是唯一的:

依據訪問策略的不同,使用較多的是正負通配與門和多值通配與門,其中多值通配與門在相同訪問策略下具有更好的靈活性,故本文選用了多值通配與門來表示訪問控制結構?,F假設有訪問策略如表1 所示。

表1 訪問策略示例



本方案中共有5 個參與者:數據訪問者、數據擁有者、數據存儲服務器、外包解密服務器、權威中心。具體說明如下:
1) 權威中心(trusted center, TC):一個可信的第三方,其可以初始化系統的主公鑰和主私鑰,為用戶生成和分發屬性私鑰。在用戶撤銷時,TC 執行撤銷算法更新密文,使被撤銷用戶失去密文的解密權限。
2) 數據擁有者(data owner, DO):將盲化處理后的明文發送給TC,并接收TC 加入撤銷參數的返回結果,然后使用TC 生成的公鑰對明文加密后發送給數據存儲服務器。
3) 數據訪問者(data visitor, DV):從TC 中獲取自身屬性集關聯的私鑰,在屬性集滿足解密所需的訪問策略時,DV 能使用私鑰解密密文獲得正確的明文。
4) 數據存儲服務器(data storage server, DSS):提供密文的存儲服務。
5) 外包解密服務器(outsourcing decryption server, ODS):主要協助DV 完成解密工作。方案中假定ODS 是不可信的,其計算產生的結果為中間密文,DV 需在本地執行少量計算獲得明文。
本方案的工作流程可描述為:1) TC 初始化系統,DO 從TC 處獲取公鑰,依據訪問結構和撤銷參數,對明文進行加密處理,然后將密文發送給DSS 存儲;2) 在數據訪問過程中,DV 首先從DSS 上下載密文,并將轉換密鑰和密文一起發送給ODS 進行預解密操作,并接收從ODS 發回的預解密結果;3) DV 在預解密結果上執行本地解密過程,最后獲取解密后的明文;4) 當需要進行用戶撤銷時,TC 執行撤銷過程,對DSS 中涉及用戶撤銷的密文進行更新,完成對用戶透明的撤銷過程。





在屬性基加密方案的安全分析中,通常做法是將敵手對方案的攻擊歸約到具體困難問題的求解,由于這些困難問題利用現有知識無法在多項式時間內找到其對應的解,因此其對應算法是安全的。
本節將證明方案在DBDH 假設下是選擇明文攻擊下的不可區分性(indistinguishability under chosenplaintext attack, IND-CPA)安全的,IND-CPA 游戲模式如圖1 所示。不可區分選擇明文安全模型中包含兩個參與方,分別是敵手和挑戰者。敵手通過對挑戰者發起詢問,可以得到任意明文所對應的密文信息。根據已知的明文與密文的對應關系,敵手將嘗試對加密系統進行破解。在之后的挑戰階段,敵手會向挑戰者發送兩條等長的明文,挑戰者將隨機選擇一條明文進行加密,并將加密后的密文發送給敵手,敵手根據該密文猜測其對應明文,如果敵手能夠以不可忽略的優勢猜出對應明文,則稱敵手在該過程中取得勝利。

圖1 IND-CPA 游戲


本節對方案的性能進行分析,如表2 所示。

表2 性能對比
本文的性能分析主要選取的指標為:1)密文長度,該指標主要反映DSS 上存儲加密文件的開銷;2)用戶私鑰的大小,該指標主要反映DV 本地存儲密鑰的開銷;3)解密開銷:該指標主要反映DV 解密密文的計算開銷[26]。在考慮解密開銷時,僅考慮DV 本地計算的開銷,忽略方案中外包計算的開銷。群G和Gt中單個成員的比特長度用|G|和|Gt|表示,n為屬性域中的屬性個數。在解密開銷中,主要考慮雙線性運算和指數運算這兩類開銷最大的計算次數。TGt為在群Gt上完成指數運算的時間,Te為完成雙線性映射運算的時間。
文獻[18]、[19]和[22]均實現了密文固長。文獻[18]在實現了固長密文和密鑰的同時降低了DSS 和DV 的存儲開銷,但其解密開銷為本方案的兩倍。本文方案的密文長度比文獻[16]和文獻[19]小,但略大于文獻[22]。文獻[22]通過犧牲應用的靈活性,對存儲開銷和計算開銷都進行了優化,但優化導致該方案在應用時要求所有滿足或不滿足訪問結構的屬性均對應才能解密,因此降低了實用性。
由于本方案實現了密文固長,且密文長度只有2|G|+|Gt|,與實現了撤銷功能的文獻[18]、[19]、[25]和實現了外包功能的文獻[20]相比,本方案有更小的密文與密鑰存儲開銷。
如表3 所示,除了文獻[20]和[22]以外,其他的文獻都實現了撤銷機制,而方案[18]實現了間接撤銷。除了文獻[18]和[22],其他在適應性安全模型下都是安全的。而本文所提方案是支持直接撤銷的CP-ABE,且方案安全性在適應性安全模型中被規約到DBDH 假設上。
在解密開銷方面,本方案實現了外包計算,將方案中復雜雙線性計算的部分交由外包服務器完成,DV 在本地只需進行少量運算,開銷僅為2TGt,故DV 的運算開銷相比于文獻[18]、文獻[22]、文獻[24]、文獻[25]和解密復雜度與撤銷次數相關的文獻[21]更小。

表3 各文獻方案比較
此外,在具有Intel Core i5-8 400 CPU @ 2.8GHz和16 GB 內存的Windows 10 PC 的實驗環境下,使用JPBC 庫對性能分析中所涉及的方案通過實驗模擬進一步進行分析和比較[27]。實驗主要模擬了各方案的解密過程。由圖2 所示,隨著屬性域中屬性個數的增加,文獻[18]、[21]、[22]、[24]以及 [25]的解密時間增加。本文所提方案、文獻[19]、[20]以及[22]所提方案的解密所需時間基本保持不變,而又在這幾個方案之中,本文所提出的方案具有最短的解密時間,因此具有較高的效率。

圖2 解密時間比較
本文提出了一種高效直接撤銷且具有外包解密功能的屬性基加密方案。該方案以中國剩余定理為基礎實現了用戶撤銷功能,只需更新密文即可撤銷用戶權限,達到了可撤銷存儲的目的,確保了系統的前向安全性,不影響未撤銷用戶的私鑰,滿足高效、便捷的動態權限變更需求。同時,方案采用了相對更加靈活的多值通配與門構造基礎方案,降低了訪問策略的構造復雜度。本方案實現了密文固長,顯著降低了存儲開銷。此外,為減少用戶本地的解密開銷,本方案將復雜運算安全地外包至第三方服務器,進一步降低了解密過程開銷。在安全性上,本方案采用IND-CPA 安全模型,將安全性規約至DBDH 問題,完成了安全性證明。與同類方案的對比分析結果表明,本方案在靈活性和性能上有一定的優勢,有良好的實用價值。