?

一種支持屬性撤銷的密文策略屬性基加密方案

2021-07-26 11:55王靜宇周雪娟
計算機工程 2021年7期
關鍵詞:秘鑰密文密鑰

王靜宇,周雪娟

(內蒙古科技大學信息工程學院,內蒙古包頭014010)

0 概述

近年來,大數據技術發展迅速,對社會生活的影響與日俱增。但大數據技術在帶來諸多便利的同時,也暴露出諸多安全隱私問題,目前解決該問題的關鍵是安全高效的數據加/解密。對此,文獻[1]提出了屬性基加密(Attribute Based Encryption,ABE)方案,其中心思想是系統根據用戶的角色或身份,給其分配不同的一組屬性集從而保證用戶擁有不同的訪問權限。根據訪問策略所在位置的不同,屬性基加密方案可分為密鑰策略屬性基加密(KP-ABE)[2]和密文策略屬性基加密(CPABE)[3]。屬性的頻繁撤銷不僅會導致系統計算負擔過重,而且會引起數據安全問題。如何應對大數據訪問控制中屬性撤銷帶來的負面影響成為當下最受關注的研究熱點之一。

在CP-ABE 方案中,密文與特定的訪問策略相關聯,用戶私鑰則與一組屬性有關,即數據擁有者可以任意指定哪些數據可被哪些特定的用戶查看。比起KP-ABE 系統,CP-ABE 則更適合處理生活中大部分的數據安全問題。該方案最早由文獻[3]提出,但是缺少屬性撤銷功能。文獻[4-5]提出給每個屬性加上一個有效期,由授權中心定期更新屬性的最新版本,但該方案缺乏實時更新性,系統安全性較低。文獻[6]提出利用非完全可信的第三方服務器進行用戶屬性撤銷,但是要求第三方服務器時刻在線,因此撤銷不夠靈活且對系統要求過高。文獻[7]提出了一種支持屬性直接撤銷的方案,該方案無法抵抗合謀攻擊,安全性較低。文獻[8-10]提出的方案均為用戶級撤銷,缺乏細粒度的屬性級撤銷。文獻[11]提出一種使用單一授權機構管理所有用戶屬性、并為所有用戶頒發解密密文的密鑰,雖有第三方服務器幫助進行加解密操作,但是單一的授權中心容易降低系統安全性與運行效率。文獻[12]提出了首個多權限訪問控制系統,但是該系統的中央授權機構擁有的主密鑰能夠解密所有密文,削弱了系統的安全性,同時撤銷問題仍未得到解決。文獻[13-14]提出使用多個授權機構產生用戶秘鑰,解決了秘鑰托管和屬性撤銷問題,但仍然沒有解決系統計算量過大的缺陷。

針對上述問題,本文借鑒文獻[15]提出的屬性撤銷思想,在改進文獻[16]中算法的基礎上,提出一種靈活的屬性撤銷方案,采用安全兩方計算協議以及多個屬性授權中心進行細粒度屬性撤銷、密鑰托管以及用戶級撤銷,以提高系統安全性能及屬性撤銷效率。

1 預備知識

1.1 雙線性映射

定義1映射e:G0×G0→G1,其中G0和G1是階為q的乘法循環群。g為乘法循環群的生成元。滿足以下性質:

2)非退化性:?g∈G0,使e(g·g)≠1。

3)可計算性:存在有效的方法計算e(g·g)。

1.2 訪問結構

定義2設由系統中所有屬性組成的集合為P,且P={P1,P2,…,Pn},同時訪問結構意為包含在P中的非空集合。若A是單調的訪問結構,當?B,且B∈A,B?C時,則C∈A。

1.3 Shamir 秘密共享方案

定義3Shamir 提出采用拉格朗日多項式插值的門限秘密共享方案。該方案將秘密s無規律分成k份,其中任意不少于t(1≤t≤k)份可以通過拉格朗日插值重構出s,但任意少于t-1 份的分割數據都不能重構出s。同時,為每個分割出來的秘密分配節點(x1,y1),(x2,y2),…,(xk,yk),則其中t個節點可以確定出唯一的由秘密共享中心生成階為t-1 的多項式y=f(x)。

1)秘密分割

(1)秘密分享中心分發一組被分割的秘密s給每一位參與者qi(1≤i≤t),且隨機選擇k-1 個系數a1,a2,…,ak-1,定義隨機多項式f(x)=ak-1xk-1+ak-2xk-2+…+a1x+a0。

(2)隨機選擇t個非零且不重疊的元素x1,x2,…,xt,且公開xi,得出yi=f(xi)(1≤i≤t),因此有t個(xi,yi),但保留yi。

2)秘密重構

采用拉格朗日重構的思想,將t個參加者所擁有的多項式節點(xi,yi)(1≤i≤t)作為輸入,輸出多項式其中a0=s,即可重構秘密s。

1.4 安全兩方計算協議

定義4[17]在一個安全系數普遍較低的分布式網絡環境中,參與者A 與B 在協同計算后得到某函數p(x1,x2)的值,其中x1和x2分別是兩個參與者的秘值。最終參與者A 與B 均可根據協議得到自己預期的結果值,但是不知道除自身外的任何信息,亦不能根據中間信息推導出其他信息,該協議保證了參與者個人隱私以及系統的安全。

2 算法定義及安全模型

本文方案主要由5 類實體構成,分別為:數據擁有者(Data Owner,DO),云存儲服務器(Cloud Service Provider,CSP),密鑰生成中心(Key Generation Center,KGC),屬性授權中心(Attribute Authorization Center,AAC),數據使用者(Data User,DU)。

2.1 算法定義

本文算法由以下幾個主要函數構成:

1)Setup():KGC 利用安全參數初始化運算獲得系統的公鑰PK,私鑰SK。CSP 產生DU 的各種參數值。

2)Data Encrypt(PK,m,Τ):DO 使用公鑰PK、明文信息m,以及訪問控制策略Τ進行數據加密,生成密文CT 并將其發送給CSP。

3)Data KeyGen(PK,MK,?u,Uij):首先,多個AACi計算生成Uij,并將最后結果發給CSP,之后,CSP 與KGC 使用安全兩方計算協議計算后生成用戶私鑰SKu。

4)Data Decrypt(SKu,CT):合法用戶DU 使用自己私鑰SKu解密密文CT,當所擁有的一組屬性集?u∈Τ時,即可解出明文m。

5)Revocation():此階段進行用戶級撤銷和屬性級撤銷。刪除DU 的參數進行用戶級撤銷。更改屬性版本秘鑰以及用戶秘鑰進行屬性級撤銷。

2.2 安全性假設

下面給出支持撤銷的CP-ABE 方案在選擇明文攻擊(Indistinguishablity under Chosen Plaintext Attack,IND-CPA)下的安全模型,以及攻擊者A 與挑戰者B 之間的攻擊游戲流程。

準備階段:攻擊者A 向挑戰者B 挑戰訪問控制策略T*以及用戶撤銷列表Rx。

初始化:挑戰者B 運行Setup(),輸出主密鑰MK,公鑰PK,且發送PK 給攻擊者A,留存MK。

挑戰:攻擊者A 向挑戰者B 提交兩個等長的消息ma,mb。B 隨機選取P∈{a,b},并運行KeyGen(PK,MK,?u,Uij)算法,將得到的密文返回給攻擊者A。

階段2:同階段1,A 繼續向B 發送詢問報文。

猜測:A 猜測數值p*,若p*∈{a,b}且p*=p,則敵手贏。同時A 獲得游戲成功的優勢定義為:

若在某個概率多項時間內敵手贏得游戲的優勢可以被忽略,則稱本文方案滿足IND-CPA 安全。

3 方案概述

本文方案在CP-ABE 的基礎上,結合安全兩方計算協議與多屬性授權中心,解決用戶級撤銷及屬性級撤銷。方案流程如圖1所示。

圖1 支持屬性撤銷的CP-ABE 方案流程Fig.1 CP-ABE solution process that supports attribute revocation

方案具體步驟如下:

1)用戶秘鑰生成。各個屬性授權中心生成對應屬性的屬性版本秘鑰Uij,并將其交由CSP,CSP 與KGC 用各自的參數進行安全兩方計算,將生成的結果交由DU,DU 即可得到自身用戶秘鑰SKu。

2)屬性級撤銷。KGC 將隨機選取的重加密參數Φ發送給除DO 外的各個實體,以此來更新各自實體的相關參數。每個AACi更新和被撤銷屬性相關的屬性版本秘鑰Uij,CSP 更新和被撤銷屬性相關的密文CT,KGC 與CSP 進行安全兩方計算,更新與被撤銷屬性相關的用戶的秘鑰SKu。

3)用戶級撤銷。CSP 給每一位合法用戶DU 分配唯一身份值UIDi及唯一秘值rt。并將其存入用戶列表Rx中,若進行用戶級撤銷時,CSP 將用戶的身份值移出用戶列表,并刪除唯一秘值,該用戶將不能再訪問加密數據。

該方案包含的主要函數如下:

1)Setup()

H:{0,1}*→G1是一個哈希函數,用來將字符串屬性映射到G1的隨機元素上。CSP 隨機選擇,設h=gβ,則CSP 的公鑰pkc=h,私鑰為mkc=β。密鑰生成中心KGC 隨機選擇,則KGC 的公鑰為pkk=e(g,g)α,私鑰為mkk=gα。則系統公鑰PK={G1,g,h=gβ,e(g,g)α},主密鑰為MK={α,β}。

CSP 為每個用戶分配唯一身份值UIDi,并添加進用戶列表Rx中,根據其身份或者角色分配一組屬性集?u,以及唯一隨機秘值。KGC 為每個AACi分配唯一隨機值。

2)Data Encrypt(PK,m,T)

該算法由DO 操作,首先,使用訪問結構和訪問樹表示DO 制定的訪問控制策略,訪問結構中的屬性作為葉子節點,門限邏輯運算符作為中間節點,且樹的根節點為R,以此來構建訪問控制樹Τ。該算法采用自上而下的方式從根節點R開始為樹Τ中所有節點x(包括非葉子節點和葉子節點)產生一個階為dx的多項式qx,nx為非葉子節點閾值,且多項式的階dx和節點閾值nx之間的關系為dx=nx-1。隨機選取,設置根節點多項式為qR(0)=s,同時計算m·e(g,g)αs,C=hs。針對其它節點,設置多項式為qx(0)=qp(x)(index(x)),index(x)的值表示其父節點p(x)的第index(x)個左孩子節點。

在樹Τ中,設J 為所有和葉子節點相聯系的屬性的集合,計算每個葉子節點j∈J 所對應的和。密文CT 則為:

3)Data KeyGen(PK,MK,?u,Uij)

(1)屬性版本密鑰生成

該算法由AAC 運行。每個AACi管理若干個不同屬性,每個屬性僅由一個AACi管理。每個AACi給其所管理的每個屬性各隨機選取任意值故屬性版本密鑰為。并將其發送給CSP。

(2)用戶密鑰生成

該算法由CSP 和KGC 同時運行得出。CSP 將參數(rt,β)作為輸入,KGC 將參數α作為輸入,CSP與KGC 二者之間進行安全兩方計算協議[17],輸出x=(α+rt)β,將計算結果發送給KGC[18]。KGC 隨機選擇,將計算的結果發送給CSP。當CSP 接收到后,計算,之后將B發送給KGC。

KGC 在接收到B后,計算用戶的部分密鑰SKk=。CSP 將用戶的一組屬性集?u以及屬性版本密鑰作為輸入,輸出用戶部分私鑰:

用戶分別接收到來自KGC 和CSP 的部分密鑰后,合并生成用戶自己的用戶密鑰:

4)Data Decrypt(SKu,CT)

該算法由DU 執行,當用戶獲得加密數據后,采用遞歸的算法對數據進行解密。過程如下:

(1)若j為訪問控制樹T 的葉子節點,用戶的一組實體屬性集?u∈Τ,且?ui∈?u時,解密公式如下:

當?ui??u,則為⊥。

(2)若j為訪問控制樹Τ的非葉子節點,設為大小為kx的每個節點z的孩子節點集合,當Fz≠⊥,則進行如下遞歸計算:

當?u∈Τ,則調用訪問控制樹Τ的根節點R,并進行如下計算:

(3)當用戶屬性集?u∈Τ,即Τ(?u)=1,則可解密被加密的數據。

5)Revocation()

主要包含以下4 個階段:

(1)用戶級撤銷

當用戶整體從系統中撤銷時,CSP 將其唯一身份值uidi從用戶列表Rx中刪除,并刪除唯一秘密值rt。在該系統中,任意用戶均可下載密文,但是只有存在于用戶列表中的合法用戶才可獲得相關秘鑰,進一步解密密文。保證了系統的安全性。

(2)屬性級撤銷

KGC 隨機選取一個重加密參數Φ,并將其分配給每個AACi,CSP,以及和撤銷屬性相關的用戶DU。接收到重加密參數的實體更新其參數,使其保證參數的最新性。

每個AACi更新其所管理的對應的撤銷屬性的秘參則撤銷屬性更新后的版本密鑰為

(3)用戶密鑰更新

AACi更新相關的撤銷屬性的最新版本秘鑰,并將結果發送給CSP,隨之,CSP 與KGC 進行安全兩方計算得出用戶的最新秘鑰。最新版本的秘鑰為:

(4)密文更新

CSP 接收到KGC 的更新參數后,迅速更新密文的相關組件,確保密文的安全性。

4 安全性證明與性能分析

4.1 多授權模型安全性分析

本方案中多屬性授權中心可分為兩個模塊,即由多個屬性授權中心AACi聯合產生的屬性版本密鑰,以及云服務器和密鑰生成中心聯合生成的用戶密鑰。當撤銷某個用戶或者某個用戶的屬性時,任意屬性授權中心都無法獲得用戶的屬性版本密鑰,且用戶密鑰是由兩個實體通過安全兩方協議共同產生,雙方均無法獲取對方的部分密鑰,故無法解密密文。同理,當合法用戶加入到系統中時,屬性授權中心會根據用戶的一組屬性集生成最新的屬性版本密鑰,因此確保了數據的向前向后安全性。

4.2 抗合謀攻擊

證明:在本文的方案中,只有當DU 的?u∈T,才能計算出e(g,g)αs。當有若干個不同權限的用戶串謀攻擊,由云服務器分配給每個用戶一個唯一隨機秘值rt,則產生不同的DU 秘鑰部分組件,故合謀攻擊不能獲得用戶秘鑰。本方案可滿足抗合謀攻擊。

4.3 選擇明文攻擊

在隨機預言機模型下基于DBDH[19](判定雙線性Diffie-Hellman 問題)困難假設進行安全性證明:

一個概率多項式時間算法Q以優勢為ε求解DBDH 問題。

定理1假設DBDH 成立,則敵手就無法在多項式時間內求解DBDH 問題,其中可忽略優勢ε即可證明該方案的安全性。

準備階段:敵手A 選擇訪問控制樹Τ*及用戶撤銷列表。

初始化:B 運行Setup()算法。

2)對每個屬性?j,都有

挑戰:敵手A 向挑戰者B 提交兩個等長的消息ma,mb。B 隨機選取P∈{a,b},并運行KeyGen()算法。

階段2:同階段1,A 繼續向B 發送秘鑰詢問報文。

猜測:敵手A 輸出猜測p*∈{0,1}。

1)若p*=p,則z=e(g,g)abc,即DBDH 成立。表明敵手A 可獲得有效密文且優勢為Pr=[p*=p|z=e(g,g)abc]=1/2+ε。

2)若p*≠p,則表明敵手A 無法獲得有效的密文,z=e(g,g)θ,其優勢為:

綜上所述,若沒有敵手在多項式時間內選擇訪問控制樹Τ*擊敗該方案,則證明該方案有較高的安全性。

5 效率分析

5.1 功能實現分析比較

本文中提出的方案與其他方案在秘鑰托管、抗合謀、撤銷機制等方面作出分析比較。從表1 中可以得出結論:本文方案在系統安全等功能方面考慮得比較全面,基本問題得到解決。

表1 各方案功能實現分析比較Table 1 Analysis and comparison of function realization of each scheme

5.2 效率比較

當進行用戶級撤銷時,僅由CSP 將用戶唯一身份值UIDi從用戶列表Rx中刪除,并刪除唯一秘密值rt,故用戶級撤銷的計算復雜度為O(1)。當進行屬性級撤銷時,被撤銷的屬性需更新最新的版本秘鑰,故屬性級撤銷所需的計算復雜度為O(6n)。

本文方案中采用的安全兩方計算協議所需計算復雜度為O(5n),屬性版本秘鑰由各個屬性授權中心產生,故計算復雜度為O(n),故生成用戶秘鑰所需計算復雜度為O(6n)。

由此可以看出本文方案在解密花費以及撤銷花費中,將部分計算任務交由CSP 進行,極大地降低了系統計算復雜度。各方案效率的對比結果如表2所示。

表2 效率分析比較Table 2 Analysis and comparison of efficiency

在表2 中,te為指數運算所需的花費,tp為雙線性對運算所需的花費,p為在中元素的大小。

6 結束語

本文提出一種支持屬性撤銷的CP-ABE 方案,通過安全兩方計算協議,生成并更新用戶秘鑰,從而實現細粒度級的用戶級和屬性級撤銷,同時引進多個屬性授權中心,在撤銷某用戶或某用戶屬性時,任意屬性授權中心都無法獲得用戶的屬性版本密鑰。實驗結果表明,該方案能有效降低撤銷操作的計算復雜度,并增強了系統安全性。未來研究將繼續優化細粒度撤銷所需的計算開銷,以進一步降低系統的計算復雜度。

猜你喜歡
秘鑰密文密鑰
一種支持動態更新的可排名密文搜索方案
基于模糊數學的通信網絡密文信息差錯恢復
ETC秘鑰國產化升級改造方案設計與實現
密碼系統中密鑰的狀態與保護*
干細胞開啟未來大健康的“秘鑰” 專家與媒體面對面活動走進中源協和—山西省干細胞基因工程有限公司
TPM 2.0密鑰遷移協議研究
一種對稱密鑰的密鑰管理方法及系統
一種基于密文分析的密碼識別技術*
基于Unity 3D的產品秘鑰二維碼實現
云存儲中支持詞頻和用戶喜好的密文模糊檢索
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合