董國芳,張楚雯,常 遠,魯燁堃,劉 兵
(1.云南民族大學 電氣信息工程學院,云南 昆明 650504; 2.東北大學 計算機科學與工程學院,遼寧 沈陽 110167)
隨著共享經濟發展,群智感知作為一種分布式應用日益普及,其中任務匹配是決定系統質量的基本,一般由云服務器、任務發布者和感知用戶組成。為保證匹配效率,用戶可能會將一些隱私信息(即身份和位置)上傳給云服務器,但云服務器是半可信的,它會有意泄露數據信息以獲取經濟利益,因此,為保護數據機密性,需對數據加密上傳。傳統加密方案只能進行一對一加密,難以高效應用于多用戶系統,而屬性加密(attribute-based encryption,ABE)能實現一對多加密并對密文進行訪問控制,且基于密文策略的ABE(attribute encryption based on ciphertext policy,CP-ABE)是將屬性嵌入密鑰,將訪問策略嵌入密文,滿足訪問策略且具有相關密鑰的用戶可以解密,因此CP-ABE很適用于任務匹配系統。在傳統CP-ABE方案中,當用戶量巨大且頻繁提交授權申請時,系統會出現性能瓶頸問題。同時,在實踐中,由于用戶的訪問權限會經常發生變化,系統需要實現用戶屬性細粒度撤銷,若撤銷不及時用戶可能會返回錯誤數據,降低效率。此外密鑰泄漏攻擊會造成解密密鑰泄露,使惡意用戶能解密,泄露隱私。且難以抵御共謀攻擊,保證前向安全(用戶剩余屬性不滿足訪問策略則不能通過已撤銷屬性訪問以前的數據)和后向安全(用戶不能使用被撤銷屬性訪問后續數據)也是使系統性能低下的重要問題。
群智感知作為當前研究熱點,其中的任務匹配是一個非常重要的問題,得到了廣泛研究。現有任務匹配有基于屬性加密和可搜索加密兩種方法。
(1)基于屬性加密的任務匹配方案:較多方案采用多屬性密鑰授權機構[1-3]解決性能瓶頸問題,但未考慮密鑰泄露和用戶撤銷。文獻[4]通過中心機構存儲同屬性用戶身份,結合組合密鑰實現追蹤密鑰泄露者和屬性撤銷。文獻[5]通過嵌入與用戶身份相關的隨機數實現追蹤和用戶撤銷,但沒實現用戶屬性細粒度撤銷。文獻[6]根據用戶真實身份和屬性關聯信息實現追蹤和撤銷,但未能抵御共謀攻擊。文獻[7]引入多個屬性權威機構,由其根據私鑰計算出真實身份實現追蹤,但使用密鑰重加密計算開銷較大。文獻[8]根據用戶身份和更新材料實現解密密鑰隨機化,以抵抗密鑰泄露攻擊,實現屬性撤銷。文獻[9]采用全局標識符和密文更新進行追責和屬性撤銷,但密文重加密會造成較大開銷。以上方案大多只存儲單一用戶身份對泄露密鑰者進行追責,而都未將身份和對應私鑰聯系起來以避免密鑰泄露情況發生。且通過密文重加密[10-12]和對未撤銷用戶進行密鑰重加密[13]實現撤銷,會造成較高計算和通信開銷。
(2)可搜索加密的任務匹配方案:文獻[14]結合群簽名,將任務與用戶信息綁定進行追蹤和撤銷。文獻[15]針對不誠實和被撤銷用戶,以最小群組服務器開銷支持用戶撤銷。文獻[16]提出了本地撤銷和全局撤銷兩種不同的撤銷機制。文獻[17]將屬性加密和可搜索加密結合實現用戶屬性撤銷。但大多數可搜索加密方案只允許持有密鑰的單用戶查詢,不能很好應用于多用戶匹配。因此,能實現一對多加密并對加密數據進行訪問控制的屬性加密方案能更適用于任務匹配系統。
綜上所述,如何設計一個安全機制來實現保護數據隱私的同時防止密鑰泄露情況發生,且在適當開銷下進行用戶屬性撤銷是任務匹配的一個重要問題。本文提出了一個抗密鑰泄露的可撤銷多屬性授權機構CP-ABE方案,主要工作如下:
(1)通過默克爾帕特麗夏樹(Merkle Patricia tree,MPT)和增量哈希構建一個動態數據結構,MPT用于存儲用戶身份和對應私鑰的哈希值,建立身份與密鑰的聯系;增量哈希用于私鑰哈希數據快速更改。
(2)基于動態數據結構,提出了一個抗密鑰泄露可撤銷CP-ABE方案。引入多個屬性密鑰授權機構進行密鑰生成,使性能瓶頸問題得到改善。通過誠實代理機構存儲數據結構,在用戶匹配時進行驗證,避免密鑰泄露情況發生,在用戶撤銷時只對撤銷用戶進行信息更改,實現屬性撤銷和用戶撤銷。
(3)通過安全性和實驗性能分析,該方案能夠實現數據的機密性、前向安全和后向安全,并能抵抗共謀攻擊。
本章介紹了雙線性映射、基本假設、MPT和增量哈希的相關知識。

離散對數(discrete logrithm,DL)問題[19]:設G為生成元g的素數p階循環群,對于給定h∈G, 使得h=ga, 很難計算a∈Zp。 計算Diffie-Hellman密鑰交換算法(computational diffie-hellman,CDH)問題[20]:令G為一素數階p的循環群,隨機選取一個生成元g和隨機數a,b∈Zp, 給定 (g,ga,gb)∈G, 很難計算gab。
MPT是一種融合了默克爾樹和字典樹兩種樹形結構優點的數據結構,用于存儲鍵值對。MPT在根節點保存整棵樹的哈希校驗和,與普通默克爾樹相比,它能簡單地添加或刪除節點并高效地查找數據,提高數據搜索更新的效率。MPT樹中的節點包括空節點、葉子節點、擴展節點和分支節點。其中空節點表示空;葉子節點表示[key,Value]對;擴展節點表示[key,Value]對,Value指其它節點哈希值,通過該值可以連接到其它節點;當關鍵字前綴不同時,分支節點用于存儲可能的分支,若[key,Value]對中key與節點匹配,則最后一個元素存儲Value。
對于增量哈希,更新哈希值所用時間與對消息所做修改大小成正比。若與消息大小相比,修改量較小,則使用增量哈希函數的效率更高。所花費時間與消息大小無關,僅取決于更改的塊的數量。因此,在消息改變后,可使用增量哈希函數來快速計算新的抗沖突哈希值。理論上,任何無沖突的壓縮函數(或偽隨機函數)都可以修改為增量哈希函數。
本章對方案的系統模型和威脅模型進行了介紹。
如圖1所示,本方案系統模型包括以下6個實體:
(1)中心機構(trusted authority,CA):CA是可信實體,只用于發布全局公共參數和用戶身份認證注冊。
(2)屬性密鑰授權機構(attribute-key authorities,AAs):AAs是可信實體,每個AA獨立管理一個不相交的屬性集,用于驗證用戶屬性并生成私鑰,還管理用戶屬性撤銷。
(3)誠實代理機構(trusted third party authority,TPA):TPA是可信實體,有一定的計算和存儲能力,用于存儲用戶的身份和私鑰信息。
(4)云服務器(cloud server platform,CSP):CSP是半可信實體,用于用戶匹配操作,有強大的計算和存儲能力,但可能會與惡意用戶串通,泄露數據隱私。
(5)任務發布者(data owner,DO):DO是可信實體,制定訪問策略以確定所需感知數據,并將加密任務上傳給CSP。
(6)感知用戶(data user,DU):DU是不可信實體,是滿足訪問策略的用戶,用于收集感知數據返回給DO。

圖1 系統模型
方案的具體過程為:首先CA對用戶進行身份認證,將公共參數發送給AAs,AAs生成密鑰發送給用戶,并將DU的身份和對應私鑰信息發送到TPA中的MPT進行添加存儲。DO將加密任務和訪問策略發送給CSP用于匹配DU,CSP通過將DU的信息給TPA進行驗證匹配,驗證通過且匹配成功,則將密文發送給DU,DU用密鑰解密得到任務內容。當DO收到DU返回的錯誤數據時,先通過AAs找到該DU身份,再對TPA中的信息進行更新,實現用戶撤銷和屬性撤銷功能。
本文主要考慮3種類型的攻擊:
(1)密鑰泄露攻擊:惡意DU為了利益將自己的解密密鑰轉賣給其它用戶,使得系統難以對返回錯誤數據用戶的真實身份進行追責,降低系統收集處理數據的效率。
(2)CSP與DU共謀攻擊:在匹配過程中,CSP不按DO要求進行匹配,返回不正確檢索結果欺騙DO;在DU撤銷后,半可信CSP與之共謀獲取任務內容隱私。
(3)DU與DU共謀攻擊:被撤銷DU與合法DU進行共謀解密具有被撤銷屬性的密文,使方案不能滿足前向安全和向后安全。
本章首先介紹了數據結構的用法,以此提出屬性加密方案具體算法和協議流程。
MPT是一個自校驗防篡改數據結構,用來存儲鍵值對關系。MPT的插入、查找、刪除的時間復雜度均為○(logn)。 本文用此結構來存儲DU身份和私鑰,防止密鑰泄露并便于撤銷。MPT實例如圖2所示,存儲兩個DU身份標識符ID0和ID1,Key表示身份標識符的哈希值(為了方便說明,這里只取最后七位),Value是與之對應的私鑰哈希值。本節結合MPT實例詳細解釋如何實現用戶信息添加,用戶撤銷和屬性撤銷。

圖2 MPT實例
4.1.1 用戶信息添加
AAs進行DU身份認證并計算出私鑰哈希值后,將信息添加到MPT中。首先,找到與新插入節點擁有最長相同路徑前綴的當前節點,具體情況分為3種:若只匹配到擴展節點0,當ID2的Key為d1f4376,如圖3(a)所示,分支節點0生成新插入節點f,然后指向新的葉子節點2;若匹配到分支節點0,當ID2的Key為d10f625,如圖3(b)所示,下一分支節點指向新的葉子節點2;若匹配到分支節點0,且下兩位值相同,當ID2的Key為d103419,如圖3(c)所示,生成新的分支節點1,然后指向新的葉子節點2。

圖3 用戶信息添加操作
4.1.2 撤銷操作
(1)用戶撤銷
將用戶所有信息都從MPT中刪除。刪除操作是插入操作的逆操作。若需刪除ID2,對于圖3首先刪除葉子節點2,并且對于圖3(a)分支節點0的f指向空;對于圖3(b)分支節點1的f指向空;對于圖3(c)分支節點1的1指向空。
(2)屬性撤銷

具體算法有SystemSetup,AASetup,USKeyGen,Encrypt,CReencrypt和Decrypt。


(3)USKeyGen(ID,H(m))→skID,m: 選取隨機數tm,vm∈Zp, 其中m∈SID, 計算私鑰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。



方案包括系統初始化、數據加密上傳、用戶匹配驗證、密文解密和撤銷5個階段。

(2)數據加密上傳:DO執行Encrypt算法加密MSG,將密文CT和訪問策略 (Ml×n,ρ) 發送給CSP。
(3)用戶匹配驗證階段:DU將H(IDk) 和VIDk發給CSP,CSP根據TPA中存儲信息進行驗證,若不通過,則拒絕匹配請求;若通過,則TPA生成重加密密鑰ReKeym給CSP,CSP運行CReencrypt算法得到新密文CTC并查看Sk是否與訪問控制匹配,若Sk|≠(Ml×n,ρ), 則輸出⊥。否則,將CTC發送給DU。
(4)密文解密階段:DU收到CTC后執行Decrypt算法得到MSG。

本章從正確性、數據機密性、抗共謀攻擊、前向安全和后向安全進行安全性分析。
定理1 匹配正確性。DU在驗證通過后能解密得到正確任務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 數據機密性。能夠防止半可信CSP和未經授權DU訪問密文,保護數據機密性。
定理3 抗共謀攻擊。能夠防止半可信CSP和不可信DU的共謀攻擊。此外,還應抵御同一屬性組中被撤銷DU和合法DU發起的共謀攻擊。

=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
因此不能計算出MSG,上述假設不成立,抵御了共謀攻擊。

定理4 能保證撤銷屬性用戶的前向安全和后向安全。

對于撤銷屬性用戶的后向安全性,進行屬性撤銷后的用戶可能與未被撤銷的用戶合作解密數據,但私鑰為skIDk,m={kIDk,m,1,kIDk,m,2},kIDk,m,1=gγH(m)H(IDk)δH(m)+vmH(m)tm與用戶IDk有關,每個IDk唯一且不同,因此不能通過驗證,不能使用被撤銷屬性訪問后續數據,解決了后向安全問題。
本章從理論和實驗結果兩方面進行分析評估。


表1 安全性對比



表2 計算開銷對比

表3 通信開銷對比

圖4 實驗結果
本文針對群智感知系統中任務匹配出現的問題提出一個防止密鑰泄露和可撤銷的多授權機構CP-ABE方案。將一個AA分為多個解決性能瓶頸問題,利用MPT存儲用戶身份和私鑰信息防止密鑰泄露情況發生,并結合增量哈希函數對數據進行快速修改,實現用戶撤銷和屬性撤銷。方案還能抵抗半可信CSP與不可信DU、被撤銷DU與合法DU兩類合謀攻擊,保證前向安全和后向安全。但本文未考慮用戶信譽和激勵機制的設計,因此下一步工作是用一些激勵機制來吸引高質量用戶參與到任務匹配中來,更加貼近實際。