彭長(zhǎng)根,彭宗鳳,丁紅發(fā),田有亮,劉榮飛
(1.貴州省公共大數(shù)據(jù)重點(diǎn)實(shí)驗(yàn)室(貴州大學(xué)),貴州 貴陽(yáng) 550025;2.貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴州 貴陽(yáng) 550025;3.貴州大學(xué)密碼學(xué)與數(shù)據(jù)安全研究所,貴州 貴陽(yáng) 550025;4.貴州財(cái)經(jīng)大學(xué)信息學(xué)院,貴州 貴陽(yáng) 550025;5.云上貴州大數(shù)據(jù)產(chǎn)業(yè)發(fā)展有限公司,貴州 貴陽(yáng) 550025)
云存儲(chǔ)服務(wù)的廣泛應(yīng)用使數(shù)據(jù)所有者失去對(duì)外包數(shù)據(jù)的管控能力,因此外包數(shù)據(jù)的訪問控制變得越來越重要[1]。自Sahai 和Waters[2]提出屬性加密(ABE,attribute-based encryption)的概念以來,基于屬性加密的訪問控制方案得到廣泛深入的研究[3-5]。其中,Bethencourt 等[4]提出的基于密文策略的屬性加密(CP-ABE,ciphertext policy attribute-based encryption)方案,因其訪問結(jié)構(gòu)具備安全、高效、靈活的訪問控制特性,迅速成為訪問控制領(lǐng)域的重要研究分支。然而,近年的云存儲(chǔ)訪問控制研究[6-8]只考慮了單個(gè)用戶的屬性集合與訪問結(jié)構(gòu)進(jìn)行匹配,在匹配過程中,往往把多個(gè)用戶組成的屬性集合當(dāng)作共謀攻擊。但是,在實(shí)際應(yīng)用場(chǎng)景中,如醫(yī)院聯(lián)合診療場(chǎng)景,信息資源訪問往往需要多個(gè)用戶分別利用各自的屬性相互協(xié)作,并利用多用戶多屬性協(xié)同訪問。可見,經(jīng)典CP-ABE方案無法滿足協(xié)同場(chǎng)景下多個(gè)用戶的協(xié)同訪問控制需求。
屬性協(xié)同訪問控制是近年來提出的一種能解決多個(gè)用戶協(xié)同掌握訪問權(quán)限的新型訪問控制技術(shù)[9],可以看作對(duì)經(jīng)典CP-ABE 方案的擴(kuò)展。類似的協(xié)同思想最早可以追溯到秘密共享方案[10-11],但該方案無法動(dòng)態(tài)調(diào)整協(xié)同訪問權(quán)限,難以滿足實(shí)際協(xié)同需求。在協(xié)同訪問控制方案設(shè)計(jì)方面,已有不少學(xué)者針對(duì)特定協(xié)同場(chǎng)景中基于任務(wù)、社區(qū)、擴(kuò)展訪問策略、面向用戶組的屬性協(xié)同等[9,12-13]展開研究,并試圖尋求能夠靈活地表達(dá)協(xié)同訪問策略復(fù)雜性的方法。協(xié)同訪問控制方案中的數(shù)據(jù)安全和隱私依賴多個(gè)參與者的協(xié)同防護(hù)[14],面臨更加困難的挑戰(zhàn),現(xiàn)有方案大多沒有很好地解決該問題[9,12-13],即使Xue 等[13]基于特定屬性和轉(zhuǎn)移節(jié)點(diǎn)特性實(shí)現(xiàn)了安全可控的屬性協(xié)同方案,但針對(duì)權(quán)限動(dòng)態(tài)更新問題,并未給出具體的權(quán)限撤銷方案。可見,屬性協(xié)同訪問控制依然存在諸多有待深入研究和思考的問題,特別是協(xié)同過程中由于授權(quán)不足、過度授權(quán)、權(quán)限更新不及時(shí)等,可能造成嚴(yán)重的隱私泄露問題[9]。基于此,本文提出了一種具有屬性即時(shí)撤銷、屬性級(jí)用戶撤銷和協(xié)同策略撤銷功能的屬性協(xié)同訪問控制方案。
撤銷是訪問控制中的難點(diǎn)問題[15]。通常,訪問控制中會(huì)涉及屬性撤銷和用戶撤銷問題,但在協(xié)同場(chǎng)景下,當(dāng)協(xié)同功能完成時(shí),除上述2 種撤銷需求外,還需及時(shí)撤銷協(xié)同用戶的協(xié)同權(quán)限。例如,醫(yī)院內(nèi)多學(xué)科聯(lián)合診療就是一種常見的跨科室訪問數(shù)據(jù)的協(xié)同場(chǎng)景。針對(duì)同時(shí)患有疾病a 和疾病b 的患者1,從數(shù)據(jù)訪問的角度來講,A 科室醫(yī)生需要從B 科室獲取該患者的臨床診療數(shù)據(jù),以制定更科學(xué)、合理的診療方案。實(shí)際上,每個(gè)科室的臨床數(shù)據(jù)只有該科室的醫(yī)務(wù)人員才有權(quán)限訪問,此時(shí)A 科室醫(yī)生就需要B 科室醫(yī)生參與協(xié)同,協(xié)同過程相當(dāng)于B 科室醫(yī)生將患者1 在B 科室的診療結(jié)果共享給A 科室醫(yī)生的過程,使A 科室醫(yī)生能夠全面掌握該患者的診療數(shù)據(jù),有助于提高診療質(zhì)量。尤其在急診情況中,高效的協(xié)同能進(jìn)一步保障患者生命安全和數(shù)據(jù)安全。為便于表述,假設(shè)各自的屬性集合如下。
患者1:P={“疾病a 病情1”and“疾病b病史”and“疾病a 病情2”}
A 科室主治醫(yī)生:S1={“A 科室”and“主治醫(yī)生D1”}
B 科室主治醫(yī)生:S2={“B 科室”and“主治醫(yī)生D2”}
協(xié)同訪問策略:S={{“A 科室”and“主治醫(yī)生D1”} and {“B 科室”and“主治醫(yī)生D2”}}
綜上可知,{S1andS2}=S,并把子集S2中“B科室”和“主治醫(yī)生D2”稱作協(xié)同屬性。診療結(jié)束后,若不及時(shí)撤銷協(xié)同策略S,會(huì)導(dǎo)致B 科室的主治醫(yī)生一直擁有該協(xié)同權(quán)限,則他可能與A 科室醫(yī)生共謀后獲取非法的數(shù)據(jù)訪問權(quán)限,造成協(xié)同權(quán)限的濫用,并對(duì)醫(yī)療數(shù)據(jù)安全造成威脅。在執(zhí)行協(xié)同策略撤銷時(shí),不能影響具有相同屬性的其他用戶和被撤銷協(xié)同屬性的用戶的正常訪問,即上例中,從S中撤銷訪問子集S2后,包含屬性集合S2的醫(yī)生在B 科室仍具有合法的訪問權(quán)限。
在現(xiàn)有的撤銷方案中,直接撤銷存在屬性撤銷粒度較粗的問題[16-17]。間接撤銷能實(shí)現(xiàn)靈活的屬性撤銷,但只針對(duì)一般屬性的撤銷問題[18-20]。然而,在屬性協(xié)同訪問控制中往往同時(shí)涉及協(xié)同屬性和一般屬性的撤銷問題。已有的直接或間接撤銷方案中[16-20],尚沒有根據(jù)屬性的不同功能特性考慮更完備的撤銷方案,且云服務(wù)器執(zhí)行撤銷操作時(shí)可能對(duì)數(shù)據(jù)安全造成威脅。因此,亟須一種安全、高效且具有細(xì)粒度屬性撤銷功能的屬性協(xié)同訪問控制技術(shù)。
本文基于Xue 等[13]提出的屬性協(xié)同訪問控制方案構(gòu)造了一種具有屬性即時(shí)撤銷、屬性級(jí)用戶撤銷以及協(xié)同策略撤銷功能的屬性協(xié)同訪問控制方案。本文方案以用戶組[21]為基礎(chǔ),引入屬性組[20]模型,從而彌補(bǔ)了屬性組在協(xié)同場(chǎng)景中的缺陷。一方面,通過屬性組中成員列表信息的變化反映權(quán)限的動(dòng)態(tài)更新,借鑒重加密的方法更新密文,實(shí)現(xiàn)屬性即時(shí)撤銷和屬性級(jí)用戶撤銷;另一方面,利用轉(zhuǎn)移節(jié)點(diǎn)[13]的轉(zhuǎn)移值特性來撤銷屬性的協(xié)同功能,以實(shí)現(xiàn)協(xié)同策略的撤銷。當(dāng)某個(gè)屬性被撤銷時(shí),只需在屬性組中更新該屬性對(duì)應(yīng)的密文,進(jìn)而有效提升了撤銷運(yùn)行效率。在安全性方面,基于改進(jìn)后的組密鑰更新樹形結(jié)構(gòu),有效解決了密鑰安全性問題。具體而言,本文的主要貢獻(xiàn)如下。
1) 實(shí)現(xiàn)屬性撤銷和用戶撤銷。通過更新分組屬性組中成員列表信息反映實(shí)際情景中用戶加入、離開系統(tǒng)或用戶屬性的變更,進(jìn)一步設(shè)計(jì)高效的重加密算法實(shí)現(xiàn)屬性即時(shí)撤銷和屬性級(jí)用戶撤銷,其中,當(dāng)一個(gè)用戶的全部屬性都被撤銷時(shí),意味著該用戶被撤銷,即屬性級(jí)用戶撤銷。
2) 實(shí)現(xiàn)協(xié)同策略撤銷。當(dāng)某個(gè)協(xié)同功能被撤銷時(shí),更新協(xié)同屬性對(duì)應(yīng)的協(xié)同屬性組信息,并結(jié)合轉(zhuǎn)移節(jié)點(diǎn)的轉(zhuǎn)移值特性快速更新協(xié)同屬性對(duì)應(yīng)的密文,只需刪除協(xié)同屬性對(duì)應(yīng)的轉(zhuǎn)移值信息,即可實(shí)現(xiàn)細(xì)粒度的協(xié)同策略撤銷功能。
3) 構(gòu)建了安全且高效的細(xì)粒度屬性撤銷方案。基于離散對(duì)數(shù)難解問題,改進(jìn)密鑰加密密鑰樹形結(jié)構(gòu),增強(qiáng)了密鑰更新的安全性,并在標(biāo)準(zhǔn)模型下證明所提方案是選擇明文的不可區(qū)分安全性,同時(shí),保證數(shù)據(jù)機(jī)密性、前向后向安全性以及抗共謀攻擊。由云服務(wù)器執(zhí)行與撤銷相關(guān)的復(fù)雜計(jì)算,只需更新撤銷所影響的屬性組中的組密鑰參數(shù)等,大大縮小了單次密文更新范圍,有效提升了撤銷運(yùn)行效率。
協(xié)同場(chǎng)景廣泛存在于日常生活中,例如協(xié)同編輯系統(tǒng)、在線社交網(wǎng)絡(luò)以及醫(yī)療資源信息庫(kù)等商業(yè)協(xié)同系統(tǒng)。Paci 等[9]根據(jù)協(xié)同的不同類型將協(xié)同訪問控制分為以任務(wù)為導(dǎo)向的協(xié)同和以社區(qū)為導(dǎo)向的協(xié)同,前者旨在為不同的用戶分配不同的權(quán)限,如協(xié)同編輯系統(tǒng)[22-23]中的可讀、可寫權(quán)限等;后者常見于在線社交網(wǎng)絡(luò)領(lǐng)域。文獻(xiàn)[24]通過設(shè)置信任級(jí)別,只有當(dāng)請(qǐng)求訪問的用戶獲得多個(gè)關(guān)聯(lián)朋友的許可時(shí),才能獲得訪問權(quán)限。Susilo 等[12]通過合法用戶擴(kuò)展訪問策略來實(shí)現(xiàn)協(xié)同功能,需要額外的加密來保證協(xié)同前后的數(shù)據(jù)完整性。Huang 等[25]引入有效的策略擴(kuò)展框架來實(shí)現(xiàn)數(shù)據(jù)協(xié)同。Li 等[26]基于二進(jìn)制編碼將單個(gè)訪問控制策略合并成一個(gè)全局策略集來實(shí)現(xiàn)協(xié)同。此外,也有研究[13,21]從改進(jìn)和擴(kuò)展原始ABE 或CP-ABE 方案的角度來實(shí)現(xiàn)協(xié)同。Li 等[21]提出面向組的屬性加密方案,允許同一組中多個(gè)用戶合并后的私鑰屬性集合滿足協(xié)同訪問策略,進(jìn)而在協(xié)同后獲得解密權(quán)限,但該方案無法對(duì)協(xié)同能力進(jìn)行靈活控制。Bobba 等[27]引入轉(zhuǎn)移節(jié)點(diǎn)實(shí)現(xiàn)了基于密文策略的屬性集合加密,增強(qiáng)了屬性表達(dá)的靈活性。Xue 等[13]結(jié)合文獻(xiàn)[21,27]的思想,提出了一種屬性協(xié)同可控的訪問控制方案,即訪問策略中規(guī)定具有協(xié)同屬性的用戶能在指定屬性上進(jìn)行協(xié)同,以共享其訪問權(quán)限,實(shí)現(xiàn)協(xié)同訪問功能,該方案提到協(xié)同的撤銷問題,但與已有協(xié)同方案一樣,均未給出具體的撤銷方案。
ABE 中的權(quán)限撤銷管理可分為3 類:用戶級(jí)撤銷、用戶屬性級(jí)撤銷和系統(tǒng)屬性級(jí)撤銷[15]。根據(jù)不同的撤銷執(zhí)行者,撤銷方法分為直接撤銷和間接撤銷。前者由數(shù)據(jù)加密者執(zhí)行撤銷操作,后者主要由系統(tǒng)權(quán)威執(zhí)行撤銷操作。有學(xué)者基于截止時(shí)間[16]、撤銷列表[17]等方式實(shí)現(xiàn)直接撤銷,但直接撤銷方案難以適應(yīng)大規(guī)模場(chǎng)景。在間接撤銷中,存在由撤銷操作引發(fā)的密鑰更新和密文更新問題。因此,需要平衡撤銷方案的效率與安全問題。Yeh 等[18]和Hao等[19]基于代理重加密分別實(shí)現(xiàn)了屬性撤銷和用戶撤銷,但都缺乏嚴(yán)格的安全性證明。Hur 等[20]基于屬性組和二叉樹,提出支持細(xì)粒度屬性即時(shí)撤銷的CP-ABE 方案,但該方案中不可信的第三方可能對(duì)用戶密鑰安全造成威脅。王光波等[28]將屬性撤銷的相關(guān)操作托管給云存儲(chǔ)服務(wù)器執(zhí)行,減輕了中心權(quán)威的計(jì)算負(fù)載。
已有的研究工作分別考慮了協(xié)同場(chǎng)景下的訪問控制問題[12-13,22-25],以及訪問控制中的細(xì)粒度撤銷問題[16-20],但尚無具體方案考慮協(xié)同訪問控制中的細(xì)粒度撤銷問題。此外,若直接將現(xiàn)有撤銷機(jī)制與協(xié)同訪問控制結(jié)合,不僅會(huì)帶來更大的密鑰和密文更新代價(jià),也無法實(shí)現(xiàn)更有效的協(xié)同策略撤銷。
定義1訪問結(jié)構(gòu)。令{P1,P2,…,Pn}是參與者集合,一個(gè)訪問結(jié)構(gòu)A是參與者集合的非空子集,即。若集合是單調(diào)的,則 ?B,C;若B∈A且B?C,則C∈A,在訪問結(jié)構(gòu)A中的集合稱為授權(quán)集合,不在訪問結(jié)構(gòu)A中的集合稱為非授權(quán)集合。本文方案中參與者集合指的是參與者的屬性集合。
定義2令T表示訪問結(jié)構(gòu)的訪問樹,樹中非葉節(jié)點(diǎn)代表門限。numx表示節(jié)點(diǎn)x的孩子節(jié)點(diǎn)總數(shù),kx表示其門限值,則0≤kx≤numx,且節(jié)點(diǎn)x可表示為(kx,numx)。樹中每個(gè)葉子節(jié)點(diǎn)用來刻畫屬性,令att(x)表示樹中葉子節(jié)點(diǎn)所刻畫的屬性,parent(x) 表示樹中節(jié)點(diǎn)x的父節(jié)點(diǎn),父節(jié)點(diǎn)的每個(gè)子節(jié)點(diǎn)從1 ~numx以任意方式進(jìn)行排序(從左至右),函數(shù)index(y)返回子節(jié)點(diǎn)y的索引值。
定義3雙線性映射。設(shè)置2 個(gè)階為素?cái)?shù)q的乘法循環(huán)群G和GT,g是G的一個(gè)生成元。存在一個(gè)雙線性映射e:G×G→GT,滿足以下3 個(gè)性質(zhì)。
1)雙線性。?g1,g2∈G,?a,b∈RZp,都有
2)非退化性。?g1,g2∈G,有e(g1,g2)≠1。
3)可計(jì)算性。?g1,g2∈G,計(jì)算e(g1,g2)是有效函數(shù)。
定義4判定雙線性Diffie-Hellman(DBDH,decisional bilinear Diffie-Hellman)問題。給定2 個(gè)階為q的循環(huán)加法群G和循環(huán)乘法群GT、一個(gè)雙線性映射e:G×G→GT,G的生成元為g。DBDH 問題就是給定一個(gè)四元組(g,g a,g b,gc),a,b,c,z∈Zp,判斷這個(gè)四元組是DBDH 四元組(g,ga,g b,e(g,g)abc),還是隨機(jī)四元組(g,g a,g b,gz)。如果在多項(xiàng)式時(shí)間內(nèi)解決DBDH 的概率是可忽略的,則DBDH 問題是困難的。
Li 等[21]首先給出用戶組的概念,其核心思想是只允許同一個(gè)用戶組內(nèi)的用戶參與協(xié)同。用戶組是根據(jù)實(shí)際需求對(duì)用戶進(jìn)行分類所形成的用戶集合。例如,可將醫(yī)院內(nèi)同一個(gè)科室的醫(yī)生分在一個(gè)用戶組內(nèi),從而使多個(gè)用戶合并后的屬性集合可以滿足訪問策略,打破了ABE 方案只允許單個(gè)用戶的屬性集合與訪問策略進(jìn)行匹配的局限性。
Hur 等[20]提出屬性組的概念,其構(gòu)造原則是將系統(tǒng)中擁有某個(gè)相同屬性的用戶分為一組,即屬性組是擁有某屬性的全部用戶的集合。
本文方案模型由6 個(gè)算法構(gòu)成。
1) 參數(shù)設(shè)置算法Setup(?,m) →(PK,MSK)。輸入安全參數(shù)?、用戶組總數(shù)m,輸出系統(tǒng)公鑰PK 和主密鑰MSK。
2) 解密密鑰(DK,decryption key)生成算法。由用戶私鑰生成算法和組密鑰加密密鑰生成算法兩部分組成,分別為SKeyGen(MSK,S) →SK,KEKGen(Gr) →KEKs 。SKeyGen 輸入主密鑰MSK、屬性集合S,輸出用戶私鑰SK;KEKGen輸入用戶組Gr,輸出組密鑰加密密鑰KEKs。
3) 加密算法Enc(PK,M,A) →CT 。在訪問結(jié)構(gòu)A下,輸入公鑰PK、明文消息M,輸出密文CT。
4) 重加密算法ReEnc(CT,Gr) →(CT′,Hdr)。假設(shè)云服務(wù)器是誠(chéng)實(shí)且好奇的,輸入密文CT、屬性組Gr,輸出重加密密文CT′、頭部信息Hdr。只有當(dāng)用戶標(biāo)識(shí)符在Gr 中且未被撤銷時(shí)才能獲得解密權(quán)限。
5) 解密算法Dec(CT′,SK,Kλ)→M。輸入重加密密文CT′、私鑰SK、屬性組密鑰Kλ,輸出明文M。
圖1 給出本文所提具有可撤銷功能的屬性協(xié)同訪問控制(AB-R-CAC,attribute-based revocable collaborative access control)方案模型。其中,數(shù)據(jù)擁有者(DO,data owner)將加密數(shù)據(jù)存儲(chǔ)到云服務(wù)提供商(CSP,cloud service provider)處,CSP 中的數(shù)據(jù)服務(wù)管理器(DSM,data server manager)是誠(chéng)實(shí)且好奇的,負(fù)責(zé)管理屬性組和執(zhí)行撤銷相關(guān)操作;中心權(quán)威(CA,central authority)是可信的屬性權(quán)威,負(fù)責(zé)管理、分發(fā)密鑰并將屬性組發(fā)送至DSM;數(shù)據(jù)使用者(DU,data user)根據(jù)CSP 返回的密文頭部信息Hdr 更新自己的私鑰,可解密得到明文。

圖1 AB-R-CAC 方案模型
本文方案算法的安全性基于可選擇安全,其形式化定義如下。
1) 初始化。敵手選擇要挑戰(zhàn)的一個(gè)訪問結(jié)構(gòu)A*發(fā)送給挑戰(zhàn)者。
2) 系統(tǒng)建立。挑戰(zhàn)者運(yùn)行參數(shù)設(shè)置Setup 算法,利用安全參數(shù)生成公鑰PK 和主密鑰MSK,將PK發(fā)送給敵手,挑戰(zhàn)者自己保存MSK。
3) 詢問階段1。敵手可以詢問關(guān)于屬性集合Si的私鑰和組密鑰加密密鑰KEKs,且,用戶標(biāo)識(shí)符存在于用戶組U∈ Gr。
4) 挑戰(zhàn)。敵手向挑戰(zhàn)者發(fā)送消息M0和M1,挑戰(zhàn)者隨機(jī)投擲一枚硬幣b∈{0,1},在所挑戰(zhàn)的訪問結(jié)構(gòu)A*下對(duì)Mb進(jìn)行加密,并將結(jié)果返回給敵手。
5) 詢問階段2。重復(fù)詢問階段1。
6) 猜測(cè)。敵手輸出對(duì)b的猜測(cè)b′,若b′=b,則敵手贏得游戲。
定義5IND-CPA 安全。若多項(xiàng)式時(shí)間敵手擁有可忽略的優(yōu)勢(shì)攻破上述游戲,則所提AB-R-CAC方案是 IND-CPA 安全的,且敵手優(yōu)勢(shì)為
考慮協(xié)同場(chǎng)景下撤銷方案安全性以及撤銷效率,本文方案將屬性組和用戶組巧妙地融合在一起,依據(jù)Hur 等[20]提出的屬性組構(gòu)造原則,在用戶組內(nèi)構(gòu)造屬性組,并將一般屬性的分類結(jié)果稱作分組屬性組(GAG,group-based attribute group),協(xié)同屬性的分類結(jié)果稱作協(xié)同屬性組(CAG,collaborative attribute group)。在實(shí)際生成屬性組的過程中,可以通過對(duì)屬性的Hash 值建立平衡二叉樹結(jié)構(gòu),進(jìn)而提高CA 對(duì)屬性的查找、增加、刪除操作的執(zhí)行效率。分組屬性組樹的具體構(gòu)建過程如下。
例如,來自用戶組θj(1<j<m)的3 個(gè)用戶{u1,u2,u3}屬性分別為{λ1,λ2,λ3}、{λ2,λ3}、{λ1,λ3},令屬性λ2是協(xié)同屬性。首先,CA 在用戶組θj內(nèi)按照屬性λ1、λ2、λ3對(duì)這3 個(gè)用戶進(jìn)行分類,GAG 記作,表示用戶組θj中擁有一般屬性λ的用戶集合;同理,CAG 記作。綜上可知,和中的成員列表信息分別為將屬性組和每個(gè)用戶組組密鑰相關(guān)的秘密值發(fā)送給云服務(wù)器。當(dāng)云服務(wù)器接收到屬性組信息時(shí),為每個(gè)屬性組隨機(jī)選取唯一的作為屬性組密鑰。同時(shí),DSM 根據(jù)分組屬性組中所有用戶的標(biāo)識(shí)符集合生成一個(gè)分組屬性組樹,如圖2 所示。分組屬性組樹中每個(gè)葉子節(jié)點(diǎn)表示唯一的用戶,黑色的根節(jié)點(diǎn)表示用戶組秘密信息。若用戶u1的屬性λ1被撤銷,則更新的其對(duì)應(yīng)的組密鑰和密文也將被更新。本文方案中轉(zhuǎn)移節(jié)點(diǎn)即協(xié)同屬性,當(dāng)協(xié)同屬性λ2被撤銷時(shí),直接刪除轉(zhuǎn)移節(jié)點(diǎn)對(duì)應(yīng)的轉(zhuǎn)移值即可撤銷該協(xié)同屬性對(duì)應(yīng)的協(xié)同策略。值得注意的是,CSP 并未直接存儲(chǔ)或執(zhí)行與用戶屬性有關(guān)的隱私信息。本文方案在撤銷協(xié)同策略時(shí),不需要更新被撤銷屬性所影響的用戶私鑰成分。因此,不需要構(gòu)建協(xié)同屬性組樹。

圖2 分組屬性組樹
本文方案從3 個(gè)層面實(shí)現(xiàn)撤銷。首先,從數(shù)據(jù)擁有者的角度,在不需要協(xié)同功能時(shí),需要及時(shí)撤銷協(xié)同屬性,即協(xié)同策略撤銷,且撤銷屬性的協(xié)同功能時(shí),不影響該屬性除協(xié)同能力以外的訪問權(quán)限;然后,從屬性被撤銷的角度,當(dāng)用戶的某個(gè)屬性被撤銷時(shí),需要及時(shí)撤銷該屬性,且不能影響具有相同屬性的其他用戶的正常訪問;最后,從用戶撤銷的角度,當(dāng)某個(gè)用戶的全部屬性都被撤銷時(shí),意味著該用戶被撤銷,即屬性級(jí)用戶撤銷。
算法1Setup(?,m)。CA 執(zhí)行參數(shù)設(shè)置算法,輸入安全參數(shù)?、用戶組總數(shù)m。G和GT是2 個(gè)階為素?cái)?shù)p的乘法循環(huán)群,群G的隨機(jī)生成元為g,定義雙線性映射e:G×G→GT,抗碰撞哈希函數(shù)H:{0,1}*→G。隨機(jī)選取α,β1,β2∈Zp,組密鑰θm∈Zp,用戶唯一標(biāo)識(shí)符ui∈Zp。輸出系統(tǒng)公鑰系統(tǒng)主密鑰
算法2解密密鑰生成算法包含用戶私鑰生成算法和組密鑰加密密鑰生成算法。
SKeyGen(MSK,S)。CA 執(zhí)行私鑰生成算法,定義屬性集合ai,j為Si中的第j個(gè)屬性,ni為Si的屬性總數(shù)。CA 檢查用戶ui屬于哪一個(gè)用戶組,并且生成用戶組密鑰θm;然后,CA分別為用戶ui和屬性ai,j隨機(jī)選擇和最后,生成用戶私鑰為

其中,Ei為轉(zhuǎn)移節(jié)點(diǎn)的轉(zhuǎn)移密鑰。本文方案中,轉(zhuǎn)移節(jié)點(diǎn)表示協(xié)同屬性[13],轉(zhuǎn)移節(jié)點(diǎn)在協(xié)同者參與協(xié)同解密及協(xié)同策略撤銷過程中必不可少。簡(jiǎn)單起見,將多個(gè)用戶的屬性集合記作γ,屬性ai,j記作λj,即λj∈γ。
KEKGen(Gr)。由CSP 執(zhí)行,輸入屬性組Gr,假設(shè)DSM 根據(jù)接收到的屬性組信息,通過KEKGen(Gr)為分組屬性組中每個(gè)用戶ui生成KEKs。改進(jìn)后的密鑰加密密鑰(IKEK,improved key encryption key)樹如圖3 所示,每個(gè)節(jié)點(diǎn)vj擁有一個(gè)密鑰加密密鑰值KEKj,從葉子節(jié)點(diǎn)到根節(jié)點(diǎn)的KEKj的路徑密鑰(PK,path key)集合即組密鑰加密密鑰。只有KEKs 滿足重加密密文中Hdr 的用戶,才能解密得到分組屬性組密鑰。構(gòu)造IKEK 樹的具體步驟如下。

圖3 IKEK 樹
步驟1分組屬性組中用戶成員與IKEK 樹中的葉節(jié)點(diǎn)一一對(duì)應(yīng),DSM 為樹中每個(gè)葉節(jié)點(diǎn)和內(nèi)部節(jié)點(diǎn)隨機(jī)分配密鑰。其中,每個(gè)節(jié)點(diǎn)的密鑰分配是相互獨(dú)立且隨機(jī)的
[29]。根節(jié)點(diǎn)的密鑰為由于群上的離散對(duì)數(shù)問題是困難的,因此誠(chéng)實(shí)且好奇的DSM 在多項(xiàng)式時(shí)間內(nèi)仍無法計(jì)算得到用戶組密鑰θm。
步驟2分組屬性組中每個(gè)用戶成員ui接收路徑密鑰PKi作為KEKs,DSM 用PKi來加密分組屬性組密鑰。例如,用戶u1的組密鑰加密密鑰為。
算法3。數(shù)據(jù)擁有者運(yùn)行加密算法,輸入訪問結(jié)構(gòu)A、公鑰PK和明文消息M,接著選擇隨機(jī)密鑰κ∈Zp作為對(duì)稱加密密鑰對(duì)明文進(jìn)行加密,密文為Eκ(M)。令X為訪問樹T中轉(zhuǎn)移節(jié)點(diǎn)集合,Y為訪問樹T中葉子節(jié)點(diǎn)集合,轉(zhuǎn)移節(jié)點(diǎn)即訪問策略中允許協(xié)同的屬性。輸出密文為

算法4ReEnc(CT,Gr)。DSM 接收到密文后,執(zhí)行重加密算法。輸入密文CT、屬性組Gr,重加密過程如下。


用戶執(zhí)行密文解密算法。輸入重加密密文CT′、私鑰及屬性組密鑰,屬性集合包含單個(gè)用戶的屬性集合和多個(gè)用戶協(xié)同后的屬性集合,定義協(xié)同后的屬性集合為γ,即聯(lián)合屬性集合。對(duì)訪問樹中每個(gè)節(jié)點(diǎn)x,樹滿足算法Tx(γ)返回其標(biāo)識(shí)符總集合Ux,并將每個(gè)遞歸調(diào)用的結(jié)果存儲(chǔ)在訪問樹中。若ui∈Ux,則意味著用戶ui能夠解密節(jié)點(diǎn)x。若γ滿足訪問樹,則用戶的標(biāo)識(shí)符將被包含在Ur中,且用戶執(zhí)行解密算法DecryptNode(CT′,γ,x,ui);否則,Ur=?時(shí),解密算法返回⊥。
當(dāng)x∈Y時(shí),若ui?Ux,att(x)?Si,則有DecryptNode(CT′,γ,x,ui);否則,解密算法返回值為att(x)=ai,j∈Si,計(jì)算DecryptNode(CT′,γ,x,ui)為

當(dāng)x?Y,x是一個(gè)非葉節(jié)點(diǎn)時(shí),則計(jì)算用z表示x的kx個(gè)子節(jié)點(diǎn),并將結(jié)果存儲(chǔ)到集合Bx中。若z不是轉(zhuǎn)移節(jié)點(diǎn),則令節(jié)點(diǎn)z與用戶ui相關(guān)聯(lián);若z是轉(zhuǎn)移節(jié)點(diǎn),則令轉(zhuǎn)移節(jié)點(diǎn)z與用戶相關(guān)聯(lián),且i′≠i。
因此,對(duì)?z∈Bx,z不是轉(zhuǎn)移節(jié)點(diǎn)時(shí),算法調(diào)用DecryptNode(CT′,γ,z,ui),并將計(jì)算結(jié)果存儲(chǔ)到變量Fz;對(duì)?z∈Bx,z是轉(zhuǎn)移節(jié)點(diǎn)時(shí),即且i′≠i,算法調(diào)用,并將計(jì)算結(jié)果存儲(chǔ)到變量。這意味著,除數(shù)據(jù)請(qǐng)求者之外的用戶(協(xié)同者)能夠協(xié)同解密節(jié)點(diǎn)z,接著,協(xié)同者將其輸出結(jié)果轉(zhuǎn)移到變量Fz,計(jì)算

基于轉(zhuǎn)移密鑰Ei,把秘密值轉(zhuǎn)移到Fz,用戶ui獲得節(jié)點(diǎn)x的kx個(gè)子節(jié)點(diǎn)z的秘密,因此,能夠解密節(jié)點(diǎn)x。協(xié)同者將秘密值轉(zhuǎn)移給用戶ui等價(jià)于用戶ui獨(dú)立擁有能滿足節(jié)點(diǎn)x的謂詞表達(dá)式的所有屬性集合。然后,用戶ui使用拉格朗日多項(xiàng)式插值方法計(jì)算Fx,具體為

當(dāng)用戶獲得對(duì)稱密鑰κ后,能解密出明文消息M。

因此,只需要更新被撤銷屬性所在屬性組的組密鑰,進(jìn)行密文更新。DSM 根據(jù)更新后的重新選擇最小覆蓋集合,該集合包含擁有屬性λj的新用戶(保證后向安全性)或刪除屬性λj后的用戶(保證前向安全性)。生成新的頭部消息為

當(dāng)用戶請(qǐng)求訪問外包數(shù)據(jù)時(shí),DSM 返回(Hdr,CT ′′) 給用戶。
更新算法有效保證了細(xì)粒度訪問控制。一旦DSM 收到更新后的屬性組信息列表,DSM 可直接執(zhí)行算法6,更新被撤銷屬性對(duì)應(yīng)的密文,同時(shí)保證了屬性級(jí)撤銷粒度。
6.1.1數(shù)據(jù)機(jī)密性
定理1在DBDH 假設(shè)下,本文所構(gòu)造的AB-R-CAC 方案具有選擇明文攻擊(IND-CPA,indistinguishable chosen-plaintext attack)的不可區(qū)分性。
證明本文方案的安全性證明受到Xue 等[13]在不同的威脅模型下的啟發(fā)。在訓(xùn)練階段考慮敵手詢問私鑰的3 種可能的情況。其中,模型1 表示敵手全部來自同一個(gè)用戶組;模型2 表示敵手來自不同用戶組(即任意2 個(gè)用戶都屬于不同的用戶組)。組合模型即模型1、模型2 的組合,更接近現(xiàn)實(shí)情形。
若敵手能以不可忽略的優(yōu)勢(shì)在IND-CPA 安全模型下選擇性地攻破本文方案,那么就存在挑戰(zhàn)者B 能在多項(xiàng)式時(shí)間內(nèi)以不可忽略的優(yōu)勢(shì)解決DBDH問題。假設(shè)挑戰(zhàn)者隨機(jī)翻轉(zhuǎn)一枚硬幣,硬幣的正反2 種情況用u={0,1}表示。當(dāng)u=0時(shí),四元組為(A=g a,B=g b,C=gc,Z=e(g,g)abc);否則,四元組(A=g a,B=g b,C=gc,Z=e(g,g)z),其中a,b,c,z∈Zp,挑戰(zhàn)者輸出b′作為b的猜測(cè)結(jié)果。
1) 初始化。敵手向挑戰(zhàn)者發(fā)送挑戰(zhàn)訪問結(jié)構(gòu)A*。
2) 參數(shù)設(shè)置。挑戰(zhàn)者隨機(jī)選取t,α′∈Zp,設(shè)置隨機(jī)選取并將公鑰發(fā)送給敵手PK={H,h1,h2,Z}。
3) 訓(xùn)練階段1。訓(xùn)練階段分別在模型1、模型2以及組合模型下分情況討論。
在模型1 中的數(shù)據(jù)機(jī)密性分析如下。
①私鑰和組密鑰詢問階段

② 私鑰更新詢問
當(dāng)敵手詢問的屬性未被撤銷,但同組中其他擁有相同屬性的成員發(fā)生撤銷,導(dǎo)致屬性組密鑰被更新時(shí),敵手發(fā)出更新密鑰請(qǐng)求,挑戰(zhàn)者為原來的屬性組Gr 重新設(shè)置屬性組密鑰,將Gr 更新為屬性組,其中不包含被撤銷用戶。根據(jù)的更新生成組密鑰加密密鑰KEKs*∈Zp,并將更新結(jié)果發(fā)送給敵手。敵手可以得到更新私鑰成分如下。

即更新私鑰為

在模型2 中的數(shù)據(jù)機(jī)密性分析如下。
①私鑰和組密鑰詢問階段
當(dāng)敵手均來自不同用戶組且未被撤銷時(shí),敵手的私鑰詢問過程如下。假設(shè)2 個(gè)來自不同組的敵手Aa,Ab分別詢問屬性集合Sa,Sb的私鑰,q1+1≤a,b≤q,挑戰(zhàn)者隨機(jī)選取計(jì)算后得到部分私鑰成分為

② 私鑰更新詢問

可得私鑰為

綜上,每一個(gè)屬性Si與產(chǎn)生的SKi一一對(duì)應(yīng),最后,敵手的屬性集合即所有被詢問屬性的集合
組合模型中的數(shù)據(jù)機(jī)密性分析如下。
在組合模型中,可將來源于不同用戶組的敵手進(jìn)行分組,將其看作單個(gè)用戶,并依據(jù)上述2 種安全性證明的特性證明其數(shù)據(jù)機(jī)密性。
4) 挑戰(zhàn)。階段1 結(jié)束后,敵手將其要挑戰(zhàn)的訪問結(jié)構(gòu)A*和2 個(gè)明文消息M0,M1∈G發(fā)送給挑戰(zhàn)者。挑戰(zhàn)者運(yùn)行密文產(chǎn)生算法,將產(chǎn)生的密文CT*返回給敵手。注意,敵手詢問的屬性集合不滿足訪問結(jié)構(gòu)A*。

5) 訓(xùn)練階段2。與訓(xùn)練階段1 操作相同。
6) 猜測(cè)。敵手輸出猜測(cè)結(jié)果b′∈{0,1},當(dāng)b′=b,挑戰(zhàn)者輸出u′=0時(shí),表示(A,B,C,Z)是一個(gè)有效的DBDH 四元組;否則,(A,B,C,Z)是一個(gè)隨機(jī)四元組。當(dāng)u=1時(shí),攻擊者并沒有得到任何有用信息,因此 Pr[b′≠b|u=1]=1 2。當(dāng)b≠b′時(shí),挑戰(zhàn)者隨機(jī)猜測(cè)u′=1,因此有。當(dāng)u=0時(shí),敵手能夠獲取到Mb的密文,其優(yōu)勢(shì)定義為,所以當(dāng),挑戰(zhàn)者猜測(cè)u′=0時(shí),。綜上,在解決DBDH 問題的游戲中挑戰(zhàn)者總的優(yōu)勢(shì)為

若敵手在概率多項(xiàng)式時(shí)間內(nèi)贏得上述游戲的優(yōu)勢(shì)為ADVCPA,則挑戰(zhàn)者能以不可忽略的優(yōu)勢(shì)ADVCPA/2 解決DBDH 困難問題。在安全模型中,敵手攻擊本文方案的優(yōu)勢(shì)ADVCPA是可忽略的。因此,本文方案是IND-CPA 安全的。
證畢。
6.1.2抗共謀攻擊
首先,CA 在私鑰生成階段使用隨機(jī)化方法,使每個(gè)用戶的屬性都有唯一的隨機(jī)參數(shù),即使不同用戶屬性都滿足訪問策略,仍無法共同計(jì)算出e(g,g)αs,故用戶間無法產(chǎn)生共謀;其次,本文方案在密鑰生成階段為轉(zhuǎn)移節(jié)點(diǎn)生成轉(zhuǎn)移密鑰,在加密階段為轉(zhuǎn)移節(jié)點(diǎn)生成轉(zhuǎn)移值,只有同時(shí)具有相匹配的轉(zhuǎn)移密鑰和轉(zhuǎn)移值的屬性才可參與協(xié)同,因此,協(xié)同只能發(fā)生在轉(zhuǎn)移節(jié)點(diǎn)上,故協(xié)同具有抗共謀性;最后,由于被撤銷的用戶所在屬性組已被CA及時(shí)更新,即ui?Gr*,對(duì)應(yīng)的屬性組密鑰和密文信息也被DSM 及時(shí)更新,因此,被撤銷用戶無法解密更新后的密文,故被撤銷的用戶和現(xiàn)有用戶之間無法實(shí)現(xiàn)共謀攻擊。
6.1.3前向安全性
基于改進(jìn)后的IKEK 樹,對(duì)于被撤銷的用戶,其所在屬性組的組密鑰被及時(shí)安全地更新,被撤銷用戶無法更新其私鑰,因此,被撤銷的用戶無法解密密文;當(dāng)協(xié)同策略被撤銷時(shí),協(xié)同屬性所在屬性組的組密鑰,在密文更新階段,表示沒有有效的密文信息,此時(shí),被撤銷的協(xié)同者即使擁有轉(zhuǎn)移密鑰也無法再參與協(xié)同。
6.1.4后向安全性
當(dāng)新用戶加入系統(tǒng)時(shí),DSM 根據(jù)更新后屬性組信息更新相應(yīng)的屬性組密鑰,此時(shí),新加入的用戶只能解密與相關(guān)的更新后的密文,無法解密加入系統(tǒng)之前的密文關(guān)鍵項(xiàng)從而保證了新加入用戶只能解密更新后的密文。
表1 從系統(tǒng)計(jì)算開銷及功能特征方面將本文方案與已有協(xié)同訪問控制研究[12-13]進(jìn)行分析和比較。表1 中,nu表示用戶的平均屬性數(shù)量,nc表示滿足密文中訪問樹的平均屬性數(shù)量,|tr|表示密文中轉(zhuǎn)移節(jié)點(diǎn)的平均數(shù)量,表示可解密密文的集合γ中轉(zhuǎn)移節(jié)點(diǎn)的平均數(shù)量,nc,γ表示屬性集合γ的平均屬性數(shù)量,|nl|表示訪問樹中從葉節(jié)點(diǎn)到根節(jié)點(diǎn)的非葉節(jié)點(diǎn)數(shù)量,nρ表示滿足訪問矩陣的平均屬性數(shù)量,nI表示矩陣訪問結(jié)構(gòu)中有效屬性的總行數(shù),|Gr|表示屬性組中平均用戶數(shù)量,表示協(xié)同屬性組數(shù)量,Tp表示群上的配對(duì)運(yùn)算時(shí)間,Te表示指數(shù)運(yùn)算所需時(shí)間。
由表1 可知,相比已有方案,本文方案實(shí)現(xiàn)了更加細(xì)粒度的撤銷功能,僅增加了極少的計(jì)算開銷。由DSM 執(zhí)行與撤銷相關(guān)的操作,帶來的額外密鑰生成開銷為,重加密計(jì)算開銷為ncTe。

表1 系統(tǒng)計(jì)算開銷及功能特征比較
Susilo 等[12]通過增加訪問策略實(shí)現(xiàn)協(xié)同,隨著協(xié)同數(shù)量的增加,訪問策略的冗余度增大,帶來了更大的存儲(chǔ)和計(jì)算負(fù)擔(dān)。Xue 等[13]基于屬性并利用轉(zhuǎn)移節(jié)點(diǎn)的特性在不增加訪問策略的情況下,實(shí)現(xiàn)了較為高效的屬性協(xié)同功能。但上述方案均未具體考慮增加了協(xié)同功能后所面臨的更復(fù)雜的權(quán)限動(dòng)態(tài)更新問題,尤其是同時(shí)達(dá)到協(xié)同策略撤銷、屬性撤銷和用戶撤銷。本文方案在Xue 等[13]的基礎(chǔ)上實(shí)現(xiàn)了細(xì)粒度的屬性即時(shí)撤銷、屬性級(jí)用戶撤銷和協(xié)同策略撤銷。其中,屬性即時(shí)撤銷操作不需要等待一定的時(shí)間周期[16],只要DSM 收到被撤銷屬性對(duì)應(yīng)的屬性組信息,即可更新被撤銷屬性對(duì)應(yīng)的密文信息。
文獻(xiàn)[18-20]以及本文方案的撤銷性能及安全性比較如表2 所示。表2 中,nuser表示系統(tǒng)中所有用戶數(shù)量,r表示方案中被撤銷的用戶數(shù)量,被撤銷的用戶包含撤銷屬性、撤銷協(xié)同屬性,|Gr|表示屬性組平均用戶數(shù)量,Te表示指數(shù)運(yùn)算所需時(shí)間。
由表2 可知,本文方案不僅同時(shí)實(shí)現(xiàn)了細(xì)粒度的屬性級(jí)撤銷和協(xié)同策略撤銷功能,還在標(biāo)準(zhǔn)模型下給出了嚴(yán)格的安全性證明。同類撤銷方案[18-20]均未給出嚴(yán)格的安全性證明;Hao 等[19]實(shí)現(xiàn)了用戶級(jí)撤銷,但撤銷粒度較粗;Yeh 等[18]和Hur 等[20]都利用屬性組實(shí)現(xiàn)細(xì)粒度屬性級(jí)撤銷,不同點(diǎn)是Hur 等[20]將撤銷操作交給云服務(wù)提供商執(zhí)行,導(dǎo)致安全性較弱;Yeh 等[18]將撤銷操作全部交給中心權(quán)威執(zhí)行,雖增強(qiáng)了安全性,但中心權(quán)威計(jì)算負(fù)載太大。本文方案的撤銷思想來源于文獻(xiàn)[20],但與之不同的是,本文方案在實(shí)現(xiàn)細(xì)粒度的屬性撤銷、用戶撤銷和協(xié)同策略撤銷時(shí),面向?qū)傩越M實(shí)現(xiàn)更新,縮小了單次更新范圍,進(jìn)而提升了撤銷運(yùn)行效率,將密鑰更新、密文更新的計(jì)算效率從O(nuser?r)提升至,并基于改進(jìn)的密鑰加密密鑰樹增強(qiáng)了方案安全性,在標(biāo)準(zhǔn)模型下證明本文方案是選擇明文攻擊安全的。本文方案假設(shè)CA 能即時(shí)掌控用戶的撤銷信息,并能誠(chéng)實(shí)地對(duì)相應(yīng)的屬性組信息進(jìn)行更新。尚未考慮用戶不誠(chéng)實(shí)的情況下,如何即時(shí)發(fā)現(xiàn)不誠(chéng)實(shí)用戶,以實(shí)現(xiàn)更加細(xì)粒度的屬性級(jí)撤銷。

表2 撤銷性能及安全性比較
本文方案提出了一種具有可撤銷功能的屬性協(xié)同訪問控制方案,實(shí)現(xiàn)了屬性即時(shí)撤銷、屬性級(jí)用戶撤銷以及協(xié)同策略撤銷功能,解決了協(xié)同訪問控制中復(fù)雜的動(dòng)態(tài)權(quán)限更新問題。該方案在屬性組內(nèi)執(zhí)行密文和密鑰更新,大大縮小了更新范圍,有效提升了撤銷運(yùn)行效率。本文對(duì)協(xié)同場(chǎng)景下的協(xié)同策略撤銷需求進(jìn)行論述,定義了選擇性安全模型。基于離散對(duì)數(shù)困難問題改進(jìn)了組密鑰更新樹形結(jié)構(gòu),增強(qiáng)了密鑰更新的安全性,同時(shí),基于DBDH 困難問題證明了該方案是IND-CPA 安全的。下一步研究工作將考慮訪問控制撤銷方案中存在惡意用戶的情況。