董國芳,張楚雯,常 遠(yuǎn),魯燁堃,劉 兵
(1.云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明 650504; 2.東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,遼寧 沈陽 110167)
隨著共享經(jīng)濟(jì)發(fā)展,群智感知作為一種分布式應(yīng)用日益普及,其中任務(wù)匹配是決定系統(tǒng)質(zhì)量的基本,一般由云服務(wù)器、任務(wù)發(fā)布者和感知用戶組成。為保證匹配效率,用戶可能會(huì)將一些隱私信息(即身份和位置)上傳給云服務(wù)器,但云服務(wù)器是半可信的,它會(huì)有意泄露數(shù)據(jù)信息以獲取經(jīng)濟(jì)利益,因此,為保護(hù)數(shù)據(jù)機(jī)密性,需對(duì)數(shù)據(jù)加密上傳。傳統(tǒng)加密方案只能進(jìn)行一對(duì)一加密,難以高效應(yīng)用于多用戶系統(tǒng),而屬性加密(attribute-based encryption,ABE)能實(shí)現(xiàn)一對(duì)多加密并對(duì)密文進(jìn)行訪問控制,且基于密文策略的ABE(attribute encryption based on ciphertext policy,CP-ABE)是將屬性嵌入密鑰,將訪問策略嵌入密文,滿足訪問策略且具有相關(guān)密鑰的用戶可以解密,因此CP-ABE很適用于任務(wù)匹配系統(tǒng)。在傳統(tǒng)CP-ABE方案中,當(dāng)用戶量巨大且頻繁提交授權(quán)申請(qǐng)時(shí),系統(tǒng)會(huì)出現(xiàn)性能瓶頸問題。同時(shí),在實(shí)踐中,由于用戶的訪問權(quán)限會(huì)經(jīng)常發(fā)生變化,系統(tǒng)需要實(shí)現(xiàn)用戶屬性細(xì)粒度撤銷,若撤銷不及時(shí)用戶可能會(huì)返回錯(cuò)誤數(shù)據(jù),降低效率。此外密鑰泄漏攻擊會(huì)造成解密密鑰泄露,使惡意用戶能解密,泄露隱私。且難以抵御共謀攻擊,保證前向安全(用戶剩余屬性不滿足訪問策略則不能通過已撤銷屬性訪問以前的數(shù)據(jù))和后向安全(用戶不能使用被撤銷屬性訪問后續(xù)數(shù)據(jù))也是使系統(tǒng)性能低下的重要問題。
群智感知作為當(dāng)前研究熱點(diǎn),其中的任務(wù)匹配是一個(gè)非常重要的問題,得到了廣泛研究?,F(xiàn)有任務(wù)匹配有基于屬性加密和可搜索加密兩種方法。
(1)基于屬性加密的任務(wù)匹配方案:較多方案采用多屬性密鑰授權(quán)機(jī)構(gòu)[1-3]解決性能瓶頸問題,但未考慮密鑰泄露和用戶撤銷。文獻(xiàn)[4]通過中心機(jī)構(gòu)存儲(chǔ)同屬性用戶身份,結(jié)合組合密鑰實(shí)現(xiàn)追蹤密鑰泄露者和屬性撤銷。文獻(xiàn)[5]通過嵌入與用戶身份相關(guān)的隨機(jī)數(shù)實(shí)現(xiàn)追蹤和用戶撤銷,但沒實(shí)現(xiàn)用戶屬性細(xì)粒度撤銷。文獻(xiàn)[6]根據(jù)用戶真實(shí)身份和屬性關(guān)聯(lián)信息實(shí)現(xiàn)追蹤和撤銷,但未能抵御共謀攻擊。文獻(xiàn)[7]引入多個(gè)屬性權(quán)威機(jī)構(gòu),由其根據(jù)私鑰計(jì)算出真實(shí)身份實(shí)現(xiàn)追蹤,但使用密鑰重加密計(jì)算開銷較大。文獻(xiàn)[8]根據(jù)用戶身份和更新材料實(shí)現(xiàn)解密密鑰隨機(jī)化,以抵抗密鑰泄露攻擊,實(shí)現(xiàn)屬性撤銷。文獻(xiàn)[9]采用全局標(biāo)識(shí)符和密文更新進(jìn)行追責(zé)和屬性撤銷,但密文重加密會(huì)造成較大開銷。以上方案大多只存儲(chǔ)單一用戶身份對(duì)泄露密鑰者進(jìn)行追責(zé),而都未將身份和對(duì)應(yīng)私鑰聯(lián)系起來以避免密鑰泄露情況發(fā)生。且通過密文重加密[10-12]和對(duì)未撤銷用戶進(jìn)行密鑰重加密[13]實(shí)現(xiàn)撤銷,會(huì)造成較高計(jì)算和通信開銷。
(2)可搜索加密的任務(wù)匹配方案:文獻(xiàn)[14]結(jié)合群簽名,將任務(wù)與用戶信息綁定進(jìn)行追蹤和撤銷。文獻(xiàn)[15]針對(duì)不誠實(shí)和被撤銷用戶,以最小群組服務(wù)器開銷支持用戶撤銷。文獻(xiàn)[16]提出了本地撤銷和全局撤銷兩種不同的撤銷機(jī)制。文獻(xiàn)[17]將屬性加密和可搜索加密結(jié)合實(shí)現(xiàn)用戶屬性撤銷。但大多數(shù)可搜索加密方案只允許持有密鑰的單用戶查詢,不能很好應(yīng)用于多用戶匹配。因此,能實(shí)現(xiàn)一對(duì)多加密并對(duì)加密數(shù)據(jù)進(jìn)行訪問控制的屬性加密方案能更適用于任務(wù)匹配系統(tǒng)。
綜上所述,如何設(shè)計(jì)一個(gè)安全機(jī)制來實(shí)現(xiàn)保護(hù)數(shù)據(jù)隱私的同時(shí)防止密鑰泄露情況發(fā)生,且在適當(dāng)開銷下進(jìn)行用戶屬性撤銷是任務(wù)匹配的一個(gè)重要問題。本文提出了一個(gè)抗密鑰泄露的可撤銷多屬性授權(quán)機(jī)構(gòu)CP-ABE方案,主要工作如下:
(1)通過默克爾帕特麗夏樹(Merkle Patricia tree,MPT)和增量哈希構(gòu)建一個(gè)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),MPT用于存儲(chǔ)用戶身份和對(duì)應(yīng)私鑰的哈希值,建立身份與密鑰的聯(lián)系;增量哈希用于私鑰哈希數(shù)據(jù)快速更改。
(2)基于動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),提出了一個(gè)抗密鑰泄露可撤銷CP-ABE方案。引入多個(gè)屬性密鑰授權(quán)機(jī)構(gòu)進(jìn)行密鑰生成,使性能瓶頸問題得到改善。通過誠實(shí)代理機(jī)構(gòu)存儲(chǔ)數(shù)據(jù)結(jié)構(gòu),在用戶匹配時(shí)進(jìn)行驗(yàn)證,避免密鑰泄露情況發(fā)生,在用戶撤銷時(shí)只對(duì)撤銷用戶進(jìn)行信息更改,實(shí)現(xiàn)屬性撤銷和用戶撤銷。
(3)通過安全性和實(shí)驗(yàn)性能分析,該方案能夠?qū)崿F(xiàn)數(shù)據(jù)的機(jī)密性、前向安全和后向安全,并能抵抗共謀攻擊。
本章介紹了雙線性映射、基本假設(shè)、MPT和增量哈希的相關(guān)知識(shí)。
離散對(duì)數(shù)(discrete logrithm,DL)問題[19]:設(shè)G為生成元g的素?cái)?shù)p階循環(huán)群,對(duì)于給定h∈G, 使得h=ga, 很難計(jì)算a∈Zp。 計(jì)算Diffie-Hellman密鑰交換算法(computational diffie-hellman,CDH)問題[20]:令G為一素?cái)?shù)階p的循環(huán)群,隨機(jī)選取一個(gè)生成元g和隨機(jī)數(shù)a,b∈Zp, 給定 (g,ga,gb)∈G, 很難計(jì)算gab。
MPT是一種融合了默克爾樹和字典樹兩種樹形結(jié)構(gòu)優(yōu)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對(duì)。MPT在根節(jié)點(diǎn)保存整棵樹的哈希校驗(yàn)和,與普通默克爾樹相比,它能簡單地添加或刪除節(jié)點(diǎn)并高效地查找數(shù)據(jù),提高數(shù)據(jù)搜索更新的效率。MPT樹中的節(jié)點(diǎn)包括空節(jié)點(diǎn)、葉子節(jié)點(diǎn)、擴(kuò)展節(jié)點(diǎn)和分支節(jié)點(diǎn)。其中空節(jié)點(diǎn)表示空;葉子節(jié)點(diǎn)表示[key,Value]對(duì);擴(kuò)展節(jié)點(diǎn)表示[key,Value]對(duì),Value指其它節(jié)點(diǎn)哈希值,通過該值可以連接到其它節(jié)點(diǎn);當(dāng)關(guān)鍵字前綴不同時(shí),分支節(jié)點(diǎn)用于存儲(chǔ)可能的分支,若[key,Value]對(duì)中key與節(jié)點(diǎn)匹配,則最后一個(gè)元素存儲(chǔ)Value。
對(duì)于增量哈希,更新哈希值所用時(shí)間與對(duì)消息所做修改大小成正比。若與消息大小相比,修改量較小,則使用增量哈希函數(shù)的效率更高。所花費(fèi)時(shí)間與消息大小無關(guān),僅取決于更改的塊的數(shù)量。因此,在消息改變后,可使用增量哈希函數(shù)來快速計(jì)算新的抗沖突哈希值。理論上,任何無沖突的壓縮函數(shù)(或偽隨機(jī)函數(shù))都可以修改為增量哈希函數(shù)。
本章對(duì)方案的系統(tǒng)模型和威脅模型進(jìn)行了介紹。
如圖1所示,本方案系統(tǒng)模型包括以下6個(gè)實(shí)體:
(1)中心機(jī)構(gòu)(trusted authority,CA):CA是可信實(shí)體,只用于發(fā)布全局公共參數(shù)和用戶身份認(rèn)證注冊。
(2)屬性密鑰授權(quán)機(jī)構(gòu)(attribute-key authorities,AAs):AAs是可信實(shí)體,每個(gè)AA獨(dú)立管理一個(gè)不相交的屬性集,用于驗(yàn)證用戶屬性并生成私鑰,還管理用戶屬性撤銷。
(3)誠實(shí)代理機(jī)構(gòu)(trusted third party authority,TPA):TPA是可信實(shí)體,有一定的計(jì)算和存儲(chǔ)能力,用于存儲(chǔ)用戶的身份和私鑰信息。
(4)云服務(wù)器(cloud server platform,CSP):CSP是半可信實(shí)體,用于用戶匹配操作,有強(qiáng)大的計(jì)算和存儲(chǔ)能力,但可能會(huì)與惡意用戶串通,泄露數(shù)據(jù)隱私。
(5)任務(wù)發(fā)布者(data owner,DO):DO是可信實(shí)體,制定訪問策略以確定所需感知數(shù)據(jù),并將加密任務(wù)上傳給CSP。
(6)感知用戶(data user,DU):DU是不可信實(shí)體,是滿足訪問策略的用戶,用于收集感知數(shù)據(jù)返回給DO。
圖1 系統(tǒng)模型
方案的具體過程為:首先CA對(duì)用戶進(jìn)行身份認(rèn)證,將公共參數(shù)發(fā)送給AAs,AAs生成密鑰發(fā)送給用戶,并將DU的身份和對(duì)應(yīng)私鑰信息發(fā)送到TPA中的MPT進(jìn)行添加存儲(chǔ)。DO將加密任務(wù)和訪問策略發(fā)送給CSP用于匹配DU,CSP通過將DU的信息給TPA進(jìn)行驗(yàn)證匹配,驗(yàn)證通過且匹配成功,則將密文發(fā)送給DU,DU用密鑰解密得到任務(wù)內(nèi)容。當(dāng)DO收到DU返回的錯(cuò)誤數(shù)據(jù)時(shí),先通過AAs找到該DU身份,再對(duì)TPA中的信息進(jìn)行更新,實(shí)現(xiàn)用戶撤銷和屬性撤銷功能。
本文主要考慮3種類型的攻擊:
(1)密鑰泄露攻擊:惡意DU為了利益將自己的解密密鑰轉(zhuǎn)賣給其它用戶,使得系統(tǒng)難以對(duì)返回錯(cuò)誤數(shù)據(jù)用戶的真實(shí)身份進(jìn)行追責(zé),降低系統(tǒng)收集處理數(shù)據(jù)的效率。
(2)CSP與DU共謀攻擊:在匹配過程中,CSP不按DO要求進(jìn)行匹配,返回不正確檢索結(jié)果欺騙DO;在DU撤銷后,半可信CSP與之共謀獲取任務(wù)內(nèi)容隱私。
(3)DU與DU共謀攻擊:被撤銷DU與合法DU進(jìn)行共謀解密具有被撤銷屬性的密文,使方案不能滿足前向安全和向后安全。
本章首先介紹了數(shù)據(jù)結(jié)構(gòu)的用法,以此提出屬性加密方案具體算法和協(xié)議流程。
MPT是一個(gè)自校驗(yàn)防篡改數(shù)據(jù)結(jié)構(gòu),用來存儲(chǔ)鍵值對(duì)關(guān)系。MPT的插入、查找、刪除的時(shí)間復(fù)雜度均為○(logn)。 本文用此結(jié)構(gòu)來存儲(chǔ)DU身份和私鑰,防止密鑰泄露并便于撤銷。MPT實(shí)例如圖2所示,存儲(chǔ)兩個(gè)DU身份標(biāo)識(shí)符ID0和ID1,Key表示身份標(biāo)識(shí)符的哈希值(為了方便說明,這里只取最后七位),Value是與之對(duì)應(yīng)的私鑰哈希值。本節(jié)結(jié)合MPT實(shí)例詳細(xì)解釋如何實(shí)現(xiàn)用戶信息添加,用戶撤銷和屬性撤銷。
圖2 MPT實(shí)例
4.1.1 用戶信息添加
AAs進(jìn)行DU身份認(rèn)證并計(jì)算出私鑰哈希值后,將信息添加到MPT中。首先,找到與新插入節(jié)點(diǎn)擁有最長相同路徑前綴的當(dāng)前節(jié)點(diǎn),具體情況分為3種:若只匹配到擴(kuò)展節(jié)點(diǎn)0,當(dāng)ID2的Key為d1f4376,如圖3(a)所示,分支節(jié)點(diǎn)0生成新插入節(jié)點(diǎn)f,然后指向新的葉子節(jié)點(diǎn)2;若匹配到分支節(jié)點(diǎn)0,當(dāng)ID2的Key為d10f625,如圖3(b)所示,下一分支節(jié)點(diǎn)指向新的葉子節(jié)點(diǎn)2;若匹配到分支節(jié)點(diǎn)0,且下兩位值相同,當(dāng)ID2的Key為d103419,如圖3(c)所示,生成新的分支節(jié)點(diǎn)1,然后指向新的葉子節(jié)點(diǎn)2。
圖3 用戶信息添加操作
4.1.2 撤銷操作
(1)用戶撤銷
將用戶所有信息都從MPT中刪除。刪除操作是插入操作的逆操作。若需刪除ID2,對(duì)于圖3首先刪除葉子節(jié)點(diǎn)2,并且對(duì)于圖3(a)分支節(jié)點(diǎn)0的f指向空;對(duì)于圖3(b)分支節(jié)點(diǎn)1的f指向空;對(duì)于圖3(c)分支節(jié)點(diǎn)1的1指向空。
(2)屬性撤銷
具體算法有SystemSetup,AASetup,USKeyGen,Encrypt,CReencrypt和Decrypt。
(3)USKeyGen(ID,H(m))→skID,m: 選取隨機(jī)數(shù)tm,vm∈Zp, 其中m∈SID, 計(jì)算私鑰skID,m={kID,m,1,kID,m,2}, 其中kID,m,1=gγH(m)H(ID)δH(m)+vmH(m)tm,kID,m,2=gtm。
方案包括系統(tǒng)初始化、數(shù)據(jù)加密上傳、用戶匹配驗(yàn)證、密文解密和撤銷5個(gè)階段。
(2)數(shù)據(jù)加密上傳:DO執(zhí)行Encrypt算法加密MSG,將密文CT和訪問策略 (Ml×n,ρ) 發(fā)送給CSP。
(3)用戶匹配驗(yàn)證階段:DU將H(IDk) 和VIDk發(fā)給CSP,CSP根據(jù)TPA中存儲(chǔ)信息進(jìn)行驗(yàn)證,若不通過,則拒絕匹配請(qǐng)求;若通過,則TPA生成重加密密鑰ReKeym給CSP,CSP運(yùn)行CReencrypt算法得到新密文CTC并查看Sk是否與訪問控制匹配,若Sk|≠(Ml×n,ρ), 則輸出⊥。否則,將CTC發(fā)送給DU。
(4)密文解密階段:DU收到CTC后執(zhí)行Decrypt算法得到MSG。
本章從正確性、數(shù)據(jù)機(jī)密性、抗共謀攻擊、前向安全和后向安全進(jìn)行安全性分析。
定理1 匹配正確性。DU在驗(yàn)證通過后能解密得到正確任務(wù)MSG。
Di=C1,ie(kID,ρ(i),1,C2,i)e(H(ID),C′3,i)e(kID,ρ(i),2,C4,i)
=e(g,g)λie(g,g)γρ(i)ri
·e(gγρ(i)H(ID)δρ(i)+vρ(i)H(ρ(i))tρ(i),g-ri)
·e(H(ID),gδρ(i)rigvρ(i)rigwi)
·e(gtρ(i),H(ρ(i))ri)
=e(g,g)λie(H(ID),g)wi
定理2 數(shù)據(jù)機(jī)密性。能夠防止半可信CSP和未經(jīng)授權(quán)DU訪問密文,保護(hù)數(shù)據(jù)機(jī)密性。
定理3 抗共謀攻擊。能夠防止半可信CSP和不可信DU的共謀攻擊。此外,還應(yīng)抵御同一屬性組中被撤銷DU和合法DU發(fā)起的共謀攻擊。
=e(g,g)λie(g,g)γρ(i)ri
·e(gγρ(i)H(ID)δρ(i)+vρ(i)H(ρ(i))tρ(i),g-ri)
·e(H(ID),gδρ(i)rigv′ρ(i)rigwi)·e(gtρ(i),H(ρ(i))ri)
=e(g,g)λie(H(ID),g)wi(v′ρ(i)-vρ(i))
≠e(g,g)λie(H(ID),g)wi
因此不能計(jì)算出MSG,上述假設(shè)不成立,抵御了共謀攻擊。
定理4 能保證撤銷屬性用戶的前向安全和后向安全。
對(duì)于撤銷屬性用戶的后向安全性,進(jìn)行屬性撤銷后的用戶可能與未被撤銷的用戶合作解密數(shù)據(jù),但私鑰為skIDk,m={kIDk,m,1,kIDk,m,2},kIDk,m,1=gγH(m)H(IDk)δH(m)+vmH(m)tm與用戶IDk有關(guān),每個(gè)IDk唯一且不同,因此不能通過驗(yàn)證,不能使用被撤銷屬性訪問后續(xù)數(shù)據(jù),解決了后向安全問題。
本章從理論和實(shí)驗(yàn)結(jié)果兩方面進(jìn)行分析評(píng)估。
表1 安全性對(duì)比
表2 計(jì)算開銷對(duì)比
表3 通信開銷對(duì)比
圖4 實(shí)驗(yàn)結(jié)果
本文針對(duì)群智感知系統(tǒng)中任務(wù)匹配出現(xiàn)的問題提出一個(gè)防止密鑰泄露和可撤銷的多授權(quán)機(jī)構(gòu)CP-ABE方案。將一個(gè)AA分為多個(gè)解決性能瓶頸問題,利用MPT存儲(chǔ)用戶身份和私鑰信息防止密鑰泄露情況發(fā)生,并結(jié)合增量哈希函數(shù)對(duì)數(shù)據(jù)進(jìn)行快速修改,實(shí)現(xiàn)用戶撤銷和屬性撤銷。方案還能抵抗半可信CSP與不可信DU、被撤銷DU與合法DU兩類合謀攻擊,保證前向安全和后向安全。但本文未考慮用戶信譽(yù)和激勵(lì)機(jī)制的設(shè)計(jì),因此下一步工作是用一些激勵(lì)機(jī)制來吸引高質(zhì)量用戶參與到任務(wù)匹配中來,更加貼近實(shí)際。