譚躍生,郉晨爍,王靜宇
(內蒙古科技大學 信息工程學院,內蒙古 包頭 014010) E-mail:398606483@qq.com
近年來,屬性基加密(Attribute Based Encryption,ABE)[1]技術逐漸成為了云訪問控制領域中研究的重點內容,其核心思想是為用戶分配不同的屬性從而決定著不同的訪問權限.根據訪問策略所處位置的不同,分為密鑰策略屬性基加密(KP-ABE)[2]體制和密文策略屬性基加密(CP-ABE)[3]體制.然而,屬性的頻繁撤銷不僅會造成系統的巨大開銷,在撤銷過程中也會對數據安全產生威脅.如何在保障云數據安全的前提下靈活高效的改變用戶訪問權限成為當前云計算領域內最受關注的難題之一.
目前的屬性撤銷研究大多是基于某單一模型,隨著云計算的發展,單一模型逐漸難以滿足多元化的應用場景.例如:在付費電視應用實例中,利用KP-ABE加密方案,廣播臺即加密者能夠直接有效地控制視頻的屬性集合,更好地控制訪問者的訪問證書的權限;CP-ABE亦是如此.2009年Attrapadung等人[4]首次提出雙策略(Dual-Policy Attribute Based Encryption,DP-ABE)的加密方案,其核心思想是將密文策略(稱為主體)與密鑰策略(稱為客體)相結合,一方面,加密者可以將數據與相對應的客體屬性組和主體訪問控制結構同時關聯得出密文;另一方面,用戶通過與自身的主體體屬性組和客體訪問控制結構關聯計算出私鑰,當且僅當主體和客體兩對屬性組和訪問控制結構同時匹配時,方能解密得出明文.現有基于DP-ABE的屬性撤銷研究相對偏少,較為經典的方案是Rao[5]等人提出的通過利用單調的線性秘密共享訪問結構(LSSS)縮短了密文長度從而降低了撤銷時延,然而加長的LSSS使分享矩陣行數增加,在秘密分享過程中對系統造成一定的開銷.在基于CP-ABE的屬性撤銷研究中,Yu[6]等人利用引入非完全可信的第三方服務器完成高效地撤銷用戶的屬性,然而該方案要求代理服務器保持在線,對系統運行能力要求較高且撤銷不夠靈活;王鵬翩[7]等人在合數階雙線性映射群的基礎上實現了靈活的屬性撤銷,該方案將公鑰參數與用戶數量進行關聯,容易造成公鑰過長,增加數據擁有者的負擔;Yang[8]在CP-ABE中加入權威機構為系統中的用戶分發屬性密鑰,實現了用戶和數據擁有者之間的非交互關系,大大減輕數據擁有者的負擔,然而該方案要求權威機構是必須可信的,缺少一定的實用性.在基于KP-ABE的屬性撤銷研究中相對經典的主要是Yu[9]在系統中加入第三方重加密服務器完成可擴展的KP-ABE細粒度屬性撤銷方案,權威機構的工作交由數據擁有者來完成,然而在屬性撤銷過程中代理重加密增加了交互次數,對方案的靈活性有一定的阻礙.
綜上所述,針對于現有研究中存在的應用局限性以及屬性撤銷不靈活等缺陷,本文在DP-ABE[4]模型上提出一種支持撤銷的雙策略屬性基加密方案(ALKEK-DPABE).借鑒閆璽璽等人[10,11]的屬性撤銷方案,結合KEK[12]樹思想架構和韓司[13]對ALKH[14]算法的改進,通過引入邏輯二叉樹更換組密鑰,實現屬性的靈活撤銷,并能夠有效的降低系統整體計算復雜度和運算參數長度,提高屬性撤銷效率.
定義映射e:G×G→GT,且G和GT是生成元為g且階為p的乘法循環群,那么具有性質:①雙線性:e(ga·gb)=e(gb·ga)=e(g·g)ab,其中?g∈G,?a,b∈Z;②非退化性:e(g,g)≠1;③可計算性:能夠有效的計算出e(g,g).
指定P為系統屬性集合,其中在系統屬性集合P中的一個非空集合定義為A,即:A∈2P.假設A是單調訪問結構,若?B,當且僅當B∈A,B?C時,有C∈A.
1.(k,t)門限秘密共享
把將要分享的的秘密s無規律分成k份,其中任意不少于t(1≤t≤k)份可以通過Lagrange插值重構出s,并為每個分割的秘密分配節點(x1,y1),(x2,y2),…,(xt,yt);而任何小于t份分割的秘密都無法將秘密s還原.
秘密分割:
①秘密分享中心為每個參與者qi(1≤i≤t)分發一組被分割的秘密(其中s被分割成k份),無規律選擇k-1個系數a1,a2,…,ak-1并定義多項式:
f(x)=ak-1xk-1+ak-2xk-2+…+a1x+s;
②為函數f(x)在x軸上選取t個非零且公開的節點值x1,x2,…,xt(1≤i≤t);則對應有t個(xi,yi),由于yi對應不同的秘密分割份額,因此yi由參與方保留.
秘密重構

2.線性秘密共享方案
假設P為一組參與者,M為一個l×k的分享生成矩陣,令i=1,2,…l,則M的第i行參與者用函數p(i)表示.
1)秘密分享:若s∈Zp是被分享的秘密,選擇一組隨機數y2,….yk∈Zp生成垂直向量v=(s,y2,y3,…yn),那么分享向量λp(i)=Mi·v表示將秘密s分配給第i個參與者的秘密份額.
2)秘密重構:設S∈T是一個訪問授權集合,令I={i|p(i)∈S},在多項式時間內輸出一組重構常數{(i,μi)}i∈I并對被分享的秘密s進行重構計算,即∑i∈Iμi·λp(i)=s.
給定一個最初元素q并隨機選取生成元g,h∈G和隨機數α∈Zp.在乘法循環群G中給定一組矢量(g,h,gα,g(α2),…g(αq),g(αq+2),…g(α2q),Z)∈G2q+1×GT作為假設輸入項,其中Z=e(g,h)(αq+1)∈GT并指定gi=g(αi)∈G,yg,α,q=(g1,…,gq,gq+2,…g2q).若存在一個算法Q輸出b∈{0,1}且在G中以優勢為ε解決判定性q-DBHE假設問題即滿足:
|Pr[Q(g,h,yg,α,q,e(gq+1,h))=0]-Pr[Q(g,h,yg,α,q,Z)=0]≥ε;
如果存在某個多項式時間算法以不可被忽略的優勢解決此問題假設,則稱判定性q-DBHE假設在循環群G中是滿足選擇明文攻擊安全的.
實體之間的交互如圖1所示;ALKEK-DPABE方案模型由五個實體組成,分別為系統管理員(Manager),數據的擁有者(DO,Data Owner),云存儲提供商(CSP,Cloud Service Provider),系統用戶(User)和可信權威機構(TA,Trusted Authority).

圖1 云存儲系統模型Fig.1 Cloud storage system model
基于屬性的雙策略加密(DP-ABE)是結合CP-ABE和KP-ABE所形成的,如圖2所示.
其中CP-ABE對應一組主體訪問控制結構和屬性集(S,ψ),KP-ABE對應一組客體訪問結構和屬性集(O,ω),明文與主體訪問控制結構S和客體屬性組ω相關聯生成密文CT,主密鑰與客體訪問控制結構O和主體屬性組ψ相關聯生成User私鑰.當且僅當ψ∈S,ω∈O時,私鑰才能夠與密文匹配得出明文.
本文所提出的ALKEK-DPABE方案的基本定義是由如下7個算法構成:
1)初始化Setup:TA輸入隨機生成安全參數,通過計算輸出系統的公鑰pk主密鑰msk.

圖2 DP-ABE加解密模型Fig.2 Encryption and decryption model
2)數據加密Encrypt:TA輸入明文消息M和pk,利用主體訪問控制結構S和一組客體屬性ω與M相關聯,輸出與之對應的密文CT.
3)私鑰生成KeyGen:DO輸入公鑰pk和系統主密鑰msk,利用客體訪問控制結構O和一組主體屬性ψ與之關聯計算出用戶的私鑰sk.
4)組密鑰生成GKeyGen:Manager利用邏輯二叉樹為系統中主屬性集合ψ={ψ1,ψ2,…ψn}分別推算出組密鑰Ek(1≤k≤n)并由User保存.
5)密文重加密reEncrypt:Manager將屬性組密鑰Ek(1≤k≤n)對CT進行重加密,得出重加密密文CT′.
6)私鑰更新upKeyGen:User將Ek與自己的私鑰sk關聯更新運算得到新私鑰sk′.
7)密文解密Decrypt:User用私鑰sk′解密密文CT′,當且僅當ψ∈S,ω∈O同時滿足時能夠成功解密得到明文消息M,否則解密失敗.
ALKEK-DPABE方案分別設計敵手A和挑戰者B,并利用選擇明文攻擊(IND-CPA,Indistinguishablity under Chosen-Plaintext Attack)安全模型進行證明.
準備階段:敵手A聲明其要攻擊的主體訪問控制結構S*以及客體屬性集合ω*.
系統初始化:挑戰者B利用安全參數對初始化系統,計算pk和msk,將pk發送給敵手A,自己保留msk.


階段2.與階段1相似,敵手A繼續向挑戰者B發送詢問報文.

方案基于的DP-ABE模型是由CP-ABE和KP-ABE模型通過組合所形成,通過線性秘密共享方案(LSSS)實現共享秘密的分割與重構.令矩陣(M,p)指代主體訪問控制結構S,矩陣(N,π)指代客體訪問控制結構O,ρ在模型中作為內設函數;定義m,n分別為主體屬性集ψ和客體屬性集ω的最大域,則滿足|ψ|≤m,|ω|≤n,且ls,max為S所對應矩陣M的最大行數;指定Us,Uo分別為系統中主體和客體屬性全域.
1)初始化Setup
分別隨機選取生成元g∈G和運算參數γ,α∈Zp.定義兩個函數Fs:Zp→G;Fo:Zp→G并隨機選擇兩組參數h0,…hm′,t0,…tn′∈G,計算:
系統公開參數pk=(g,e(g,g)γ,gα,h0,…hm′,t0,…tn′)并保留主密鑰msk=(γ,a),其中m′=m+ls,max-1,n′=n-1.
2)數據加密Encrypt

3)私鑰生成KeyGen

4)組密鑰生成GKeyGen

圖3 邏輯二叉樹Fig.3 Logical binary tree
邏輯二叉樹τ示例如圖3所示;此為四層滿二叉樹,每每個葉子節點對應系統中的一個用戶,假設系統中屬性的分別為{U1,U2,…U8}且依次對應葉子節點{V8,V9,…,V15}.為每個節點分配節點密鑰,那么用戶分別擁有與自己對應的葉節點密鑰,父節點密鑰是由左孩子節點密鑰通過hash函數運算得出,例如:V4=hash(V8),并將得出的父節點密鑰通過安全信道發送給自己的右孩子節點,依次類推,所有用戶均可得到從葉子節點到根節點路徑上的密鑰鏈.
Manager根據系統中共享的τ為每個屬性選擇組密鑰;例如:當用戶組{U1,U2,U3,U4,U7,U8}擁有屬性組ψk,那么將尋找τ中能夠覆蓋所有葉節點的最小子樹的根節點,即V2,V7.則Manager對屬性ψk進行組密鑰的生成計算:Ek={V2‖V7‖Pi},其中Pi為隨機的公開參數.
5)密文重加密reEncrypt

6)私鑰更新upKeyGen
根據(k,t)秘密共享原理,CSP將Ek通過(k,2)進行分割,其中Uk為公開參數,那么通過Lagrange重構將Ek計算得出,即:

7)密文解密Encrypt
User從CSP下載CT′并利用sk′解密,當滿足ψ∈S,ω∈O時,則能夠輸出明文消息M,否則解密失敗.令Is={i|p(i)∈ψ},Io={i|π(i)∈ω},解密算法如下:

在某用戶屬性撤銷過程中,Manager在τ中重新尋找其最小子樹的根節點運行GKeyGen和upKeyGen算法完成組密鑰的更新.


圖4 屬性撤銷Fig.4 Attribute revocation


本文方案在預言機模型下基于q-DBHE[4]困難假設進行安全性證明:模型利用乘法循環群的生成元g定義一組矢量(g,h,gα,g(α2),…g(αq),g(αq+2),…g(α2q),Z)∈G2q+1×GT,其中gi=g(αi)∈G,yg,α,q=(g1,…gq,gq+2,…g2q),計算Z=e(g,h)(αq+1)∈GT.q-DBHE假設被一個概率多項式時間算法Q以優勢為ε求解,當且僅當滿足:|Pr[Q(g,h,yg,α,q,e(gq+1,h))=0]-Pr[Q(g,h,yg,α,q,Z)=0]≥ε;
定理:假設q-DBHE成立,如果有敵手能夠在多項式的時間內以可以被忽略優勢ε的情況下假設,那么該方案滿足選擇密文攻擊安全的.
證明:若存在敵手A能夠用算法Q以優勢為ε贏得這次游戲過程,輸入(g,h,yg,α,q,Z),算法Q決定等式Z=e(gq+1,h)是否成立.敵手A和挑戰者B在模擬器上執行挑戰游戲:
初始化:

系統設置:






初始化完成后挑戰者B將系統產生的公鑰pk=(g,e(g,g)γ,g1,h0,…hm′,t0,…tn′)發送給敵手A,保存主密鑰msk=(γ,a).
階段1.

①對于ω*中包含的客體訪問控制結構O*的葉節點屬性i,即π(i)∈ω*.產生隨機數ri∈Zp并計算:
=gNi·vFo(π(i))-ri


=gNi ·v·Fo(π(i))-ri
=gri


挑戰階段:

對于所有包含于ω*的屬性x,即x∈ω*,則滿足f(x)=0,計算:

繼續運行reEncrypt算法,利用邏輯二叉樹τ生成的組密鑰Ek更新密文,計算:
階段2.與階段1相似,A繼續向B發送詢問報文.
猜測:敵手A猜測b的一個值b′∈{0,1}.
若b=b′,那么Z=e(gq+1,h),即敵手A獲得真實明文,則定義A取得游戲成功的優勢定義為
Pr[b=b′|Z=e(gq+1,h)]=1/2+ε.
若b≠b′,那么Z=e(g,h)(αq+1),即敵手A無法獲得任何明文信息,則Pr[u≠u′|Z=e(g,h)(αq+1)]=1/2.因此:
|Pr[Q(g,h,yg,α,q,e(gq+1,h))=0]-Pr[Q(g,h,yg,α,q,e(g,h)(αq+1)=0]≥ε;
成立.綜上所述的挑戰過程如果沒有敵手能夠以不可忽略的優勢ε在多項式時間內完成,那么本文所提出的(ALKEK-DPABE)方案符合選擇明文攻擊安全.
本節與Okamoto等人[15]提出的DP-ABE方案在計算消耗和參數對比兩方面進行分析,如表1和表2所示.

表1 計算消耗對比分析Table 1 Computational consumption comparative analysis
其中BG(BGT)表示系統循環群G(GT)中所包含的元素數量;ExG(ExGT)表示循環群G(GT)的階數;Is表示用戶私鑰中包含的主體屬性組;lo(ls)表示客體(主體)訪問控制結構對應的線性秘密共享矩陣中的行數;Wo表示密文中所包含的客體屬性數量;Io(Is)表示用于解密的最小客體屬性數量.

表2 方案參數對比分析Table 2 Comparison and analysis of program parameters
算法復雜度與雙線性映射對的數量線性相關,在表1中可以看出文獻[15]的映射對的數量為|Io|+|Is|+1個,本文方案僅有|Io|+2個,因此在增長率方面前者要高于后者;在表2的對比中對比方案的密文長度要明顯高于本文方案.
良好的云訪問訪問控制是云數據安全的重要保障,要求在保障數據安全的前提下能夠高效靈活的進行屬性撤銷,以滿足云數據的存儲于管理.本文的方案在云訪問控制模型的框架下通過構造出的邏輯二叉樹使方案滿足細粒度的屬性撤銷的要求;由于用戶只需保留密鑰鏈上的密鑰,因此大大減少了用戶的存儲壓力.下一步工作是繼續研究DP-ABE模型,使屬性撤銷更加全面.