王經(jīng)緯,殷新春
(揚州大學(xué) 信息工程學(xué)院,江蘇 揚州 225127)
支持帶權(quán)屬性撤銷的密文策略屬性基加密方案
王經(jīng)緯,殷新春*
(揚州大學(xué) 信息工程學(xué)院,江蘇 揚州 225127)
針對目前大部分密文策略屬性基加密(CP-ABE)方案都不支持屬性的多狀態(tài)表示,加密、解密階段計算開銷龐大的問題,提出一種支持帶權(quán)屬性撤銷的CP-ABE方案(CPABEWAR)。一方面,通過引入帶權(quán)屬性的概念,增強了屬性的表達(dá)能力;另一方面,為了降低計算開銷,在保證數(shù)據(jù)安全的情況下將部分計算過程外包給云服務(wù)提供商(CSP)。分析結(jié)果表明,所提方案基于判定雙線性DH(DBDH)假設(shè)是選擇明文安全的(CPS)。所提方案以增加少量存儲空間為代價簡化了訪問樹結(jié)構(gòu),提高了系統(tǒng)效率和訪問控制的靈活性,適合計算能力受限的云用戶。
屬性基加密;屬性撤銷;訪問控制;判定雙線性DH假設(shè);云存儲
近年來,云計算技術(shù)[1-2]憑借其低廉的成本、強大的計算能力和易于擴展等優(yōu)點備受人們的青睞。云服務(wù)提供商通過組建一個由大量服務(wù)器構(gòu)成的“云”,賦予用戶前所未有的計算能力;此外,用戶還可以在云平臺上輕易地實現(xiàn)數(shù)據(jù)的存取、共享等操作。目前,IBM、Google、Microsoft、阿里云、百度等公司都推出了它們自己的云服務(wù)平臺。
但是,隨著越來越多的人將隱私數(shù)據(jù)存儲在第三方平臺,數(shù)據(jù)安全[3-4]也逐漸成為云計算技術(shù)發(fā)展過程中所不得不面對的問題。為了解決數(shù)據(jù)安全問題,研究者們提出了大量的數(shù)據(jù)保護(hù)方案。在這些方案中,基于屬性基加密(Attribute Based Encryption, ABE)憑借其安全性和訪問控制能力成為研究的熱點。
2005年,Sahai等[5]首次提出屬性基加密的概念。隨后,研究者們針對不同的場景,設(shè)計了大量的屬性基加密方案。目前,屬性基加密方案主要分為兩種:密文策略ABE(Ciphertext Policy Attribute Based Encryption, CP-ABE)方案[6]和密鑰策略屬性基加密(Key Policy Attribute Based Encryption, KP-ABE)方案[7]。在CP-ABE中,用戶的密鑰與一個屬性集合相關(guān)聯(lián),密文與一個訪問樹相關(guān)聯(lián)。數(shù)據(jù)擁有者可以自由定義訪問樹,解密某個密文的唯一條件是用戶的屬性集合滿足密文中隱藏的訪問樹。因此CP-ABE更加適合云環(huán)境中一對多的加密模式。
由于現(xiàn)實中的人際關(guān)系經(jīng)常會發(fā)生變動,為了解決這個問題,研究者們提出了一些屬性撤銷方案[8]。Boldyreva等[9]提出一個支持撤銷的身份基加密方案;但該方案只支持用戶撤銷,不支持屬性撤銷。為了解決屬性撤銷的問題,Yu等[10]提出一個支持屬性撤銷的屬性基加密方案,并證明該方案基于判定雙線性Diffie Hellman(Decisional Bilinear Diffie-Hellman, DBDH)假設(shè)是選擇明文安全的(Chosen Plaintext Secure, CPS);但是該方案中密文和用戶密鑰的長度與系統(tǒng)中屬性的個數(shù)成比例。Tysowski等[11]提出引入“群組”的概念來執(zhí)行用戶撤銷,在該方案中,每個用戶屬于一個用戶群,擁有一個與這個群相關(guān)的群密鑰,通過使用重加密的方法來進(jìn)行用戶撤銷;但是由于群中所有用戶的群密鑰都是相同的,該方案無法抵抗群內(nèi)用戶和已撤銷用戶發(fā)起的共謀攻擊。隨后Li等[12]對文獻(xiàn)[11]方案進(jìn)行改進(jìn),彌補了無法抵抗共謀攻擊的缺陷,并使用外包技術(shù)進(jìn)一步降低用戶的計算開銷,但他們的方案并不支持屬性撤銷。
另一方面,目前大多數(shù)屬性基加密方案只能描述屬性的二元狀態(tài):0代表不滿足,1代表滿足[13-15]。Liu等[16]提出一種支持屬性分類的細(xì)粒度訪問控制方案,在該方案中,屬性被分為動態(tài)屬性和靜態(tài)屬性,其中靜態(tài)屬性代表一段時間內(nèi)不會發(fā)生變動的屬性,動態(tài)屬性在必要時可以進(jìn)行更新;但是該方案中,屬性依然只有兩種狀態(tài)且云服務(wù)提供商和數(shù)據(jù)擁有者各自需要維護(hù)兩個列表。Wang等[17]在文獻(xiàn)[18]研究的基礎(chǔ)上提出一個可以表達(dá)屬性任意元狀態(tài)的方案,在該方案中,使用帶權(quán)屬性來提高屬性的表達(dá)能力,同時降低訪問結(jié)構(gòu)的復(fù)雜度。例如在某所大學(xué)中,教師的職位分為助教、講師、副教授、教授四種,分別賦予他們權(quán)重1、2、3和4,即用Teacher:1、Teacher:2、Teacher:3和Teacher:4 來分別表示這4個職位,這樣僅用Teacher一個屬性就可以達(dá)到原來4個屬性的效果。如果存在一個訪問結(jié)構(gòu)T:{教授or副教授or講師},其在系統(tǒng)中的結(jié)構(gòu)可以化簡為{Teacher:2},即用滿足條件的最低屬性代替其他屬性。
針對現(xiàn)存的大部分屬性基加密方案僅支持二元屬性表示和加解密過程計算開銷大的問題,本文提出一種支持帶權(quán)屬性撤銷的CP-ABE(CP-ABE scheme with Weighted Attribute Revocation, CPABEWAR)方案,支持屬性的多元表示,同時降低訪問樹的復(fù)雜度和存儲開銷,可以靈活地對用戶權(quán)限進(jìn)行部分或全部撤銷。此外,本文方案將部分解密過程外包給云服務(wù)提供商,在保證數(shù)據(jù)機密性的前提下降低了用戶方面的計算開銷。
設(shè)L:{λ1,λ2,…,λp}是全部屬性集合,那么每一個用戶密鑰相聯(lián)系的屬性集合A是L一個不為空的子集,A?{λ1,λ2,…,λp}。
令G和GT為兩個階為素數(shù)p的循環(huán)群。令g為群G的生成元,e:G×G→GT為雙線性映射。其中雙線性映射e滿足如下條件:
1)雙線性性:?u,v∈G和a,b∈ZP,有e(ua,vb)=e(u,v)ab。
2)非退化性:e(g,g)≠1。
3)可計算性:對?u,v∈G,都存在有效算法去計算e(u,v)。
如果群G上的群操作和雙線性映射e:G×G→GT可以進(jìn)行有效的計算,那么稱G是一個雙線性群。注意到映射e(·,·)是對稱的,因為e(ga,gb)=e(g,g)ab=e(gb,ga)。
設(shè)G1和G2是兩個群,g是G1的生成元,e是雙線性映射。{G1,G2,e}的DBDH假設(shè)[19]就是:挑戰(zhàn)者隨機選擇a,b,c,z∈ZP,則不存在攻擊者能在任何多項式時間內(nèi)以不可忽略的優(yōu)勢去區(qū)分元組(A=ga,B=gb,C=gc,e(g,g)abc)和元組(A=ga,B=gb,C=gc,e(g,g)z)。
設(shè)T為一棵帶權(quán)訪問樹,其根節(jié)點為R。通過定義以下符號和函數(shù)來具體表達(dá)其功能:
1)x代表樹T的根節(jié)點。如果x是一個葉節(jié)點,就代表一個帶權(quán)屬性;如果x是一個非葉節(jié)點,則代表一個操作符(如:與門、或門、門限門)。
2)numx代表樹T中x的孩子節(jié)點的數(shù)量。
3)kx代表節(jié)點x的門限值,其中0 4)parent(x)代表樹T中x的父親節(jié)點。 5)att(x)代表樹T中與葉子節(jié)點x相關(guān)聯(lián)的屬性。 6)index(x)返回一個與節(jié)點x相關(guān)的唯一序號。 7)Tx代表樹T中以x為根節(jié)點的子樹。用Tx(S)=1表示帶權(quán)屬性集合S可以滿足這個訪問樹Tx。Tx的計算按下面的方法遞歸進(jìn)行。如果x是一個非葉節(jié)點,當(dāng)且僅當(dāng)至少有kx個孩子節(jié)點返回1時,Tx(S)才返回1;如果x是一個葉子節(jié)點,當(dāng)且僅當(dāng)集合S中屬性x的權(quán)重wx大于或等于葉子節(jié)點的權(quán)重時,Tx(S)才返回1,即weight(wx)≥weight(att(x))。 系統(tǒng)包括五個實體:數(shù)據(jù)擁有者(Data Owner, DO)、系統(tǒng)管理員(System Manager, SM)、可信授權(quán)機構(gòu)(Trusted Authority, TA)、云存儲服務(wù)提供商(Cloud Service Provider, CSP)、訪問用戶(Data User, DU)??尚攀跈?quán)機構(gòu)為用戶提供屬性授權(quán)、身份認(rèn)證、密鑰生成服務(wù)??尚畔到y(tǒng)管理員為用戶生成證書、更新密鑰,并向云存儲服務(wù)提供商申請執(zhí)行密文的重加密命令。云存儲服務(wù)提供商被定義為忠實而好奇的,它向用戶提供密文存儲,密文重加密和部分解密操作。用戶分為數(shù)據(jù)擁有者和訪問用戶兩種,前者負(fù)責(zé)加密數(shù)據(jù)和上傳加密后的數(shù)據(jù)給CSP,從而后者可以根據(jù)自身的權(quán)限獲取相應(yīng)的數(shù)據(jù)。本文方案的系統(tǒng)模型圖如圖1所示。 圖1 系統(tǒng)模型Fig. 1 System model 本文方案由九個算法組成,描述如下: 1)SystemSetup(1λ)→{MK,PK}:輸入安全參數(shù)λ;輸出系統(tǒng)公鑰PK和主密鑰MK。 2)VerSetup(PK)→{VMK0,VPK0,Dic0}:輸入系統(tǒng)公鑰PK;輸出版本主密鑰VMK0,版本公鑰VPK0。每當(dāng)有用戶屬性被撤銷,系統(tǒng)版本加1。在本文的方案中,使用下標(biāo)ver表示當(dāng)前版本。 3)CertGen(PK,UID,VMKver)→δver:輸入系統(tǒng)公鑰PK,用戶身份UID和版本主密鑰VMKver。為身份為UID的用戶生成證書δver。 4)KeyGen(PK,MK,VPKver,S,UID,δver)→{SKver,UPver}:輸入系統(tǒng)公鑰PK,主密鑰MK,版本主密鑰VMKver,用戶屬性集S,用戶身份UID和與其相關(guān)的證書δver;輸出用戶密鑰SKver和一個元組UPver。其中元組UPver用于更新用戶密鑰。 5)Encrypt(PK,VPKver,M,T)→CTver:系統(tǒng)首先選擇一個隨機密鑰ck使用公鑰加密算法加密明文M為Eck(M)。然后輸入系統(tǒng)公鑰PK, 版本主密鑰VMKver,密鑰ck,訪問樹T;輸出密文CTver。 6)Revocation(PK,VMKver,RUID)→{VMKver+1,VPKver+1,Re-Keyver→er+1}:輸入系統(tǒng)公鑰PK, 版本主密鑰VMKver以及身份為UID的某用戶的撤銷屬性列表RUID;輸出新的版本主密鑰VMKver+1, 版本公鑰VPKver+1,重加密密鑰Re-Keyver→ver+1,最后根據(jù)RUID更新相應(yīng)用戶的UPver為UPver+1。 7)UserUpdate(SKver,UPver+1)→SKver+1:輸入用戶密鑰SKver,元組UPver+1;輸出新的用戶密鑰SKver+1。 8)Re-Encrypt(CTver,Re-Keyver→ver+1)→CTver+1:輸入密文CTver和重加密密鑰Re-Keyver→ver+1;輸出新的密文CTver+1。 9)Decrypt(PK,CTver,SKver+1)→M:輸入系統(tǒng)公鑰PK,密文CTver+1和用戶DU的密鑰SKver+1,如果用戶DU的屬性可以滿足訪問樹則輸出明文M,否則輸出⊥。 選取一個階為p的雙線性群G,其生成元為g,令e:G×G→GT代表雙線性映射。選擇一個哈希函數(shù)H:{0,1}*→G將屬性或身份映射為隨機群元素。 ②公布公鑰PK={G,g,gβ,e(g,g)α},保存主密鑰MK={β,gα}。 ②公布版本公鑰VPK={gγ0,e(g,g)γ0}。 在本方案中,0代表初始版本。每當(dāng)有屬性撤銷時,系統(tǒng)密鑰對將會更新到新的版本。本文使用ver來代表當(dāng)前版本。 輸入系統(tǒng)公鑰PK、用戶身份UID和版本主密鑰VMKver;輸出用戶UID的證書δver。 ①系統(tǒng)管理員為系統(tǒng)中身份為UID的用戶生成一個身份證書δver。 ②系統(tǒng)管理員計算δver=gβγver×H(UID)γver。 ③系統(tǒng)管理員通過一個安全渠道將δver發(fā)送給對應(yīng)用戶。 密鑰生成算法分為兩個階段,用戶認(rèn)證階段和密鑰生成階段。 1)用戶認(rèn)證:可信授權(quán)機構(gòu)通過計算e(g,δver)=e(gβ×H(UID),gγver)來驗證用戶是否是合法用戶。如果驗證的結(jié)果為真則進(jìn)入第二階段,否則算法輸出⊥。 2)密鑰生成:經(jīng)過驗證后,可信授權(quán)機構(gòu)為用戶生成一個與屬性集S相關(guān)密鑰。 ①計算H(UID)γver=δver/(gγver)β。 ④根據(jù)每個屬性j∈S的權(quán)重wj,計算Dj2=H(j)rjtwj。 ⑤DSKver={D1=(g(α+γver)×H(UID)rγver)t/β,?j∈S:Dj=H(UID)rγver×H(j)trj,Dj′=gtrj,Dj2=H(j)rjtwj},因此用戶的密鑰為SK={t,DSK}。可信授權(quán)機構(gòu)將UPver={UID,d1=(g×H(UID)r)1/β,d2=H(UID)r}發(fā)送給系統(tǒng)管理員。 在上傳文件M到云存儲服務(wù)提供商之前,數(shù)據(jù)擁有者需要為文件M選擇一個對稱密鑰ck。通過對稱加密算法如:RSA(Rivest-Shamir-Adleman)算法使用密鑰ck來加密文件M,用Eck(M)來代表產(chǎn)生的加密文件。定義一個訪問樹T,使用外包加密的方法加密密鑰ck,由于對稱加密所需的計算量與運算速度要優(yōu)于屬性基加密,這樣避免數(shù)據(jù)擁有者直接加密文件M,降低了數(shù)據(jù)擁有者的計算開銷。 1)云存儲服務(wù)提供商計算C1=gβs,C=gs。 2)從根節(jié)點R開始,為樹T中的每個節(jié)點x按從上到下的方式隨機選擇一個多項式qx。對于每一個樹中的節(jié)點,設(shè)置其多項式的次數(shù)dx為kx-1,其中kx是節(jié)點x的門限值。 3)在訪問樹T中,令Y代表葉節(jié)點的集合,數(shù)據(jù)擁有者設(shè)置wi表示解密每個葉節(jié)點所需的最小權(quán)值。最后產(chǎn)生完整密文如下: CT={version=ver,T,Cver=ck·e(g,g)(α+rver)s,C=gs,C1=gβs,?y∈Y,i∈[1,n]:Cy=gqy(0),Cy′=H(att(y))qy(0)-swi,?j∈(i,n]:Cy,j= H(att(y))qy(0)-(wj-wi)s} 4)云存儲服務(wù)提供商保存{CT,Eck(M)}。 當(dāng)數(shù)據(jù)擁有者希望撤銷某個用戶的部分或全部訪問權(quán)限時,需要將系統(tǒng)版本密鑰對更新為一個新的版本。 ②更新的版本公鑰VPKver+1={gγver+1,e(g,g)γver+1}。 ③系統(tǒng)管理員計算重加密密鑰為Re-Keyver→ver+1=g(rver+1-rver)/β來執(zhí)行重加密操作。 ④對于系統(tǒng)中身份為UID的用戶,系統(tǒng)管理員根據(jù)RUID將現(xiàn)存的元組UPver更新為UPver+1={UID,RUID,d1=(g×H(UID)r)(γver+1-γver)/β,d2=H(UID)r(γver+1-γver)},并將其發(fā)送給用戶執(zhí)行更新操作。 系統(tǒng)中的用戶一旦獲取UPver+1,即可自己更新自己的密鑰。 ③?j∈RUID:Dj2=H(j)rjtw′,其中w′=1,表示沒有訪問權(quán)限。 更新后的密鑰如下: DSK={D1=(g(α+γver+1)×H(UID)rγver+1)t/β,?j∈S:Dj=H(UID)rtγver+1×H(j)trj,Dj2=H(j)rjtwj} 系統(tǒng)管理員向云存儲服務(wù)提供商申請執(zhí)行密文重加密操作。更新后的密文就不能再被舊版本的密鑰解密。 密文重加密過程如下: Cver+1=Cver·e(Re-Keyver→ver+1,C1)= ck·e(g,g)(αs+sγver)e(g(γver+1-γver)/β,gβs)= ck·e(g,g)(α+γver+1)s 新的密文為: CTver+1={version=ver+1,T,Cver,C,C1,?y∈Y,i∈[1,n]:Cy,Cy′,?j∈(i,n]:Cy,j} 屬性基加密系統(tǒng)中的合法用戶可以根據(jù)系統(tǒng)分配的屬性,訪問權(quán)限范圍內(nèi)的加密文件。在本方案中,為了降低用戶的解密開銷,在保證密文不泄露的前提下,將部分解密計算任務(wù)外包給云存儲服務(wù)提供商。因此,解密操作總共分為兩個部分:外包解密和用戶解密。 1)外包解密。 訪問用戶向云存儲服務(wù)提供商提交部分密鑰{DSK},云存儲服務(wù)提供商檢查用戶密鑰中包含的屬性是否滿足數(shù)據(jù)擁有者預(yù)先定義的訪問樹。如果符合,則執(zhí)行以下步驟: ①云存儲服務(wù)提供商輸入密文與部分密鑰執(zhí)行一個遞歸的解密函數(shù)DecryptNode(CTver+1,DSK,x),其中x是訪問樹T中的一個節(jié)點。 ②若節(jié)點x是一個葉子節(jié)點,令i=att(x)。 ③若i∈S, 函數(shù)DecryptNode(CTver+1,DSK,x)定義如下: e(H(UID),g)rtγver+1qx(0)=Fx 若i?S,定義函數(shù)DecryptNode(CTver+1,DSK,x)=⊥,若x是非葉子節(jié)點,那么對于x的每個孩子節(jié)點z,調(diào)用DecryptNode(CTver+1,DSK,z)并用Fz來代表結(jié)果。令Sx代表一個大小為kx的孩子節(jié)點z的集合且Fz≠⊥。若不存在這樣的集合,表示這個節(jié)點不能被滿足,函數(shù)輸出⊥;否則云存儲服務(wù)供應(yīng)商計算: e(H(UID),g)rtγver+1qx(0) ④如果訪問用戶的屬性能滿足訪問樹T,則函數(shù)DecryptNode(CTver+1,DSK,x)執(zhí)行的最終結(jié)果為: FR=DecryptNode(CTver+1,DSK,R)= e(H(UID),g)rtγver+1qR(0)= e(H(UID),g)rtγver+1s ⑤然后云存儲服務(wù)提供商計算: B=e(C1,D1) =e(gsβ,(g(α+γver+1)×H(UID)rγver+1)t/β)= e(g,g(α+γver+1)×H(UID)rγver+1)st= e(g,g)(α+γver+1)st·e(g,H(UID))rγver+1st 最終,云存儲服務(wù)提供商將{Eck(M),Cver+1,FR,B}發(fā)送給訪問用戶。 2)用戶解密。 一旦接收到{Eck(M),Cver+1,FR,B},訪問用戶計算: B′=B1/t=e(g,g)(α+γver+1)s·e(g,H(UID))rγver+1s 然后訪問用戶通過以下計算恢復(fù)對稱加密密鑰ck: 通過對稱密鑰ck和對稱解密算法(如:RSA算法)即可恢復(fù)明文M。 本文所提出的CPABEWAR在選擇明文攻擊下的安全模型可以通過以下攻擊游戲來定義。 初始化 敵手A選擇要挑戰(zhàn)的訪問樹T*,版本號ver*和屬性撤銷列表R*發(fā)送給挑戰(zhàn)者B。 密鑰查詢階段1 敵手A選擇一個身份為UID的用戶和一個屬性集S,其中屬性集S不能滿足訪問樹T*。 1)挑戰(zhàn)者B通過計算gβγver×H(UID)γver為身份為UID用戶生成證書δver,并將證書δver提交給敵手A。 2)挑戰(zhàn)者B根據(jù)〈PK,MK,VPKver,S,UID,δver〉生成與屬性集S相關(guān)的密鑰SKver。挑戰(zhàn)者B將密鑰SKver提交給敵手A。 3)敵手根據(jù)收到的{UPver+1}0≤ver≤ver*-1和SKver生成最新版本的密鑰SKver*。 挑戰(zhàn) 查詢階段結(jié)束之后,敵手提交2個等長的明文M0和M1給挑戰(zhàn)者B。挑戰(zhàn)者B隨機選擇b∈{0,1}并計算挑戰(zhàn)密文CTb=Encrypt(PK,VPKver*,Mb,T)。挑戰(zhàn)者將密文CTb返回給敵手A。 密鑰查詢階段2 重復(fù)階段1的查詢。 猜測 敵手A輸出對b的猜測b′∈{0,1}。如果b′=b,則敵手A獲勝,其獲勝的優(yōu)勢為AdvA=|Pr[b′=b]-1/2|。 定義1 如果沒有概率多項式時間的敵手能夠以不可忽略的優(yōu)勢贏得游戲,則稱支持帶權(quán)屬性撤銷的CP-ABE方案是選擇明文安全的。 本文方案的安全性基于判定雙線性Diffie-Hellman假設(shè)。 定理1 假設(shè)DBDH假設(shè)成立,即不存在敵手A可以在多項式時間內(nèi)以不可忽略的優(yōu)勢ε破解本文所提出的CPABEWAR,那么本方案就足夠安全以抵抗CPA。 證明 如果存在一個敵手能在多項式時間內(nèi)以不可忽略的優(yōu)勢ε破解CPABEWAR,則可以構(gòu)造一個挑戰(zhàn)者B以最大ε/2的優(yōu)勢解決DBDH問題。即輸入五元組〈g,gα1,gα2,gs,Z=e(g,g)θ〉,挑戰(zhàn)者B決定等式Z=e(g,g)α1α2s是否成立。 模擬過程如下: 1)初始化。敵手A發(fā)送要挑戰(zhàn)的訪問樹T*和系統(tǒng)版本號ver*給挑戰(zhàn)者B。 2)系統(tǒng)建立。 3)查詢1。敵手A選擇屬性集S和用戶身份UID,向挑戰(zhàn)者B申請相應(yīng)密鑰。其中屬性集S不能滿足訪問樹T*。 ①證書查詢。輸入?yún)?shù){UID,VPK,ver},挑戰(zhàn)者B根據(jù)敵手A提交的UID和版本公鑰VPKver*生成一個唯一的證書δver=gβγver×H(UID)γver并返回給敵手A。 挑戰(zhàn)者將密鑰SKver={t,DSKver}發(fā)送給敵手A。 ③密鑰更新查詢。輸入?yún)?shù){UID,DSKver,ver*},如果敵手A得到的密鑰版本號ver ④重加密查詢。輸入?yún)?shù){Cver,ver*},如果密文版本號ver 4)挑戰(zhàn)階段。敵手A向挑戰(zhàn)者B提交兩段長度相同的明文M0和M1。挑戰(zhàn)者B隨機選擇一個b={0,1}并執(zhí)行以下操作: Cver=Mb·e(g,g)(α+γver)s= Mb·e(g,g)s·α1α2·e(g,g)sγver C1=gβs C=gs ②從訪問樹T的根節(jié)點R開始,為樹T中的每個節(jié)點x按從上到下的方式隨機選擇一個多項式qx。對于每一個樹中的節(jié)點,設(shè)置其多項式的次數(shù)dx為kx-1,其中kx是節(jié)點x的門限值。 ③在訪問樹T中,令Y代表葉節(jié)點的集合,數(shù)據(jù)擁有者設(shè)置wi表示解密每個葉節(jié)點所需的最小權(quán)值。最后產(chǎn)生完整密文如下: H(att(y))qy(0)-(wj-wi)s} 挑戰(zhàn)者B將密文CT返回給敵手A。 5)查詢2。同查詢1,敵手A繼續(xù)向挑戰(zhàn)者B提問。 6)猜測階段。敵手A輸出猜測b′={0,1}。如果b′=b,則挑戰(zhàn)者B輸出1,表示挑戰(zhàn)成功,Z=e(g,g)s·α1α2;否則輸出0,表示Z=e(g,g)θ。當(dāng)Z=e(g,g)s·α1α2時,敵手獲得有效的密文,其獲勝優(yōu)勢為Pr[b′=b|Z=e(g,g)s·α1α2]=1/2+ε。當(dāng)Z=e(g,g)θ時,敵手獲取的密文是隨機生成的,不能獲取任何明文信息,Pr[b′≠b|Z=e(g,g)θ]=1/2。因此,游戲中,敵手A獲勝的優(yōu)勢為: 根據(jù)DBDH假設(shè),不存在敵手在多項式時間內(nèi)以不可忽略的優(yōu)勢解決DBDH問題,因此本方案是不可區(qū)分選擇明文攻擊(INDistinguishability under Chosen Plaintext Attack, IND-CPA)安全的。 下面將本文的方案與文獻(xiàn)[12]方案和文獻(xiàn)[17]方案從系統(tǒng)功能、存儲開銷和計算效率三個方面進(jìn)行比較,具體比較情況如表1~3所示。 由表1可知,本文方案不僅支持用戶撤銷和用戶部分屬性撤銷,還實現(xiàn)了屬性狀態(tài)的多元表示,增強了系統(tǒng)的靈活性的同時,簡化了訪問樹的復(fù)雜性??紤]到系統(tǒng)用戶的計算能力可能并不強大,本文方案在保證數(shù)據(jù)機密性的前提下將部分計算過程外包給計算資源豐富的云存儲服務(wù)供應(yīng)商,從而減輕系統(tǒng)用戶的計算開銷。 表1 不同方案系統(tǒng)功能分析Tab. 1 Analysis of system function for different schemes 從表2的結(jié)果可以看出,文獻(xiàn)[12]方案、文獻(xiàn)[17] 方案和本文提出的方案在主密鑰和公鑰這兩項中所占用的空間基本相同。文獻(xiàn)[12]提出方案中密文長度雖然最小,但其只支持用戶撤銷并不支持屬性撤銷,在靈活性上有所缺乏。與文獻(xiàn)[17]方案相比,由于n遠(yuǎn)小于|Y|,因此本文提出的方案僅略微增加了密文長度,卻實現(xiàn)了其他兩個方案所不具備的屬性撤銷,提高方案的實用性。此外,由于密文主要存儲在CSP中,因此密文長度的少量增加并不影響系統(tǒng)的整體效率。另一方面,本文所提出方案的密鑰長度和撤銷操作所涉及的其他元素的大小與同樣支持撤銷的文獻(xiàn)[12]所提出的方案相似,但卻通過使用帶權(quán)屬性簡化了訪問樹的結(jié)構(gòu),提高屬性的表達(dá)能力,讓本文方案彌補了當(dāng)前屬性基加密對系統(tǒng)屬性和訪問樹表達(dá)能力不足的缺陷。 表3中:Gi(i=0,T)表示群Gi的指數(shù)或乘法運算;Ce表示雙線性配對操作;S表示滿足訪問樹所需最少的內(nèi)部節(jié)點個數(shù);|AC|、|Au|分別表示密文中包含的屬性和用戶擁有的屬性;ωi、ωi1分別表示屬性i的最大權(quán)重和密文中屬性i的權(quán)重。從表3中可以看出,在加密階段,本文方案的計算效率要優(yōu)于文獻(xiàn)[12]的方案。而與文獻(xiàn)[17]的方案相比,雖然本文方案計算量增加了|AC|G0,但是考慮到本文方案實現(xiàn)了文獻(xiàn)[17]方案所不具備的用戶撤銷機制,因此完全可以接受。而在解密階段,本文方案與文獻(xiàn)[12]、文獻(xiàn)[17]方案基本相同。由于本文方案可將部分計算過程外包給CSP執(zhí)行,因此用戶方面所需承擔(dān)的計算量將會更小,從而進(jìn)一步提升效率。 表2 不同方案存儲開銷對比Tab. 2 Comparison of storage overhead for different schemes 表3 不同方案計算效率對比Tab. 3 Comparison of calculation efficiency for different schemes 針對目前屬性基加密方案中屬性撤銷缺乏靈活性、用戶計算量大的問題,本文提出一種支持帶權(quán)屬性撤銷的密文策略屬性基加密方案,并證明該方案在DBDH假設(shè)下是CPA安全的。通過引入帶權(quán)屬性的概念,我們提高了系統(tǒng)中屬性表達(dá)的靈活性,降低了訪問樹的復(fù)雜性,實現(xiàn)用戶屬性的部分或全部撤銷。此外,在保證安全的前提下通過將解密階段部分外包給云存儲服務(wù)提供商來降低用戶方面的計算開銷。經(jīng)過與文獻(xiàn)[12]方案和文獻(xiàn)[17] 方案的分析對比,本文方案以存儲開銷少量增加為代價,提高了系統(tǒng)效率和訪問控制的靈活性,解決了屬性基加密方案中的屬性撤銷問題,適合計算資源有限的云用戶。因此,進(jìn)一步優(yōu)化密文和密鑰長度是下一步工作中需要考慮的重點。 References) [1] NIST S P. A NIST definition of cloud computing [J]. Communications of the ACM, 2015, 53(6): 50. [2] WOOD T, RAMAKRISHNAN K K, SHENOY P, et al. CloudNet: dynamic pooling of cloud resources by live WAN migration of virtual machines [J]. IEEE/ACM Transactions on Networking, 2015, 23(5): 1568-1583. [3] CHOO K K R. Cloud computing: challenges and future directions [J]. Trends & Issues in Crime & Criminal Justice, 2010(400): 1-6. [4] ESPOSITO C, CASTIGLIONE A, MARTINI B, et al. Cloud manufacturing: security, privacy, and forensic concerns [J]. IEEE Cloud Computing, 2016, 3(4): 16-22. [5] SAHAI A, WATERS B. Fuzzy identity-based encryption [C]// Proceedings of the 2005 Annual International Conference on the Theory and Applications of Cryptographic Techniques, LNCS 3494. Berlin: Springer, 2005: 457-473. [6] BETHENCOURT J, SAHAI A, WATERS B. Ciphertext-policy attribute-based encryption [C]// Proceedings of the 2007 IEEE Symposium on Security & Privacy. Piscataway, NJ: IEEE, 2007: 321-334. [7] GOVAL V, PANDEY O, SAHAI A, et al. Attribute-based encryption for fine-grained access control of encrypted data[C]// Proceedings of the 2006 13th ACM Conference on Computer and Communications Security. New York: ACM, 2006: 89-98. [8] TOUATI L, CHALLAL Y. Batch-based CP-ABE with attribute revocation mechanism for the Internet of things [C]// Proceedings of the 2015 International Conference on Computing, Networking and Communications. Piacataway, NJ: IEEE, 2015: 1044-1049. [9] BOLDYREVA A, GOYAL V, KUMAR V. Identity-based encryption with efficient revocation [C]// Proceedings of the 2008 15th ACM Conference on Computer and Communications Security. New York: ACM, 2008: 417-426. [10] YU S, WANG C, REN K, et al. Attribute based data sharing with attribute revocation [C]// Proceedings of the 2010 5th ACM Symposium on Information, Computer and Communications Security. New York: ACM, 2010: 261-270. [11] TYSOWSKI P K, HASAN M A. Hybrid attribute- and re-encryption-based key management for secure and scalable mobile applications in clouds [J]. IEEE Transactions on Cloud Computing, 2013, 1(2): 172-186. [12] LI J G, YAO W, ZHANG Y C, et al. Flexible and fine-grained attribute-based data storage in cloud computing [J]. IEEE Transactions on Services Computing, 2017, 10(5): 785-796. [13] XU X L, ZHOU J L, WANG X H, et al. Multi-authority proxy re-encryption based on CPABE for cloud storage systems [J]. Journal of Systems Engineering and Electronics, 2016, 27(1): 211-223. [14] 閆璽璽,孟慧.支持直接撤銷的密文策略屬性基加密方案[J].通信學(xué)報,2016,37(5):44-50.(YAN X X, MENG H. Ciphertext policy attribute-based encryption scheme supporting direct revocation[J]. Journal on Communications, 2016, 37(5): 44-50.) [15] ZHANG Y H, CHEN X F, LI J, et al. Anonymous attribute-based encryption supporting efficient decryption test [C]// Proceedings of the 2013 8th ACM SIGSAC Symposium on Information, Computer and Communications Security. New York: ACM, 2013: 511-516. [16] LIU X M, MA J, XIONG J B, et al. Ciphertext-policy hierarchical attribute-based encryption for fine-grained access control of encryption data [J]. International Journal of Network Security, 2014, 16(6): 437-443. [17] WANG S L, LIANG K T, LIU J K, et al. Attribute-based data sharing scheme revisited in cloud computing [J]. IEEE Transactions on Information Forensics & Security, 2016, 11(8): 1661-1673. [18] XIE X X, MA H, LI J, et al. An efficient ciphertext-policy attribute-based access control towards revocation in cloud computing [J]. Journal of Universal Computer Science, 2013, 19(16): 2349-2367. [19] DAN B. The decision Diffie-Hellman problem [C]// Proceedings of the 1998 3rd International Symposium on Algorithmic Number Theory, LNCS 1423. London: Springer, 1998: 48-63. This work is partially supported by the National Natural Science Foundation of China (61472343). WANGJingwei, born in 1993, M. S. candidate. His research interests include cryptology. YINXinchun, born in 1962, Ph. D., professor. His research interests include cryptology, software quality assurance, high performance computing. Ciphertextpolicyattribute-basedencryptionschemewithweightedattributerevocation WANG Jingwei, YIN Xinchun* (SchoolofInformationEngineering,YangzhouUniversity,YangzhouJiangsu225127,China) Most of the existing Ciphertext-Policy Attribute-Based Encryption (CP-ABE) schemes cannot support multi-state representation of attributes, and the computation overhead of encryption and decryption phase is huge. In order to solve the problems, a CP-ABE scheme with Weighted Attribute Revocation (CPABEWAR) was proposed. On the one hand, the expression ability of attribute was improved by introducing the concept of weighted attribute. On the other hand, in order to reduce the computation cost, part calculation tasks were outsourced to Cloud Service Provider (CSP) under the premise of ensuring data securer. The analysis results show that, the proposed CPABEWAR is proved to be Chosen Plaintext Secure (CPS) under the Decisional Bilinear Diffie-Hellman (DBDH) assumption. The proposed scheme simplifies the access tree structure at the cost of a small amount of storage space and improves system efficiency and flexibility of access control, which is suitable for cloud users with limited computing power. Attribute-Based Encryption (ABE); attribute revocation; access control; Decisional Bilinear Diffie-Hellman (DBDH) assumption; cloud storage 2017- 06- 13; 2017- 07- 30。 國家自然科學(xué)基金資助項目(61472343)。 王經(jīng)緯(1993—),男,江蘇鎮(zhèn)江人,碩士研究生,主要研究方向:密碼學(xué); 殷新春(1962—),男,江蘇姜堰人,教授,博士,CCF高級會員,主要研究方向:密碼學(xué)、軟件質(zhì)量保障、高性能計算。 1001- 9081(2017)12- 3423- 07 10.11772/j.issn.1001- 9081.2017.12.3423 (*通信作者電子郵箱xcyin@yzu.edu.cn) TP309.7 A2 系統(tǒng)模型
3 具體實現(xiàn)
3.1 SystemSetup(1λ)→{MK,PK}
3.2 VerSetup(PK)→{VMK0,VPK0,Dic0}
3.3 CertGen(PK,UID,VMKver)→δver
3.4 KeyGen(PK,MK,VPKver,S,UID,δver)→{SKver,UPver}
3.5 Encrypt(PK,VPKver,M,T)→CTver
3.6 Revocation(PK,VMKver,RUID)→{VMKver+1,VPKver+1,Re-Keyver→er+1}
3.7 UserUpdate(SKver,UPver+1)→SKver+1
3.8 Re-Encrypt(CTver,Re-Keyver→ver+1)→CTver+1
3.9 Decrypt(PK,CTver,SKver+1)→M
4 安全性分析
4.1 安全模型
4.2 安全性證明
5 方案對比
6 結(jié)語