馬 華, 顏雪薇, 劉振華, 董恩廷
(西安電子科技大學 數學與統計學院, 西安 710071)
在云計算環境下, 用戶為節省本地存儲資源通常把數據加密后上傳至云服務器, 供授權用戶共享. 但在實際云計算應用中, 數據經常會共享給一些具體身份信息未知的用戶, 這種情況即需要一個細粒度的訪問控制策略, 屬性基加密機制解決了該問題. 但在動態的屬性加密系統中, 仍存在許多問題, 如在云存儲系統中, 如果一個不誠實的授權用戶為了某些利益把他的解密密鑰泄漏給一些未被授權的用戶, 使得未授權用戶可以訪問存儲在云上的敏感數據, 則會導致數據擁有者的隱私遭到泄漏. 因此, 如何通過被泄漏的密鑰追蹤到不誠實用戶的身份, 如何撤銷不誠實用戶的解密權限以及如何避免屬性中心非法生成和發放私鑰的行為是亟待解決的問題[1]. Lee[2]構造了支持用戶撤銷的屬性基加密方案, 但該方案不能解決惡意用戶追蹤和機構可追責的問題; Ning等[3]提出了支持追責的屬性基加密方案, 該方案使用“不動點”作為密鑰擁有者的標識符, 把密鑰擁有者的身份嵌入私鑰組件中, 只要獲取被泄漏的私鑰, 即可從私鑰中提取到用戶的身份. 同時, 通過中心與用戶交互生成解密密鑰, 解決了半信任中心濫用密鑰的問題. 但該方案還存在以下缺點:
1) 私鑰生成安全問題. 用戶隨機選擇一個值c′, 把私鑰中的c轉換為c·c′即可將私鑰隨機化, 且隨機化的私鑰可通過密鑰可用性測試, 但密鑰中嵌入的身份已改變;
2) 屬性個數需在系統建立階段被預先確定, 當添加新屬性時, 需重新建立系統;
3) 只能追蹤到惡意用戶的身份, 但不支持用戶解密權限的撤銷.
針對上述問題, 本文在支持大屬性空間方案[4]的基礎上, 提出一個支持追責和用戶撤銷的屬性基加密方案. 該方案使用文獻[5]中的方案解決了私鑰生成的安全問題; 使用自更新加密[6]方案和完全子集[7]實現用戶的即時撤銷, 并達到前向/后向安全性, 即保證用戶既不能訪問以后加密的消息, 也不能解密以前的密文.
系統模型如圖1所示, 本文方案的框架主要由以下5個主體組成.

圖1 系統模型Fig.1 System model
1) 云服務器: 為系統中用戶提供存儲服務;
2) 數據擁有者: 把自己的加密數據上傳至云服務器, 以便與其他用戶共享;
3) 用戶: 從云服務器上下載共享的數據, 并解密密文得到相應的明文;
4) 屬性中心: 建立系統并與用戶交互生成用戶的私鑰; 執行追蹤過程, 將追蹤到的結果發送給數據擁有者; 但數據擁有者并不確定該結果的正確性;
5) 第三方審計者: 如果追蹤到的用戶聲稱自己是無辜的, 就需要第三方審計者與用戶交互, 對追蹤結果進行驗證.
本文方案由系統建立、密鑰生成、自更新密鑰生成、加密、解密、密文更新、追蹤和審計8種算法構成.

q1≠q2, |q1|=|q2|, gcd(q1q2,(q1-1)(q2-1))=1,


1) U先隨機選擇s∈Zp并且計算RU=gs, 然后把RU、身份id和屬性集S發送給中心AT; 最后U再與AT交互地進行關于RU的離散對數零知識證明[1];

其中A表示訪問策略, 并把(c1,SKpri)發送給U. U首先檢查下列等式是否成立:
}τ∈{1,2,…,k}),
(5)
其中SKT-ABE,k的k表示路徑上第k個節點, 最終輸出私鑰
SKS,id=(PVid,SKT-ABE,0,…,SKT-ABE,dmax).

(6)
最終輸出包含T和R的更新密鑰UKT,R={CVR,SKSUE,1,…,SKSUE,m}.

((M,ρ),C0=gt,C1=gat, {Ci,1=wλivti,Ci,2=(uρ(i)h)-ti,Ci,3=gti}i∈{1,2,…,l}).
(7)
產生自更新加密[6]密文CHSUE的過程如下:
首先, 通過計算ψ(T)得到一個標簽L∈{0,1}d,d為二叉樹的深度; 其次, 選擇隨機指數s1,s2,…,sd∈Zp, 設置一個指數向量s=(s1,s2,…,sd), 并且得到:
(8)
對于1≤j≤d, 令L(j)=L|d-j‖1, 其中,L|d-j表示L前(d-j)個比特值, ‖表示一個連接符. 執行步驟如下:

3) 對于某個d′≤d, 移除所有空的CH(j), 并且設置CHSUE=(CH(0),CH(1),…,CH(d′)), 其只由非空的CH(j)組成, 注意CH(j)要根據前序遍歷安排. 最終輸出密文為
CHA,T=(CHT-ABE,CHSUE,C=Ωtm).
(9)
輸入與訪問策略A和時間T相關的密文CHA,T=(CHT-ABE,CHSUE,C), 與屬性集S和用戶身份id相關的密鑰SKS,id=(PVid,SKABE,0,…,SKABE,dmax), 與更新時間T′和撤銷列表R相關的更新密鑰UKT′,R={CVR,SKSUE,1,…,SKSUE,m}和公共參數PP.
1) 如果U?R, 則通過運行完全子集[7]匹配算法(CVR,PVU)得到(Sj,Si); 否則, 輸出⊥.

(10)

(11)
EKT-ABE=D/E,
(12)
其中,τ是集合S中的屬性ρ(i)的索引,τ∈|S|與i∈|I|范圍相同.
3) 從CHT中找到CH(j), 其中L(j)是L′=ψ(T′)的前綴, 計算:
,Ki,2).
(13)
4) 通過計算
m=C·(EKT-ABE·EKSUE)-1
(14)
得到明文m, 注意與下標m區分; 否則, 輸出⊥.
首先可通過計算ψ(T)得到標簽L∈{0,1}l, 然后輸入時間T的密文CHT=(CH(0),…,CH(d′))、下一個時間點T+1、一個比特值C∈{0,1}和公共參數PP. 將L(j)作為CH(j)的標簽. 執行過程如下:
1) 如果L(0)的長度d小于dmax, 則選擇隨機指數sd+1∈Zp, 并為新的標簽字符串L′=L‖C輸出密文
CHL(0)‖0是下一個時間點T+1根據前序遍歷生成的密文, 刪除CHL(0)‖1中多余的元素. 最后輸出更新后的密文
CHSUE′=(CH′(0)=CHL(0)‖0,CH′(1)=CHL(0)‖1,CH′(2)=CH(1),…,CH′(d′+1)=CH(d′)).
(16)
2) 否則, 復制CH(0)中的公共元素到CH(1)中, 并且移除CH(0), 因為CH(1)是下一時間點T+1通過前序遍歷生成的密文.
3) 輸出密文CHSUE′=(CH′(0)=CH(1),…,CH′(d′-1)=CH(d′)).
4) 最終輸出更新密文CHA,T+1=(CHT-ABE,CHSUE′,C).
輸入公共參數PP和密鑰SK, 此處的密鑰為中心和用戶交互生成的密鑰, 該密鑰結構正常且能正常解密密文, 則從SK中T=(1+q)idrqmodq2提取身份id, 由Q=π-1modq知
TπQ=(1+q)id·πQrq·πQmodq2=(1+q)idmodq2=1+id·qmodq2,
因此, 通過
(17)
可恢復出id, 最后輸出身份id.

1) 用戶U把自己的解密密鑰SKid發送給審計者PA, 如果該密鑰結構錯誤或不能解密密文, 則審計者PA終止交互; 否則, 轉2);
本文方案的安全性證明分為四部分: 撤銷功能的證明、中心可追責的證明、屬性基加密方案中不可區分性的證明以及用戶追蹤功能的證明. 撤銷功能的證明與文獻[2]方案中的撤銷證明基本相同, 中心可追責的證明較簡單, 把證明規約到離散對數問題即可. 因此, 下面只給出屬性基加密方案的證明和用戶追蹤功能的證明.
定理1如果支持大屬性空間的屬性基加密方案[4]是選擇明文安全的, 則本文方案中支持大屬性和追責的屬性基加密方案是選擇明文安全的.
證明: 為方便描述, 用Σlucpabe和Σtlucpabe分別表示文獻[4]方案和本文方案中的屬性基加密方案. 假設存在一個具有挑戰矩陣M*的敵手A, 有AdvAΣtlucpabe的優勢來選擇性攻破方案Σtlucpabe, 其中M*是一個l×n的矩陣. 本文構造一個算法B, 它有AdvBΣlucpabe的優勢來選擇性攻破方案Σlucpabe, 其中,AdvBΣlucpabe=AdvAΣtlucpabe. 敵手B是敵手A的挑戰者.
初始化:B從A處得到一個挑戰策略(M*,ρ*), 并將挑戰策略發送給Σlucpabe. 其中: M*是一個l×n矩陣; ρ*∈F([l]→Zp).
系統建立: Σlucpabe發送給B公共參數PPΣlucpabe后, B隨機選擇a∈Zp及兩個隨機素數q1,q2, 令q=q1·q2, π=lcm(q1-1,q2-1), Q=π-1modq和g1=(1+q). 將ga,q和g1添加到PPΣlucpabe, 從而得到一個新的公共參數PP=(D,q,g,u,h,w,v,g1,ga,e(g,g)γjk), 將新的公共參數發送給A.


(18)

階段2: 與階段1相同.
猜測: 敵手A輸出他的猜測β′, 并將β′發送給B, B將β′發送給Σlucpabe.

表1列出了本文方案與現有屬性基加密方案[2-3,8]的性能比較. 為方便描述, 令dmax表示樹BT的最大深度, |I|表示滿足密文中訪問策略解密密鑰中屬性的個數. 與文獻[2]方案相比, 本文方案犧牲了一個對運算, 但實現了用戶追責功能, 并避免了半信任中心濫用密鑰的問題; 與文獻[3]方案相比, 本文方案中的對運算個數略有增加, 但實現了大屬性空間與用戶撤銷功能, 并解決了密鑰生成中的安全問題; 與文獻[8]方案相比, 本文方案增加了常數個對運算, 但實現了用戶撤銷和機構追責的功能, 并且追蹤過程無需存儲代價.

表1 不同方案的功能與效率比較
綜上所述, 本文提出了一個支持追責和用戶撤銷的屬性基加密方案. 該方案解決了對惡意用戶和半信任中心的追責問題, 并實現了用戶撤銷功能, 更適用于現實環境, 在可容許范圍內增加了計算量, 使本文方案具有實際的應用價值, 并且該方案被證明是選擇明文安全的.