屬性加密技術及基於屬性的訪問控制技術

一、屬性加密技術

1.1基於身份的加密體制簡介

基於身份的加密體制可以看作一種特殊的公鑰加密,它有如下特點:系統中用戶的公鑰可以由任意的字符串組成。這些字符串可以是用戶在現實中的身份信息,如:身份證號碼、用戶姓名、電話號碼、Email地址等,因爲用戶的公鑰是通過用戶現實中的相關信息計算得到的,公鑰本質上就是用戶在系統中的身份信息,所以公鑰真實性問題和證書管理問題在基於身份加密的系統中就不再需要。基於身份加密體制的優勢在於:

(1)用戶的公鑰可以是描述用戶身份信息的字符串,也可以是通過這些字符串計算得到的相關信息。

(2)不需要存儲公鑰字典和處理公鑰證書。

(3)加密消息只需要知道解密者的身份信息就可以進行加密,而驗證簽名也只需要知道簽名者的身份就可以進行驗證。

正是因爲基於身份的加密系統具備以上優點,這使基於身份加密有關研究成爲當前公鑰密碼學的一個研究熱點。近年來研究者們對基於身份加密系統進行了較深入的研究,得到了很多研究成果。

1.2基於屬性的加密體制的研究背景和意義

Sahai和Waters兩位密碼學家爲了改善基於生物信息的身份加密系統的容錯性能,在2005年歐洲密碼年會上發表了《模糊基於身份加密方案》一文,並在這篇文章中首次提出了基於屬性加密(Attribute-Based Encryption  ABE)的概念。  在基於屬性加密的體制中用屬性集合表示用戶的身份,這是與基於身份加密(Identity-Based Encryption,IBE )根本的區別。在基於身份加密系統中,只能用唯一的標識符表示用戶的的身份。而在基於屬性加密系統中,通過屬性集合表示用戶的身份,其中的屬性集合由一個或多個屬性構成。從用戶身份的表達方式來看,基於屬性加密的屬性集合比基於身份加密的唯一標識符具有更強、更豐富的表達能力。

基於屬性加密可以看作是基於身份加密的擴展和延伸。基於屬性加密把基於身份加密中表示用戶身份的唯一標識,擴展成爲由多個屬性組成的屬性集合。從基於身份加密體制發展到基於屬性加密體制,這不僅是用戶身份的表達形式從唯一標識符擴展到多個屬性,還將訪問結構融入到屬性集合中,使公鑰密碼體制具備了細粒度訪問控制的能力(如:通過密文策略和密鑰策略來限制用戶對密文的訪問和解密能力)。

從唯一標識符擴展成屬性集合,不僅是用戶身份信息表示方式上的改變,而且屬性集合能夠非常方便地和訪問結構相結合,實現對密文和密鑰的訪問控制。屬性集合同時還可以方便地表示某些用戶組的身份(即:實現了一對多通信),這也是基於屬性加密方案所具備的優勢。

密文和密鑰中引入訪問結構,這是基於屬性加密體制的一大特徵,也是與基於身份加密體制本質區別之處。訪問結構嵌入到密鑰和密文中的好處在於:系統可以根據訪問結構生成密鑰策略或者密文策略,只有密文的屬性集合滿足了密鑰策略,或者用戶的屬性集合滿足了密文策略,用戶才能解密。這樣一方面限制用戶的解密能力,另一方面也保護了密文。在基於屬性加密系統中,密鑰生成中心(負責生成用戶的密鑰)由於用戶的身份信息通過屬性集合表示,而用戶組也具備一些相同屬性也可以用屬性集合表示。因此在基於屬性加密方案中屬性集合既可以表示單獨的用戶,也可以表示多個用戶組成的用戶組。密文和密鑰也是根據屬性集合生成的,相對應地密文的解密者和密鑰的接收者既可以是單獨的用戶也可以是用戶組。在基於屬性加密方案中,可以通過描述用戶身份信息的具體或概括,來靈活調整屬性集合是代表單獨用戶還是某個用戶組。

在Sahai和Waters方案中引入了祕密共享的門限訪問結構,如果一個用戶能夠解密一個密文,當且僅當該用戶的屬性集和密文的屬性集合共有屬性的數量達到門限要求。在基於屬性加密方案中加密密文需要在屬性集合參與下才能進行,參與加密的屬性集合所表示的身份信息就是解密者的身份,也是解密密文需要滿足的條件。在上述過程中,由於用戶的私鑰和密文都是根據各自屬性集合生成的,因此在基於屬性加密方案中,一方面密文是在屬性集合參與下生成的,這個屬性集合隱含地限定了解密者所要滿足的條件。另一方面,一個用戶私鑰也是根據屬性集合生成的,這個屬性集合也隱含地確定了用戶可以解密的範圍,如果密文是以這個屬性集合生成的,那麼用戶就可以解密文。

 

通過一個實例,簡單說明一下基於屬性的加密體制中的一些細節。假設系統中門限爲3的門限結構,因此只有用戶的屬性集合中至少有3個屬性與密文屬性集合相同,用戶才能解密。設a,b…h;表示系統中的屬性,若系統中有三個用戶分別爲:A(a,b,c,d,e)、B(b,c,e,f)、C(a,d,g)他們從認證中心獲取各自的私鑰。現有一個密文,其密義的屬性集合爲(b,c,d,f)。因爲系統的門限是3,這就要求解密用戶的屬性集合至少含其中三個或三個以上的屬性。從ABC三個用戶的屬性集合可以看出A和B滿足條件,他們的屬性集合滿足瞭解密條件,能夠解密密文。而用戶C屬性集合不滿足要求,因此不能解密。

通過上面的例子可以看出,基於屬性加密方案中加密和解密具有動態、靈活的特性,能夠實現對系統中用戶的解密能力和密文的保護方而的細粒度控制,因此屬性加密方案有着廣闊的應用前景。

 

1.3基於屬性加密的研究現狀

目前,基於屬性加密體制取得了很多具有應用價值的方案,這些方案可以按照保護策略的部署方式不同可以分成三類:

 

(1)基於屬性的密鑰策略加密方案

2006年,Goyal等人提出了基於屬性的密鑰策略加密方案。一般來說,基於屬性的密鑰策略加密系統中包含以下四個過程:

①系統初始化:

系統初始化只需要一個隱含的安全參數作爲輸入參數,不需要其它輸入參數。輸出系統公共參數PK和系統主密鑰MK 。

②消息的加密:

以消息M,系統的公共參數PK和一個屬性集合S爲輸入參數。輸出消息M加密後的密文E。

③密鑰的生成:

以一個訪問結構A,系統的公共參數PK和系統的主密鑰MK爲輸入的參數。生成一個解密密鑰D。

④密文的解密:

以密文E,解密密鑰D和系統的公共參數PK爲輸入參數,其中密文E是屬性集合S參與下生成的,D是訪問結構A的解密密鑰。如果S∈A,則解密並輸出明文M。

在基於屬性的密鑰策略加密的方案中,通過引入訪問樹結構,將密鑰策略表示成一個訪問樹,並且把訪問樹結構部署在密鑰中。密文仍然是在一個簡單的屬性集合參與下生成的,所以如果一個用戶能解密密文當且僅當該密文的屬性集合滿足用戶密鑰中的密鑰策略。通過訪問樹的引入,非常方便地實現了屬性之間的邏輯與和邏輯或操作,增強了密鑰策略的邏輯表達能力,更好地實現細粒度的訪問控制。

2007年,Ostrovsky等提出了一個可以實現邏輯非的基於屬性加密方案(屬性之間的邏輯關係可以表達邏輯非),豐富了保護策略的邏輯表達能力,完善了文獻不能表示邏輯非的空白。該方案中不但構成一個完整的邏輯表達系統,而且也將基於屬性加密方案中的訪問結構從單調的擴展成非單調的。

該方案中訪問結構的功能相當於一個線性祕密共享方案的訪問結構。另外該方案的安全性證明是在選擇屬性集合的攻擊模型和基於判定雙線性困難問題下完成的。

基於屬性的密鑰策略加密方案可以應用在服務器的審計日誌方面。服務器的審計日誌是電子取證分析中的一個重要環節。通過基於屬性的密鑰策略加密方案中的方法,可以使取證分析師只能提取與目標有關的日誌內容,從而避免了日誌中全部內容的暴露。基於屬性的密鑰策略加密方案的另一個用途就是有針對性的廣播加密,特別是在一些收費的電視節目中,用戶可以根據個人喜好制定接受的節目。

 

 

(2)基於屬性的密文策略加密方案

2007年,Bethencourt等首次提出了基於屬性的密文策略加密方案。在該方案中,用戶的私鑰仍然是根據用戶的屬性集合生成,密文策略表示成一個訪問樹並部署在密文中,這種部署方式和基於屬性的密鑰策略加密方案相反。當且僅當用戶的屬性集合滿足密文中密文策略時,用戶才能解密密文。

一般情況下,一個基於屬性的密文策略加密方案包括由以下四個過程

  • 系統初始化:以一個隱含的安全參數爲輸入,而不需要其它輸入參數,輸出系統公共參數PK和系統主密鑰MK。
  • 消息的加密:以加密消息M,系統的公共參數PK和訪問結構A爲算法的輸入參數,其中A是在全局屬性集合上構建的。該算法的輸出消息M用A加密後的密文CT。
  • 密鑰的生成:以一個屬性集合S,系統的公共參數PK和系統的主密鑰MK作爲算法的輸入參數。該算法輸出私鑰SK。
  • 密文的解密:以密文CT,系統的公共參數PK和解密密鑰SK作爲算法的輸入參數,其中密文CT包含訪問結構A,SK是S的解密密鑰。如果屬性集合S滿足訪問結構A,則解密密文。

根據以上描述,可以看出基於屬性的密文策略加密和廣播加密非常相似。該方案還支持密切代理機制,即:如果用戶A的訪問結構要包含用戶B的訪問結構,那麼A可以爲B生成私鑰。另外,該方案中通過cpabe程序包,對方案的性能和效率進行了實驗分析。但方案的缺陷在於:方案的安全性證明是在通用羣模型和隨機預言模型下完成的。

 

(3)基於屬性的雙策略加密方案

2009年,基於屬性的雙策略加密方案由Attrapapdung等首先提出,該方案是基於屬性的密鑰策略加密方案和基於屬性的密文策略加密方案的組合。即:方案中的加密消息同時具備兩種訪問控制策略,在密鑰和密文中同時部署兩種策略。密文的兩種訪問控制策略一個表示加密數據自身客觀性質的屬性,另一個表示對解密者需要滿足條件的主觀性質屬性。密鑰的兩種訪問策略一個表示用戶憑證的主觀屬性,另一個表示用戶解密能力的客觀屬性。只有當用戶的主觀屬性和客觀屬性滿足了密文的主觀屬性和客觀屬性時,用戶才能解密密文。

一般情況下,一個基於屬性的雙策略加密方案包含以下四個過程:

 

    ①系統初始化:以一個隱含的安全參數作爲輸入,而不需要其它輸入參數。輸出系統公共參數PK和系統主密鑰MK。

    ②消息的加密:以輸入消息M,系統的公共參數PK,一個主觀的訪問結構S和一個客觀的屬性集合。爲輸入參數。輸出密文CT。

    ③密鑰的生成:這是個隨機化算法,以系統的公共參數PK,系統的主密鑰MK,

一個訪問結構O和一個主觀的屬性集合爲輸入參數。輸出一個解密密鑰D。

④密文的解密:以系統的公共參數PK,解密密鑰D和與密鑰對應的訪問結構O和屬性集合,密文CT以及密文對應的訪問結構s和屬性集合作爲輸入參數。如果密鑰的屬性集合必滿足密文的訪問結構S,同時密文的屬性集合。滿足密鑰的訪問結構.,則解密密文輸出消息M。

    因爲基於屬性的雙策略加密方案可以看做是基於屬性的密鑰策略加密方案和基於屬性的密文策略加密方案的結合,所以基於屬性的雙策略加密方案可以根據實際需要轉換成單個策略的基於屬性加密方案(KP-ABE或CP-ABE )。另外該方案的安全性證明是基於判定雙線性Diffie-Hellman指數困難問題完成的。( Bilinear Diffie-Hellman Exponent  BDHE)。

 

(4)其它相關研究

    Pirretti等提出一種新的安全信息管理體系結構,該系統對基於屬性加密方案的實際應用做了專門的研究。該文通過基於屬性加密系統作爲核心組件,構建了一個安全的信息系統。同時還優化了基於屬性加密方案中加密算法和解密算法,明顯提高了算法的運行效率。另外,該文還實現了基於屬性加密的兩個重要應用。

二、基於屬性的訪問控制技術

2.1基於屬性的訪問控制介紹

基於屬性的加密(Attribute-Based Encryption, ABE),又稱爲屬性基加密,是公鑰加密和基於身份加密(Identity-Based Encryption, IBE)的一種擴展,由Sahai和Waters兩位密碼學家在2005年歐洲密碼年會上提出,他們爲了解決基於生物特徵的身份認證系統的容錯問題,基於雙線性對困難問題,提出了基於模糊身份的加密方案《Fuzzy identity based encryption》一文,在該文獻中,基於屬性加密的概念第一次被提出。在該方案中,用屬性集合描述用戶身份信息特徵,打破了以往的身份“完全匹配”關係,這也是它區別於基於身份加密的特徵之一。

一個基於屬性的加密機制一般包含四個實體:密鑰生成中心(權威Authority) ,加密者(數據所有者DataOwner, DO)、解密者(用戶User)和數據存儲服務器,具體如下圖所示。密鑰生成中心負責產生公共參數PK和主密鑰MK。當有用戶User發出請求時,爲其分配屬性,生成與權限索引相關的解密鑰SK。數據所有者DO根據密文索引A和自己要共享的數據Data的安全需要生成密文C,然後發送給數據存儲服務器。User想獲取某個被共享的數據時,向服務器發起請求,服務器爲User發送請求訪問的密文數據C。當用戶User滿足A的要求時,可以利用Authority分配的解密鑰SK和收到的密文C,得到授權並獲得Data。

 

在屬性加密體制中,訪問結構被引入到密文和密鑰中,密文和密鑰根據屬性集合生成,即用戶私鑰與屬性集關聯,密文與訪問結構關聯,或者用戶私鑰與訪問結構關聯,而密文與屬性集關聯,用戶的解密能力通過用戶屬性集與訪問結構之間的匹配關係確定,從而實現數據擁有者對密文和密鑰的訪問控制。數據擁有者無需要爲每一用戶分發屬性密鑰,只需要通過訪問結構進行權限管理,大幅度地降低了權限管理的複雜度,提供了更加靈活的訪問控制,從功能上實現了“一對多”的加密文件訪問控制,解決了這一應用瓶頸問題。由於用戶的身份信息表示爲屬性集合,由兩個或以上的用戶組成的用戶組也可以具備相同的屬性集,所以既可以用屬性集合表示單獨的用戶,也可以表示多個用戶組成的用戶組,因此可以通過對用戶身份信息的全方位描述,靈活調整屬性集合,讓其表示一個單獨的用戶還是一個用戶組,即單獨的用戶和用戶組都可以成爲屬性密鑰的接收者和對應密文的解密者,這也是基於屬性加密方案所具備的優勢。所以,基於屬性加密的屬性集合具有更強、更豐富表達能力。

在屬性加密機制中,不僅用戶權限的可描述性和加密策略的靈活性被極大地豐富了,加解密模式也被從以往的一對一模式擴展成了一對多模式,而且,它還具有下述四個卓越的特點:

(1)高效性,加解密計算花費和密文長度與系統中用戶的數量無關,只與相應屬性個數相關;

(2)動態性,用戶的解密能力僅取決於他的屬性集合是否滿足密文的訪問策略,而與他在密文生成之前或之後加入這個系統無關;

(3)靈活性,該類方案中的訪問策略支持複雜的訪問結構;

(4)隱私性,數據所有者在加密數據時無需獲悉解密者的身份信息。

綜合上述特點,基於屬性加密機制可以有效地實現細粒度的非交互的訪問控制。

 

2.2屬性加密方案的形式化定義和安全模型

2.2.1屬性加密方案的形式化定義

一個屬性加密方案包含以下四個基本算法:

Setup(K, U):該算法輸入安全參數K和系統屬性全集U,輸出公共參數Params和主密鑰MK。

KeyGen(MK,X):該算法輸入主密鑰MK和一個權限索引X,輸出一個密鑰skx。

Enc(Params, Y, M):該算法輸入公共參數Params,一個密文索引Y和一個要加密的消息M,輸出一個密文CTy。

Dec(Params, skX, C界):該算法輸入公共參數Params,密鑰skx和密文CTy,輸出解密結果M'。

如果一個屬性加密方案是正確的,當且僅當對任意用戶權限X和密文索引Y,且X滿足Y,則

            Dec(Params, KeyGen(MK, X), Enc(Params, Y,M))=M

其中,公共參數Params和主密鑰MK都是正確生成的。

在CP-ABE方案中,X表示用戶的屬性集合,密文索引Y表示一個訪問結構,X滿足Y當且僅當X是Y的授權集;在KP-ABE方案中則反過來了,即Y表示一個屬性集合,X表示一個訪問結構,y滿足X當且僅當Y是X的授權集。

2.2.2屬性加密方案的安全模型

在公鑰密碼方案中,根據要實現的安全目標不同,密碼體制通常被分爲四類:語義安全性(Semantic Security, SEM)、不可區分性(Indistinguishablity, IND)、不可展性(Non-malleable, NM)和明文可意識性(Plaintext-aware, PA)。當前公鑰密碼方案的證明一般都採用的形式化模型爲不可區分性的安全模型,屬性密碼學中的方案證明也在此基礎上進行。

基於屬性加密系統的安全性,一般由一個攻擊者和一個挑戰者之間的交互遊戲來刻畫。當且僅當任意多項式攻擊者的優勢都是可忽略的,則稱一個屬性加密方案是自適應安全的。但是,在實際證明中,由於在屬性加密方案中,其屬性集的空間要比基於身份的身份空間大很多,複雜性比較高,所以通常會考慮一種弱化了的安全模型,稱爲選擇模型。在選擇安全模型中,通常要求攻擊者必須提前選擇自己的攻擊目標,即挑戰權限索引X,在此模型下的安全則稱爲選擇安全。

Init:攻擊者選擇自己的攻擊目標,即挑戰權限索引X;

Setup:挑戰者運行屬性加密的Setup算法,將生成的公共參數發給攻擊者;

Phase 1:攻擊者對權限索引X進行私鑰詢問,

Challenge:攻擊者提交兩個等長的消息M0和M1。挑戰者進行隨機擲幣b,並根據密文索引Y加密Mb,然後把密文發送給攻擊者。

Phase 2:重複Phase 1中的步驟;

Guess:攻擊者輸出對b的猜測b'。

在上述遊戲中,如果不存在多項式時間的攻擊者以不可忽略的優勢攻破上述遊戲,則一個基於屬性加密方案在選擇模型下是安全的。

 

2.3訪問結構

在屬性密碼學中,訪問結構用於描述訪問控制策略的邏輯結構,佔有很重要的位置。訪問結構定義爲:

定義訪問結構):設P={P0,p1…pn}一個用戶集。集合A包含於2{p0,p1..,pn}是單調的,如果B, C:如果B∈A且B包含於C,則C∈A。一個訪問結構(單獨地,單調的訪問結構)是{P1,p2, ..., Pn}的一個非空子集A(單獨地,單調的訪問結構)。

屬性密碼系統中,一般採用一些訪問結構表示訪問策略,比如門限訪問結構、基於樹的訪問結構、基於正負屬性值的“與,門結構、基於多屬性值的“與”結構、支持通配符的基於多屬性值的“與’,門結構和線性訪問結構。基於門限的訪問結構實際表達的含義是:擁有不同屬性集的用戶可以通過不同的路徑到達該門限所在節點的路徑的數目;在基於樹的訪問結構中,樹的每一個非葉子節點由一個門限值和它的孩子節點來描述,而樹的每一個葉子節點都對應一個屬性;在基於正負屬性值的“與”門結構中,如果一個用戶擁有某個屬性,則表示爲正屬性,如果不用有某個屬性,則表示爲負屬性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章