李學(xué)俊 袁亞文 金春花
1(西安電子科技大學(xué)網(wǎng)絡(luò)與信息安全學(xué)院 西安 710071) 2 (江蘇省物聯(lián)網(wǎng)移動(dòng)互聯(lián)技術(shù)工程實(shí)驗(yàn)室(淮陰工學(xué)院) 江蘇淮安 223001) (aluckydd@mail.xidian.edu.en)
隨著物聯(lián)網(wǎng)和云計(jì)算技術(shù)的高速發(fā)展[1],廣播電視網(wǎng)(廣電網(wǎng))開始向云端轉(zhuǎn)移,以新智慧、新體驗(yàn)為主題,進(jìn)入智能化信息服務(wù)云平臺(tái)戰(zhàn)略轉(zhuǎn)型階段.“云管端”協(xié)同下,廣電提供商借助“云”將互聯(lián)網(wǎng)信息接入應(yīng)用平臺(tái),從而為用戶提供數(shù)字電視、遠(yuǎn)程教育、政府信息發(fā)布、社區(qū)智能服務(wù)和游戲娛樂等多樣化信息服務(wù)[2].例如數(shù)字電視節(jié)目服務(wù)中,拋棄傳統(tǒng)的大面積整體推送,將用戶按照訂閱喜好和消費(fèi)習(xí)慣分類劃分,不同用戶可享受專屬電視節(jié)目單.云端融合后,廣電網(wǎng)不再封閉,不法分子趁機(jī)活躍,經(jīng)常私自篡改廣播信息、利用網(wǎng)絡(luò)獲取智能服務(wù)等.如第26屆中國國際廣播電視信息網(wǎng)絡(luò)展覽會(huì)中提到的“2017年網(wǎng)絡(luò)視頻盜版侵權(quán)導(dǎo)致潛在廣告展示和版權(quán)付費(fèi)的統(tǒng)計(jì)損失超過200億元”.廣電網(wǎng)作為社會(huì)信息主要傳播渠道,需要密碼技術(shù)保障廣播內(nèi)容的傳輸安全[3].
傳統(tǒng)的廣電網(wǎng)主要依靠對稱密碼技術(shù),需通信雙方協(xié)商對稱密鑰,不符合實(shí)際應(yīng)用.公鑰加密技術(shù)由于大大節(jié)省了密鑰空間成為密碼界的主流技術(shù),公鑰廣播加密作為其中一種,可實(shí)現(xiàn)高效地一對多信息共享,并保證只有被選中的用戶才可成功解密,保證了信息安全并減小了通信開銷,被廣泛應(yīng)用于廣電網(wǎng).但是,隨著用戶的增多,廣播加密由于無法靈活控制用戶陷入了發(fā)展瓶頸.為提高廣播效率,屬性基廣播加密技術(shù)被提出,將用戶按照屬性劃分,設(shè)計(jì)靈活的密文訪問結(jié)構(gòu)從而高效控制用戶接入,加速了廣播加密技術(shù)在廣電網(wǎng)的發(fā)展.
廣電網(wǎng)轉(zhuǎn)型后具有很多特性,廣電服務(wù)商需要制作符合不同用戶的個(gè)性化服務(wù)密文,隨著用戶數(shù)量增多,這種個(gè)性化服務(wù)大大增加了廣播流量.而且用戶的動(dòng)態(tài)性較強(qiáng),用戶可能沒有及時(shí)繳費(fèi)被撤銷服務(wù)權(quán)限,續(xù)費(fèi)后又被恢復(fù)權(quán)限.此外廣電網(wǎng)中服務(wù)一般都帶有權(quán)重色彩,會(huì)根據(jù)不同的繳費(fèi)狀況設(shè)置不同等級服務(wù),因此會(huì)出現(xiàn)不同權(quán)重值的同種屬性.最后終端用戶存儲(chǔ)資源和計(jì)算資源有限,無法存儲(chǔ)過長的私鑰、進(jìn)行復(fù)雜的解密運(yùn)算.因此,廣電網(wǎng)需要尋找更合適的廣播加密技術(shù).
1991年,Berkovits[4]首次提出廣播加密技術(shù)(broadcast encryption, BE)的概念.1993年,F(xiàn)iat等人[5]首次給出了廣播加密技術(shù)的形式化定義.隨著應(yīng)用環(huán)境的改變,密碼學(xué)界開始研究不同性能的BE技術(shù).2001年Naor等人[6]提出了一種BE方案,引入公鑰從而節(jié)省了密鑰空間提高了效率.方案使用門限秘密共享機(jī)制,具有叛逆者追蹤功能,但不抗共謀攻擊.2005年Du等人[7]在身份基加密技術(shù)基礎(chǔ)上提出一種身份基廣播加密方案.方案利用用戶身份生成公鑰,接收用戶必須滿足身份要求才能解密,但是密文長度隨接收用戶數(shù)目線性增長.同年,Boneh等人[8]提出一個(gè)基于雙線性映射的BE方案(BGW方案),BGW方案中用戶私鑰為一個(gè)群元素并且抗共謀攻擊,實(shí)現(xiàn)了學(xué)者們一直苦苦尋求的目標(biāo).從此開啟了基于雙線性映射的BE技術(shù)的研究.
2005年,Sahai等人[9]提出了屬性基加密思想(attribute-based encryption, ABE),引入了屬性的概念.2006年Goyal等人[10]根據(jù)用戶私鑰、訪問結(jié)構(gòu)和系統(tǒng)屬性之間的關(guān)系,將ABE技術(shù)分為基于密鑰策略和基于密文策略2類:基于密鑰策略的屬性基加密技術(shù)(key policy ABE, KP-ABE)中用戶私鑰關(guān)聯(lián)訪問結(jié)構(gòu);基于密文策略的屬性基加密技術(shù)(ciphertext policy ABE, CP-ABE)中密文關(guān)聯(lián)訪問結(jié)構(gòu).相比于KP-ABE,CP-ABE中信息發(fā)送方加密時(shí)可以根據(jù)需要自由選定訪問結(jié)構(gòu),更適合現(xiàn)在應(yīng)用環(huán)境,因此本文重點(diǎn)研究CP-ABE.2010年Emura等人[11]構(gòu)造了第1個(gè)固定密文長度ABE方案,方案中每個(gè)屬性擁有正、負(fù)2種取值.2011年Chen等人[12]提出一種固定密文長度ABE方案,方案在每個(gè)屬性取正、負(fù)屬性值的基礎(chǔ)上加入了通配符機(jī)制,增加了方案靈活性并且計(jì)算簡單.后來,基于文獻(xiàn)[12]方案的思想,固定密文長度的ABE方案[13]被提出.為提高效率,ABE外包技術(shù)被提出,通過將復(fù)雜的解密運(yùn)算委托給云服務(wù)器來減輕用戶計(jì)算負(fù)擔(dān).2009年Ibraimi等人[14]提出了一種基于中間人的屬性基加密方案(Ibraimi方案),解決了用戶的存儲(chǔ)和解密負(fù)擔(dān)過重的問題.由于大部分ABE方案都沒有考慮權(quán)重的概念,事實(shí)上考慮權(quán)重概念很有意義.2013年Liu等人[15]基于樹形結(jié)構(gòu),構(gòu)造了權(quán)重ABE方案,但方案加解密需要消耗大量的計(jì)算資源.2017年Wang等人[16]根據(jù)屬性的重要性不同,為屬性分配不同的權(quán)重.
2008年Lubicz等人[17]將屬性基加密技術(shù)首次應(yīng)用于廣播加密技術(shù)中,創(chuàng)造性地提出一種屬性基廣播加密技術(shù)(attribute based broadcast encryption, ABBE).相比傳統(tǒng)的BE技術(shù),該方案加解密過程更加快捷,并且可實(shí)現(xiàn)用戶靈活的訪問控制.2010年Zhou等人[18]提出了一個(gè)高性能的ABBE方案,但方案的解密計(jì)算開銷過大,訪問結(jié)構(gòu)的實(shí)現(xiàn)上也不夠靈活.上述方案存在一個(gè)共同問題,即不能實(shí)現(xiàn)無需私鑰更新的細(xì)粒度的用戶級撤銷.因此可以說ABBE和ABE的主要區(qū)別就是ABBE可以允許細(xì)粒度的用戶級別撤銷,發(fā)送方可以直接控制單獨(dú)的用戶,而且無用戶撤銷時(shí)可以直接利用屬性控制全部用戶,實(shí)現(xiàn)與ABE同樣的功能[23].2009年Attrapadung等人[19]借助BGW方案提出2種ABBE方案.2種方案均可以不更新用戶私鑰完成細(xì)粒度的用戶級撤銷.但方案的密文和用戶私鑰長度都與訪問結(jié)構(gòu)中屬性個(gè)數(shù)線性相關(guān),帶來較大的通信和存儲(chǔ)開銷.2010年Karlov等人[20]提出一種訪問策略靈活的ABBE方案,方案同樣基于BGW方案,采用布爾函數(shù)中合取范式和析取范式訪問結(jié)構(gòu),支持任意訪問策略,但方案密文長度仍會(huì)隨訪問結(jié)構(gòu)而變化,并且為了實(shí)現(xiàn)用戶級撤銷,方案增加了代表身份的特殊屬性,增加了訪問結(jié)構(gòu)的管理難度.2016年Zhou等人[21]將文獻(xiàn)[18]方案改進(jìn)后提出一種可隱私保護(hù)的ABBE方案.方案實(shí)現(xiàn)密文長度固定并可隱藏訪問結(jié)構(gòu),達(dá)到隱私保護(hù)目的.但方案解密計(jì)算開銷隨系統(tǒng)屬性數(shù)目線性變化.屬性數(shù)目較大時(shí),方案解密效率變得極低.同年胡思路等人[22]提出一種高效的ABBE方案,方案密文長度固定,但用戶私鑰長度隨用戶屬性數(shù)目的增加迅速增大,不適用于物聯(lián)網(wǎng)環(huán)境.2015年Yang等人[23]提出一種密文長度固定的ABBE方案,但用戶私鑰長度隨訪問結(jié)構(gòu)中通配符數(shù)目變化,并且需要頻繁更新.
針對現(xiàn)有ABBE方案中廣播密文長度過大、用戶私鑰數(shù)量過多、加解密計(jì)算復(fù)雜以及沒有考慮權(quán)重概念等缺陷,構(gòu)造了一個(gè)高效的權(quán)重屬性基廣播加密方案.方案基于經(jīng)典的BGW方案,在撤銷用戶時(shí)無需更新用戶私鑰組件,提高了撤銷效率;采用權(quán)重門限訪問結(jié)構(gòu)并引入通配符機(jī)制,實(shí)現(xiàn)了廣播密文長度的固定,發(fā)送方并且可以自由選取訪問結(jié)構(gòu)中屬性個(gè)數(shù)和動(dòng)態(tài)調(diào)整權(quán)重門限值,另外方案的權(quán)重思想也具有現(xiàn)實(shí)意義,按照屬性的重要程度劃分權(quán)重取值,符合具有分等級服務(wù)的廣電物聯(lián)網(wǎng)環(huán)境;然后方案引入Ibraimi等人[14]的基于中間人的思想,將用戶大部分私鑰存儲(chǔ)和解密計(jì)算工作委托給中間人代理完成,用戶僅需本地存儲(chǔ)一個(gè)群元素長度的私鑰,解密時(shí)只需一次雙線性對計(jì)算,高效地降低了用戶私鑰存儲(chǔ)負(fù)擔(dān)和解密時(shí)的計(jì)算負(fù)擔(dān).
“云管端”協(xié)同布局[2]促進(jìn)“廣電網(wǎng)+物聯(lián)網(wǎng)”戰(zhàn)略轉(zhuǎn)型.“云”是計(jì)算機(jī)服務(wù)器組成的云環(huán)境,提供數(shù)據(jù)的存儲(chǔ)與分享,但不保證數(shù)據(jù)的安全性;“管”是遠(yuǎn)距離數(shù)據(jù)傳輸管理協(xié)議;“端”是物聯(lián)網(wǎng)終端設(shè)備,計(jì)算能力有限;如圖1所示:
Fig. 1 The infrastructure of “Cloud, Channel, Device”圖1 “云管端”基礎(chǔ)架構(gòu)
定義1. 假設(shè)G和GT均為大素?cái)?shù)階P的乘法循環(huán)群.若存在映射e:G×G→GT滿足3個(gè)性質(zhì),我們則稱e為雙線性映射:
1) 雙線性性.?u,v∈G以及?a,b∈P,e(ua,vb)=e(u,v)a b永遠(yuǎn)成立.
2) 非退化性.?g∈G使得e(g,g)≠1,其中1為群GT的單位元.
3) 可計(jì)算性.對?u,v∈G,都能有效計(jì)算出e(u,v)的值.
若上述雙線性映射e:G×G→GT存在,則稱群G為雙線性群.
若e(ua,vb)=e(u,v)a b=e(ub,va),則稱雙線性映射e為對稱的,否則稱e為非對稱的.
定義2. 集合S={P1,P2,…,Pn}擁有n個(gè)參與實(shí)體,訪問結(jié)構(gòu)W是集合P=2{P1,P2,…,Pn}中的一個(gè)非空子集.假設(shè)W是單調(diào)的,對于?B,C如果B?W且B?C,那么C?W都成立.W中包含的集合則可稱為授權(quán)集合,非授權(quán)集合則為不屬于W中的集合.在屬性基加密技術(shù)中,屬性集合就為實(shí)體集合.
(n,t)門限訪問結(jié)構(gòu)較為簡單,但是在實(shí)現(xiàn)密文長度固定方面有很好的應(yīng)用.可以描述為:將一份秘密s分為n個(gè)部分,選定門限t,使得只有不少于t個(gè)部分相互協(xié)作才能恢復(fù)出秘密s,而少于t個(gè)部分協(xié)作則無法得到秘密.
定義3. 權(quán)重門限訪問結(jié)構(gòu)(weighted threshold access structure with wildcard,W-(n,t)).系統(tǒng)屬性集合U={A1,A2,…,An},其中|Un,用戶屬性集合為Su?U,權(quán)重函數(shù)weight:A→P.選定一個(gè)門限值t的權(quán)重門限訪問結(jié)構(gòu)W-(n,t)對信息進(jìn)行加密,其加密屬性集合Ω?U中每個(gè)屬性Ai∈Ω的權(quán)重值為weight(Ai).若解密用戶屬性集合Su中必須包含不少于t個(gè)加密屬性,即|Su∩Ω|≥t,并且Su中每個(gè)屬性Ai∈Su∩Ω的權(quán)重值不小于其對應(yīng)的weight(Ai),用戶才能正確解密.則稱可正確解密的用戶屬性集合滿足權(quán)重門限訪問結(jié)構(gòu),記為SuW-(n,t);否則稱用戶屬性集合不滿足權(quán)重門限訪問結(jié)構(gòu),記為Su/W-(n,t),擁有該集合的用戶無法完成解密.
判定性m-BDHE問題(decisional m-bilinear Diffie-Hellman exponent, m-BDHE).給定一個(gè)階為素?cái)?shù)P的群G,元素g∈G為群G中的一個(gè)生成元.隨機(jī)選定2個(gè)元素α,s∈p和一個(gè)隨機(jī)元素T∈GT.判定性m-BDHE問題描述為給定參數(shù)y:
y=(g,gs,gα,gα2,…,gαm,gαm+2,…,gα2m).
判斷T為e(g,g)αm+1s還是為群GT中的一個(gè)隨機(jī)元素R.攻破上述假設(shè)的優(yōu)勢為
|Pr[B(y,T=e(g,g)αm+1)=0]-
Pr[B(y,T=R)=0]|.
定義4. 如果不存在PPT算法可以以不可忽略的優(yōu)勢解決判定性m-BDHE問題,則稱m-BDHE問題是困難的.
基于中間人的屬性基廣播加密方案(mediated ABBE, M-ABBE)形式化定義如下:
1) 系統(tǒng)初始化
Setup(1λ)→(PK,msk):輸入系統(tǒng)安全參數(shù)1λ,輸出系統(tǒng)公共參數(shù)PK和系統(tǒng)主密鑰msk.
2) 私鑰提取
KeyGen(GID,LGID,PK,msk)→{SKGID,1,SKGID,2}:輸入用戶的身份信息GID、用戶屬性集合LGID、系統(tǒng)公共參數(shù)PK和系統(tǒng)主密鑰msk,輸出2部分私鑰為SKGID,1和SKGID,2.
3) 廣播加密
4) 代理解密
Transform(CT,GID,SKGID,1,PK)→CTOUT⊥:輸入密文CT、用戶的身份信息GID、用戶的第1部分私鑰SKGID,1和系統(tǒng)公共參數(shù)PK.中間人首先檢驗(yàn)用戶權(quán)限.若用戶屬于目標(biāo)接收集合GID∈并且用戶屬性集合LGID滿足訪問結(jié)構(gòu)W,中間人則可以成功完成代理解密的工作,算法輸出外包解密密文CTOUT.否則,算法終止并輸出錯(cuò)誤⊥.
5) 用戶解密
Decrypt(CTOUT,SKGID,2)→M:用戶輸入外包解密密文CTOUT、第2部分私鑰SKGID,2.若CTOUT正確則算法輸出明文M,否則用戶無法完成最終解密.
M-ABBE中存在2種情況的攻擊敵手:1)敵手A沒有第1部分私鑰SKi,1,但可以獲取外包解密密文CTOUT;2)敵手A沒有第2部分私鑰SKi,2,但可以得到最終解密后的明文M.由于uψ1和uψ2兩個(gè)元素是隨機(jī)選取的,所以情況2類型的敵手沒有辦法在不知道SKi,2的情況下成功進(jìn)行最終解密.本文主要針對其中的情況1類型的敵手進(jìn)行分析.
M-ABBE方案的選擇明文攻擊安全(chosen plaintext attack, CPA)是通過敵手A和挑戰(zhàn)者C之間的一個(gè)互動(dòng)游戲來定義,這里另外定義一個(gè)模擬算法B幫助完成敵手A和挑戰(zhàn)者C之間的互動(dòng).假定游戲中A可以自適應(yīng)詢問私鑰,為記錄被詢問的密鑰,在游戲開始之前首先為模擬算法B建2個(gè)空白的列表:List1=(Fi,SKi,1),List2=(Fi,SKi,2).游戲定義如下:
初始化. 挑戰(zhàn)者C接受挑戰(zhàn),敵手A確定系統(tǒng)屬性數(shù)目n并選擇一個(gè)目標(biāo)接收用戶集合*和一個(gè)訪問結(jié)構(gòu)W*.然后敵手A將(*,W*)全部提交給模擬算法B,然后B將其傳送給挑戰(zhàn)者C.
建立. 挑戰(zhàn)者C選一個(gè)安全參數(shù)1λ,然后運(yùn)行系統(tǒng)初始化算法生成系統(tǒng)公共參數(shù)PK和系統(tǒng)主密鑰msk,并將系統(tǒng)公共參數(shù)PK傳送給模擬算法B,然后模擬算法B將系統(tǒng)公共參數(shù)PK返回給敵手A.
階段1. 敵手A進(jìn)行以下私鑰詢問,然后敵手A選擇一個(gè)不滿足之前所提交的解密條件(*,W*)的用戶i進(jìn)行用戶私鑰詢問.
當(dāng)敵手A詢問用戶i的第1部分私鑰SKi,1時(shí),模擬算法B先檢查列表List1.當(dāng)列表中無該項(xiàng)記錄,模擬算法B將會(huì)詢問挑戰(zhàn)者C關(guān)于用戶i的私鑰組件.挑戰(zhàn)者C接受詢問運(yùn)行私鑰提取算法計(jì)算相應(yīng)的私鑰組件后交給模擬算法B.模擬算法B得到挑戰(zhàn)者C返還的私鑰組件后得出SKi,1返回給敵手A.并且模擬算法B同時(shí)得到SKi,2,然后B將記錄(Fi,SKi,1)記錄到List1列表中,并且將記錄(Fi,SKi,2)記錄到List2列表中;否則,模擬算法B可以直接從列表中索引到記錄(Fi,SKi,1),并將結(jié)果發(fā)送給敵手A.
挑戰(zhàn). 敵手A隨機(jī)選取2條長度相同的明文消息M0,M1并提交給模擬算法B,然后模擬算法B將其發(fā)送給挑戰(zhàn)者C.最后由挑戰(zhàn)者C隨機(jī)選擇b∈{0,1},運(yùn)行加密算法加密消息Mb并得到相應(yīng)的密文CT*并交給模擬算法B返回給敵手A.
階段2. 重復(fù)階段1.
猜想. 最終敵手A猜測b*∈{0,1},如果猜測正確,模擬算法B輸出0,則稱敵手A在該游戲中獲勝.走完上述流程后,定義敵手A的獲勝優(yōu)勢為
AdvA=Pr[b*=b]-12.
定義5. 如果對于任意PPT的敵手A贏得上述游戲的優(yōu)勢可以忽略,則稱M-ABBE方案是CPA安全的.
Fig. 2 The system structure圖2 系統(tǒng)框架圖
如圖2所示,本方案共5個(gè)實(shí)體,分別為權(quán)威機(jī)構(gòu)(trusted authority, TA)、廣播中心(broadcast center, BC)、云存儲(chǔ)服務(wù)器(cloud storage, CS)、中間人(mediator, Mr)、接收用戶(data receiver, DR).它們的具體職責(zé)為:
1) TA.負(fù)責(zé)管理系統(tǒng)屬性集合,生成系統(tǒng)公共參數(shù),為用戶生成并分發(fā)私鑰,TA完全可信.
2) BC.控制數(shù)據(jù)的分享.BC可自由選擇消息的目標(biāo)接收用戶集合,并制定靈活的訪問結(jié)構(gòu),加密消息后將密文上傳,供用戶訪問.
3) CS.負(fù)責(zé)存儲(chǔ)BC上傳的密文信息.CS不可信,并試圖窺探密文所包含的隱私數(shù)據(jù).
4) Mr.是一個(gè)不可信任的云服務(wù)器.負(fù)責(zé)存儲(chǔ)用戶的部分私鑰,并在解密階段代理解密,承擔(dān)用戶大部分計(jì)算量.當(dāng)CS將密文發(fā)送Mr后,Mr首先查看用戶身份是否合法,然后利用用戶的部分私鑰進(jìn)行代理解密,生成外包解密密文并發(fā)送給用戶.
5) DR.負(fù)責(zé)最終解密工作.當(dāng)且僅當(dāng)DR屬于目標(biāo)接收用戶集合并且其屬性列表滿足密文訪問結(jié)構(gòu)才能成功完成解密工作.DR存儲(chǔ)空間匱乏.
1) 系統(tǒng)初始化
Setup(1λ)→(PK,msk):輸入安全參數(shù)1λ.TA首先確定用戶的最大數(shù)目m和系統(tǒng)屬性數(shù)量n,并選擇2個(gè)階為素?cái)?shù)P的乘法循環(huán)群G和GT,g∈G為群G的一個(gè)生成元,并選擇雙線性映射e:G×G→GT.然后TA隨機(jī)選取一個(gè)元素α∈P,對于用戶i=1,2,…,m(為方便,這里用索引i代表用戶),計(jì)算gi=gαi∈G代表用戶i的身份公共參數(shù),并計(jì)算{gi=gαi}i=m+2,m+3,…,2m∈G作為系統(tǒng)默認(rèn)公共參數(shù).接著TA隨機(jī)選取2個(gè)元素ξ,r∈P,并計(jì)算v=gξ,R=gr∈G.根據(jù)屬性權(quán)重的分割集Uω和通配符集合U*,TA隨機(jī)選擇N個(gè)元素{βk}k=1,2,…,N∈P,其中N=|Uω|+|U*|,并計(jì)算{Tk=gβk}k=1,2,…,N∈G.注意:這里N≤m,并將系統(tǒng)屬性集合中每個(gè)屬性值對應(yīng)一個(gè)索引k,對應(yīng)方式為
公開PK=(g,g1,…,gm,gm+2,…,g2m,{Tk}k=1,2,…,N,ν,R)并保留主密鑰msk=(α,ξ,r,{βk}k=1,2,…,N).
2) 私鑰提取階段
KeyGen(i,Si,U*,PK,msk)→{SKi,1,SKi,2}:輸入用戶的身份i、用戶權(quán)重屬性集合Si、系統(tǒng)公共參數(shù)PK和系統(tǒng)主密鑰msk.TA隨機(jī)選取n+1個(gè)元素δ,δ1,…,δn∈p,使得接著,TA隨機(jī)選擇x∈p和2個(gè)元素uψ1和uψ2,使得uψ1-uψ2=1.然后根據(jù)U*和Si,TA計(jì)算SKi,1和SKi,2兩部分私鑰,其中TA計(jì)算SKi,1私鑰組件為
其中,fk代表U*對應(yīng)的私鑰組件,ωk代表Si對應(yīng)的私鑰組件,其中k′=k-weight(Ak)×n,weight(Ak)代表i的Ak屬性的權(quán)重值.用戶第1部分私鑰為SKi,1=(D1,D2,{D3,j}j=1,2,…,2m{m+1},{fk}k∈U*,{ωi,k}k∈Si).
TA將SKi,1秘密發(fā)送給中間人進(jìn)行存儲(chǔ).接著TA計(jì)算D′=gαm+1uψ2,并將SKi,2=(D′)秘密發(fā)送給用戶進(jìn)行存儲(chǔ).
3) 數(shù)據(jù)加密階段
BC用K對稱加密M得到CTM=M(gm,g1)s,最后BC輸出密文CT=(CTM,Hdr).
4) 代理解密
Transform(CT,i,SKi,1,PK)→CTOUT⊥:輸入CT、用戶身份i、第1部分私鑰SKi,1和系統(tǒng)公共參數(shù)PK.中間人首先檢驗(yàn)用戶權(quán)限.若i是合法用戶i∈,并且Si滿足權(quán)重門限訪問結(jié)構(gòu)SiW,Mr則可以完成代理解密工作.否則,算法終止并輸出錯(cuò)誤.注意這里SiW分為2種情況:
①i屬性集合的權(quán)重取值和訪問結(jié)構(gòu)中屬性權(quán)重取值相同,也就是(Ak,weight(Ak))∈Si且weight(Ak)Si=weight(Ak)W-(n,t);
②i權(quán)重屬性集合中屬性權(quán)重取值大于訪問結(jié)構(gòu)中屬性權(quán)重取值,即某個(gè)屬性權(quán)重取值較大,i權(quán)限較高weight(Ak)Si>weight(Ak)W-(n,t).Mr代理解密計(jì)算過程如下:
情況1. Mr計(jì)算:
情況2. Mr計(jì)算:
然后計(jì)算:
最后計(jì)算CTOUT=CTM(K1K2),得出CTOUT后發(fā)送給i.
5) 用戶解密
Decrypt(CTOUT,SKi,2)→M:DR(用戶i)收到CTOUT后,輸入第2部分私鑰SKi,2,DR最終完成解密工作恢復(fù)出明文:
M=CTOUTe(C1,SKi,2).
定理1. 假定判斷性m-BDHE假設(shè)是困難的,則沒有PPT的敵手能以選擇明文方式攻破M-ABBE方案.
證明. 假設(shè)一個(gè)PPT的敵手A贏得M-ABBE方案模型游戲的優(yōu)勢ε=AdvA是不可忽略的,那么挑戰(zhàn)者C就可以定義一個(gè)PPT的模擬算法B,能夠以不可忽略優(yōu)勢ε2解決m-BDHE問題.模擬過程如下:
初始化. 挑戰(zhàn)者C接受一個(gè)判斷性m-BDHE困難問題挑戰(zhàn)(g,yg,α,m=(g1,g2,…,gm,gm+2,…,g2m),T),其中g(shù)i=gαi∈G,并且α∈P是未知的.挑戰(zhàn)者C運(yùn)行一個(gè)模擬算法B,敵手A選擇系統(tǒng)屬性數(shù)目n,B設(shè)置系統(tǒng)屬性集合為U={A1,A2,…,An},并進(jìn)行權(quán)重分割得到屬性權(quán)重分割集Uω,另外,除了屬性權(quán)重取值之外,每個(gè)屬性還具有一個(gè)通配符取值代表該屬性無關(guān)緊要.其構(gòu)成的集合稱為系統(tǒng)通配符集合當(dāng)用戶i加入系統(tǒng)時(shí),根據(jù)用戶i所具有的屬性為其分配權(quán)重屬性集合Si?Uω.然后A選定目標(biāo)接收者集合*和通配符機(jī)制的權(quán)重門限訪問結(jié)構(gòu)W*,并將(*,W*)提交給挑戰(zhàn)者C.
建立.C首先選擇一個(gè)安全參數(shù)1λ,運(yùn)行系統(tǒng)初始化算法生成系統(tǒng)公共參數(shù)PK以及主密鑰msk,并將PK傳送給B交給敵手A.具體為C選擇隨機(jī)數(shù)d,r0,δ1,δ2,…,δn∈P并計(jì)算:
接著C根據(jù)Uω和U*,隨機(jī)選擇N=|Uω|+|U*|個(gè)元素u1,u2,…,uN∈p,計(jì)算{Tk=guk-αm+1-k}k=1,2,…,N,最后C得出系統(tǒng)公共參數(shù)PK并傳送給模擬算法B,其中PK=(g,g1,…,gm,gm+2,…,g2m,{Tk}k=1,2,…,N,ν,R).
階段1. A選擇一個(gè)不滿足解密條件的用戶i進(jìn)行私鑰詢問(注意:此用戶i有2種,i不是目標(biāo)用戶i?*或者Si不滿足訪問結(jié)構(gòu)Si/W*).A能夠進(jìn)行有限次數(shù)的以下詢問,當(dāng)詢問i的第1部分私鑰SKi,1時(shí),B檢查列表List1,若列表中無該項(xiàng)記錄,B將會(huì)詢問挑戰(zhàn)者C關(guān)于i的私鑰組件.挑戰(zhàn)者C接受詢問運(yùn)行私鑰提取算法計(jì)算相應(yīng)的私鑰組件后交給模擬算法B.模擬算法B得到挑戰(zhàn)者C返還的私鑰組件后得出SKi,1返回給A.然后B將(Fi,SKi,1)記錄到List1中.否則,模擬算法B可以直接從列表中索引到記錄并發(fā)送給A.以上游戲交互具體為,B首先選擇選取元素δ,x,并使得然后隨機(jī)選擇2個(gè)元素uψ1和uψ2使得uψ1-uψ2=1.針對以上2種用戶i情況,B將會(huì)詢問C并進(jìn)行相應(yīng)計(jì)算:
情況1. 用戶i不屬于目標(biāo)用戶集合i?*,C計(jì)算i私鑰部分:
然后計(jì)算:
D2=gx uψ1,
D3,j=gαjuψ1.
對于i屬性部分,根據(jù)U*,計(jì)算其系統(tǒng)通配符所對應(yīng)私鑰組件為
fk=(gδk′guk-αm+1-k)uψ1x=(gδk′Tk)uψ1x.
然后根據(jù)Si,計(jì)算:
C將SKi,1=(D1,D2,{D3,j}j=1,2,…,2m{m+1},{fi}i∈U*,{ωi,k}k∈Si)發(fā)送給模擬算法B轉(zhuǎn)交給敵手A.
注意:用戶i不屬于目標(biāo)用戶集合,所以挑戰(zhàn)者C可以產(chǎn)生i正確私鑰.
情況2. 用戶i屬于目標(biāo)用戶集合i∈*,但Si/W*.則Si中必然存在至少一個(gè)屬性Ak與訪問結(jié)構(gòu)W*中屬性權(quán)重值不相同.C找出該位置上屬性Ak*.首先,對于用戶i身份私鑰部分,C隨機(jī)選擇2個(gè)元素δ′,x′∈P,并通過設(shè)置gδ′=gδ,gx′-αk*=gx,使得δ=δ′,x=x′-αk*,然后計(jì)算i的私鑰部分:
D1=(gαiξg(δ-r)x)uψ1=
D2=guψ1x=guψ1(x′-αk*),
D3,j=gαjuψ1.
根據(jù)U*,i系統(tǒng)通配符所對應(yīng)私鑰組件為
fk=(gδk′Tk)uψ1x=(gδk′guk-αm+1-k)uψ1(x′-αk*).
然后根據(jù)Si,計(jì)算:
C將SKi,1=(D1,D2,{D3,j}j=1,2,…,2m{m+1},{fi}i∈U*,{ωi,k}k∈Si)發(fā)送給B轉(zhuǎn)交給敵手A.
注意:當(dāng)Si/W*時(shí),C可以找出那個(gè)不符合的屬性Ak*,利用Ak*的屬性值產(chǎn)生的因子gam+1,可以和D1中的g-am+1相互抵消,因此挑戰(zhàn)者C不必知道gam+1也可產(chǎn)生正確的私鑰.
挑戰(zhàn). A隨機(jī)選擇2條長度相同的明文消息M0,M1交給C.由C隨機(jī)地選擇b∈{0,1}中的一個(gè),運(yùn)行加密算法計(jì)算CTM*=M×Tt,并隨機(jī)選擇元素t∈P,并計(jì)算:
階段2. 重復(fù)階段1.
猜想. 最終敵手A猜測b*∈b,如果猜測正確,模擬算法B輸出0,則稱A在該游戲中獲勝.
分析:如果T=e(g,gm+1),A在游戲中的獲勝概率為12+ε;如果T是群GT中隨機(jī)元素,A在游戲中的獲勝概率為12.所以B做出準(zhǔn)確模擬的優(yōu)勢為12Pr[B(y,T=e(g,gm+1))=0]+12Pr[B(y,T=R)=0]-12=ε2,即模擬算法B能夠以一個(gè)不可忽略的優(yōu)勢解決m-BDHE問題,但這一問題已被證明是困難的,因此假設(shè)不成立,證明M-ABBE方案是CPA安全的.
在屬性基廣播加密方案中,抗共謀攻擊是一個(gè)很大的挑戰(zhàn),用戶為了在恢復(fù)明文M時(shí),必須先獲得對稱會(huì)話密鑰e(g,gm+1)s.不誠實(shí)的用戶和敵手都有可能試圖恢復(fù)該對稱會(huì)話密鑰.由于屬性基廣播加密方案利用的是目標(biāo)接收用戶集合和屬性訪問結(jié)構(gòu)的雙重密文訪問控制,用戶的屬性信息和身份信息在系統(tǒng)中都很關(guān)鍵.本方案中共謀攻擊分為2種:屬性-身份共謀攻擊和屬性-屬性的共謀攻擊.
在情況1中,假設(shè)有攻擊者a和b,a屬于目標(biāo)接收用戶集合a∈,但是Sa/W;b不屬于目標(biāo)接收用戶集合b?,但SbW.此時(shí),如果a和b進(jìn)行共謀,就存在明文M泄露的危險(xiǎn).本方案中使用了隨機(jī)因子抵抗情況1的共謀攻擊.具體來說在方案的私鑰提取算法中,用戶身份私鑰D1綁定用戶身份和隨機(jī)因子ξ,uψ1,同時(shí)用戶屬性私鑰fk和ωGID,k綁定隨機(jī)因子x,對于a和b來說uψ1不同,而且δ,r,x是隨機(jī)的,因此無法聯(lián)合私鑰,所以本方案抗屬性-身份共謀攻擊.
在情況2中,假設(shè)a和b都屬于目標(biāo)接收用戶集合a,b∈,但Sa/W,Sb/W.為了得到明文,現(xiàn)在a和b進(jìn)行共謀,嘗試將屬性部分私鑰并在一起.但是本方案中用戶屬性私鑰和不同的隨機(jī)因子δk,r,x綁定.因此,即使攻擊者a和b嘗試進(jìn)行屬性-屬性共謀,也無法進(jìn)行正確的計(jì)算,因此會(huì)話密鑰不會(huì)被恢復(fù).本文方案也可抗屬性-屬性共謀攻擊.
方案性能評估分為2方面:理論分析和實(shí)驗(yàn)仿真.理論分析方面,將本方案對比Attrapadung等人在文獻(xiàn)[19]中的第1個(gè)方案Attrap1、Attrapadung等人在文獻(xiàn)[19]中的第2個(gè)方案Attrap2、Karlov等人在文獻(xiàn)[20]中的方案、Zhou等人在文獻(xiàn)[18]中的方案以及胡思路等人在文獻(xiàn)[22]中的方案,分析方案的功能、通信開銷、存儲(chǔ)開銷和計(jì)算開銷,將結(jié)果列表給出;實(shí)驗(yàn)仿真方面,將本方案對比文獻(xiàn)[19]的第1個(gè)方案Attrap1、文獻(xiàn)[19]的第2個(gè)方案Attrap2和文獻(xiàn)[22]的方案,通過相同環(huán)境中實(shí)驗(yàn)仿真,分析方案的私鑰長度、加密和解密時(shí)間,將結(jié)果作圖說明.
在進(jìn)行方案性能評估時(shí),|G|和|GT|分別代表群G和群GT中一個(gè)元素的長度;N代表系統(tǒng)屬性值總數(shù);n代表訪問結(jié)構(gòu)中的屬性個(gè)數(shù);Su代表用戶擁有的屬性個(gè)數(shù);r代表被撤銷的人數(shù);ex和p分別代表模指數(shù)和雙線性對運(yùn)算.需要注意的是文獻(xiàn)[19]第1個(gè)方案Attrap1中n代表訪問結(jié)構(gòu)中矩陣的行數(shù);文獻(xiàn)[20]方案中N=2n;文獻(xiàn)[18]方案中N=3n.
5.3.1 理論分析
比較方案的功能、通信開銷和存儲(chǔ)開銷時(shí),由于通信開銷與方案密文長度有關(guān),存儲(chǔ)開銷與方案用戶私鑰長度有關(guān),因此對比分析時(shí)主要對比了方案的密文長度和私鑰長度.由于廣電網(wǎng)中通信資源有限,因此方案的密文長度越短越好,又由于接收用戶存儲(chǔ)資源匱乏,因此方案的用戶私鑰長度也越短越好.
從表1中可以看出,在方案的功能方面,對比方案全部沒有考慮屬性權(quán)重思想,其實(shí)引入屬性權(quán)重概念具有現(xiàn)實(shí)意義,尤其是在分等級服務(wù)的廣電網(wǎng)環(huán)境中.如系統(tǒng)中屬性“會(huì)員”、“年齡”、“地區(qū)”、“職業(yè)”,其中“會(huì)員”屬性可以根據(jù)等級劃分為“黃鉆、綠鉆、藍(lán)鉆”,因此可以按照權(quán)重等級定義為該屬性為“(會(huì)員,1)(會(huì)員,2)(會(huì)員,3)”;“年齡”屬性可以根據(jù)等級劃分為“老年、少年、中年、青年”,對應(yīng)權(quán)重屬性為“(年齡,1)(年齡,2)(年齡,3)(年齡,4)”;同樣“地區(qū)”屬性可以劃分為“三環(huán)、二環(huán)、一環(huán)”,對應(yīng)權(quán)重屬性為“(地區(qū),1)(地區(qū),2)(地區(qū),3)”.當(dāng)發(fā)送方選擇“(會(huì)員,2)(年齡,3)(地區(qū),1)(職業(yè),*)”作為密文訪問結(jié)構(gòu)中屬性時(shí),即表示發(fā)送方不考慮用戶的“職業(yè)”屬性,其余用戶屬性權(quán)重值均不小于對應(yīng)加密屬性權(quán)重值的接收用戶才可解密,如住在二環(huán)的藍(lán)鉆青年即可解密.因此,本方案通過屬性權(quán)重的引入增加了訪問結(jié)構(gòu)的靈活性,滿足了多樣化的隱私需求.
Table 1 Comparison of Communication and Storage Overhead
Note: “√” means this scheme has this funtion, “×” means this scheme does not have this function.
在通信開銷方面,從表1可以看出,文獻(xiàn)[19]第1個(gè)方案Attrap1、文獻(xiàn)[19]第2個(gè)方案Attrap2、文獻(xiàn)[20]的方案密文長度都隨著訪問結(jié)構(gòu)中的屬性數(shù)目線性增長,屬性數(shù)目增多,通信開銷將飛速增長,不適合廣電網(wǎng)應(yīng)用環(huán)境.文獻(xiàn)[18,22]中方案和本方案都實(shí)現(xiàn)了密文長度的固定.其中,文獻(xiàn)[18]方案在密文長度上比本方案小了一個(gè)|G|群元素和一個(gè)|GT|群元素長度,而且也是基于同樣BGW技術(shù)的思想.但是文獻(xiàn)[18]方案只利用了屬性基加密技術(shù),只能實(shí)現(xiàn)屬性級別的撤銷.若撤銷某個(gè)具體用戶,必須進(jìn)行復(fù)雜的私鑰更新操作,不適合用戶動(dòng)態(tài)性強(qiáng)的廣電網(wǎng)環(huán)境.最后,本方案和文獻(xiàn)[22]方案的密文長度相同.
在存儲(chǔ)開銷方面,文獻(xiàn)[19]第1個(gè)方案Attrap1、文獻(xiàn)[19]第2個(gè)方案Attrap2、文獻(xiàn)[18,20,22]方案的用戶私鑰長度都與訪問結(jié)構(gòu)中屬性個(gè)數(shù)相關(guān).其中文獻(xiàn)[22]方案中用戶私鑰長度隨著訪問結(jié)構(gòu)中屬性個(gè)數(shù)增加而飛速增長,并且達(dá)到二次增長的相關(guān)關(guān)系,文獻(xiàn)[20]方案中用戶私鑰長度還與系統(tǒng)屬性個(gè)數(shù)線性相關(guān).由于這些私鑰需要用戶本地存儲(chǔ),因此上述方案會(huì)給用戶帶來沉重的存儲(chǔ)負(fù)擔(dān),不適用于接收用戶的存儲(chǔ)資源匱乏的環(huán)境.與以上方案不同,我們的方案采納了中間人思想,通過外包存儲(chǔ)將繁重的私鑰存儲(chǔ)任務(wù)委托給中間人執(zhí)行,用戶本地只需存儲(chǔ)一個(gè)|G|長度的私鑰,減輕了用戶存儲(chǔ)負(fù)擔(dān).并且本方案引入屬性權(quán)重思想,系統(tǒng)可根據(jù)屬性的重要性為其分配不同的權(quán)重,更適合實(shí)際應(yīng)用背景.綜上,本方案更適合應(yīng)用于廣電網(wǎng)環(huán)境.
比較方案的計(jì)算開銷時(shí),由于群G和群GT上模乘運(yùn)算的開銷遠(yuǎn)遠(yuǎn)小于模指數(shù)運(yùn)算和雙線性對運(yùn)算開銷,因此對比分析時(shí),只對比了G和GT的模指數(shù)運(yùn)算和雙線性對運(yùn)算.由于廣電網(wǎng)中用戶計(jì)算資源匱乏,因此方案加解密計(jì)算中模指數(shù)運(yùn)算和雙線性對運(yùn)算數(shù)目越少越好.
從表2可以看出,在廣播加密階段文獻(xiàn)[19]第1個(gè)方案Attrap1、文獻(xiàn)[19]第2個(gè)方案Attrap2和文獻(xiàn)[20]方案中模指數(shù)計(jì)算數(shù)目均與訪問結(jié)構(gòu)中屬性個(gè)數(shù)呈線性增長關(guān)系,不符合實(shí)際應(yīng)用.文獻(xiàn)[18,22]方案和本方案的加密計(jì)算開銷固定并且差別很小,其中文獻(xiàn)[18]方案比本方案的計(jì)算開銷還少2個(gè)群G上的模指數(shù)的計(jì)算開銷,文獻(xiàn)[22]方案和本方案計(jì)算開銷相同.但在解密階段時(shí),文獻(xiàn)[18]方案需進(jìn)行2n次雙線性對運(yùn)算,計(jì)算開銷隨著訪問結(jié)構(gòu)中屬性個(gè)數(shù)的增加線性增長.雖然文獻(xiàn)[22]方案在解密計(jì)算時(shí)的雙線性對運(yùn)算數(shù)目固定,但也比本方案計(jì)算開銷大.本方案通過引入中間人實(shí)現(xiàn)了解密外包,將復(fù)雜的解密計(jì)算委托給中間人執(zhí)行,用戶自己只需進(jìn)行一個(gè)雙線性對計(jì)算,更適合用戶計(jì)算資源匱乏的廣電網(wǎng)環(huán)境.
Table 2 Comparison of Computation Cost
5.3.2 實(shí)驗(yàn)仿真
實(shí)驗(yàn)環(huán)境配置如下:Intel?CoreTMi5-4210U CPU @1.70 GHz,雙核,4.00 GB RAM, Windows 10操作系統(tǒng).實(shí)驗(yàn)仿真是基于JPBC密碼庫[24],采用Java語言實(shí)現(xiàn).仿真中基于a.properties參數(shù)得到3個(gè)橢圓曲線群G1,G2,GT以及一個(gè)有限域,并生成一個(gè)對稱雙線性映射e:G1×G2→GT.實(shí)驗(yàn)中選取了5,10,15,20,25,30共6個(gè)屬性數(shù)目的參考點(diǎn),并編寫時(shí)間測量函數(shù)定量提取這6個(gè)參考點(diǎn)的加解密時(shí)間.圖中的時(shí)間測量結(jié)果以毫秒(ms)為單位,并且所有數(shù)據(jù)是程序運(yùn)行30次所取的平均值.具體仿真結(jié)果如圖3~5所示:
Fig. 3 Length of private key圖3 用戶私鑰長度
由于文獻(xiàn)[19]第1個(gè)方案Attrap1和文獻(xiàn)[19]第2個(gè)方案Attrap2中密文訪問結(jié)構(gòu)相同,因此仿真時(shí)只選擇了文獻(xiàn)[19]第1個(gè)方案Attrap1.圖3所示,文獻(xiàn)[19]第1個(gè)方案Attrap1中用戶私鑰的長度隨著用戶屬性個(gè)數(shù)線性增加,在屬性為30個(gè)時(shí)用戶私鑰長度4.35 KB.文獻(xiàn)[22]方案中用戶私鑰的長度隨著用戶屬性個(gè)數(shù)的增加飛速增加,在屬性為30個(gè)時(shí)用戶私鑰長度高達(dá)到235 KB.而本方案不同,用戶私鑰長度一直保持固定不變,只為0.128 KB.這是由于本方案中引入了外包存儲(chǔ),所以用戶只需要存儲(chǔ)一個(gè)|G|群元素的私鑰即可.
Fig. 4 Encryption time圖4 加密運(yùn)算時(shí)間
Fig. 5 Decryption time圖5 解密運(yùn)算時(shí)間
由圖4、圖5可知,文獻(xiàn)[19]第1個(gè)方案Attrap1的加密時(shí)間和解密時(shí)間都與方案訪問結(jié)構(gòu)中屬性個(gè)數(shù)呈線性關(guān)系,不適用于用戶計(jì)算資源有限的環(huán)境.文獻(xiàn)[22]方案和本方案的加密時(shí)間都基本不變,加密時(shí)間幾乎相同.但在解密計(jì)算時(shí),文獻(xiàn)[22]方案解密時(shí)間會(huì)隨著屬性個(gè)數(shù)逐漸增長,這是由于其方案中模指數(shù)運(yùn)算數(shù)目隨著屬性個(gè)數(shù)呈線性增長關(guān)系.但我們的密文長度固定的屬性基廣播加密方案不同,用戶解密時(shí)間固定不變,不隨屬性的變化而變化.這是由于本方案中借助了中間人進(jìn)行解密外包,中間人代理解密后將外包解密密文交給用戶,用戶只需進(jìn)行一次雙線性對運(yùn)算即可.所以綜合加密時(shí)間與解密時(shí)間的對比分析,本方案計(jì)算性能要高于文獻(xiàn)[22]的方案.
針對廣電網(wǎng)中安全需求和應(yīng)用特性,本文構(gòu)造了一個(gè)高效的權(quán)重屬性基廣播加密方案.方案基于經(jīng)典的BGW方案,并融合了門限屬性基加密技術(shù)的優(yōu)點(diǎn),撤銷用戶時(shí)無需更新用戶私鑰組件,同時(shí)實(shí)現(xiàn)了廣播密文長度的固定;引入屬性權(quán)重概念更具有現(xiàn)實(shí)意義,并且增強(qiáng)了密文訪問結(jié)構(gòu)的靈活性;增加了通配符機(jī)制,滿足了多樣的隱私需求;通過引入外包存儲(chǔ)和解密,實(shí)現(xiàn)較小存儲(chǔ)開銷和計(jì)算開銷,符合終端用戶中計(jì)算資源有限的廣電網(wǎng)特征.經(jīng)證明:本方案具有抗共謀攻擊性.但是本方案僅實(shí)現(xiàn)了標(biāo)準(zhǔn)模型下的選擇明文安全,如何將方案進(jìn)行改進(jìn)從而達(dá)到更高的安全性是今后的研究方向.