何凱 龐浩霖 付有才
(1. 東莞理工學(xué)院 網(wǎng)絡(luò)與空間安全學(xué)院,廣東東莞 523808;2. 東莞理工學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,廣東東莞 523808)
屬性基加密(ABE)[1]方案不僅可以保障數(shù)據(jù)的機(jī)密性,同時(shí)還能夠?qū)崿F(xiàn)數(shù)據(jù)的細(xì)粒度訪問控制功能,被廣泛的應(yīng)用于云存儲(chǔ)中。屬性基加密分為基于密鑰策略的屬性加密[2]和基于密文策略的屬性加密[3],前者是將策略嵌入到密鑰中、屬性嵌入到密文中;后者是將策略嵌入到密文中、屬性嵌入到密鑰中。在屬性基加密系統(tǒng)中,所有用戶的私鑰都是由一個(gè)中心實(shí)體生成,當(dāng)實(shí)體不可信或遭受惡意攻擊時(shí),可能會(huì)造成用戶密鑰泄露,這樣大大降低了云存儲(chǔ)數(shù)據(jù)的安全性和保密性。為了解決該問題,多中心實(shí)體的屬性基加密方案相繼被提出[4-6],這些方案支持多個(gè)不同中心實(shí)體同時(shí)操作,每個(gè)中心實(shí)體管理一組屬性,并給用戶擁有其屬性頒發(fā)私鑰。Lekwo和Waters[7]提出了一個(gè)多中心的基于密文策略的屬性加密方案,其中每個(gè)中心實(shí)體無(wú)需相互協(xié)作就可以頒發(fā)私鑰。Han等人[8]提出了一個(gè)多中心的基于密鑰策略的屬性基加密方案。然而,Ge等人[9]指出Han等人[8]方案無(wú)法抵抗共謀攻擊,并提出了一種具體的攻擊,即當(dāng)兩個(gè)擁有解密密鑰的用戶進(jìn)行合謀時(shí),能夠?yàn)橐粋€(gè)未授權(quán)的用戶產(chǎn)生一個(gè)合法的私鑰。隨后,Y.Rahulamathavan等人[10]對(duì)Han等人的方案[8]進(jìn)行了擴(kuò)展,提出了一個(gè)能夠抵抗用戶合謀方案。然而,Zhang等人[11]發(fā)現(xiàn)方案[10]的解密算法存在安全漏洞,只需勾結(jié)的用戶們屬性集合合并起來(lái)能夠滿足密文訪問控制策略,就能產(chǎn)生一個(gè)有效私鑰成功地解密密文。因此,Zhang等人[11]改進(jìn)了方案[10]的私鑰生成算法,聲稱改進(jìn)后方案能夠抵抗共謀攻擊。然而,本文在方案[11]的攻擊場(chǎng)景的基礎(chǔ)上,增加了一個(gè)勾結(jié)的中心實(shí)體,當(dāng)未授權(quán)的用戶與中心實(shí)體進(jìn)行勾結(jié),改進(jìn)后的方案[11]也無(wú)法抵抗共謀攻擊。
1)雙線性配對(duì)。
G1和G2是素?cái)?shù)階p的兩個(gè)乘法循環(huán)群,g是群G1的生成元,e是雙線性配對(duì),e:G1×G1→G2,雙線性配對(duì)具有以下屬性:
?雙線性:對(duì)于所有g(shù),h∈G1,和a,b∈Zp。有a,b∈Zp,有e(ga,hb)=e(g,h)ab。
?非退化性:e(g,h)≠1。
?可計(jì)算性:對(duì)于g,h∈G1,計(jì)算e(g,h)是容易計(jì)算的。
2)判定雙線性迪菲-赫爾曼(Decisional Bilinear Diffie-Hellman,DBDH)假設(shè)。
隨機(jī)選擇a,b,c,z∈Zp,g是群G1的生成元,沒有多項(xiàng)式時(shí)間算法能夠以不可忽略的優(yōu)勢(shì)區(qū)分元組(ga,gb,gc,gabc)與元組(ga,gb,gc,gz)時(shí),DBDH假設(shè)成立。算法的優(yōu)勢(shì)定義為
AdvBDBDH=|Pr[B(ga,gb,gc,gabc)=1]-
Pr[B(ga,gb,gc,gz)=1]|.
1)多中心的基于密鑰策略的屬性加密(KP-ABE)方案由以下5個(gè)算法組成。
全局初始化:輸入安全參數(shù)l,系統(tǒng)輸出系統(tǒng)全局參數(shù)。
中心初始化:每個(gè)中心Ak產(chǎn)生自己的私鑰SKk和公鑰PKk和一個(gè)訪問控制結(jié)構(gòu)Ak。
多中心的基于密鑰策略的屬性加密方案安全敵手和挑戰(zhàn)者之間的安全游戲如下:
全局設(shè)置:挑戰(zhàn)者運(yùn)行Global Setup算法生成系統(tǒng)參數(shù),并把它給A。
授權(quán)設(shè)置:每個(gè)授權(quán)者生成自己的私鑰SKk和公鑰PKk和訪問控制結(jié)構(gòu)Ak。
1)對(duì)于Ak∈CA, 挑戰(zhàn)者將公、私鑰對(duì)(SKk,PKk)發(fā)送給敵手A。
2)對(duì)于Ak?CA,挑戰(zhàn)者只將公鑰發(fā)送給敵手A。
挑戰(zhàn):敵手A提交兩個(gè)長(zhǎng)度相同的消息m0和m1,挑戰(zhàn)者隨機(jī)選擇一比特b從{0,1}中,挑戰(zhàn)者計(jì)算挑戰(zhàn)密文CT*=Encryption(params,mb,AC),并將CT*發(fā)送給A。
階段2:敵手進(jìn)行密鑰查詢,與階段1相同。
猜測(cè)階段:敵手A輸出b′。
首先,簡(jiǎn)單回顧Zhang等人的多中心的屬性基加密方案[11]。
每個(gè)中心實(shí)體初始化:每個(gè)中心實(shí)體Ak選取{αk,βk,tk,1,…,tk,nk}∈RZp,并計(jì)算自己的主公鑰:
和Ak的主私鑰:
SKk={αk,βk,tk,1,…,tk,nk}.
中心實(shí)體Ak設(shè)定授權(quán)用戶需要滿足訪問樹結(jié)構(gòu)屬性的最小數(shù)量為mk(mk≤nk).
密鑰生成:每個(gè)Ak選取rk,u∈RZp,并為訪問樹T中的每個(gè)結(jié)點(diǎn)x選擇多項(xiàng)式qx。每個(gè)結(jié)點(diǎn)x的多項(xiàng)式qx的階為dx=kx-1,其中kx是該結(jié)點(diǎn)的閾值。對(duì)根結(jié)點(diǎn)r,設(shè)定qr(0)=rk,u;對(duì)其他結(jié)點(diǎn)x,設(shè)定qx(0)=qparent(x)(index(x))。然后,輸出用戶的私鑰:
C1=m∏k∈Ice(g,g)sαk,
C2=gs,
C3=∏k∈Icgsβk,
其中Ic表示中心實(shí)體管理的屬性集合的索引集。
解密:用戶u首先計(jì)算D′=hu,與X,Y,Sk:
X=∏k∈Ice(C2,Dk,u) ,
Y=e(C3,D′) ,
然后,用戶u計(jì)算消息m:
Zhang等人[11]提出了一個(gè)新的隱私保護(hù)多中心密鑰策略的屬性基加密方案,聲稱可以抵抗共謀攻擊。然而,在其私鑰Dk,u設(shè)計(jì)中,發(fā)現(xiàn)用戶的身份u和中心實(shí)體的私鑰β都在h的指數(shù)上(如huβ)。這樣,所有用戶的私鑰之間存在線性關(guān)系,容易受到用戶的共謀攻擊。因此,筆者提出了一個(gè)安全性分析,表明他們的改進(jìn)方案對(duì)共謀攻擊是不安全的,具體分析如下。
考慮與Zhang等人的方案[11]相同的攻擊場(chǎng)景,不同之處在于我們的攻擊涉及到不懷好意的中心實(shí)體A3。假設(shè)A1,A2,A3是該系統(tǒng)的三個(gè)屬性中心實(shí)體。
中心實(shí)體A1為用戶u1生成私鑰:
中心實(shí)體A2為用戶u1生成私鑰:
中心實(shí)體A3為用戶u2生成私鑰:
密文如下:
C1=m∏k∈Ice(g,g)sαk,
C2=gs,
C3=∏k∈Icgsβk,
其中Ic={1,2,3}表示中心實(shí)體集的索引。
現(xiàn)在,用戶u1和u2利用他們的私鑰,勾結(jié)中心實(shí)體A3利用他的主私鑰β3,他們共謀能夠計(jì)算X,Y,S如下:
X=e(C2,D1,u1)e(C2,D2,u1)e(C2,D3,u2)=
e(g,g)-s(α1+α2+α3)·e(g,h)s(u1 β1+u1 β2+u2 β3)·
Y=e(C3,hu1)·e(C2,hu1)-β3e(C2,hu2)β3=
e(gs(β1+β2+β3),hu1)·e(gs,hu1)-β3e(gs,hu2)β3=
e(gs(β1+β2),hu1)·e(gs,hu2)β3=
e(g,h)s(u1β1+u1β2+u2β3),
然后,用戶u1與u2共謀計(jì)算
因此,
綜上所述,未授權(quán)的用戶u1和u2與勾結(jié)的中心實(shí)體A3一起成功地完成了共謀攻擊。
此外,Han等人的方案[8]在解密算法上也有同樣的問題,所以他們的方案也會(huì)遭受同樣的攻擊,具體攻擊見附錄A。
最近,Zhang等人[11]提出一個(gè)改進(jìn)的隱私保護(hù)多中心的密鑰策略的屬性基加密方案,聲稱其方案能夠抵抗用戶合謀攻擊。然而,在安全模型下,對(duì)其方案進(jìn)行了安全性分析,表明了其方案[11]不能滿足抗共謀的安全要求。
附錄A Han等人的多中心的屬性基加密方案的安全性分析
A.1 回顧Han等人的方案
在Han等人的方案[8]中,只有密鑰生成算法和解密算法與Zhang等人的方案[11]不同,全局初始化、中心實(shí)體初始化和加密是相同的。因此,僅回顧密鑰生成算法和解密算法:
Di,u=gαihri,uh1uβi,
因此,
A.2 對(duì)Han等人[8]的方案進(jìn)行安全性分析
中心實(shí)體A1為用戶u1生成私鑰:
D1,u1=gα1hr1,u1h1u1β1,
中心實(shí)體A2為用戶u1生成私鑰:
D2,u1=gα2hr2,u1h1u1β2,
中心實(shí)體A3為用戶u2生成私鑰:
D3,u2=gα3hr3,u2h1u2β3,
密文如下:
C2=gs,
其中Ic={1,2,3}表示中心實(shí)體集的索引。
現(xiàn)在,用戶u1和u2利用他們的私鑰,而不懷好意的中心實(shí)體A3利用他的主私鑰β3,他們共謀計(jì)算X,Y,S如下:
X=e(C2,D1,u1)e(C2,D2,u1)e(C2,D3,u2)=
e(g,g)s(α1+α2+α3)·e(g,h)s(r1,u1+r2,u1+r3,u2)·
e(g,h1)s(u1β1+u1β2+u2β3),
e(g,h1)s(u1β1+u1β2+u2β3),
然后,用戶u1與u2共謀計(jì)算
S=S1·S2·S3=e(g,h)s(r1,u1+r2,u1+r3,u2).
因此,