程小輝,丁黃婧,鄧 昀,王 宇+
(1.桂林理工大學 信息科學與工程學院,廣西 桂林 541006;2.桂林理工大學 廣西嵌入式技術(shù)與智能系統(tǒng)重點實驗室,廣西 桂林 541006)
現(xiàn)有的屬性加密一般為單一授權(quán)機構(gòu),具有巨大的安全隱患,若受到攻擊則無法保障整個系統(tǒng)范圍內(nèi)用戶數(shù)據(jù)安全,而多屬性授權(quán)加密能夠分散管理屬性從而提高系統(tǒng)安全性[1-4]。Kai Zhang等[5]通過可追溯性的多權(quán)威CP-ABE方案實現(xiàn)用戶跟蹤性與細粒度訪問控制的實用加密。Odelu等[6]通過橢圓曲線在計算開銷上的優(yōu)勢提出由此代替用戶解密時的雙線性計算[7]。Ting Liu等[8]提出外在云環(huán)境下支持黑盒跟蹤的多權(quán)威CP-ABE加密。同時將解密外包至邊緣節(jié)點,將邊緣節(jié)點屬性加密相結(jié)合,能夠極大程度緩解數(shù)據(jù)通信與數(shù)據(jù)安全所帶來的額外計算開銷,并減少運行時間,從而提高數(shù)據(jù)信息在方案中傳遞的效率。基于此本文提出了基于邊緣計算的多授權(quán)屬性加密機制研究,邊緣節(jié)點承擔大部分的運算開銷,多授權(quán)中心分攤屬性管理,直接減少單授權(quán)機構(gòu)的秘鑰托管與局部失控問題[9]。
數(shù)據(jù)擁有者需要設置一個門閥值,假設訪問控制集合與用戶屬性集合相交數(shù)量大于設置門閥值,則用戶成功獲得用戶私鑰并解密。設U={u1,u2,u3,u4,u5} 是訪問屬性集合,同時設置門閥值為k=3, 兩者構(gòu)成一個訪問結(jié)構(gòu)[10],其中u1,…,u5為不同屬性的值。若存在A={u1,u2,u4,u6,u7} 與B={u1,u5,u6,u7},A∩U個數(shù)大等于門閥值k,B∩U個數(shù)則不滿足。則稱A中包含的集合稱為授權(quán)集合,而B稱為非授權(quán)集合。
線性秘密共享方案(linear secret sharing scheme,LSSS)[11],假設一個基于用戶集合P關(guān)于秘密分享的方案α在P上看是線性,則α必然滿足下述條件:
(2)存在由秘密共享方案α生成的m×n的共享矩陣M, 對于i=1,2,…,m, 該矩陣的第i行Mi都被一個相應用戶ρ(i) 標識,其中ρ是一個從 {1,2,…,m} 到P的映射函數(shù)。給定一個隨機列向量v=(s,v2,v3,…,vn)T, 其中s∈P是共享秘密值,而v2,v3,…,vn則由隨機數(shù)生成。 (M·v) 表示根據(jù)共享方案α將秘密值s分享t份,λi=(M·v)i則是表示屬于用戶ρ(i) 的屬性。
橢圓曲線密碼體制(elliptic curve cryptosystem,ECC)[12]的安全性主要由橢圓曲線離散對數(shù)問題(ECDLP)[13]的困難性來實現(xiàn)。ECC作為公鑰密碼體制[14]中的一個大類,相較于其它同類加密算法,其系統(tǒng)參數(shù)值與密鑰長度決定了其存儲開銷與計算開銷上更具優(yōu)勢。ECC因其算法公式與數(shù)學中的橢圓周長公式相似而得名,所得曲線的變量與系數(shù)都在有限域p(有限域的階數(shù)為p)[15]上,由二元三次方程表示為:y2=x3+ax+b, 記為Ep(a,b)。 是由曲線方程全體解 (x,y) 加上一個無窮遠點O構(gòu)成的集合,其中x,y∈Zp且均為未知數(shù),a,b是系數(shù)同時滿足4a3+27b2≠0。 ECC計算規(guī)則具體如下述:
(1)所有在橢圓曲線上的點Q,都滿足Q+O=Q-O=Q。
(2)所有在橢圓曲線上的點U(x1,y1) 與其對稱點V(x1,-y1), 都滿足U+V=O, 且此時對稱點V(x1,-y1) 為U(x1,y1) 的負元。
(3)若點A(x1,y2) 與點B(x2,y2) 均在橢圓曲線上,且滿足A≠-B, 則R=A+B=(x3,y3)。 其中
x3=Δ2-x1-x2,y3=Δ(x1,x3)-y1
(1)
Δ={y2-y1x2-x1(modp),x1≠x2
3x21+u2y1(modp),x1=x2
(2)
假設數(shù)據(jù)使用者A與數(shù)據(jù)擁有者B的交互由ECC為基礎(chǔ),則需要先將信息數(shù)據(jù)映射至橢圓曲線Ep(a,b) 上的某點G, 并將其作為基點。具體通信過程如下述:
(1)A選擇生成一個私鑰k,并生成公鑰K=kG;
(2)A將K,G與Ep(a,b) 發(fā)送給B;
(3)B收到后將明文數(shù)據(jù)編碼至Ep(a,b) 上任意一點M, 并產(chǎn)生隨機整數(shù)r(r (4)B計算生成密文點C(C1,C2), 其中C1=rG與C2=M+rK, 并發(fā)送至A; (5)A收到后計算C2-kC1, 得出結(jié)果正好為點M, A對點M進行解碼獲得明文數(shù)據(jù)。 本文提出了一種應用在邊緣環(huán)境下的多授權(quán)屬性加密方案,系統(tǒng)模型如圖1所示。方案為三層主結(jié)構(gòu),分別是云服務層、邊緣層與用戶層。云服務層包含云服務器(cloud server provider,CSP)與中央授權(quán)機構(gòu)(central authority,CA),作為整個方案的核心運行層,云服務層負責整個方案的大部分數(shù)據(jù)存儲與數(shù)據(jù)持久化。通過對CA生成的參數(shù)與CSP的數(shù)據(jù)進行認證與分發(fā),來推動系統(tǒng)訪問控制方案工作的完成。邊緣層由眾多來自不同域的邊緣節(jié)點(edge node,EN)、屬性授權(quán)機構(gòu)(attribute authority,AA)與調(diào)度服務器(dispatch server,DS)構(gòu)成,方案通過這些EN來完成對數(shù)據(jù)的部分傳輸與解密外包工作,將解密的認證過程外包至EN中來達到減少終端用戶運算開銷,降低云服務層被攻擊情況可能性的目的。并且通過EN減少用戶在傳統(tǒng)訪問控制下需要將明文數(shù)據(jù)與CSP直接進行互動的時間開銷,達到提高訪問方案整體效率的目的。DS完成系統(tǒng)的負載均衡工作,保證不因數(shù)據(jù)堵塞或數(shù)據(jù)等待過度帶來多余的網(wǎng)絡時延并保障系統(tǒng)穩(wěn)定性。同時每個AA分管不同屬性,AA之間屬性集兩兩互不相交,減少了單點失效或單點攻擊給系統(tǒng)整體帶來的威脅。用戶層包括數(shù)據(jù)擁有者(data owner,DO)與數(shù)據(jù)使用者(data user,DU),數(shù)據(jù)的產(chǎn)生、上傳與申請、下載主要發(fā)生在用戶層。 圖1 系統(tǒng)模型 如圖1所示,該模型主要有6類實體參與方,分別為中央授權(quán)機構(gòu)CA、云服務提供商CSP、屬性授權(quán)機構(gòu)AA、邊緣節(jié)點EN、數(shù)據(jù)所有者DO和數(shù)據(jù)用戶DU。 CA作為訪問控制方案參與方,屬于無條件被信任的機構(gòu),負責方案中設備與平臺的注冊,產(chǎn)生與分發(fā)系統(tǒng)的安全參數(shù)k與全局參數(shù)PP。 CSP是屬于云端的服務器,用戶上傳與下載的數(shù)據(jù)均來自于此,它具有巨大的數(shù)據(jù)存儲空間。DO將數(shù)據(jù)密文與密鑰密文上傳至EN或CSP,對密文進行持久化保留,同時對EN的請求無條件執(zhí)行。 AA是完全可信機構(gòu),不同AA兩兩之間所管理的屬性集合均不相交,主要用于DO的注冊與為其生成綁定唯一用戶標識UID的私鑰,以及維護自身的屬性列表。 DS作為完全可信機構(gòu)負責系統(tǒng)中用戶數(shù)據(jù)流的資源分配與均衡工作。用戶上傳、下載數(shù)據(jù)請求時先對DS詢問自身第一區(qū)域內(nèi)EN的負載狀況,判斷是否處在負載飽和狀態(tài),若未飽和則DS發(fā)送肯定反饋,用戶發(fā)送上傳信息或下載請求至域內(nèi)EN進行一步處理。若負載狀況飽和,則由DS綜合系統(tǒng)資源池中EN的域內(nèi)節(jié)點數(shù)量及信息,反饋具有服務能力的鄰近EN節(jié)點標識至用戶。 EN在本質(zhì)上與CSP一樣,都具備網(wǎng)絡數(shù)據(jù)存儲與傳輸處理的功能。區(qū)別在于EN比CSP更接近用戶,比CSP分布更加分散,更利于快速與終端設備產(chǎn)生聯(lián)系。作為CSP與用戶之間的中間節(jié)點,EN負責預處理和驗證數(shù)據(jù)。同時,加密數(shù)據(jù)短時間存儲在其中,并上傳CSP。當DU向AA提出資源請求,EN則將密文數(shù)據(jù)預解密后發(fā)送至相應DU。EN所具有的相對低時延與高穩(wěn)定性是EN的本質(zhì)優(yōu)勢,通過EN自身更高的存儲能力與物理性能,代替用戶進行部分存儲與本地計算操作,能夠降低系統(tǒng)網(wǎng)絡的通信壓力,保障系統(tǒng)的穩(wěn)定性。 DO作為密文的生成者與上傳者,由其對數(shù)據(jù)明文進行對稱加密后,再對密鑰與密文加密生成最終密文CT, 將密文CT上傳。 DU向擁有自身屬性集的AA發(fā)送自身屬性集C,以便AA對訪問控制策略與屬性集進行認證與反饋。其次通過EN預解密后的密文CT′進行解密后取得明文數(shù)據(jù)M。 本文系統(tǒng)通過EN外包解密操作的同時,仍然需要考慮數(shù)據(jù)不在本地操作所帶來的時延問題。盡管直接在數(shù)據(jù)本地源處理計算操作能夠最大程度減少響應時延并使系統(tǒng)穩(wěn)定性達到最優(yōu),但不得不考慮本地用戶功耗以及計算性能上的短板,這可能給系統(tǒng)帶來更大的開銷,因此EN作為最靠近本地用戶的域內(nèi)節(jié)點,需要尋求不可避免的傳輸時延與計算開銷上的高性比平衡點。同時,當EN在本地充當存儲與交互的角色后,需要CSP發(fā)送或接收的數(shù)據(jù)需求變少,系統(tǒng)的交互延遲自然能夠降低,系統(tǒng)穩(wěn)定性也能得到保證。 本文系統(tǒng)模型主要有由4部分算法構(gòu)成,分別為系統(tǒng)初始化(Setup)、數(shù)據(jù)加密(Encrypt)、密鑰生成(KeyGen)、數(shù)據(jù)解密(Decrypt)[16]。 (1)系統(tǒng)初始化算法包括2個子算法:全局初始化算法CA.Setup與屬性機構(gòu)算法AA.Setup。 CA.Setup(k)→(PP)。 中央授權(quán)機構(gòu)在初始化階段設置安全參數(shù)k, 以此輸出系統(tǒng)全局參數(shù)PP并向全系統(tǒng)公開此參數(shù)。 AA.Setup(PP)→(MK,PK)。 各個屬性授權(quán)機構(gòu)根據(jù)全局參數(shù)PP構(gòu)造專屬主密鑰MK與公鑰PK, 其中公鑰向全系統(tǒng)公開。 (2)數(shù)據(jù)加密算法 Encrypt(PP,PK,(A,ρ),M)→(CT)。 DO首先使用對稱加密對明文進行初步加密,接著定義LSSS訪問結(jié)構(gòu) (A,ρ) 作為輸入,其中A為根據(jù)DO訪問策略T生成的共享矩陣,而ρ分別對應矩陣A中屬性的行數(shù)。同時輸入全局參數(shù)PP、 屬性公鑰PK與對稱加密后的明文數(shù)據(jù)M, 最終計算生成密文CT, 并通過邊緣節(jié)點上傳云端存儲。 (3)密鑰生成算法 KeyGen(PP,MK,C,UID)→(SK,TKi,UID), 其中i表示用戶屬性。AA通過DU申請中的用戶屬性集合C與用戶唯一標識符UID作為輸入,同時將全局參數(shù)PP與主密鑰MK加入運算,生成轉(zhuǎn)換密鑰TKi,UID, 綁定相應用戶與屬性。當用戶所需屬性分散在不同屬性授權(quán)機構(gòu)時,則需要向所有包含屬性集合的AA提出密鑰生成申請。DU生成私鑰SK。最終獲得完整用戶私鑰SK與完整轉(zhuǎn)換密鑰TK, 并將轉(zhuǎn)換密鑰TK交由域內(nèi)邊緣節(jié)點用于外包解密運算。 (4)數(shù)據(jù)解密算法包含2個子算法,分別為邊緣節(jié)點預解密EN.Decrypt與用戶終解密DU.Decrypt。 EN.Decrypt(PP,PK,TK,CT)→(CT′)。 邊緣節(jié)點收到來自用戶的數(shù)據(jù)申請請求與轉(zhuǎn)換密鑰后,向云端請求密文并運用轉(zhuǎn)換密鑰TK預解密得出轉(zhuǎn)換密文CT′, 將其發(fā)送給申請用戶。 DU.Decrypt(PP,PK,SK,CT′)→(M)。 DU在預解密的基礎(chǔ)上只需要通過私鑰SK進行少量運算開銷解密即獲得明文數(shù)據(jù)。 本節(jié)將對邊緣環(huán)境下的多授權(quán)屬性加密方案步驟進行詳細描述。圖2為系統(tǒng)方案數(shù)據(jù)流。該方案由4個算法構(gòu)成:系統(tǒng)初始化算法、數(shù)據(jù)加密算法、密鑰生成算法與數(shù)據(jù)解密算法。其中系統(tǒng)初始化算法分為全局初始化算法與屬性機構(gòu)初始化算法兩個子算法,數(shù)據(jù)解密算法分為邊緣節(jié)點預解密算法與用戶終解密算法。 圖2 系統(tǒng)方案數(shù)據(jù)流 階段1:全局初始化算法 CA.Setup(k)→(PP) 階段2:屬性機構(gòu)初始化算法 AA.Setup(PP)→(MK,PK) 輸入全局參數(shù)PP, 由多個屬性授權(quán)機構(gòu)同時運行該算法。一個系統(tǒng)中往往存在多個屬性授權(quán)機構(gòu),每個屬性授權(quán)機構(gòu)之間分別維護互不相交的自身屬性列表,其屬性列表的并集為全局屬性集A。 針對每個被管理的屬性i, AA選擇隨機值yi,ki∈p, 則輸出屬性主密鑰MK={yi,ki|i∈A} 與公鑰PK={yiG,kiG|i∈A}。 同時公開公鑰PK, 保留主密鑰MK。 階段3:數(shù)據(jù)加密算法 Encrypt(PP,PK,(A,ρ),M)→(CT) 由DO運行該算法。首先數(shù)據(jù)擁有者根據(jù)自身訪問策略構(gòu)造LSSS訪問結(jié)構(gòu) (A,ρ),A為m×n訪問矩陣,ρ(x) 則表示矩陣A第x行所代表的屬性。整個加密過程包括對明文數(shù)據(jù)對稱加密和對對稱密鑰進行屬性加密兩者的混合加密方式。具體加密過程如下: (1)隨機選取對稱密鑰ck,對明文數(shù)據(jù)M進行初步對稱加密,從而獲得第一密文Eck(M)=Enc(M,ck), 其中Enc() 表示對稱加密算法。并計算數(shù)據(jù)Cn=H(Eck(M))G,這能夠使DU在解密時驗證明文數(shù)據(jù)的完整性。 (2)橢圓曲線上一點與密鑰ck相映射,并選取隨機秘密值s∈p, 計算獲得C0=ck+sG。 (3)選取隨機向量v,u∈Znp且v其第一位元素為隨機值s∈Zp,u第一位元素為0。計算λx=Ax·v與ωx=Ax·u。 其中x∈[0,m-1],Ax則表示訪問矩陣A的第x行。 (4)對于x∈[0,m-1], 選取隨機數(shù)rx∈p, 計算得出C1,x=λxG+rxyρ(x)G,C2,x=rxG,C3,x=rxkρ(x)G+wxG。 由此,最終生成密文CT={(A,ρ),C0,E,Eck(M),{C1,x,C2,x,C3,x}x∈[0,m-1]}。 DO將密文CT通過邊緣節(jié)點上傳至云端存儲。 階段4:密鑰生成算法 KeyGen(PP,MK,C,UID)→(SK,TKi,UID) 該算法由AA與DU運行。將全局參數(shù)PP、 主密鑰MK、 用戶屬性集C與用戶唯一標識UID作為輸入,每個AA為用戶屬性集與自身屬性列表的相交屬性生成相應密鑰。 設為用戶UID的屬性i生成密鑰,為用戶UID構(gòu)建相關(guān)屬性列表,并且對列表內(nèi)所有屬性i計算TK′={yi+H(UID)ki}i∈C。 將TK′發(fā)送至用戶UID, 用戶UID選取隨機數(shù)z生成用戶私鑰SK={z}, 且變換轉(zhuǎn)換密鑰將其重新設計定義為TK-z, 即TK={yi+H(UID)ki-z}i∈C。 最終將轉(zhuǎn)換密鑰TK交由域內(nèi)邊緣節(jié)點用于外包解密運算,用戶私鑰SK由用戶自身保留。 階段5:邊緣節(jié)點預解密算法 EN.Decrypt(PP,PK,TK,CT)→(CT′) 該算法由邊緣節(jié)點EN運行。設由用戶屬性集C生成的集合X={x|ρ(x)∈C}, 若用戶滿足訪問結(jié)構(gòu),即在多項式時間內(nèi)能夠通過常數(shù)集 {cx∈Zp}x∈X, 得到∑x∈XcxAx={1,0,…,0}, 由此可推∑x∈Xcxλx=s且∑x∈Xcxωx=0。 其中 Ax=C1,x-TK·C2,x+H(UID)C3,x= λxG+2rxG+H(UID)ωxG (3) D=∑x∈XcxAx=∑x∈Xcx(λxG+zrxG+H(UID)ωxG)= sG+z∑x∈XcxrxG (4) D′=∑x∈XcxC2,x=∑x∈XcxrxG (5) 則邊緣節(jié)點將生成的轉(zhuǎn)換密文CT′={C0,E,Eck(M),D,D′} 發(fā)送給數(shù)據(jù)使用者DU用于下一步解密。 階段6:用戶終解密算法DU.Decrypt(PP,PK,SK,CT′)→(M) 該算法由DU運行。用戶得到轉(zhuǎn)換密文CT′后通過C0-D+zD′=ck獲得對稱密鑰ck。 通過對稱密鑰ck對數(shù)據(jù)進行最終解密,若能解密成功則說明數(shù)據(jù)未被篡改,反之則說明數(shù)據(jù)完整性被破壞。這是由于數(shù)據(jù)在加密過程中加入了Cn=H(Eck(M))G用以驗證數(shù)據(jù)完整性且哈希[18]具有隨機性與抗碰撞性[19]。 4.1.1 安全模型 本節(jié)主要通過將方案規(guī)約到DBDH假設[20]中,設計攻擊游戲來建立安全模型,進一步證明本章方案具有選擇明文攻擊下的不可區(qū)分性(IND-CPA)。以下A為攻擊者,B為挑戰(zhàn)者。 證明:構(gòu)建G為橢圓曲線E上大素數(shù)p階、P為生成元的循環(huán)子群。挑戰(zhàn)者B需選取隨機數(shù)a,b,c∈p,β∈{0,1} 與R∈P。 Init:攻擊者A首先定義訪問結(jié)構(gòu) (A,ρ) 并將其發(fā)送給挑戰(zhàn)者B。 Phase1:攻擊者A將自身標識符UID對應屬性 (i,UID) 提交給挑戰(zhàn)者B,以求用戶屬性集所對應屬性私鑰。挑戰(zhàn)者B選取隨機值t,l∈p, 并用其計算轉(zhuǎn)換密鑰提交給攻擊者A。攻擊者A計算整合轉(zhuǎn)換密鑰集合TK′={yi+H(UID)ki}i∈C, 接著攻擊者A選取隨機數(shù)z生成自身私鑰SK={z}, 設置轉(zhuǎn)換密鑰為TK-z, 即TK={yi+H(UID)ki-z}i∈C。 事實上攻擊者A由于自身屬性集合不符合訪問結(jié)構(gòu)因此所求密鑰組并不能成功解密數(shù)據(jù)。 Challenge:攻擊者A向挑戰(zhàn)者B發(fā)送等長的兩組數(shù)據(jù)信息m0與m1, 挑戰(zhàn)者B選擇隨機參數(shù)β∈{0,1}, 執(zhí)行上節(jié)階段3數(shù)據(jù)加密算法對明文數(shù)據(jù)mβ進行運算。最終將密文CT={(A,ρ),C0,{C1,x,C2,x,C3,x}x∈[0,m-1]} 發(fā)送給攻擊者A。 Phase2:攻擊者A能夠提交同Phase1相同限制的 (i,UID) 密鑰查詢申請。 Guess:攻擊者提出對β的猜測β′。 若相等,則挑戰(zhàn)者B輸出1;反之B輸出0。當輸出為1時,攻擊者A能夠獲得有效密文。由此可知概率優(yōu)勢為式(6) AdvIND-CPA=|Pr[β′=β]-1/2| (6) 若攻擊者A贏得游戲的優(yōu)勢不可忽略,則挑戰(zhàn)者B攻破DBDH假設的優(yōu)勢則同樣不可忽略。但DBDH假設是公認的數(shù)學困難問題假設,因此挑戰(zhàn)者B的優(yōu)勢則不存在不可忽略的情況,反推攻擊者A贏得游戲的優(yōu)勢也不成立,從而得證方案在選擇明文攻擊下的安全性。 4.1.2 安全性分析 本節(jié)將分別從防篡改攻擊、數(shù)據(jù)安全性和抗合謀攻擊3個角度分析了本方案的安全性。 (1)防篡改攻擊。隨機選取對稱密鑰ck, 對明文數(shù)據(jù)M進行初步對稱加密,從而獲得第一密文Eck(M), 并計算數(shù)據(jù)Cn=H(Eck(M))G。 由于哈希函數(shù)具有唯一性與不可逆性且ck為系統(tǒng)隨機數(shù),用戶不可復制,因此用戶若無法解密則說明密鑰出現(xiàn)問題,則數(shù)據(jù)存在被篡改的可能。通過該方式本文方案能夠保證系統(tǒng)在主動篡改攻擊下的安全性。 (2)數(shù)據(jù)安全性。由于只有滿足屬性集合且滿足屬性閾值的用戶屬性授權(quán)機構(gòu)才會授予其相應屬性主密鑰 {yi,ki}, 又由于方案基于ECC算法,而橢圓曲線上的離散對數(shù)問題具有困難性,故無效用戶無法通過系統(tǒng)公開密鑰 {yiG,kiG} 倒推出主密鑰信息。同時明文數(shù)據(jù)M被對稱密鑰ck加密后,對稱密鑰ck通過DO自主選擇的隨機數(shù)s, 被映射至橢圓曲線E上的隨機點。由于ECDLP的困難性,攻擊者無法獲得關(guān)于明文數(shù)據(jù)M的任何信息。而LSSS中隨機秘密值s也表明了當用戶不滿足訪問策略結(jié)構(gòu)時無法獲得私鑰,即不存在屬性ρ(i), 無法推得隨機向量v中秘密值s。 因此本文方案具有數(shù)據(jù)安全性。 (3)抗合謀攻擊[21]。主要從兩方面考慮。首先是不同數(shù)據(jù)用戶之間的合謀,即要防止多個無法獨立解密的用戶相互勾結(jié),互相之間集合屬性來達到獲得完整所需屬性集并解密的目的。本文方案中密鑰生成階段的用戶私鑰與轉(zhuǎn)換密鑰均與具體用戶屬性ρ(i) 與用戶唯一標識符UID綁定。也就是說,系統(tǒng)能夠通過密鑰中的標識符信息識別屬性密鑰集中的每個密鑰是否來自同一個用戶,若出現(xiàn)多個不同UID, 則無法使∑x∈Xcxλx=s, 繼而無法計算恢復sG, 說明該屬性集具有合謀嫌疑,則不予以解密。其次是邊緣節(jié)點與數(shù)據(jù)用戶之間的合謀攻擊。當邊緣節(jié)點將預解密后的轉(zhuǎn)換密文CT′發(fā)送給不具備訪問權(quán)限的用戶UID′, 用戶UID′進行終解密時需要用戶私鑰SK, 而私鑰是由隨機生成的隨機數(shù)z構(gòu)成,不同用戶所生成的隨機數(shù)z不同,私鑰也不同,不正確的隨機數(shù)z無法對轉(zhuǎn)換密文CT′進行終解密,從而用戶無法獲得真正的明文信息M。 從以上兩方面的合謀攻擊分析可知,本章提出的EMO-ABE方案具有抗合謀性。 4.2.1 理論分析 本節(jié)將Odelu方案、Zhang方案、Liu方案與本文方案就系統(tǒng)功能與計算開銷進行比較分析。表1為3種方案的系統(tǒng)功能對比。 表1 方案系統(tǒng)功能對比 通過上表我們可以發(fā)現(xiàn)Odelu方案使用與門作為訪問結(jié)構(gòu),缺點是結(jié)構(gòu)過于單一,不能夠靈活處理訪問結(jié)構(gòu)的變化。并且其使用單一授權(quán)機構(gòu),可能出現(xiàn)的單點失效情況和密鑰托管問題。同時該方案與Zhang方案中解密操作都在用戶端處理,將會給用戶端帶來較大計算負擔。此外,Zhang方案與Liu方案使用雙線性配對會給系統(tǒng)帶來多余的指數(shù)運算與雙線性運算,從而增加額外的運算開銷。而本文方案中用LSSS來構(gòu)造訪問結(jié)構(gòu),使系統(tǒng)更加方便靈活,同時將屬性分散至多個屬性授權(quán)機構(gòu),有效避免了上述問題,并將傳統(tǒng)屬性加密算法中的雙線性配對替換為橢圓曲線加密中的簡單標量乘法,以此減少計算開銷提升加密效率,最后將解密操作外包至邊緣節(jié)點,使得用戶只需要進行簡單計算操作即可獲得明文數(shù)據(jù)。 為從計算開銷方面分析上述3種方案與本文方案的對比,通過表2說明本節(jié)用到的符號及對應說明。 表2 符號及對應含義說明 表3為上述3個方案之間的計算開銷對比。從表中可以看出Odelu方案與Zhang方案未實現(xiàn)外包實現(xiàn)功能,故其用戶解密開銷將隨訪問策略的復雜度升高而升高,而Liu方案與本方案由于引入了外包所以用戶解密成本非常穩(wěn)定且低。同時Liu方案由于其需要通過多次雙線性與指數(shù)操作給加解密帶來了巨大的開銷。 表3 方案計算開銷對比 4.2.2 實驗仿真 為了證明和體現(xiàn)方案達到的可行性與有效性,將本文方案與Odelu方案、Zhang方案、Liu方案從不同屬性數(shù)目時DO加密時間、用戶解密時間與外包運算時間進行性能觀察并比較。具體環(huán)境參數(shù)見表4。 表4 實驗環(huán)境參數(shù) 圖3為數(shù)據(jù)擁有者數(shù)據(jù)加密時屬性數(shù)量與運算時間關(guān)系圖。從圖中可以看出,4種方案總體運行時間都隨著屬用性數(shù)量的增加而增長,其中Zhang方案由于引入了可追溯性導致其運算時間要更大。而Odelu方案與本文方案由于用橢圓曲線中的簡單標量乘法代替了雙線性配對,減少了雙線性計算帶來的巨大開銷,使得計算量與運行時間上明顯少于另兩種方案。本方案運用秘密共享矩陣構(gòu)造訪問策略使得屬性更靈活因此運行時間要更優(yōu)。 圖3 數(shù)據(jù)擁有者加密階段運行時間 用戶DU在解密階段的運行時間與屬性數(shù)量之間的關(guān)系如圖4所示。從圖中可以看出,Zhang方案由于具備了可追溯性功能,雖然在安全性上得到部分提升但不可避免的付出了計算開銷上的代價,其與Odelu方案的用戶解密階段上屬性數(shù)量依舊是影響運行時間的最大因素。而Liu方案與本文方案由于引入了外包預解密使得用戶在解密階段只需要進行簡單操作即可獲得符合自身屬性集的數(shù)據(jù)信息。 圖4 用戶解密階段運行時間 圖5為邊緣節(jié)點上外包解密的運行時間與屬性數(shù)量關(guān)系圖。由于只有Liu方案引入了外包功能,因此該實驗只將Liu方案與本文方案進行對比。從圖中可以看出,解密階段的大部分開銷均發(fā)生在邊緣節(jié)點處,用戶端不需要進行復雜操作,同時由于本文方案在邊緣層解密階段時用橢圓曲線中的簡單乘法標量代替雙線性映射計算,減少了雙線性配對計算與指數(shù)計算的次數(shù),因此降低了運算時間。 圖5 邊緣節(jié)點外包解密運行時間 本文提出一種應用在邊緣環(huán)境下的多授權(quán)屬性加密方案。摒棄傳統(tǒng)屬性加密的雙線性映射,用橢圓曲線上的簡單標量乘法替代,并且引入邊緣節(jié)點,將由用戶承擔的解密計算外包至邊緣節(jié)點,以此減少計算開銷提升加密效率。最后通過多授權(quán)中心分攤屬性管理機制,避免了單一授權(quán)機構(gòu)可能出現(xiàn)的單點失效情況和密鑰托管問題。同時未來也需要進一步研究如何在邊緣計算場景中,進一步提高系統(tǒng)的穩(wěn)定性,以及如何降低網(wǎng)絡交互帶來的傳輸時延。在邊緣計算未來發(fā)展的趨勢下,邊緣環(huán)境能夠運用到更多領(lǐng)域,拉進云平臺與用戶之間的通信距離,提供更細粒度的訪問控制服務,并發(fā)展至更廣泛的應用。2 系統(tǒng)模型
2.1 整體框架
2.2 算法概述
3 具體方案構(gòu)造
4 安全分析與性能分析
4.1 安全分析
4.2 性能分析
5 結(jié)束語