趙鄭營(yíng),曹伯強(qiáng)
(河南大學(xué)計(jì)算機(jī)與信息工程學(xué)院,開(kāi)封 475004)
現(xiàn)如今,網(wǎng)絡(luò)是人們信息交換的主要通信平臺(tái),人們可以通過(guò)網(wǎng)絡(luò)平臺(tái)進(jìn)行數(shù)據(jù)上傳、下載、搜索等操作進(jìn)行數(shù)據(jù)資源的交換,以滿足人們獲取信息的需求。大量的信息在網(wǎng)絡(luò)上傳遞、存儲(chǔ),會(huì)涉及個(gè)人隱私、數(shù)據(jù)安全保密等問(wèn)題。為了解決這個(gè)問(wèn)題,我們可以使用密碼學(xué)對(duì)信息進(jìn)行加密處理,達(dá)到安全防范的目的。加密技術(shù)分為私鑰加密和公鑰加密。早期的云存儲(chǔ)加密只是在網(wǎng)絡(luò)通信中采用HTTPS協(xié)議進(jìn)行加密,沒(méi)有對(duì)數(shù)據(jù)本身進(jìn)行處理。我們可以在數(shù)據(jù)加密的基礎(chǔ)上采用訪問(wèn)控制策略。為了簡(jiǎn)化公鑰加密系統(tǒng)中密鑰管理,身份基加密在1984年被首次提出,即用戶以自身的身份信息作為公鑰。身份基加密減少了證書(shū)權(quán)威機(jī)構(gòu)綁定身份與公鑰的步驟。
屬性基加密(Attribute-Based Encryption,ABE)[1],是一種特殊的公鑰加密方案,既能保護(hù)數(shù)據(jù)擁有者的數(shù)據(jù)安全,還能夠?qū)崿F(xiàn)數(shù)據(jù)細(xì)粒度的訪問(wèn)控制。屬性基加密可分為基于密文的屬性基加密和基于密鑰的屬性基加密。高效動(dòng)態(tài)的屬性撤銷(xiāo)方案是ABE的重要組成部分,是ABE應(yīng)用的難點(diǎn)之一,所以制定出適應(yīng)多種應(yīng)用環(huán)境的且高效的屬性撤銷(xiāo)方案是非常有意義的。GOya1等人[2]和Bethencourt等人[3]在原有ABE基礎(chǔ)上提出了基于密鑰策略的ABE加密算法KP-ABE和基于密文策略的ABE加密算法CP-ABE。KP-ABE是用戶的私鑰與訪問(wèn)策略綁定在一起,密文與屬性集合綁定在一起,與密文相關(guān)的屬性集合滿足私鑰的綁定才能解密。CP-ABE是密文與訪問(wèn)控制結(jié)構(gòu)綁定在一起,用戶私鑰與屬性集合綁定在一起。這是兩者的不同之處。
在實(shí)際應(yīng)用系統(tǒng)中,一個(gè)用戶可以擁有多個(gè)不同的屬性,同一個(gè)屬性可以被多個(gè)用戶所擁有。用戶根據(jù)擁有不同的屬性就獲得不同的密文訪問(wèn)控制權(quán)限。在實(shí)際應(yīng)用場(chǎng)景中,往往會(huì)出現(xiàn)用戶更換,用戶權(quán)限變更及用戶私鑰泄露等情況,就需要考慮密鑰的屬性的撤銷(xiāo)問(wèn)題。用戶屬性的撤銷(xiāo)就是失去所撤銷(xiāo)屬性的訪問(wèn)控制權(quán)限。在屬性撤銷(xiāo)過(guò)程中,一個(gè)用戶可能需要撤銷(xiāo)多個(gè)不同屬性,也有可能不同用戶需要撤銷(xiāo)同一個(gè)屬性,用戶和屬性之間是“多對(duì)多”的關(guān)系。為了提高加密解密效率,數(shù)據(jù)擁有者可以將數(shù)據(jù)信息利用對(duì)稱(chēng)加密進(jìn)行加密,然后上傳到云服務(wù)器上進(jìn)行保存,采用密文策略的加密方案CP-ABE對(duì)密鑰進(jìn)行管理,密文策略的屬性基加密,通過(guò)關(guān)聯(lián)到一個(gè)可描述的用戶屬性集合,將密文關(guān)聯(lián)到一棵訪問(wèn)控制樹(shù)結(jié)構(gòu),實(shí)現(xiàn)密文的訪問(wèn)控制。
如圖標(biāo)識(shí)滿足屬性為:45歲的醫(yī)師或者副醫(yī)師可以獲得密文。
圖1 樹(shù)形屬性圖
圖2 屬性基訪問(wèn)控制過(guò)程
以上圖2是用戶A和用戶B按照?qǐng)D1屬性訪問(wèn)控制進(jìn)行服務(wù)器的文件申請(qǐng)的圖示。很明顯只有用戶A符合要求,能夠拿到解密的文件。
理想狀態(tài)下的屬性撤銷(xiāo)應(yīng)達(dá)到以下三點(diǎn):(1)屬性撤銷(xiāo)應(yīng)具有時(shí)效性。(2)屬性撤銷(xiāo)應(yīng)有精確性,用戶某個(gè)屬性的撤銷(xiāo)應(yīng)不影響其他沒(méi)有撤銷(xiāo)屬性的用戶。(3)屬性撤銷(xiāo)應(yīng)具有高效性,在盡量減少系統(tǒng)負(fù)擔(dān)的同時(shí),減少撤銷(xiāo)的復(fù)雜性。
Pirretti等人[1]在2006年首次提出了可撤銷(xiāo)屬性加密(Revocable ABE,RABE)的概念。2006年,Goyal等人[7]提出了一種屬性間接撤銷(xiāo)的屬性加密方案,即給每個(gè)屬性都帶有一個(gè)有效期限,時(shí)間標(biāo)簽,當(dāng)某個(gè)屬性時(shí)間超過(guò)了帶有的時(shí)間標(biāo)簽,這個(gè)屬性就被撤銷(xiāo)了。Sahai等人[4]結(jié)合“密文代理”的性質(zhì),構(gòu)造了一種高效的且支持用戶撤銷(xiāo)的屬性密碼方案,有效解決了密文更新的問(wèn)題,從而保證了數(shù)據(jù)的前向性和后向性安全。Shi等人[8]提出了一個(gè)支持可驗(yàn)證密文代理的直接可撤銷(xiāo)的屬性密碼方案。該方案使用完全子樹(shù)(Complete Subtree,CS)的方法實(shí)現(xiàn)了用戶的直接撤銷(xiāo)。同時(shí)方案給出了一種有效的方法來(lái)驗(yàn)證第三方是否正確地更新了密文。近期,Datta等人[9]給出了第一個(gè)在素?cái)?shù)階群上完全安全且無(wú)界的可撤銷(xiāo)屬性加密方案。該方案借助于子集差分(Subset Difference,SD)的方法實(shí)現(xiàn)了用戶的有效撤銷(xiāo),提高了廣播的效率[10]。也有學(xué)者提出在云環(huán)境下基于屬性基加密,引入特殊屬性集得方法,和用戶原本所有的屬性集一起構(gòu)成新的訪問(wèn)控制,達(dá)到對(duì)用戶密鑰分割的目的。密鑰的一部分發(fā)送給用戶,另一部分存放在選取的可信代理服務(wù)器上,存在代理服務(wù)器端的部分密鑰通過(guò)代理重加密并發(fā)送給用戶進(jìn)行更新,才能使用戶得到解密,提升了屬性撤銷(xiāo)的性能[11]。
根據(jù)屬性集合中不同的作用分類(lèi),可以分為用戶(User)、用戶屬性(User Attribute)和系統(tǒng)屬性(System Attribute)。根據(jù)撤銷(xiāo)執(zhí)行機(jī)構(gòu)的不同[5],可以分為直接屬性撤銷(xiāo)和間接屬性撤銷(xiāo)這兩種模式。間接屬性撤銷(xiāo)又可以分為授權(quán)機(jī)構(gòu)撤銷(xiāo)、第三方撤銷(xiāo)兩種模式。直接撤銷(xiāo)模式是指數(shù)據(jù)發(fā)送者在加密數(shù)據(jù)時(shí)在密文中設(shè)置有用戶撤銷(xiāo)列表,加密數(shù)據(jù)的時(shí)候直接對(duì)用戶實(shí)現(xiàn)屬性撤銷(xiāo),如果用戶撤銷(xiāo)列表里有用戶的信息,則用戶不能訪問(wèn)控制密文,大部分直接撤銷(xiāo)方案是將現(xiàn)有的廣播加密技術(shù)應(yīng)用到ABE中實(shí)現(xiàn)的。間接撤銷(xiāo)是授權(quán)機(jī)構(gòu)周期性的對(duì)未撤銷(xiāo)用戶發(fā)送更新密鑰,未撤銷(xiāo)用戶取到更新密鑰才能解密。授權(quán)機(jī)構(gòu)撤銷(xiāo),是指如果要想對(duì)用戶的某個(gè)屬性撤銷(xiāo),授權(quán)機(jī)可以直接不再更新該用戶的這個(gè)屬性密鑰,這樣用戶就不能對(duì)某些數(shù)據(jù)信息進(jìn)行訪問(wèn)控制了。
屬性撤銷(xiāo)按照撤銷(xiāo)粒度的不同[6],可分為系統(tǒng)屬性撤銷(xiāo)、用戶撤銷(xiāo)和用戶屬性撤銷(xiāo)3種。(1)系統(tǒng)屬性撤銷(xiāo),指的是系統(tǒng)中的某個(gè)屬性撤銷(xiāo),撤銷(xiāo)后,擁有這個(gè)屬性的所有用戶都沒(méi)有該屬性的權(quán)限。例如某個(gè)單位中的“R部門(mén)”因工作需要撤銷(xiāo),則所有滿足屬性是“R部門(mén)”的用戶都會(huì)失效。(2)用戶撤銷(xiāo),就是指某個(gè)用戶失去所有訪問(wèn)權(quán)限。如某單位的確定其工作人員A辭職了,系統(tǒng)即可對(duì)A進(jìn)行用戶撤銷(xiāo),這樣A即會(huì)失去在這個(gè)單位原享有的所有權(quán)限。(3)用戶屬性的撤銷(xiāo),是指用戶失去對(duì)其某個(gè)屬性的訪問(wèn)權(quán)限。用戶沒(méi)有撤銷(xiāo)的原有其他屬性的訪問(wèn)權(quán)限不會(huì)改變。并且不會(huì)影響其他擁有該撤銷(xiāo)屬性用戶的訪問(wèn)權(quán)限。例如某個(gè)大學(xué),“2018年”辦理完畢業(yè)手續(xù)的“畢業(yè)生”,圖書(shū)館針對(duì)他們已經(jīng)畢業(yè)的情況,將他們的借書(shū)權(quán)限撤銷(xiāo)。所有擁有“2018年”和“畢業(yè)生”屬性的學(xué)生都將不能借書(shū)。
根據(jù)屬性撤銷(xiāo)的時(shí)效性不同,可以分為即時(shí)撤銷(xiāo)、周期性撤銷(xiāo)兩種。即時(shí)撤銷(xiāo)。直接撤銷(xiāo)就屬于即時(shí)撤銷(xiāo)。在間接撤銷(xiāo)模式下需要引入半可信第三方。周期性撤銷(xiāo)。密鑰以周期式更新,所以對(duì)于屬性的撤銷(xiāo)也是周期性的。
直接撤銷(xiāo)的過(guò)程是:用戶被一種屬性所標(biāo)識(shí),被撤銷(xiāo)的用戶,其屬性標(biāo)識(shí)為“否”并和用戶訪問(wèn)的密文相關(guān)聯(lián),這樣用戶就無(wú)法訪問(wèn)解密?;贏BE屬性撤銷(xiāo)是研究的熱點(diǎn),大部分的屬性撤銷(xiāo)研究都是采用間接撤銷(xiāo)方法。間接撤銷(xiāo)可以關(guān)聯(lián)多個(gè)用戶的多個(gè)屬性,間接撤銷(xiāo)一般會(huì)采用授權(quán)機(jī)構(gòu)或第三方代理執(zhí)行,多采用樹(shù)形屬性訪問(wèn)控制結(jié)構(gòu),來(lái)有效實(shí)現(xiàn)細(xì)粒度的控制屬性撤銷(xiāo)的操作。
直接撤銷(xiāo)和間接撤銷(xiāo)的比較:(1)從時(shí)效來(lái)看,直接撤銷(xiāo)更加及時(shí),能夠及時(shí)地撤銷(xiāo)用戶的屬性,使用戶訪問(wèn)控制具有實(shí)時(shí)性;間接撤銷(xiāo)需要密鑰周期性的更新,在密鑰更新前用戶的訪問(wèn)控制權(quán)限需要設(shè)置好。(2)從復(fù)雜性來(lái)看,如果用戶屬性數(shù)量多的話,直接撤銷(xiāo)會(huì)加重加密者的負(fù)擔(dān);間接撤銷(xiāo)一般采用授權(quán)機(jī)構(gòu)或者第三方代理執(zhí)行,計(jì)算負(fù)擔(dān)小。
Attrapadung等人[12]在充分結(jié)合了兩種撤銷(xiāo)模式優(yōu)點(diǎn)的基礎(chǔ)上,針對(duì)KP-ABE的撤銷(xiāo)問(wèn)題提出了采取二叉樹(shù)的混合撤銷(xiāo)機(jī)制HR-ABE。用戶可以在加密時(shí)決定選擇間接撤銷(xiāo)模式還是直接撤銷(xiāo)模式,每個(gè)用戶的密鑰是由來(lái)自每個(gè)子系統(tǒng)的密鑰發(fā)送并組合而成。這種撤銷(xiāo)方式可以使得屬性撤銷(xiāo)更加靈活、高效、適應(yīng)性。
對(duì)云存儲(chǔ)數(shù)據(jù)信息的基于屬性基加密,可以實(shí)現(xiàn)用戶對(duì)密文的細(xì)粒度的控制。研究者根據(jù)不同的應(yīng)用環(huán)境,選擇合適的加密解密屬性控制及撤銷(xiāo)方式,目的就是為了提高效率,節(jié)省資源和時(shí)間,使用戶在感覺(jué)不到繁瑣過(guò)程的同時(shí)對(duì)用戶的權(quán)益進(jìn)行了加固。當(dāng)然屬性撤銷(xiāo)至今已經(jīng)有了很多方面的突破,在未來(lái)的研究中還可以在目前直接撤銷(xiāo)模式下可撤銷(xiāo)ABE的基礎(chǔ)上,在不必限制沒(méi)有授權(quán)用戶實(shí)時(shí)在線等條件,也達(dá)到即時(shí)屬性撤銷(xiāo)?,F(xiàn)有的撤銷(xiāo)機(jī)制有些為了提高計(jì)算效率和交互性,加入第三方機(jī)構(gòu);有些撤銷(xiāo)機(jī)制是不能實(shí)現(xiàn)即時(shí)撤銷(xiāo);有些撤銷(xiāo)機(jī)制中屬性撤銷(xiāo)粒度需要細(xì)化,因此,未來(lái)需要設(shè)計(jì)出可以不僅滿足不同屬性集合的屬性撤銷(xiāo)要求,同時(shí)可以無(wú)需實(shí)時(shí)在線交互,支持即時(shí)撤銷(xiāo)且高效安全的ABE撤銷(xiāo)機(jī)制,是未來(lái)需要研究的工作。