属性加密技术及基于属性的ABE算法的访问控制技术介绍
生活随笔
收集整理的這篇文章主要介紹了
属性加密技术及基于属性的ABE算法的访问控制技术介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
屬性加密技術(shù)
基于身份的加密體制簡(jiǎn)介
- 基于身份的加密體制可以看作一種特殊的公鑰加密,它有如下特點(diǎn):系統(tǒng)中用戶的公鑰可以由任意的字符串組成。這些字符串可以是用戶在現(xiàn)實(shí)中的身份信息,如:身份證號(hào)碼、用戶姓名、電話號(hào)碼、Email地址等,因?yàn)橛脩舻墓€是通過用戶現(xiàn)實(shí)中的相關(guān)信息計(jì)算得到的,公鑰本質(zhì)上就是用戶在系統(tǒng)中的身份信息,所以公鑰真實(shí)性問題和證書管理問題在基于身份加密的系統(tǒng)中就不再需要。
基于身份加密體制的優(yōu)勢(shì)在于
- 用戶的公鑰可以是描述用戶身份信息的字符串,也可以是通過這些字符串計(jì)算得到的相關(guān)信息。
- 不需要存儲(chǔ)公鑰字典和處理公鑰證書。
- 加密消息只需要知道解密者的身份信息就可以進(jìn)行加密,而驗(yàn)證簽名也只需要知道簽名者的身份就可以進(jìn)行驗(yàn)證。
基于屬性的加密體制的研究背景和意義
- Sahai和Waters兩位密碼學(xué)家為了改善基于生物信息的身份加密系統(tǒng)的容錯(cuò)性能,在2005年歐洲密碼年會(huì)上發(fā)表了《模糊基于身份加密方案》一文,并在這篇文章中首次提出了基于屬性加密(Attribute-Based Encryption? ABE)的概念。? 在基于屬性加密的體制中用屬性集合表示用戶的身份,這是與基于身份加密(Identity-Based Encryption,IBE )根本的區(qū)別。在基于身份加密系統(tǒng)中,只能用唯一的標(biāo)識(shí)符表示用戶的的身份。而在基于屬性加密系統(tǒng)中,通過屬性集合表示用戶的身份,其中的屬性集合由一個(gè)或多個(gè)屬性構(gòu)成。從用戶身份的表達(dá)方式來看,基于屬性加密的屬性集合比基于身份加密的唯一標(biāo)識(shí)符具有更強(qiáng)、更豐富的表達(dá)能力。
- 基于屬性加密可以看作是基于身份加密的擴(kuò)展和延伸。基于屬性加密把基于身份加密中表示用戶身份的唯一標(biāo)識(shí),擴(kuò)展成為由多個(gè)屬性組成的屬性集合。從基于身份加密體制發(fā)展到基于屬性加密體制,這不僅是用戶身份的表達(dá)形式從唯一標(biāo)識(shí)符擴(kuò)展到多個(gè)屬性,還將訪問結(jié)構(gòu)融入到屬性集合中,使公鑰密碼體制具備了細(xì)粒度訪問控制的能力(如:通過密文策略和密鑰策略來限制用戶對(duì)密文的訪問和解密能力)。
- 從唯一標(biāo)識(shí)符擴(kuò)展成屬性集合,不僅是用戶身份信息表示方式上的改變,而且屬性集合能夠非常方便地和訪問結(jié)構(gòu)相結(jié)合,實(shí)現(xiàn)對(duì)密文和密鑰的訪問控制。屬性集合同時(shí)還可以方便地表示某些用戶組的身份(即:實(shí)現(xiàn)了一對(duì)多通信),這也是基于屬性加密方案所具備的優(yōu)勢(shì)。
- 密文和密鑰中引入訪問結(jié)構(gòu),這是基于屬性加密體制的一大特征,也是與基于身份加密體制本質(zhì)區(qū)別之處。訪問結(jié)構(gòu)嵌入到密鑰和密文中的好處在于:系統(tǒng)可以根據(jù)訪問結(jié)構(gòu)生成密鑰策略或者密文策略,只有密文的屬性集合滿足了密鑰策略,或者用戶的屬性集合滿足了密文策略,用戶才能解密。這樣一方面限制用戶的解密能力,另一方面也保護(hù)了密文。在基于屬性加密系統(tǒng)中,密鑰生成中心(負(fù)責(zé)生成用戶的密鑰)由于用戶的身份信息通過屬性集合表示,而用戶組也具備一些相同屬性也可以用屬性集合表示。因此在基于屬性加密方案中屬性集合既可以表示單獨(dú)的用戶,也可以表示多個(gè)用戶組成的用戶組。密文和密鑰也是根據(jù)屬性集合生成的,相對(duì)應(yīng)地密文的解密者和密鑰的接收者既可以是單獨(dú)的用戶也可以是用戶組。在基于屬性加密方案中,可以通過描述用戶身份信息的具體或概括,來靈活調(diào)整屬性集合是代表單獨(dú)用戶還是某個(gè)用戶組。
- 在Sahai和Waters方案中引入了秘密共享的門限訪問結(jié)構(gòu),如果一個(gè)用戶能夠解密一個(gè)密文,當(dāng)且僅當(dāng)該用戶的屬性集和密文的屬性集合共有屬性的數(shù)量達(dá)到門限要求。在基于屬性加密方案中加密密文需要在屬性集合參與下才能進(jìn)行,參與加密的屬性集合所表示的身份信息就是解密者的身份,也是解密密文需要滿足的條件。在上述過程中,由于用戶的私鑰和密文都是根據(jù)各自屬性集合生成的,因此在基于屬性加密方案中,一方面密文是在屬性集合參與下生成的,這個(gè)屬性集合隱含地限定了解密者所要滿足的條件。另一方面,一個(gè)用戶私鑰也是根據(jù)屬性集合生成的,這個(gè)屬性集合也隱含地確定了用戶可以解密的范圍,如果密文是以這個(gè)屬性集合生成的,那么用戶就可以解密文。
例子
- 假設(shè)系統(tǒng)中門限為3的門限結(jié)構(gòu),因此只有用戶的屬性集合中至少有3個(gè)屬性與密文屬性集合相同,用戶才能解密。設(shè)a,b…h(huán);表示系統(tǒng)中的屬性,若系統(tǒng)中有三個(gè)用戶分別為:A(a,b,c,d,e)、B(b,c,e,f)、C(a,d,g)他們從認(rèn)證中心獲取各自的私鑰。現(xiàn)有一個(gè)密文,其密義的屬性集合為(b,c,d,f)。因?yàn)橄到y(tǒng)的門限是3,這就要求解密用戶的屬性集合至少含其中三個(gè)或三個(gè)以上的屬性。從ABC三個(gè)用戶的屬性集合可以看出A和B滿足條件,他們的屬性集合滿足了解密條件,能夠解密密文。而用戶C屬性集合不滿足要求,因此不能解密。
- 通過上面的例子可以看出,基于屬性加密方案中加密和解密具有動(dòng)態(tài)、靈活的特性,能夠?qū)崿F(xiàn)對(duì)系統(tǒng)中用戶的解密能力和密文的保護(hù)方而的細(xì)粒度控制,因此屬性加密方案有著廣闊的應(yīng)用前景。
基于屬性加密的研究現(xiàn)狀
基于屬性的密鑰策略加密方案
過程:
①系統(tǒng)初始化:
- 系統(tǒng)初始化只需要一個(gè)隱含的安全參數(shù)作為輸入?yún)?shù),不需要其它輸入?yún)?shù)。輸出系統(tǒng)公共參數(shù)PK和系統(tǒng)主密鑰MK 。
②消息的加密:
- 以消息M,系統(tǒng)的公共參數(shù)PK和一個(gè)屬性集合S為輸入?yún)?shù)。輸出消息M加密后的密文E。
③密鑰的生成:
- 以一個(gè)訪問結(jié)構(gòu)A,系統(tǒng)的公共參數(shù)PK和系統(tǒng)的主密鑰MK為輸入的參數(shù)。生成一個(gè)解密密鑰D。
④密文的解密:
- 以密文E,解密密鑰D和系統(tǒng)的公共參數(shù)PK為輸入?yún)?shù),其中密文E是屬性集合S參與下生成的,D是訪問結(jié)構(gòu)A的解密密鑰。如果S∈A,則解密并輸出明文M。
現(xiàn)狀
- 在基于屬性的密鑰策略加密的方案中,通過引入訪問樹結(jié)構(gòu),將密鑰策略表示成一個(gè)訪問樹,并且把訪問樹結(jié)構(gòu)部署在密鑰中。密文仍然是在一個(gè)簡(jiǎn)單的屬性集合參與下生成的,所以如果一個(gè)用戶能解密密文當(dāng)且僅當(dāng)該密文的屬性集合滿足用戶密鑰中的密鑰策略。通過訪問樹的引入,非常方便地實(shí)現(xiàn)了屬性之間的邏輯與和邏輯或操作,增強(qiáng)了密鑰策略的邏輯表達(dá)能力,更好地實(shí)現(xiàn)細(xì)粒度的訪問控制。
- 2007年,Ostrovsky等提出了一個(gè)可以實(shí)現(xiàn)邏輯非的基于屬性加密方案(屬性之間的邏輯關(guān)系可以表達(dá)邏輯非),豐富了保護(hù)策略的邏輯表達(dá)能力,完善了文獻(xiàn)不能表示邏輯非的空白。該方案中不但構(gòu)成一個(gè)完整的邏輯表達(dá)系統(tǒng),而且也將基于屬性加密方案中的訪問結(jié)構(gòu)從單調(diào)的擴(kuò)展成非單調(diào)的。
- 該方案中訪問結(jié)構(gòu)的功能相當(dāng)于一個(gè)線性秘密共享方案的訪問結(jié)構(gòu)。另外該方案的安全性證明是在選擇屬性集合的攻擊模型和基于判定雙線性困難問題下完成的。
- 基于屬性的密鑰策略加密方案可以應(yīng)用在服務(wù)器的審計(jì)日志方面。服務(wù)器的審計(jì)日志是電子取證分析中的一個(gè)重要環(huán)節(jié)。通過基于屬性的密鑰策略加密方案中的方法,可以使取證分析師只能提取與目標(biāo)有關(guān)的日志內(nèi)容,從而避免了日志中全部?jī)?nèi)容的暴露。基于屬性的密鑰策略加密方案的另一個(gè)用途就是有針對(duì)性的廣播加密,特別是在一些收費(fèi)的電視節(jié)目中,用戶可以根據(jù)個(gè)人喜好制定接受的節(jié)目。
基于屬性的密文策略加密方案
- 2007年,Bethencourt等首次提出了基于屬性的密文策略加密方案。在該方案中,用戶的私鑰仍然是根據(jù)用戶的屬性集合生成,密文策略表示成一個(gè)訪問樹并部署在密文中,這種部署方式和基于屬性的密鑰策略加密方案相反。當(dāng)且僅當(dāng)用戶的屬性集合滿足密文中密文策略時(shí),用戶才能解密密文。
過程
- 系統(tǒng)初始化:以一個(gè)隱含的安全參數(shù)為輸入,而不需要其它輸入?yún)?shù),輸出系統(tǒng)公共參數(shù)PK和系統(tǒng)主密鑰MK。
- 消息的加密:以加密消息M,系統(tǒng)的公共參數(shù)PK和訪問結(jié)構(gòu)A為算法的輸入?yún)?shù),其中A是在全局屬性集合上構(gòu)建的。該算法的輸出消息M用A加密后的密文CT。
- 密鑰的生成:以一個(gè)屬性集合S,系統(tǒng)的公共參數(shù)PK和系統(tǒng)的主密鑰MK作為算法的輸入?yún)?shù)。該算法輸出私鑰SK。
- 密文的解密:以密文CT,系統(tǒng)的公共參數(shù)PK和解密密鑰SK作為算法的輸入?yún)?shù),其中密文CT包含訪問結(jié)構(gòu)A,SK是S的解密密鑰。如果屬性集合S滿足訪問結(jié)構(gòu)A,則解密密文。
現(xiàn)狀
- 根據(jù)以上描述,可以看出基于屬性的密文策略加密和廣播加密非常相似。該方案還支持密切代理機(jī)制,即:如果用戶A的訪問結(jié)構(gòu)要包含用戶B的訪問結(jié)構(gòu),那么A可以為B生成私鑰。另外,該方案中通過cp-abe程序包,對(duì)方案的性能和效率進(jìn)行了實(shí)驗(yàn)分析。但方案的缺陷在于:方案的安全性證明是在通用群模型和隨機(jī)預(yù)言模型下完成的。
基于屬性的雙策略加密方案
- 2009年,基于屬性的雙策略加密方案由Attrapapdung等首先提出,該方案是基于屬性的密鑰策略加密方案和基于屬性的密文策略加密方案的組合。即:方案中的加密消息同時(shí)具備兩種訪問控制策略,在密鑰和密文中同時(shí)部署兩種策略。密文的兩種訪問控制策略一個(gè)表示加密數(shù)據(jù)自身客觀性質(zhì)的屬性,另一個(gè)表示對(duì)解密者需要滿足條件的主觀性質(zhì)屬性。密鑰的兩種訪問策略一個(gè)表示用戶憑證的主觀屬性,另一個(gè)表示用戶解密能力的客觀屬性。只有當(dāng)用戶的主觀屬性和客觀屬性滿足了密文的主觀屬性和客觀屬性時(shí),用戶才能解密密文。
過程:
- 系統(tǒng)初始化:以一個(gè)隱含的安全參數(shù)作為輸入,而不需要其它輸入?yún)?shù)。輸出系統(tǒng)公共參數(shù)PK和系統(tǒng)主密鑰MK。
- 消息的加密:以輸入消息M,系統(tǒng)的公共參數(shù)PK,一個(gè)主觀的訪問結(jié)構(gòu)S和一個(gè)客觀的屬性集合。為輸入?yún)?shù)。輸出密文CT。
- 密鑰的生成:這是個(gè)隨機(jī)化算法,以系統(tǒng)的公共參數(shù)PK,系統(tǒng)的主密鑰MK,一個(gè)訪問結(jié)構(gòu)O和一個(gè)主觀的屬性集合為輸入?yún)?shù)。輸出一個(gè)解密密鑰D。
- 密文的解密:以系統(tǒng)的公共參數(shù)PK,解密密鑰D和與密鑰對(duì)應(yīng)的訪問結(jié)構(gòu)O和屬性集合,密文CT以及密文對(duì)應(yīng)的訪問結(jié)構(gòu)s和屬性集合作為輸入?yún)?shù)。如果密鑰的屬性集合必滿足密文的訪問結(jié)構(gòu)S,同時(shí)密文的屬性集合。滿足密鑰的訪問結(jié)構(gòu),則解密密文輸出消息M。
現(xiàn)狀
- 因?yàn)榛趯傩缘碾p策略加密方案可以看做是基于屬性的密鑰策略加密方案和基于屬性的密文策略加密方案的結(jié)合,所以基于屬性的雙策略加密方案可以根據(jù)實(shí)際需要轉(zhuǎn)換成單個(gè)策略的基于屬性加密方案(KP-ABE或CP-ABE )。另外該方案的安全性證明是基于判定雙線性Diffie-Hellman指數(shù)困難問題完成的。( Bilinear Diffie-Hellman Exponent? BDHE)。
其它相關(guān)研究
- ??? Pirretti等提出一種新的安全信息管理體系結(jié)構(gòu),該系統(tǒng)對(duì)基于屬性加密方案的實(shí)際應(yīng)用做了專門的研究。該文通過基于屬性加密系統(tǒng)作為核心組件,構(gòu)建了一個(gè)安全的信息系統(tǒng)。同時(shí)還優(yōu)化了基于屬性加密方案中加密算法和解密算法,明顯提高了算法的運(yùn)行效率。另外,該文還實(shí)現(xiàn)了基于屬性加密的兩個(gè)重要應(yīng)用。
基于屬性的訪問控制技術(shù)
基于屬性的訪問控制介紹
- 基于屬性的加密(Attribute-Based Encryption, ABE),又稱為屬性基加密,是公鑰加密和基于身份加密(Identity-Based Encryption, IBE)的一種擴(kuò)展,由Sahai和Waters兩位密碼學(xué)家在2005年歐洲密碼年會(huì)上提出,他們?yōu)榱私鉀Q基于生物特征的身份認(rèn)證系統(tǒng)的容錯(cuò)問題,基于雙線性對(duì)困難問題,提出了基于模糊身份的加密方案《Fuzzy identity based encryption》一文,在該文獻(xiàn)中,基于屬性加密的概念第一次被提出。在該方案中,用屬性集合描述用戶身份信息特征,打破了以往的身份“完全匹配”關(guān)系,這也是它區(qū)別于基于身份加密的特征之一。
- 一個(gè)基于屬性的加密機(jī)制一般包含四個(gè)實(shí)體:密鑰生成中心(權(quán)威Authority) ,加密者(數(shù)據(jù)所有者DataOwner, DO)、解密者(用戶User)和數(shù)據(jù)存儲(chǔ)服務(wù)器,具體如下圖所示。密鑰生成中心負(fù)責(zé)產(chǎn)生公共參數(shù)PK和主密鑰MK。當(dāng)有用戶User發(fā)出請(qǐng)求時(shí),為其分配屬性,生成與權(quán)限索引相關(guān)的解密鑰SK。數(shù)據(jù)所有者DO根據(jù)密文索引A和自己要共享的數(shù)據(jù)Data的安全需要生成密文C,然后發(fā)送給數(shù)據(jù)存儲(chǔ)服務(wù)器。User想獲取某個(gè)被共享的數(shù)據(jù)時(shí),向服務(wù)器發(fā)起請(qǐng)求,服務(wù)器為User發(fā)送請(qǐng)求訪問的密文數(shù)據(jù)C。當(dāng)用戶User滿足A的要求時(shí),可以利用Authority分配的解密鑰SK和收到的密文C,得到授權(quán)并獲得Data。
?
- 在屬性加密體制中,訪問結(jié)構(gòu)被引入到密文和密鑰中,密文和密鑰根據(jù)屬性集合生成,即用戶私鑰與屬性集關(guān)聯(lián),密文與訪問結(jié)構(gòu)關(guān)聯(lián),或者用戶私鑰與訪問結(jié)構(gòu)關(guān)聯(lián),而密文與屬性集關(guān)聯(lián),用戶的解密能力通過用戶屬性集與訪問結(jié)構(gòu)之間的匹配關(guān)系確定,從而實(shí)現(xiàn)數(shù)據(jù)擁有者對(duì)密文和密鑰的訪問控制。數(shù)據(jù)擁有者無需要為每一用戶分發(fā)屬性密鑰,只需要通過訪問結(jié)構(gòu)進(jìn)行權(quán)限管理,大幅度地降低了權(quán)限管理的復(fù)雜度,提供了更加靈活的訪問控制,從功能上實(shí)現(xiàn)了“一對(duì)多”的加密文件訪問控制,解決了這一應(yīng)用瓶頸問題。由于用戶的身份信息表示為屬性集合,由兩個(gè)或以上的用戶組成的用戶組也可以具備相同的屬性集,所以既可以用屬性集合表示單獨(dú)的用戶,也可以表示多個(gè)用戶組成的用戶組,因此可以通過對(duì)用戶身份信息的全方位描述,靈活調(diào)整屬性集合,讓其表示一個(gè)單獨(dú)的用戶還是一個(gè)用戶組,即單獨(dú)的用戶和用戶組都可以成為屬性密鑰的接收者和對(duì)應(yīng)密文的解密者,這也是基于屬性加密方案所具備的優(yōu)勢(shì)。所以,基于屬性加密的屬性集合具有更強(qiáng)、更豐富表達(dá)能力。
- 在屬性加密機(jī)制中,不僅用戶權(quán)限的可描述性和加密策略的靈活性被極大地豐富了,加解密模式也被從以往的一對(duì)一模式擴(kuò)展成了一對(duì)多模式,而且,它還具有下述四個(gè)卓越的特點(diǎn):
- 高效性,加解密計(jì)算花費(fèi)和密文長(zhǎng)度與系統(tǒng)中用戶的數(shù)量無關(guān),只與相應(yīng)屬性個(gè)數(shù)相關(guān);
- 動(dòng)態(tài)性,用戶的解密能力僅取決于他的屬性集合是否滿足密文的訪問策略,而與他在密文生成之前或之后加入這個(gè)系統(tǒng)無關(guān);
- 靈活性,該類方案中的訪問策略支持復(fù)雜的訪問結(jié)構(gòu);
- 隱私性,數(shù)據(jù)所有者在加密數(shù)據(jù)時(shí)無需獲悉解密者的身份信息。
屬性加密方案的形式化定義和安全模型
屬性加密方案的形式化定義
一個(gè)屬性加密方案包含以下四個(gè)基本算法:
- Setup(K, U):該算法輸入安全參數(shù)K和系統(tǒng)屬性全集U,輸出公共參數(shù)Params和主密鑰MK。
- KeyGen(MK,X):該算法輸入主密鑰MK和一個(gè)權(quán)限索引X,輸出一個(gè)密鑰skx。
- Enc(Params, Y, M):該算法輸入公共參數(shù)Params,一個(gè)密文索引Y和一個(gè)要加密的消息M,輸出一個(gè)密文CTy。
- Dec(Params, skX, C界):該算法輸入公共參數(shù)Params,密鑰skx和密文CTy,輸出解密結(jié)果M'。
如果一個(gè)屬性加密方案是正確的,當(dāng)且僅當(dāng)對(duì)任意用戶權(quán)限X和密文索引Y,且X滿足Y,則
- Dec(Params, KeyGen(MK, X), Enc(Params, Y,M))=M
- 其中,公共參數(shù)Params和主密鑰MK都是正確生成的。
- 在CP-ABE方案中,X表示用戶的屬性集合,密文索引Y表示一個(gè)訪問結(jié)構(gòu),X滿足Y當(dāng)且僅當(dāng)X是Y的授權(quán)集;在KP-ABE方案中則反過來了,即Y表示一個(gè)屬性集合,X表示一個(gè)訪問結(jié)構(gòu),y滿足X當(dāng)且僅當(dāng)Y是X的授權(quán)集。
屬性加密方案的安全模型
- 在公鑰密碼方案中,根據(jù)要實(shí)現(xiàn)的安全目標(biāo)不同,密碼體制通常被分為四類:語義安全性(Semantic Security, SEM)、不可區(qū)分性(Indistinguishablity, IND)、不可展性(Non-malleable, NM)和明文可意識(shí)性(Plaintext-aware, PA)。當(dāng)前公鑰密碼方案的證明一般都采用的形式化模型為不可區(qū)分性的安全模型,屬性密碼學(xué)中的方案證明也在此基礎(chǔ)上進(jìn)行。
- 基于屬性加密系統(tǒng)的安全性,一般由一個(gè)攻擊者和一個(gè)挑戰(zhàn)者之間的交互游戲來刻畫。當(dāng)且僅當(dāng)任意多項(xiàng)式攻擊者的優(yōu)勢(shì)都是可忽略的,則稱一個(gè)屬性加密方案是自適應(yīng)安全的。但是,在實(shí)際證明中,由于在屬性加密方案中,其屬性集的空間要比基于身份的身份空間大很多,復(fù)雜性比較高,所以通常會(huì)考慮一種弱化了的安全模型,稱為選擇模型。在選擇安全模型中,通常要求攻擊者必須提前選擇自己的攻擊目標(biāo),即挑戰(zhàn)權(quán)限索引X,在此模型下的安全則稱為選擇安全。
- Init:攻擊者選擇自己的攻擊目標(biāo),即挑戰(zhàn)權(quán)限索引X;
- Setup:挑戰(zhàn)者運(yùn)行屬性加密的Setup算法,將生成的公共參數(shù)發(fā)給攻擊者;
- Phase 1:攻擊者對(duì)權(quán)限索引X進(jìn)行私鑰詢問,
- Challenge:攻擊者提交兩個(gè)等長(zhǎng)的消息M0和M1。挑戰(zhàn)者進(jìn)行隨機(jī)擲幣b,并根據(jù)密文索引Y加密Mb,然后把密文發(fā)送給攻擊者。
- Phase 2:重復(fù)Phase 1中的步驟;
- Guess:攻擊者輸出對(duì)b的猜測(cè)b'。
- 在上述游戲中,如果不存在多項(xiàng)式時(shí)間的攻擊者以不可忽略的優(yōu)勢(shì)攻破上述游戲,則一個(gè)基于屬性加密方案在選擇模型下是安全的。
訪問結(jié)構(gòu)
- 在屬性密碼學(xué)中,訪問結(jié)構(gòu)用于描述訪問控制策略的邏輯結(jié)構(gòu),占有很重要的位置。訪問結(jié)構(gòu)定義為:
- 定義訪問結(jié)構(gòu)):設(shè)P={P0,p1…pn}一個(gè)用戶集。集合A包含于2{p0,p1..,pn}是單調(diào)的,如果B, C:如果B∈A且B包含于C,則C∈A。一個(gè)訪問結(jié)構(gòu)(單獨(dú)地,單調(diào)的訪問結(jié)構(gòu))是{P1,p2, ..., Pn}的一個(gè)非空子集A(單獨(dú)地,單調(diào)的訪問結(jié)構(gòu))。
- 屬性密碼系統(tǒng)中,一般采用一些訪問結(jié)構(gòu)表示訪問策略,比如門限訪問結(jié)構(gòu)、基于樹的訪問結(jié)構(gòu)、基于正負(fù)屬性值的“與,門結(jié)構(gòu)、基于多屬性值的“與”結(jié)構(gòu)、支持通配符的基于多屬性值的“與’,門結(jié)構(gòu)和線性訪問結(jié)構(gòu)。基于門限的訪問結(jié)構(gòu)實(shí)際表達(dá)的含義是:擁有不同屬性集的用戶可以通過不同的路徑到達(dá)該門限所在節(jié)點(diǎn)的路徑的數(shù)目;在基于樹的訪問結(jié)構(gòu)中,樹的每一個(gè)非葉子節(jié)點(diǎn)由一個(gè)門限值和它的孩子節(jié)點(diǎn)來描述,而樹的每一個(gè)葉子節(jié)點(diǎn)都對(duì)應(yīng)一個(gè)屬性;在基于正負(fù)屬性值的“與”門結(jié)構(gòu)中,如果一個(gè)用戶擁有某個(gè)屬性,則表示為正屬性,如果不用有某個(gè)屬性,則表示為負(fù)屬性。
訪問樹的構(gòu)造
- 在CP-ABE方案中,訪問樹用于隱藏源數(shù)據(jù)的加密密鑰,其形狀結(jié)構(gòu)如其名一樣,是一棵樹。其葉子節(jié)點(diǎn)為數(shù)據(jù)所有者設(shè)定的屬性和屬性值以及父節(jié)點(diǎn)傳于此節(jié)點(diǎn)的秘密值,并對(duì)其加密處理,只有數(shù)據(jù)訪問者擁有此屬性方可解密出此節(jié)點(diǎn)的秘密值;非葉子節(jié)點(diǎn)為門限節(jié)點(diǎn),數(shù)據(jù)訪問者需滿足此門限最低值方可解密此節(jié)點(diǎn)秘密值,例如門限為3/5,此節(jié)點(diǎn)有5個(gè)子節(jié)點(diǎn),數(shù)據(jù)訪問者需至少滿足3個(gè)子節(jié)點(diǎn)才能解密出秘密值。
例子
- 如下圖所構(gòu)造的訪問樹,能解密此訪問樹加密的源數(shù)據(jù),數(shù)據(jù)訪問者需滿足的屬性是:第一種:(“計(jì)算機(jī)學(xué)院” 且 “碩士” 且 “研二”)和 “教師”(此屬性結(jié)合可能不存在,因?yàn)榻處熀脱卸淮嬖谇谊P(guān)系) ,第二種:“教師” 和(“網(wǎng)絡(luò)實(shí)驗(yàn)室” 或 “云實(shí)驗(yàn)室”),第三者:(“計(jì)算機(jī)學(xué)院” 且 “碩士” 且 “研二”)和(“網(wǎng)絡(luò)實(shí)驗(yàn)室” 或 “云實(shí)驗(yàn)室”);否則無法訪問。
如何構(gòu)造這樣的一棵訪問樹
- 從根節(jié)點(diǎn)開始,其門限值為2,孩子節(jié)點(diǎn)有3個(gè),隨機(jī)生成一個(gè)多項(xiàng)式,其最高次數(shù)為門限值少1,故根節(jié)點(diǎn)的最高次數(shù)為1,然后將常數(shù)項(xiàng)設(shè)置為秘密數(shù)(秘密數(shù)為需要秘密保存的數(shù));如此根節(jié)點(diǎn)隨機(jī)的多項(xiàng)式為f(x)=5+3x,秘密數(shù)為5。此外,將根節(jié)點(diǎn)的孩子節(jié)點(diǎn)從左至右依次標(biāo)記為1,2,3,.....,將節(jié)點(diǎn)標(biāo)記值代入f(x)函數(shù)中,所得值(即生成新的秘密值)傳給該標(biāo)記的孩子節(jié)點(diǎn)秘密保存;故“3/3”節(jié)點(diǎn)(左邊第一個(gè)節(jié)點(diǎn))標(biāo)記為1,傳給“3/3”節(jié)點(diǎn)的秘密值f(1)=5+3*1=8,中間“教師”節(jié)點(diǎn)(中間節(jié)點(diǎn))標(biāo)記為2,傳給“教師”節(jié)點(diǎn)的秘密值f(2)=5+3*2=11,“1/2”節(jié)點(diǎn)(右邊節(jié)點(diǎn))標(biāo)記為3,傳給“1/2”節(jié)點(diǎn)的秘密值為f(3)=5+3*3=14。
- ?“3/3”節(jié)點(diǎn)和“1/2”節(jié)點(diǎn)在接收到父節(jié)點(diǎn)傳來的值后,按照上述方式生成隨機(jī)多項(xiàng)式,將常數(shù)項(xiàng)設(shè)置為父節(jié)點(diǎn)傳來的值,此外也按照上述方式生成新的秘密值并將它傳給子節(jié)點(diǎn),數(shù)據(jù)如圖所示(對(duì)于非葉子節(jié)點(diǎn),都按照此方式進(jìn)行)。對(duì)于葉子節(jié)點(diǎn),在接受到父節(jié)點(diǎn)的秘密值后,用此葉子節(jié)點(diǎn)的屬性對(duì)秘密值進(jìn)行加密處理。
- 至此,訪問樹已構(gòu)造完成!
從訪問樹中解密出訪問樹的秘密數(shù)
- 數(shù)據(jù)訪問者需滿足訪問樹方可解密出訪問樹的秘密值,對(duì)于上述訪問樹,數(shù)據(jù)訪問者需滿足以下屬性集中的一個(gè):(計(jì)算機(jī)學(xué)院、碩士、研二、教師(此屬性結(jié)合可能不存在,因?yàn)榻處熀脱卸淮嬖谇谊P(guān)系))、(計(jì)算機(jī)學(xué)院、碩士、研二、網(wǎng)絡(luò)實(shí)驗(yàn)室)、(計(jì)算機(jī)學(xué)院、碩士、研二、云實(shí)驗(yàn)室)、(教師、網(wǎng)絡(luò)實(shí)驗(yàn)室)、(教師、云實(shí)驗(yàn)室)。若上述屬性集中某一個(gè)或多個(gè)(至少一個(gè))為數(shù)據(jù)訪問者屬性集的子集,則能解密出秘密值,下面開始解密處理。
- 對(duì)于葉子節(jié)點(diǎn),在數(shù)據(jù)訪問者屬性集中尋找出和此節(jié)點(diǎn)屬性與屬性值一致的屬性,用找出的屬性解密出此節(jié)點(diǎn)的秘密值(即公式1),當(dāng)然不能完全解密出,他是秘密值和加密時(shí)對(duì)此屬性設(shè)置的加密值的乘積。
- 解密出葉子節(jié)點(diǎn)后,開始解密其父節(jié)點(diǎn)(非葉子節(jié)點(diǎn)),在解密出葉子節(jié)點(diǎn)后,即可得到多對(duì)值;如在上述訪問樹的“3/3”節(jié)點(diǎn),其孩子節(jié)點(diǎn)解密出三個(gè)值19,44,83(推理過程忽略隨機(jī)數(shù)),在生成這三個(gè)數(shù)時(shí),f(1)=19,f(2)=44,f(3)=83,其中f(x)=8+4x+7x^2(解密時(shí)并不知道此多項(xiàng)式,只知道后面的三個(gè)點(diǎn)),因此在f(x)上有三個(gè)點(diǎn)是(1,19),(2,44),(3,83);因?yàn)榇斯?jié)點(diǎn)存儲(chǔ)的秘密值是多項(xiàng)式的常數(shù)項(xiàng),即f(0)=秘密值,故我們需要根據(jù)這三個(gè)點(diǎn)得到0所對(duì)應(yīng)的值是多少,根據(jù)拉格朗日公式就能求出0所對(duì)應(yīng)的值,即解密出秘密值(即公式2);對(duì)于非葉子節(jié)點(diǎn)均可按照上述方式解密出秘密值,在根節(jié)點(diǎn)處解密出整個(gè)樹所隱藏的秘密值(是秘密值和加密時(shí)對(duì)此屬性設(shè)置的加密值的乘積,所有節(jié)點(diǎn)解密出的秘密都存在一個(gè)隨機(jī)數(shù),解密出的值都是隨機(jī)數(shù)和秘密值的乘積,只是講述過程中為了方便忽略了隨機(jī)數(shù),最后根節(jié)點(diǎn)解密出的隨機(jī)數(shù)在最后的解密過程中會(huì)抵消掉(公式3))。
- 另外需要說明的是“3/3”節(jié)點(diǎn)是一個(gè)3個(gè)孩子節(jié)點(diǎn)、門限值為3的節(jié)點(diǎn),相當(dāng)于且關(guān)系,數(shù)據(jù)訪問者需解密出所有的孩子節(jié)點(diǎn)方可用拉格朗日公式解密出常數(shù)項(xiàng)(即秘密值);“1/2”節(jié)點(diǎn)是一個(gè)2個(gè)孩子節(jié)點(diǎn)、門限值為1的節(jié)點(diǎn),故為或關(guān)系,數(shù)據(jù)訪問者只滿足其中一個(gè)孩子節(jié)點(diǎn)即可解密出秘密值(秘密值就是孩子節(jié)點(diǎn)解密出的秘密值,因?yàn)楦鶕?jù)隨機(jī)多項(xiàng)式生成規(guī)則,多項(xiàng)式的最高次數(shù)為門限值少1,門限值為1,故最高次數(shù)為0,即常數(shù)項(xiàng));若如“2/3”這樣的節(jié)點(diǎn),既非且關(guān)系,也非或關(guān)系,3個(gè)孩子節(jié)點(diǎn),門限值為2,若需解密出此節(jié)點(diǎn)的秘密值,數(shù)據(jù)訪問者需解密出三個(gè)孩子節(jié)點(diǎn)中的兩個(gè)節(jié)點(diǎn)即可解密出孩子節(jié)點(diǎn)。
參考鏈接
- 屬性加密技術(shù)及基于屬性的訪問控制技術(shù)
- 線性秘密共享方案構(gòu)造與解密
- 密文策略基于屬性加密(CP-ABE)訪問樹構(gòu)造與解密
- 一種基于屬性加密技術(shù)(ABE)的輕量級(jí)數(shù)據(jù)共享方案
總結(jié)
以上是生活随笔為你收集整理的属性加密技术及基于属性的ABE算法的访问控制技术介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Vecctor容器浅析
- 下一篇: Docker容器基本使用