楊曉暉,丁文卿
(河北大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河北 保定 071002)
?
云存儲(chǔ)環(huán)境下基于CP-ASBE數(shù)據(jù)加密機(jī)制
楊曉暉,丁文卿
(河北大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河北 保定071002)
針對(duì)基于屬性集合加密機(jī)制依賴一個(gè)授權(quán)中心進(jìn)行密鑰計(jì)算,容易成為系統(tǒng)安全瓶頸問題,提出基于多個(gè)屬性授權(quán)機(jī)構(gòu)的屬性集合加密機(jī)制,提高密鑰的安全性.授權(quán)中心由多個(gè)屬性授權(quán)機(jī)構(gòu)(attribute authority,AA)構(gòu)成,每個(gè)AA負(fù)責(zé)管理部分屬性集合,完整的密鑰計(jì)算需要多個(gè)AA的參與,提高攻擊難度.將該機(jī)制應(yīng)用于云環(huán)境,對(duì)文件加密、密鑰計(jì)算及文件解密進(jìn)行分析,設(shè)計(jì)云存儲(chǔ)環(huán)境下行之有效的數(shù)據(jù)加密機(jī)制,并對(duì)該機(jī)制的安全性及時(shí)間開銷進(jìn)行分析,實(shí)驗(yàn)表明該方法是可行的.
云存儲(chǔ);CP-ASBE;加密機(jī)制
基于屬性的加密(attribute-based encryption,ABE)[1]是以屬性為公鑰,將密文和用戶私鑰與屬性關(guān)聯(lián),當(dāng)且僅當(dāng)用戶的屬性集合與密文的屬性集合中相同屬性的個(gè)數(shù)達(dá)到門限要求時(shí),用戶能夠解密密文.將基于屬性的加密機(jī)制應(yīng)用在云存儲(chǔ)環(huán)境,依賴可信第三方來計(jì)算密鑰,并進(jìn)行分發(fā),可以很好地解決外包數(shù)據(jù)的安全問題.由于密鑰由可信第三方計(jì)算,因此可信第三方容易成為攻擊對(duì)象,傳統(tǒng)的可信第三方都是基于一個(gè)授權(quán)中心,若該授權(quán)中心受到攻擊會(huì)造成密鑰泄露甚至系統(tǒng)癱瘓,不利于用戶的隱私保護(hù).
多授權(quán)機(jī)構(gòu)基于屬性加密最早由Chase[2]提出,由一個(gè)中央授權(quán)機(jī)構(gòu)CA(central authority)管理各個(gè)屬性授權(quán)機(jī)構(gòu),CA擁有系統(tǒng)的主密鑰和用戶私鑰,一旦其受到攻擊會(huì)造成密鑰泄露,不利于數(shù)據(jù)安全.之后,Lin[3]和Chase[4]等又各自提出了無CA的方案.Lewko等[5]提出了一種新的多授權(quán)機(jī)構(gòu)屬性加密方案,該方案中CA僅參與初始化階段,此后不參與任何計(jì)算,提高了安全性.Taeho等[6]提出了一種匿名優(yōu)勢(shì)控制方案,實(shí)現(xiàn)云端數(shù)據(jù)的匿名訪問控制以及用戶身份保護(hù).Yang等[7]提出了一種基于屬性的多授權(quán)機(jī)構(gòu)訪問控制方案,由CA為授權(quán)機(jī)構(gòu)和用戶分發(fā)各自的身份標(biāo)識(shí).關(guān)志濤等[8]提出面向云存儲(chǔ)的基于屬性加密的多授權(quán)中心訪問控制方案,設(shè)計(jì)多授權(quán)中心的屬性加密方案.李謝華等[9]提出基于MA-ABE的云存儲(chǔ)訪問控制方法,將解密秘鑰的生成與CA分離,由數(shù)據(jù)擁有者和授權(quán)機(jī)構(gòu)分別生成并進(jìn)行分發(fā).
以上研究都是針對(duì)簡(jiǎn)單集合的研究,對(duì)密文規(guī)則復(fù)雜的云存儲(chǔ)環(huán)境不能很好地支持.基于屬性集合加密(ciphertext-policy attribute-set based encryption,CP-ASBE)由Bobba等[10]提出,可以支持較復(fù)雜的密文策略.CP-ASBE是對(duì)基于屬性加密機(jī)制的改進(jìn),可以實(shí)現(xiàn)用戶屬性的多值分配,更適合于用戶屬性復(fù)雜的云存儲(chǔ)環(huán)境.Wan等[11]將CP-ASBE應(yīng)用到云環(huán)境,采用多授權(quán)中心的方法,由上級(jí)授權(quán)中心管理下級(jí)授權(quán)中心,但是密鑰還是由一個(gè)授權(quán)中心計(jì)算.本文將基于屬性集合的加密方法應(yīng)用到云存儲(chǔ)中,采用多CA、多AA方法,將密鑰計(jì)算分配給多個(gè)AA,設(shè)計(jì)符合云環(huán)境特點(diǎn)的數(shù)據(jù)加密機(jī)制,提高安全性.
1.1密鑰結(jié)構(gòu)
在傳統(tǒng)基于屬性加密機(jī)制中,用戶密鑰邏輯上可以認(rèn)為是一組和屬性對(duì)應(yīng)的元素集合.而在CP-ASBE中,密鑰結(jié)構(gòu)是一個(gè)基于遞歸集合的屬性集合,即集合中的元素既可以代表一個(gè)集合也可以代表單個(gè)屬性.定義depth,為密鑰結(jié)構(gòu)的深度,用來限制遞歸次數(shù).用唯一的標(biāo)簽標(biāo)識(shí)密鑰結(jié)構(gòu)中的集合.由于用戶屬性被設(shè)計(jì)成遞歸的集合,該機(jī)制可以支持多值分配.例如,{學(xué)院:計(jì)算機(jī)科學(xué)與技術(shù),角色:碩士研究生,{課程號(hào):101,角色:助教},{課程號(hào):525,角色:研究生}}是一個(gè)深度為2的密鑰結(jié)構(gòu),代表一個(gè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院的研究生是課程號(hào)為101的助教,并且選修了課程525.從該結(jié)構(gòu)中可以看到相同屬性可分配多個(gè)值.
1.2訪問結(jié)構(gòu)
訪問結(jié)構(gòu)T是全集{P1,P2,…,Pn}的一個(gè)非空子集,T?2{P1,P2,…,Pn}{?}.T代表一個(gè)屬性判斷條件:在T中的屬性集合稱為授權(quán)集,不在T中的屬性集合稱為非授權(quán)集.采用訪問樹來描述訪問結(jié)構(gòu).樹的每個(gè)葉節(jié)點(diǎn)代表一個(gè)屬性或?qū)傩约希侨~節(jié)點(diǎn)代表一個(gè)帶有閾值的門限方案.設(shè)節(jié)點(diǎn)n的門限值為dn,1≤dn≤numn,其中numn是節(jié)點(diǎn)n的子節(jié)點(diǎn)個(gè)數(shù),節(jié)點(diǎn)n的門限方案代表密鑰結(jié)構(gòu)中的屬性至少滿足dn個(gè)子節(jié)點(diǎn)該密鑰結(jié)構(gòu)才滿足該節(jié)點(diǎn)n.當(dāng)dn=1時(shí),代表or門,當(dāng)dn=numn時(shí),代表and門.對(duì)節(jié)點(diǎn)n的子節(jié)點(diǎn)從1到numn排序,函數(shù)index(n)返回節(jié)點(diǎn)n的序號(hào).若n是葉子節(jié)點(diǎn),調(diào)用att(n)返回其屬性.
在訪問結(jié)構(gòu)樹中加入轉(zhuǎn)換節(jié)點(diǎn),轉(zhuǎn)換節(jié)點(diǎn)的加入使CP-ASBE機(jī)制可以支持屬性的復(fù)合使用.設(shè)T是一個(gè)訪問結(jié)構(gòu)樹,r是其根節(jié)點(diǎn),Tn是以n為根節(jié)點(diǎn)的T的子樹,其中φ(φ1,…,φi,…,φn)是一個(gè)密鑰結(jié)構(gòu),i是密鑰結(jié)構(gòu)中屬性集合的唯一標(biāo)簽.
判斷一個(gè)密鑰結(jié)構(gòu)是否滿足訪問結(jié)構(gòu)樹過程如下:對(duì)訪問結(jié)構(gòu)T調(diào)用函數(shù)f(T,φ)該函數(shù)的作用是判斷密鑰結(jié)構(gòu)φ是否滿足訪問結(jié)構(gòu)T,函數(shù)的返回值是一個(gè)標(biāo)簽集合S,只要該標(biāo)簽集非空,那么密鑰結(jié)構(gòu)就滿足訪問結(jié)構(gòu)T,該過程是一個(gè)遞歸的過程.如果n是葉子節(jié)點(diǎn),若att(n)∈φ,則返回標(biāo)簽i;如果n是一個(gè)非葉子節(jié)點(diǎn),則對(duì)n的所有孩子節(jié)點(diǎn)n’評(píng)估f(Tn’,φ);最終返回標(biāo)簽集合Sn.至少存在1個(gè)標(biāo)簽子集滿足其中的所有標(biāo)簽可對(duì)應(yīng)的孩子節(jié)點(diǎn)的個(gè)數(shù)和轉(zhuǎn)換節(jié)點(diǎn)的個(gè)數(shù)大于等于節(jié)點(diǎn)n的門限值,則密鑰結(jié)構(gòu)滿足訪問結(jié)構(gòu)樹Tn,其中轉(zhuǎn)換節(jié)點(diǎn)滿足該轉(zhuǎn)換節(jié)點(diǎn)是n的孩子節(jié)點(diǎn)并且其標(biāo)簽集合不為空.屬性的復(fù)合使用是指在密鑰結(jié)構(gòu)中屬于不同屬性集合的屬性可以復(fù)合來滿足一個(gè)訪問結(jié)構(gòu)樹中的葉節(jié)點(diǎn).例如屬于屬性集合i中的屬性可以和屬于屬性集合j中的屬性結(jié)合來滿足T中的一個(gè)葉節(jié)點(diǎn).轉(zhuǎn)換節(jié)點(diǎn)的作用就是將屬于不同屬性集合的屬性的標(biāo)簽轉(zhuǎn)換為轉(zhuǎn)換節(jié)點(diǎn)規(guī)定的標(biāo)簽.
2.1安全性假設(shè)
1)云服務(wù)提供商是不完全可信的,即是有可能對(duì)用戶存儲(chǔ)的數(shù)據(jù)進(jìn)行窺探的,因此云端數(shù)據(jù)加密存儲(chǔ),解密密鑰由授權(quán)中心分發(fā).
2)授權(quán)中心是半可信的,即授權(quán)中心不會(huì)主動(dòng)泄露密鑰等信息,但可能會(huì)受到外部攻擊,導(dǎo)致密鑰泄露.
2.2總體設(shè)計(jì)
本文提出的方案如圖1所示.Owner為數(shù)據(jù)擁有者,負(fù)責(zé)加密數(shù)據(jù)并向云端存儲(chǔ);CS(Cloud service)是云服務(wù)提供商,負(fù)責(zé)存儲(chǔ)數(shù)據(jù);CAsetup是參數(shù)初始化授權(quán)中心,負(fù)責(zé)驗(yàn)證Owner身份并初始化CP-ASBE參數(shù);CA是中央授權(quán)機(jī)構(gòu),負(fù)責(zé)產(chǎn)生密鑰計(jì)算時(shí)需要的隨機(jī)數(shù),并且對(duì)AA計(jì)算出的密鑰的密文等信息進(jìn)行整合;AA是屬性授權(quán)機(jī)構(gòu),負(fù)責(zé)計(jì)算屬性對(duì)應(yīng)的密鑰.下面對(duì)數(shù)據(jù)的存儲(chǔ),解密以及密鑰請(qǐng)求過程進(jìn)行描述,過程中涉及到的算法將在下節(jié)介紹.
2.2.1數(shù)據(jù)存儲(chǔ)過程
1)Owner向CS提出存儲(chǔ)數(shù)據(jù)請(qǐng)求;
2)CS驗(yàn)證該請(qǐng)求是否合法;
3)CS驗(yàn)證通過后Owner采用對(duì)稱加密算法加密要存儲(chǔ)的數(shù)據(jù),加密密鑰為M,得到密文CT0;
4)Owner向授權(quán)機(jī)構(gòu)請(qǐng)求CP-ASBE初始化參數(shù),CAsetup對(duì)Owner身份進(jìn)行驗(yàn)證;
5)CAsetup驗(yàn)證通過后,調(diào)用Setup算法,將初始化參數(shù)用Owner的公鑰加密后傳送給Owner;
6)Owner構(gòu)造訪問結(jié)構(gòu)樹,收到初始化參數(shù)后調(diào)用Encryptpt(PK,M,T)算法加密密鑰M,得到密文CT1,將CT0與CT1封裝為密文CT發(fā)送至CS;
7)Owner對(duì)訪問結(jié)構(gòu)樹進(jìn)行處理,處理規(guī)則將在下節(jié)描述.將處理后的訪問結(jié)構(gòu)樹T’發(fā)送給CA;
8)CA收到處理后的訪問結(jié)構(gòu)樹后,將T’中涉及到的屬性集合分配給AA,并將AA的公鑰發(fā)送給Owner即將對(duì)應(yīng)屬性的加密公鑰發(fā)送給Owner;
圖1 云存儲(chǔ)環(huán)境下基于CP-ASBE數(shù)據(jù)加密機(jī)制Fig.1 CP-ASBE based data encryption for cloud storage
9)Owner將屬性的分配規(guī)則以及該屬性在訪問結(jié)構(gòu)樹中應(yīng)滿足的條件用對(duì)應(yīng)的公鑰加密,發(fā)送給CA,CA將該密文發(fā)送至相應(yīng)AA.
2.2.2密鑰請(qǐng)求過程
1)當(dāng)有數(shù)據(jù)共享者User請(qǐng)求訪問數(shù)據(jù)時(shí),CS首先驗(yàn)證其請(qǐng)求是否合法,通過驗(yàn)證后將密文發(fā)送給User并向CA申請(qǐng)解密密鑰;
2)CA產(chǎn)生該用戶的唯一隨機(jī)數(shù),將該隨機(jī)數(shù)發(fā)送給需要進(jìn)行計(jì)算任務(wù)的AA.AA通過KeyGen(MK,Au)算法得到屬性對(duì)應(yīng)的密鑰,將該密鑰同訪問結(jié)構(gòu)中屬性應(yīng)滿足的條件用User的公鑰加密后發(fā)送給CA;
3)CA對(duì)密鑰的密文以及條件的密文和T’進(jìn)行整合,發(fā)送給User.
2.2.3數(shù)據(jù)解密過程
1)User首先對(duì)收到的密文用自己的私鑰解密,得到解密密鑰并恢復(fù)出訪問結(jié)構(gòu)樹T;
2)User調(diào)用Decrypt(CT,SK)算法解密數(shù)據(jù).
3.1參數(shù)初始化(Setup)
設(shè)G1、G2是2個(gè)階為素?cái)?shù)q的群,設(shè)g是G1的生成元,雙線性映射e:G1×G1→G2,H(i)是Hash函數(shù)把表示屬性的任意長(zhǎng)度的字符串i轉(zhuǎn)換成G1中的元素.
隨機(jī)選擇α,βj∈Zp,其中j=1,…,depth,Zp是在modp加法下的群{0,1,…,p-1},p是一個(gè)大素?cái)?shù),考慮2層的密鑰結(jié)構(gòu),depth=2,則系統(tǒng)公鑰
PK=(G1,g,h1=gβ1,h2=gβ2,f1=g1/β1,f2=g1/β2,e(g,g)α).
系統(tǒng)主密鑰
MK=(β1,β2,gα).
將PK,H(i)發(fā)送給Owner,H(i)表示屬性i轉(zhuǎn)換成G1中的元素的函數(shù).
3.2訪問結(jié)構(gòu)樹處理
Owner構(gòu)建訪問結(jié)構(gòu)樹T,數(shù)據(jù)加密之后對(duì)訪問結(jié)構(gòu)樹處理,首先對(duì)葉節(jié)點(diǎn)中的表達(dá)式進(jìn)行定義.
定義1謂詞表達(dá)式:由客體、謂詞以及條件組成,其中客體為屬性名;謂詞是用于描述或判定客體性質(zhì)、特征或者客體之間關(guān)系的詞項(xiàng),例如大于、等于、小于等;條件指客體應(yīng)該滿足的條件.
定義2策略表達(dá)式:將謂詞表達(dá)式用邏輯聯(lián)結(jié)詞聯(lián)結(jié),聯(lián)結(jié)起來的式子稱為策略表達(dá)式.邏輯聯(lián)結(jié)詞指否定、析取、合取等.
例如圖2a中Balance>10,Balance是客體,>是謂詞,10是客體Balance需要滿足的條件.
訪問結(jié)構(gòu)樹處理步驟如下.
1) 對(duì)謂詞表達(dá)式進(jìn)行編號(hào),包括2部分:謂詞表達(dá)式所在葉節(jié)點(diǎn)的編號(hào)和謂詞表達(dá)式在策略表達(dá)式中的編號(hào).訪問結(jié)構(gòu)樹葉節(jié)點(diǎn)按照從左至右的順序進(jìn)行編號(hào);策略表達(dá)式中謂詞表達(dá)式按照從左至右的順序編號(hào).
2) 將謂詞表達(dá)式用相應(yīng)AA的公鑰加密用其編號(hào)標(biāo)識(shí).
3) 去掉葉節(jié)點(diǎn)中策略表達(dá)式的謂詞及條件僅保留客體及聯(lián)結(jié)詞.
將帶有葉節(jié)點(diǎn)編號(hào)的并且謂詞表達(dá)式中僅有客體及聯(lián)結(jié)詞的訪問結(jié)構(gòu)樹T’以及用AA公鑰加密的謂詞表達(dá)式作為處理后的訪問結(jié)構(gòu)樹.訪問結(jié)構(gòu)樹處理示例如圖2所示.
a.訪問結(jié)構(gòu)樹T;b.訪問結(jié)構(gòu)樹T';c.謂詞表達(dá)式加密.圖2 訪問結(jié)構(gòu)樹處理Fig.2 Transformation of access tree
3.3數(shù)據(jù)加密(Encryptpt(PK,M,T))
用CP-ASBE算法加密對(duì)稱密鑰M,得到密文CT1,數(shù)據(jù)包CT1中的內(nèi)容如下式所示:
3.4密鑰計(jì)算(KeyGen(MK,Au))
設(shè)用戶u的屬性集合為Au,其密鑰結(jié)構(gòu)中表示為Au={Au0,Au1,…,Aum},Au0表示單個(gè)屬性組成的集合,Au1到Aum是深度為 2 的屬性子集.設(shè)Aui={ai,1,…,ai,ni},ai,j表示屬性子集Aui中第j個(gè)屬性,ni表示Aui中屬性的個(gè)數(shù).
CA調(diào)用T(Au)判斷該用戶的密鑰結(jié)構(gòu)是否滿足Owner的訪問結(jié)構(gòu)樹T,如果不滿足則返回該結(jié)果,如果滿足則為該用戶計(jì)算解密密鑰.
CA為用戶選擇唯一的隨機(jī)數(shù)r∈Zp,為密鑰結(jié)構(gòu)中的每個(gè)屬性子集Aui∈Au選擇m個(gè)不同的隨機(jī)數(shù),ri∈Zp,i=1,…,m,對(duì)于集合Au0的隨機(jī)數(shù),令r0=r,AA為所管理的Aui中的每個(gè)屬性ai,j選擇不相同的隨機(jī)數(shù)ri,j∈Zp,i=1,…,m,j=1,…,ni,為用戶u計(jì)算密鑰為
SK=(Au,D=g(α+r)/β1,Di,j=gri·H(ai,j)ri,j,
Ei=g(r+ri)/β2(i=1,…,m),
其中D由CA隨機(jī)選擇一個(gè)負(fù)載較輕的AA計(jì)算,由CA將隨機(jī)數(shù)r、ri發(fā)送給對(duì)應(yīng)AA.
3.5解密算法(Decrypt(CT,SK))
用戶u得到密文CT和相應(yīng)解密密鑰之后執(zhí)行解密算法,首先解密CT1.為訪問結(jié)構(gòu)樹中節(jié)點(diǎn)解密定義算法DecryptNode(CT1,SK,x,i),其中CT1是對(duì)稱密鑰的密文,SK是得到的解密密鑰,x代表訪問結(jié)構(gòu)樹中節(jié)點(diǎn),i是用戶密鑰結(jié)構(gòu)中屬性集合的標(biāo)簽.用集合Sx代表滿足訪問節(jié)點(diǎn)x的密鑰結(jié)構(gòu)中屬性集合的標(biāo)簽集合.
如果x是葉子節(jié)點(diǎn)DecryptNode(CT1,SK,x,i),定義為:
如果att(x)?Aui,其中Aui∈Au,則DecryptNode(CT1,SK,x,i)=⊥.
如果att(x)=ai,j∈Aui∈Au,則有
e(gri·H(ai,j)ri,j,gqx(0)/e(gri,j,H(att(x)qx(0))=
e(g,g)ri·qx(0).
當(dāng)x是非葉節(jié)點(diǎn)時(shí),DecryptNode(CT1,SK,x,i)作如下遞歸計(jì)算:
1)設(shè)Bx是由節(jié)點(diǎn)x的任意dx個(gè)子節(jié)點(diǎn)組成的集合,令z∈Bx,判斷Sz是否為空,即是否存在屬性集合Aui滿足節(jié)點(diǎn)z,如果沒有屬性集合滿足則返回⊥.
2)對(duì)Bx中的每個(gè)節(jié)點(diǎn)z,以及滿足節(jié)點(diǎn)z的屬性集合標(biāo)簽i調(diào)用DecryptNode(CT1,SK,x,i),并將其結(jié)果存入Fz.
4)計(jì)算Fx.
解密時(shí)對(duì)訪問結(jié)構(gòu)樹的根節(jié)點(diǎn)r調(diào)用函數(shù)DecryptNode(CT1,SK,x,i),如果i=0,即AU0滿足訪問結(jié)構(gòu)樹,則Fr=e(g,g)r·qx(0)=e(g,g)r·s;如果i≠0,則Fr=e(g,g)ri·qx(0)=e(g,g)ri·s,計(jì)算
如果i=0,那么F=Fr.
計(jì)算對(duì)稱密鑰M.
利用得到的對(duì)稱密鑰M解密CT0,得到數(shù)據(jù)的明文.
4.1整體分析
授權(quán)中心由3部分組成,CAsetup產(chǎn)生初始化參數(shù)但是不進(jìn)行存儲(chǔ),因此對(duì)攻擊之前已經(jīng)加入系統(tǒng)的文件,攻擊者得不到對(duì)應(yīng)的初始化參數(shù),進(jìn)而不能得到其解密密鑰.CA中存儲(chǔ)的訪問結(jié)構(gòu)樹僅包含屬性名,攻擊者得不到具體的屬性,無法計(jì)算H(ai,j)的值,因此無法計(jì)算解密密鑰.假設(shè)一個(gè)文件加密屬性集合由m個(gè)AA管理,攻擊者要得到完整密鑰需要攻破m個(gè)AA,相對(duì)于僅有一個(gè)授權(quán)中心的可信第三方,該機(jī)制安全性較高.
4.2抵抗用戶合謀攻擊
用戶合謀攻擊指在單個(gè)用戶屬性不能滿足訪問結(jié)構(gòu),但是多個(gè)用戶的屬性結(jié)合可以滿足訪問結(jié)構(gòu)樹的情況下,用戶合謀解密文件.該機(jī)制中在計(jì)算解密密鑰時(shí),CA為用戶產(chǎn)生唯一的隨機(jī)數(shù)r,每個(gè)用戶的隨機(jī)數(shù)都不相同,在解密時(shí)由于r不同,不能計(jì)算出e(g,g)r·s,不能恢復(fù)出明文.
4.3抵抗選擇明文攻擊
與原CP-ASBE算法相比,該機(jī)制改進(jìn)了訪問結(jié)構(gòu)以及密鑰計(jì)算方式,數(shù)據(jù)加密與解密同原算法相同,密鑰計(jì)算時(shí)只是將不同屬性交由不同AA計(jì)算,實(shí)際的計(jì)算方法同原方法還是相同的,因此改進(jìn)后該機(jī)制安全性并未降低,同原算法一樣,能夠抵抗選擇明文攻擊(chosen-plaintext attacks,CPA).
實(shí)驗(yàn)環(huán)境為Intel(R)Core(TM)i5,CPU主頻為3.20 GHz,內(nèi)存8 GB,VMware Workstation虛擬機(jī)上的Ubuntu系統(tǒng),實(shí)驗(yàn)代碼是基于cpabe-0.11庫的改進(jìn),使用PBC庫,版本為0.5.11,對(duì)稱密鑰長(zhǎng)度為256位,訪問結(jié)構(gòu)樹高度為2,密鑰結(jié)構(gòu)的depth為2.對(duì)于相同的數(shù)據(jù)重復(fù)進(jìn)行100次實(shí)驗(yàn),取時(shí)間的平均值.
參數(shù)初始化:CAsetup產(chǎn)生雙線性組,選擇隨機(jī)數(shù),進(jìn)行冪計(jì)算,冪計(jì)算的數(shù)量和密鑰結(jié)構(gòu)的depth有關(guān),產(chǎn)生參數(shù)PK、MK,其時(shí)間復(fù)雜度為O(1),如圖3所示.
文件加密:Owner使用對(duì)稱加密算法加密數(shù)據(jù),其復(fù)雜性和選擇的加密算法以及需要加密的文件大小有關(guān).使用CP-ASBE算法加密對(duì)稱密鑰,其時(shí)間復(fù)雜度和訪問結(jié)構(gòu)樹中葉子節(jié)點(diǎn)數(shù)量以及轉(zhuǎn)換節(jié)點(diǎn)個(gè)數(shù)相關(guān),對(duì)葉子節(jié)點(diǎn)需要進(jìn)行兩次冪運(yùn)算,對(duì)轉(zhuǎn)換節(jié)點(diǎn)進(jìn)行一次冪計(jì)算,因此其時(shí)間復(fù)雜度為O(2|Y|+|X|).由文獻(xiàn)[11]可知,訪問結(jié)構(gòu)樹中轉(zhuǎn)換節(jié)點(diǎn)的數(shù)量對(duì)文件加密和解密的影響不大,因此僅考慮訪問結(jié)構(gòu)樹中葉子節(jié)點(diǎn)的數(shù)量對(duì)文件加密開銷的影響,如圖4所示.
圖3 參數(shù)初始化時(shí)間開銷Fig.3 Setup Operation
圖4 文件加密時(shí)間與訪問結(jié)構(gòu)樹葉節(jié)點(diǎn)個(gè)數(shù)關(guān)系Fig.4 Relationship between encryption time and the number of leaf nodes of the access tree
密鑰計(jì)算:該算法的時(shí)間復(fù)雜度和密鑰結(jié)構(gòu)中屬性的數(shù)量和屬性集合的數(shù)量有關(guān),設(shè)密鑰結(jié)構(gòu)中屬性的數(shù)量為N,密鑰結(jié)構(gòu)中屬性集合的數(shù)量為M,對(duì)密鑰結(jié)構(gòu)中的屬性需要進(jìn)行兩次冪計(jì)算,對(duì)屬性集合進(jìn)行一次冪計(jì)算,因此該算法的時(shí)間復(fù)雜度為O(2N+M).假定有10個(gè)AA,屬性平均分配給AA,圖5是在密鑰結(jié)構(gòu)中屬性數(shù)量固定的情況下(屬性數(shù)量為50),密鑰計(jì)算時(shí)間與密鑰結(jié)構(gòu)中屬性集合數(shù)量的關(guān)系,圖 6是在密鑰結(jié)構(gòu)中屬性集合固定(屬性集合個(gè)數(shù)為1),密鑰計(jì)算時(shí)間與密鑰結(jié)構(gòu)中屬性數(shù)量的關(guān)系.
圖5 密鑰生成時(shí)間與密鑰結(jié)構(gòu)中屬性集合數(shù)量關(guān)系Fig.5 Relationship between key generation time and the number of attribute sets in the key structure
圖6 密鑰生成時(shí)間與密鑰結(jié)構(gòu)中屬性數(shù)量關(guān)系Fig.6 Relationship between key generation time and the number of attributes in the key structure
文件解密:用戶首先用自己的私鑰對(duì)訪問結(jié)構(gòu)樹和CP-ASBE的解密密鑰進(jìn)行解密,然后用得到的解密密鑰對(duì)對(duì)稱密鑰進(jìn)行解密,最后用對(duì)稱密鑰對(duì)文件解密,由于非對(duì)稱加密和對(duì)稱加密算法的時(shí)間復(fù)雜度和選擇的算法以及文件大小有關(guān),因此僅討論CP-ASBE加密算法的時(shí)間復(fù)雜度.該算法包括對(duì)訪問結(jié)構(gòu)樹中葉子節(jié)點(diǎn)的計(jì)算和對(duì)轉(zhuǎn)換節(jié)點(diǎn)的計(jì)算,在最壞情況下,密鑰結(jié)構(gòu)中的每一個(gè)屬性都需要參加計(jì)算,訪問結(jié)構(gòu)樹中的轉(zhuǎn)換節(jié)點(diǎn)也都需要參加計(jì)算,則其時(shí)間復(fù)雜度為O(N+|X|).僅考慮參加解密的屬性個(gè)數(shù)對(duì)文件解密開銷的影響,如圖7所示.
圖7 解密時(shí)間與屬性數(shù)量關(guān)系Fig.7 Relationship between decryption time and the number of attributes
針對(duì)基于屬性集合加密僅依賴一個(gè)授權(quán)中心,容易成為
安全瓶頸問題,采用多個(gè)屬性授權(quán)機(jī)構(gòu),將解密密鑰的計(jì)算分配給m個(gè)AA,使攻擊者要得到完整解密密鑰需要攻擊m個(gè)AA,提高了基于屬性集合加密的安全性.并將該機(jī)制應(yīng)用于云存儲(chǔ)環(huán)境,對(duì)文件加解密及密鑰計(jì)算流程進(jìn)行分析,并給出安全證明及實(shí)驗(yàn)分析,該機(jī)制有利于云存儲(chǔ)環(huán)境下用戶數(shù)據(jù)的保護(hù).
[1]SAHAI A,WATERS B.Fuzzy Identity Based Encryption[J].Lecture Notes in Computer Science,2004,3494:457--473.DOI:10.1007/11426639_27.
[2]CHASE M.Multi-authority attribute based encryption[Z].The 4th Theory of Cryptograpthy Conference,Berlin Heidelberg,2007.DOI:10.1007/978-3-540-70936-7_28.
[3]LIN H,CAO Z,LIANG X,et al.Secure threshold multi-authority attribute based encryption without a central authority[J].Information Sciences,2010,180(13):2618-2632.DOI:10.1016/j.ins.2010.03.004.
[4]CHASE M,CHOW S S M.Improving privacy and security in multi-authority attribute-based encryption[Z].The 16th Association for Computing Machinery lonference on Computer and Communications Security,Chicago,2009.DOI:10.1145/1653662.1653678.
[5]LEWKO A,WATERS B.Decentralizing attribute-based encryption[Z].Advances in Cryptology-EUROCRYPT,Berlin Heidelberg,2011.DOI:10.1007/978-3-642-20465-4_31.
[6]TAEHO J,LI X,WAN Z,et al.Privacy preserving cloud data access with multi-authorities[Z].Infernational Conference on Compufer Communicafions,Turin,2013.DOI:10.1109/INFCOM.2013.6567070.
[7]YANG K,JIA X.Expressive,efficient and revocable data access control for multi-authority cloud storage[J].IEEE Transactions on Parallel and Distributed Systems,2014,25(7):1735-1744.DOI:10.1109/TPDS.2013.253.
[8]關(guān)志濤,楊亭亭,徐茹枝,等.面向云存儲(chǔ)的基于屬性加密的多授權(quán)中心訪問控制方案[J].通信學(xué)報(bào),2015,36(6):142-1-142-11.DOI:10.11959/j.issn.1000-436x.2015142.
GUAN Z T,YANG T T,XU R Z,et al.Multi-authority attribute-based encryption access control model for cloud storage[J].Journal on Communications,2015,36(6):142-1-142-11.DOI:10.11959/j.issn.1000-436x.2015142.
[9]李謝華,張蒙蒙,劉鴻,等.基于MA-ABE的云存儲(chǔ)訪問控制方法[J].湖南大學(xué)學(xué)報(bào),2015,42(10):133-140.DOI:10.16339/j.cnki.hdxbzkb.2015.10.022.
LI X H,ZHANG M M,LIU H,et al.Multi-authority ABE for access control in cloud storage[J].Journal of Hunan University(Natural Sciences),2015,42(10):133-140.DOI:10.16339/j.cnki.hdxbzkb.2015.10.022
[10]BOBBA R,KHURANA H,PRABHAKARAN M.Attribute-sets:a practically motivated enhancement to attribute-based encryption[Z].European Symposium on Research in Computer Security,Berlin Heidelberg,2009.DOI:10.1007/978-3-642-04444-1_36.
[11]WAN Z G,LIU J,ROBERT H D.HASBE:A hierarchical attribute-based solution for flexible and scalable access control in cloud computing[J].IEEE Transactions on Information Forensics and Security,2012,7(2):743-754.DOI:10.1109/TIFS.2011.2172209.
(責(zé)任編輯:孟素蘭)
CP-ASBE based data encryption mechanism for cloud storage
YANG Xiaohui,DING Wenqing
(College of Computer Science and Technology,Hebei University,Baoding 071002,China)
Attribute set encryption mechanism relies on an authorization center to generate key,which may easily become a system security bottleneck problem.So an authorization set encryption mechanism based on multiple attribute authorized institution is proposed.It can improve the security of the secret key.The authorization center consists of many attribute authorized institutions.To increase attack difficulty,many AA participate the complete key calculation.Each AA is responsible for managing some of the attributes set.In this paper,file encryption,key calculation and file decryption have been analyzed in cloud environ- ment.Data encryption mechanism has been efficiently designed under the cloud storage environment.The safety and overhead problems in the mechanism are also considered.Experiments indicated that the proposed method is effective.
cloud storage;CP-ASBE;encryption mechanism
10.3969/j.issn.1000-1565.2016.04.015
2016-03-11
國(guó)家科技支撐計(jì)劃項(xiàng)目(2013BAK07B04);河北省自然科學(xué)基金資助項(xiàng)目(F2014201152)
楊曉暉(1975—),男,河北邢臺(tái)人,河北大學(xué)教授,博士,主要從事分布計(jì)算與信息安全等方向研究.
E-mail:yxh@hbu.edu.cn
TP391
A
1000-1565(2016)04-0424-08