劉 艷,段 茹,琚名揚(yáng)
1(大連大學(xué) 遼寧省北斗高精度位置服務(wù)技術(shù)工程實(shí)驗(yàn)室,遼寧 大連 116622)
2(大連大學(xué) 信息工程學(xué)院,遼寧 大連 116622)
E-mail :linda_whb@163.com
隨著云計(jì)算技術(shù)和大數(shù)據(jù)的飛速發(fā)展,云存儲(chǔ)方式有效地降低了本地?cái)?shù)據(jù)存儲(chǔ)和管理成本,實(shí)現(xiàn)了高質(zhì)量的應(yīng)用服務(wù).通過云存儲(chǔ)技術(shù),數(shù)據(jù)通信和共享變得比以往任何時(shí)候都更加經(jīng)濟(jì)和方便.然而,人們?cè)谙硎茉萍夹g(shù)帶來的好處的同時(shí),還面臨著如何使數(shù)據(jù)能夠安全高效共享的問題.
代理重加密(Proxy Re-encryption,PRE)[1]支持代理者在不知道授權(quán)人私鑰的情況下,將授權(quán)人的密文轉(zhuǎn)換為可被被授權(quán)解密的密文,解決了云端數(shù)據(jù)分享的問題.然而,目前的ABPRE方案雖實(shí)現(xiàn)了數(shù)據(jù)共享,但仍存在一些不足之處,限制了ABPRE的應(yīng)用.其中一個(gè)亟待解決的問題是加密密鑰的時(shí)間限制安全保護(hù)[3].在現(xiàn)有的大多數(shù)工作中,重新加密密鑰是獨(dú)立于系統(tǒng)時(shí)間段生成的,當(dāng)用戶的訪問權(quán)限發(fā)生變化時(shí),這些時(shí)間段易因缺乏前向安全保護(hù)而造成密鑰泄漏問題,而密鑰隔離密碼體制[4-8]則是解決該問題的有效方法之一.
即使擁有保證密鑰安全的方法,仍需要高效的數(shù)據(jù)訪問模式,如今單一的數(shù)據(jù)共享已無法適應(yīng)云環(huán)境、可以實(shí)現(xiàn)一對(duì)多的數(shù)據(jù)訪問的方案急需研究.眾多加密算法被提出,其中基于屬性的代理沖加密方案[2]可將多個(gè)屬性加密的明文轉(zhuǎn)換成另一組屬性加密的密文,極大大提高了數(shù)據(jù)分享效率.后來,Liang等人利用密文策略,提出了第一個(gè)利用屬性實(shí)現(xiàn)自中心訪問管理的CP-ABPRE[9].為提高計(jì)算效率,出現(xiàn)了恒定雙線性對(duì)的加密方案[10].同時(shí)為提高安全性,具有CCA安全性的ABPRE方案和可匿名的代理重加密方案等陸續(xù)被提出[3,11,12,16].上述方案雖然使得數(shù)據(jù)共享變得更加高效快捷,安全性也有提高,但方案中加密密鑰是獨(dú)立于系統(tǒng)時(shí)間段生成的,當(dāng)用戶的訪問權(quán)限發(fā)生變化或密鑰暴露時(shí),均無法實(shí)現(xiàn)前向安全保護(hù)[13,14].2017年,Hong等人提出的方案[15]實(shí)現(xiàn)了將屬性與密鑰隔離相結(jié)合的方式實(shí)現(xiàn)了數(shù)據(jù)的安全保護(hù),但其采用的與門訪問結(jié)構(gòu)并不能很好的適應(yīng)當(dāng)前云端的數(shù)據(jù)訪問控制需要.
針對(duì)上述存在的問題,本文將密鑰隔離技術(shù)與基于屬性的代理重加密方案相結(jié)合,并采用LSSS線性共享矩陣的訪問結(jié)構(gòu),提出一種支持密鑰隔離的屬性代理重加密方案.方案采用密鑰隔離技術(shù)將生存期分為離散時(shí)間片,用戶的私鑰定期刷新.當(dāng)系統(tǒng)進(jìn)入一個(gè)新的時(shí)間段時(shí),以前時(shí)間段中的重新加密密鑰無法在新的時(shí)間段中為用戶生成有效的密文;同時(shí),在新時(shí)間段失去訪問權(quán)限的用戶將無法解密授權(quán)用戶的密文.方案精簡(jiǎn)了協(xié)助者密鑰,在私鑰產(chǎn)生和更新過程避免了增加多余的計(jì)算量,證明了隨機(jī)預(yù)言模型下的安全性.
定義1.設(shè)有兩個(gè)階為素?cái)?shù)p的乘法循環(huán)群.g,gT分別為G,GT的生成元,雙線性映射e:G×G→GT,同時(shí)滿足以下性質(zhì):
·雙線性 :存在e(ga,gb)=e(g,g)ab,其中?a,b∈Zp.
·非退化性:存在g∈G,使得e(g,g)≠1.
·可計(jì)算性:對(duì)?(u,v)∈G,e(u,v)都能有效的計(jì)算.
設(shè)有兩個(gè)階為素?cái)?shù)p的乘法循環(huán)群,生成元g∈G,隨機(jī)選取元素a,s,b1,…,bq∈Zp,給定一個(gè)多元組:(g,gs,ga,…,g(aq),g(q+2),…,g(a2q)),(gs·bj,ga/bj,…,g(aq/bj),g(q+2/bj),…,g(a2q/bj))其中?1≤j≤q;(gasbk/bj,…,g(aqsbk/bj))其中?1≤j,k≤q,j≠k.
如果不存在一個(gè)多項(xiàng)式時(shí)間算法能以一個(gè)不可忽略的優(yōu)勢(shì)T輸出T=e(g,g)aq+1·s∈GT,則稱判定性q-parallel BDHE假設(shè)成立.
本文采用的系統(tǒng)模型如圖1所示,用戶將數(shù)據(jù)加密后上傳至云端后通過代理服務(wù)器將轉(zhuǎn)換后的密文CT′發(fā)送給被授權(quán)人,但因重加密密鑰中包含了用戶的私鑰信息,當(dāng)服務(wù)器與一些被授權(quán)人串通時(shí),用戶將無法避免自身權(quán)益和隱私權(quán)受到損害.系統(tǒng)加入了密鑰隔離技術(shù),當(dāng)進(jìn)入t2時(shí)間段時(shí),協(xié)助者輔助用戶計(jì)算出新私鑰SK2.假設(shè)被授權(quán)人已被剝奪訪問權(quán)限,且代理服務(wù)器與被授權(quán)人于t1時(shí)刻合謀計(jì)算出的用戶私鑰SK1已失效,被授權(quán)人將無法得到用戶加密后的信息,從而保證了用戶的隱私及數(shù)據(jù)的安全性.
圖1 系統(tǒng)模型圖
系統(tǒng)中云服務(wù)器主要負(fù)責(zé)存儲(chǔ)用戶加密后的數(shù)據(jù)和提供數(shù)據(jù)重加密服務(wù).數(shù)據(jù)擁有者即用戶,負(fù)責(zé)將加密自己的數(shù)據(jù)上傳至云端、生成tl時(shí)刻的私鑰及更新下一時(shí)間段私鑰.協(xié)助者負(fù)責(zé)進(jìn)入新的時(shí)間段后更新用戶私鑰組件,幫助用戶更新私鑰.被授權(quán)者想獲得用戶上傳的隱私數(shù)據(jù),要取得訪問用戶的訪問權(quán)限,如果符合,云服務(wù)器將重加密用戶的文件,將重加密后的文件發(fā)送給被授權(quán)人.本系統(tǒng)算法工作流程如圖2所示.其中
1)密鑰生成:由用戶和被授權(quán)者生成各自的密鑰.
2)密鑰協(xié)助更新:協(xié)助者作為輔助用戶更新私鑰的部分,負(fù)責(zé)給用戶發(fā)送私鑰更新組件.
3)私鑰更新階段:用戶通過協(xié)助者計(jì)算的更新組件生成當(dāng)前tl+1時(shí)刻的私鑰.
圖2 算法工作流程圖
4)密文生成階段:用戶使用當(dāng)前tl+1時(shí)刻的私鑰加密明文生成原始密文.
5)重加密密鑰生成階段:用戶結(jié)合被授權(quán)者的公鑰生成重加密密鑰并發(fā)送給云服務(wù)器.
6)重加密密文生成階段:云服務(wù)器根據(jù)重加密密鑰執(zhí)行重加密算法,生成重加密密文并發(fā)送給被授權(quán)者.
7)解密階段:用戶及被授權(quán)人執(zhí)行解密算法,若符合訪問結(jié)構(gòu),則分可解密原始密文及重加密密文,否則則無法得到明文.
協(xié)助密鑰更新HkUpdate(MSK,S):此算法為協(xié)助密鑰更新組件密鑰由密鑰協(xié)助者執(zhí)行(密鑰協(xié)助者可與委托者為同一人).輸入主密鑰MSK和用戶屬性集S.當(dāng)系統(tǒng)進(jìn)入從tl到tl+1的新周期時(shí),密鑰協(xié)助者計(jì)算具有屬性S的密鑰刷新組件:tl時(shí)刻的密鑰協(xié)助組件為HSKtl=H1(x,tl)h;tl+1時(shí)為HSKtl+1=H1(x,tl+1)h.協(xié)助者更新公式為 :HSKtl→tl+1=HSKtl+1/HSKtl=(H(x,tl+1)/H(x,tl))h.當(dāng)tl+1到來時(shí),用戶為屬性集S和被委托者可使用此組件更新密鑰.
私鑰更新SkRef(HSKtl→tl+1,SK,S):此算法為私鑰更新算法,由用戶執(zhí)行.輸入密鑰協(xié)助更新組件HSKtl→tl+1、用戶私鑰SK和用戶屬性集S.當(dāng)系統(tǒng)進(jìn)入從tl到tl+1的新周期時(shí),用戶計(jì)算:
Kx,tl+1=Kx,tl/HSKtl→tl+1=gβH1(x,tl+1)h
計(jì)算完成后輸出更新后的私鑰:
SK={K,L,{Kx,tl+1}?x∈S}.
CT={(M,ρ),A1,A2,A3,Bi,Ci?i∈[l]}.
最后輸出重加密密鑰:
RK={rk1,rk2,rk3,rk4,Rx,tl}.
重加密密文生成ReEnc(CT,RK):算法由半可信代理服務(wù)器執(zhí)行.輸入初始密文CT和重加密密鑰RK.重加密密鑰RK重加密密文CT′的計(jì)算過程如下:
(1)
最后輸出重加密密文:
(2)
然后計(jì)算A1/Z=m,得到明文消息m.
(3)
1)正確性驗(yàn)證:
=e(gs,gα)
同理可得Z′=e(gs′,gα),解出密文為:
A1/Z=m·e(g,g)α·s/e(g,g)sα=m.
2)重加密算法中A4的正確性驗(yàn)證:
=e(g,g)sαH2 (δ)
定理1.隨機(jī)預(yù)言模型下,如果q-BDHE困難問題是難解的,那么本方案在是不可區(qū)分性安全的.
證明:假設(shè)在一個(gè)概率多項(xiàng)式時(shí)間內(nèi),構(gòu)造敵手A和一個(gè)挑戰(zhàn)者C,如果敵手A以不可忽略的優(yōu)勢(shì)ε攻破本方案隨機(jī)預(yù)言模型下不可區(qū)分性的安全游戲,那么可以利用敵手A的輸出求解q-BDHE困難問題.輸入問題實(shí)例y和T,進(jìn)行如下模擬游戲:
1)初始化:敵手A發(fā)送給挑戰(zhàn)者C一個(gè)想要挑戰(zhàn)的訪問結(jié)構(gòu)(M*,ρ*),其中M*為l*×k*,l*,k*≤q的矩陣.
否則挑戰(zhàn)者C設(shè)置δ2,x=gzx.最后挑戰(zhàn)者C返回δ2,x,給敵手A并將元組(x,zx,δ2,x)添加至H1列表中.
3)階段1:敵手A發(fā)起詢問,挑戰(zhàn)者C作如下響應(yīng):
最后,挑戰(zhàn)者C將(S,SK)添加到列表中并發(fā)送給敵手A.
②協(xié)助密鑰更新查詢OHkUpdate(MSK,S):敵手A提交查詢時(shí)間片段tl到tl+1的密鑰更新請(qǐng)求,挑戰(zhàn)者C計(jì)算:HSKtl→tl+1=HSKtl+1/HSKtl=H1(x,tl+1)h/H1(x,tl)h,并將結(jié)果返回?cái)呈諥.
③私鑰更新查詢OSkRef(HSKtl→tl+1,SK,S):挑戰(zhàn)者C計(jì)算Kx,tl+1=Kx,tl/HSKtl→tl+1=grsH1(x,tl+1)h,將結(jié)果返回?cái)呈諥.
4)挑戰(zhàn):令b∈{0,1},挑戰(zhàn)者C負(fù)責(zé)加密消息mb,mb為敵手A發(fā)送,且m1、m2等長(zhǎng),加密后作如下回答:
5)階段2:同階段1.
6)猜測(cè).設(shè)b′敵手A為猜測(cè)結(jié)果.如果b′=b,挑戰(zhàn)者C輸出0,說明T是GT的隨機(jī)值.如果b′≠b則輸出1,則有T=e(g,g)aq+1·s,說明敵手A能夠以ε的概率得到有效密文:
Pr[b′=b|(y,e(g,g)aq+1·s)=0]=1/2+ε.因此,戰(zhàn)者C成功解決決定性q-BDHE問題的概率為ε/2.
在本方案中,假設(shè)代理服務(wù)器將代理重加密密鑰發(fā)送給被委托者惡意合謀,此時(shí)被委托者結(jié)合自身私鑰可以恢復(fù)出δ的值,然后根據(jù)rk3和Rx,tl得出gβ和Kx,t0=gβH(x,t0)h的值.但是被委托者無法根據(jù)rk2和剩下信息得出θ的值,從而得出K的值,如此便不可能得到用戶的全部私鑰.由此證明,即使代理服務(wù)器與被委托人惡意合謀也無法解密沒有訪問權(quán)限的用戶密文,從而實(shí)現(xiàn)了抗合謀攻擊性.
本文采用醫(yī)生查看病例的情況及含75個(gè)屬性的UCI真實(shí)數(shù)據(jù)集Heart Disease來分析說明文獻(xiàn)[16]、文獻(xiàn)[15]和本方案算法的功能與效率比較結(jié)果.實(shí)驗(yàn)將醫(yī)生A設(shè)置為數(shù)據(jù)所有者即用戶,將合作的醫(yī)生B設(shè)置為被授權(quán)者.當(dāng)醫(yī)生A欲與別的醫(yī)生合作時(shí),可設(shè)置訪問條件后加密上傳至服務(wù)器.如當(dāng)醫(yī)生A確定與主治勞動(dòng)引起心絞痛癥狀的醫(yī)生B合作,則可設(shè)定訪問條件為{典型心絞痛&通過勞累引起}.與醫(yī)生C合作則可設(shè)為{(典型心絞痛&通過勞累引起)∨{有ST-T波異常&運(yùn)動(dòng)可誘發(fā)心絞痛}}.如此患者通過改變?cè)L問結(jié)構(gòu)中的條件即可實(shí)現(xiàn)數(shù)據(jù)有針對(duì)的分享.
仿真實(shí)驗(yàn)環(huán)境為64bit Windows10操作系統(tǒng)、實(shí)驗(yàn)代碼基于jPBC(java Pairing-Based Cryptography Library)庫(kù),方案存儲(chǔ)空間開銷及運(yùn)行時(shí)間結(jié)果將使用MATLAB 2014a進(jìn)行更直觀的對(duì)比表示.為仿真真實(shí)環(huán)境,實(shí)驗(yàn)設(shè)用戶屬性個(gè)數(shù)|S|∈[10,50],訪問條件為訪問結(jié)構(gòu)屬性個(gè)數(shù)l,實(shí)驗(yàn)結(jié)果均為20次模擬運(yùn)算的平均值.
文獻(xiàn)[16]的屬性代理重加密方案安全性較高,文獻(xiàn)[15]同樣支持密鑰隔離的屬性代理重加密方案,因此將本方案功能與文獻(xiàn)[16]和文獻(xiàn)[15]進(jìn)行對(duì)比分析,如表1所示.其中|G|和|GT|分別代表群G和GT中元素的長(zhǎng)度,|U|表示屬性集大小,對(duì)比了系統(tǒng)建立和密鑰長(zhǎng)度的存儲(chǔ)代價(jià).
表1 方案性能比較
從表1可以看出,文獻(xiàn)[16]與本方案同采用LSSS線性共享矩陣,但文獻(xiàn)[16]雖是選擇密文安全的屬性代理重加密方案,具有很好的安全性,但其并不支持密鑰隔離的功能,在用戶權(quán)限發(fā)生變更時(shí),本文方案更具安全性.文獻(xiàn)[15]雖然同樣支持密鑰隔離,但采用的靈活度較低的與門訪問結(jié)構(gòu),從系統(tǒng)建立及密文長(zhǎng)度可以看出,該算法需要占用更大的資源.由于加入密鑰隔離的參數(shù)計(jì)算,在密鑰生成階段,本方案與文獻(xiàn)[15]占用資源要高于文獻(xiàn)[16],且本文方案略高于文獻(xiàn)[15],但相比于密文的開銷,如圖3所示,本方案更適用于云計(jì)算和實(shí)際應(yīng)用.
本節(jié)將從效率方面與文獻(xiàn)[16]、文獻(xiàn)[15]進(jìn)行對(duì)比,比較結(jié)果見表 2.其中E表示G上的一次指數(shù)操作指數(shù)運(yùn)算,P是表示雙線性對(duì)配對(duì)運(yùn)算.由于哈希算法、非生成元群元素上的指數(shù)操作計(jì)算量較小,故忽略不計(jì)兩種算法的計(jì)算量.
表2 計(jì)算開銷比較
本章主要展示了密文生成時(shí)間、重加密時(shí)間和解密時(shí)間的實(shí)驗(yàn)運(yùn)行結(jié)果.如圖4、圖5和圖6所示.由于加密時(shí)間與用戶屬性數(shù)量相關(guān)而與訪問結(jié)構(gòu)匹配屬性數(shù)量無關(guān),文獻(xiàn)[15]的始終進(jìn)行較大的屬性數(shù)運(yùn)算,即屬性個(gè)數(shù)取值始終為數(shù)據(jù)集總數(shù)據(jù)量,故而在密文加密階段,密文生成和解密階段始終需要更多的運(yùn)算時(shí)間.而在重加密階段,文獻(xiàn)[16]隨著匹配屬性的增加,運(yùn)算時(shí)間直/線上升,本方案卻始終保持著最低的時(shí)間消耗.結(jié)合三個(gè)階段的時(shí)間對(duì)比可知,本方案在時(shí)間消耗方面更具優(yōu)勢(shì).
圖3 密文存儲(chǔ)代價(jià)
Fig.3 Ciphertext storage cost
圖4 密文生成時(shí)間
Fig.4 Time of encryption time
圖5 重加密時(shí)間
Fig.5 Time of Re-cryption
圖6 解密時(shí)間
Fig.6 Time of decryption
本文提出了一種支持密鑰隔離的屬性代理重加密方案,在屬性代理重加密方案中加入時(shí)間參數(shù),避免了不可信第三方與被授權(quán)用戶的非法勾結(jié),解決了屬性代理重加密方案的秘鑰泄露問題.系統(tǒng)生存期被劃分為離散的時(shí)間片,當(dāng)系統(tǒng)進(jìn)入新的時(shí)間片時(shí),每個(gè)用戶都可以進(jìn)行密鑰刷新來限定訪問時(shí)間,進(jìn)入新的時(shí)間周期后,已經(jīng)失去訪問權(quán)限的用戶無法對(duì)系統(tǒng)中的數(shù)據(jù)造成威脅,本方案的保密性和抗合謀攻擊性已通過安全性證明.此外,相對(duì)于已有的支持密鑰隔離的重加密方案,功能和效率分析結(jié)果表明本案在提高安全性的同時(shí)沒增加計(jì)算開銷,且擁有更加靈活的訪問策略和計(jì)算效率,是一種比較適合當(dāng)前云環(huán)境的加密方案.