馬佳佳,張志強,曹素珍,竇鳳鴿,丁曉暉,王彩芬
(1.西北師范大學 計算機科學與工程學院,蘭州 730070;2.深圳技術(shù)大學 大數(shù)據(jù)與互聯(lián)網(wǎng)學院,廣東 深圳 518118)
2012 年,BONOMI 等[1]正式提出了霧計算,使用網(wǎng)絡(luò)中的邊緣設(shè)備來進行數(shù)據(jù)的存儲和運算,緩解中心網(wǎng)絡(luò)設(shè)備的壓力。作為新一代的分布式計算[2],霧計算具有低延時、分布廣泛、帶寬壓力小、調(diào)度靈活等優(yōu)勢,未來將被廣泛應(yīng)用于物聯(lián)網(wǎng)和工業(yè)行業(yè)等領(lǐng)域中[3]。
2005 年,SSHAI 等[4]提出了屬性基加密(Attribute-Based Encryption,ABE)技術(shù),將屬性合并為其密碼原語的輸入。屬性基加密分為密鑰策略的屬性基加密(Key-Policy Attribute-Based Encryption,KP-ABE)[5]和密文策略的屬性基加密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)[6]兩種。在CP-ABE 下訪問策略與密文相關(guān)聯(lián),更加符合實際需求[7]。2014 年,F(xiàn)AN 等[8]提出了權(quán)重屬性的概念,將二進制狀態(tài)表示的屬性值擴展到任意狀態(tài),使其更廣泛地應(yīng)用于實際環(huán)境中,文獻[9]為減輕用戶端的解密運算壓力,以密鑰分割的方式將運算工作外包給霧節(jié)點,文獻[10]將終端設(shè)備中部分復(fù)雜的加解密運算外包給霧節(jié)點。上述方案都未考慮單一授權(quán)中心單點失效的問題,在單授權(quán)的ABE方案[11-13]中,授權(quán)機構(gòu)要為所有用戶生成屬性密鑰,容易受到集中攻擊并且存在性能瓶頸。為解決這一問題,文獻[14]提出多授權(quán)的ABE 方案,有效地解決了單授權(quán)機構(gòu)單點失效的問題。文獻[15]為解決傳統(tǒng)CP-ABE單一授權(quán)機構(gòu)存在的問題,設(shè)計了基于區(qū)塊鏈的多授權(quán)訪問控制方案。文獻[16]考慮到用戶系統(tǒng)用戶的合法性問題,將惡意用戶追蹤機制引入到了多機構(gòu)中。為了降低用戶的計算開銷,文獻[17]提出支持計算外包的多授權(quán)CP-ABE 訪問控制方案,將部分解密計算外包給代理服務(wù)器;文獻[18]提出了基于密文策略的基于屬性的加密方案,將部分解密外包給云服務(wù)器;文獻[19]采用多機構(gòu)屬性基加密方案,除了能夠滿足機密性與細粒度性之外,還提供了匿名認證;文獻[20]使用邊緣霧節(jié)點來承擔大部分的用戶解密運算操作,有效節(jié)省了用戶終端資源。
本文提出基于霧節(jié)點的分布式權(quán)重屬性CP-ABE外包解密方案。該方案通過霧節(jié)點實現(xiàn)外包解密計算,驗證外包結(jié)果的正確性。為每個屬性定義權(quán)重值,默認最小權(quán)重值,當用戶屬性值小于最小權(quán)重值時,不能訪問密文,使屬性從二進制狀態(tài)“0”和“1”(即“滿足”和“不滿足”)擴展到任意狀態(tài),從而簡化訪問結(jié)構(gòu),減少密文的存儲開銷和加密中的計算成本。
本文方案中的部分符號說明如表1 所示。
表1 符號說明Table 1 Symbol description
定義1 設(shè)G、GT是兩個階為素數(shù)p的乘法循環(huán)群,g是G的生成元,e為雙線性映射e:G×G→GT。隨機選取a,s,b1,b2,…,bq?Zp,公開:
判定性q?parallel BDHE 假設(shè)是指不存在多項式時間的算法以不可忽略的優(yōu)勢區(qū)分和GT中的某一隨機元素R。
定義2每個參與方P上的線性秘密共享方案(Linear Secret Sharing Scheme,LSSS)Π。
存在一個l×n的矩陣M稱為Π 的共享生成矩陣,對于所有的i=1,2,…,l,定義M的第i行Mi被標識為參與方ρ(i),同時有列向量v=(s,r2,r3,…,rn),其中s?Zp是要共享的秘密值,r2,r3,…,rn?Zp是隨機數(shù),則根據(jù)秘密共享方案Π,向量M˙v是l的秘密份額,并且(M˙v)i屬于ρ(i)。
假定Π 的訪問結(jié)構(gòu)為A,令授權(quán)集合S?A,定義I?{1,2,…,l}且I={i:ρ(i)?S}。存在常量{ωi?Zp}i?I,對于任意合法共享秘密{λi},有(Mi˙v)=ε˙v=s,其中ε=(1,0,…,0)。{ωi}在共享生成矩陣M的大小相關(guān)的時間多項式中,約定向量(1,0,…,0)是任何線性秘密共享方案的目標向量。對于M中任何滿足的行集I,得到目標向量在I的跨度內(nèi),而任何未經(jīng)授權(quán)的行集I,目標向量不在集合I的行的跨度內(nèi),并且存在一個向量ω,使得ω˙(1,0,…,0)=-1,ω˙Mi=0。
本文方案由6個實體構(gòu)成,即云服務(wù)商(Cloud Service Provider,CSP)、中央授權(quán)機構(gòu)(Center Authority,CA)、屬性授權(quán)機構(gòu)(Attribute Authority,AA)、霧節(jié)點(Fog)、數(shù)據(jù)屬主(Data Owner,DO)以及數(shù)據(jù)用戶(Data User,DU)。系統(tǒng)模型如圖1 所示,其中,m 表示明文,CT 表示密文。
圖1 系統(tǒng)模型Fig.1 System model
系統(tǒng)模型主要包括以下部分:
1)云服務(wù)商(CSP)。半可信云服務(wù)提供商,負責存儲密文。
2)中央授權(quán)機構(gòu)(CA)。可信的第三方,為整個系統(tǒng)生成公共參數(shù)。
3)屬性授權(quán)機構(gòu)(AA)。管理用戶屬性集,并為用戶生成密鑰。不同的授權(quán)機構(gòu)為每個用戶生成唯一的全局身份標識符GID,在為用戶生成密鑰時,用戶GID 與屬性綁定在一起,同時授權(quán)機構(gòu)維護用戶的屬性列表。
4)霧節(jié)點(Fog)。霧節(jié)點是誠實且好奇的,主要負責解密DU 從CSP 下載的部分密文。
5)數(shù)據(jù)屬主(DO)。將加密的數(shù)據(jù)文件上傳至CSP,在加密時,DO 指定一個滿足用戶屬性的訪問結(jié)構(gòu),然后將數(shù)據(jù)文件加密成密文上傳至CSP。
6)數(shù)據(jù)用戶(DU)。自由地訪問CSP 中的密文數(shù)據(jù)資源,當DU 能夠滿足訪問策略時,才能夠成功地解密密文數(shù)據(jù)。
設(shè)e為G×G→GT的一個雙線性映射。定義G、GT為素數(shù)階p的雙線性群,生成元為g。選擇哈希函數(shù)H:{0,1}*→G,將身份ID 映射到中。
1)GlobalSetup(k)→PP
全局初始化算法由CA 執(zhí)行。該算法輸入安全參數(shù)k,定義全局屬性A={a1,a2,…,an}及權(quán)重集W={w1,w2,…,wn},輸出公共參數(shù)PP={G,GT,A,W,H,g}發(fā)送給授權(quán)中心。
2)AuthoritySetup(PP)→(PK,MSK)
輸入公共參數(shù)PP,由屬性授權(quán)機構(gòu)運行該算法。每個授權(quán)機構(gòu)管理用戶的不同屬性,對其管理的每個屬性i,隨機選取兩個數(shù)αi,yi?Zp,生成系統(tǒng)的公鑰PK=和主密鑰MSK={αi,yi}。其中,系統(tǒng)公鑰PK 是公開的,主密鑰MSK 是保密的。
3)KeyGen(MSK,GID,S)→(TSK,DSK)
輸入系統(tǒng)主密鑰MSK、用戶身份GID 以及用戶屬性集合S,AA 為用戶GID 的權(quán)重屬性i生成屬性密鑰,其權(quán)重為wk?W,并將該屬性i記錄在與其身份對應(yīng)的屬性列表中。對于屬性i?S,隨機選取a,t,z?Zp,計算L=gt/z,Ki,GID=,生成霧節(jié)點的轉(zhuǎn)換密鑰TSK=(PK,L,{Ki,GID}),設(shè)置用戶驗證密鑰以及用戶私鑰DSK=(z,TSK)。
4)Encrypt(PK,m,(M,ρ))→CT
輸入系統(tǒng)公鑰PK、消息m以及LSSS訪問策略(M,ρ),輸出密文CT。該算法由數(shù)據(jù)屬主運行,M為l×n的矩陣,Mi為M的第i行,函數(shù)ρ將矩陣M的每一行映射到一個屬性。隨機選取v=(s,r2,r3,…,rn)?,λi=Miv,i?(1,l),s為共享秘密值。隨機選取r1,r2,…,rl?Zp,計算C=m˙e(g,g)αis,C′=gs/z,。輸出密文CT=((M,ρ),C,C′,Ci,Di,i?(1,l))。
5)FogParDec(TSK,CT)→parCT
輸入S對應(yīng)的TK 以及(M,ρ)的密文CT,該算法由霧節(jié)點解密。若S滿足訪問結(jié)構(gòu),則X={x|ρ(x)?S且wi≤wk},其中,wi是訪問矩陣M第x行Mx對應(yīng)屬性的權(quán)重,wk是用戶該屬性的權(quán)重。存在{cx?Zp}x?X,對任意合法分享{λi},有×(Miv)=s。令k=ρ(x)表示訪問矩陣M第x行Mx所對應(yīng)屬性,x?[1,l]。對所有x?[1,l]進行分類計算,如果k?S或k?S,wi>wk,則返回┴;如果k?S且wi≤wk,對于?x?X,計算半解密密文:
6)UserVerParDec(C′,SKu,parCT)→CT′
用戶驗證階段由授權(quán)中心執(zhí)行,輸入部分密文C′、用戶的驗證密鑰SKu以及半解密密文parCT,計算:
7)Decrypt(DSK,C,CT′)→m
用戶解密消息m,輸入用戶密鑰DSK,密文構(gòu)件C、CT′,計算:
定義3在訪問結(jié)構(gòu)(M*,ρ*)下,如果存在多項式時間的敵手Α 以ε的優(yōu)勢攻破本文方案,那么存在另一個敵手B 以的優(yōu)勢解決判定性q?parallelBDHE假設(shè),其中,M*是l*×n*的矩陣,l*,n*≤q。
證明挑戰(zhàn)者B 首先選取兩個乘法循環(huán)群G1、G2,g為G1的生成元,以及雙線性映射G1×G1→G2,隨機選取a,s,b1,…,bq?Zp,公開:
階段2與階段1 類似。
猜測Α 輸出對β的猜測β′。如果β′=β,則Β 輸出μ′=0,表示,否則Z為群G1中的隨機元素。
表2 是文獻[9,15-16]方案與本文方案的特征比較分析。通過比較可以發(fā)現(xiàn),本文最大的優(yōu)勢在于使用加權(quán)屬性簡化訪問結(jié)構(gòu),從而減少系統(tǒng)的計算開銷。
表2 相關(guān)方案特征比較Table 2 Comparison of characteristics of relevant schemes
表3 為方案計算開銷比較。令E1和E2分別是群G和GT上的指數(shù)運算,P表示雙線性運算的次數(shù),|M|表示滿足訪問結(jié)構(gòu)的屬性個數(shù),|S|表示用戶屬性個數(shù),|AAA|表示加密時授權(quán)機構(gòu)的個數(shù),|I|表示滿足訪問結(jié)構(gòu)屬性個數(shù)。
表3 相關(guān)方案計算開銷比較Table 3 Calculation of cost comparison of relevant schemes
為了更直觀地說明本文方案的優(yōu)勢,對本文方案與現(xiàn)有方案進行比較。實驗環(huán)境為Intel?CoreTMi5-8250UCPU@1.60 GHz,1.80 GHz 處理器,8.00 GRAM的個人筆記本電腦,使用語言為Java,算法實現(xiàn)基于JPBC(Java Pairing-Based Cryptography Library)。
圖2 所示是隨著訪問結(jié)構(gòu)屬性個數(shù)的變化數(shù)據(jù)擁有者在加密密文時所消耗的時間,本文方案因為引入權(quán)重屬性,簡化了訪問結(jié)構(gòu),所以其加密階段的計算開銷小于文獻[15-16]方案。圖3 所示是在解密階段用戶屬性滿足密文中包含的屬性個數(shù)變化時終端用戶所消耗的時間。在用戶解密階段,本文方案將部分解密運算外包給了霧節(jié)點,而文獻[15-16]方案解密運算由用戶獨立完成,因此本文方案用戶的計算開銷遠遠小于[15-16]方案。圖4 所示是隨著用戶屬性的變化,多個授權(quán)機構(gòu)為用戶生成密鑰所消耗的時間,多授權(quán)機構(gòu)分擔不同的屬性的密鑰工作,避免了單一機構(gòu)密鑰分發(fā)單點失效的問題。通過本文方案與文獻[15-16]方案的加解密以及密鑰生成的計算開銷對比可以發(fā)現(xiàn),因為本文引入權(quán)重屬性,并將部分解密外包給了霧節(jié)點,所以本文方案在加密和用戶解密時的計算開銷優(yōu)于文獻[15-16]方案。
圖2 數(shù)據(jù)擁有者的計算開銷Fig.2 Computational overhead of data owner
圖3 終端用戶的計算開銷Fig.3 Computing overhead of end user
圖4 密鑰生成的計算開銷Fig.4 Computational overhead of key generation
本文提出一種基于霧節(jié)點的權(quán)重屬性CP-ABE 方案。利用分布式授權(quán)解決單授權(quán)機構(gòu)單點失效的問題,引入權(quán)重屬性簡化訪問結(jié)構(gòu),并且通過霧節(jié)點進行部分解密,減少了終端用戶的計算開銷?;谂卸ㄐ詑?parallel BDHE 問題,在隨機預(yù)言機模型下證明了本文方案的安全性。實驗結(jié)果表明,該方案在加解密以及密鑰生成部分具有更小的計算開銷。下一步將考慮在標準模型下設(shè)計屬性加密方案,以實現(xiàn)更加安全高效的基于霧節(jié)點的分布式屬性基加密方案。