孫磊,趙志遠,王建華,朱智強
(1. 戰(zhàn)略支援部隊信息工程大學三院,河南 鄭州 450001;2. 61516部隊,北京 100062)
密碼學可以保證信息的完整性、機密性、不可抵賴性、可控性及可用性[1]。屬性基加密(ABE,attribute-based encryption)[2]通過用戶屬性的差異實現(xiàn)數(shù)據(jù)的細粒度訪問控制及靈活共享[3]。目前,ABE方案依據(jù)訪問結(jié)構(gòu)位置的差異主要分為密鑰策略屬性基加密(KP-ABE, key-policy ABE)方案[4]和密文策略屬性基加密(CP-ABE, ciphertext-policy ABE)方案[5]。KP-ABE方案中,密文和屬性相關(guān)聯(lián),私鑰和訪問結(jié)構(gòu)相關(guān)聯(lián),當且僅當密文的屬性滿足密鑰的訪問結(jié)構(gòu)時,用戶才能解密密文以恢復(fù)出明文消息;CP-ABE方案中,私鑰和屬性相關(guān)聯(lián),密文和訪問結(jié)構(gòu)相關(guān)聯(lián),當且僅當與私鑰關(guān)聯(lián)的屬性滿足與密文關(guān)聯(lián)的訪問結(jié)構(gòu)時,用戶才能解密密文,恢復(fù)出明文消息。CP-ABE類似于傳統(tǒng)訪問控制中的基于角色的訪問控制,指定具有某些屬性的用戶可以訪問該密文,實現(xiàn)了“一對多”的加密模式,因此,CP-ABE在云存儲模式(大量用戶、海量數(shù)據(jù),且解密方未知)下能夠發(fā)揮極大價值,受到學術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注,成為當前密碼理論的研究熱點[6]。
云存儲系統(tǒng)中大量用戶共享部分相同屬性導(dǎo)致撤銷某一個用戶的屬性時往往會影響其他相關(guān)用戶,因此研究如何撤銷用戶屬性成為一個富有挑戰(zhàn)且具有重要意義的課題[7]。Pirretti等[8]第一次提出了屬性可撤銷的 ABE方案,該方案為系統(tǒng)所有屬性指定版本密鑰,并定期更新屬性的版本密鑰,而被撤銷的屬性無法完成密鑰更新以此達到屬性撤銷的目的。在這種撤銷方法中,當未達到更新時刻時,即使撤銷用戶屬性,也不能立刻實現(xiàn)屬性撤銷,這個時間間隙被稱為脆弱性窗口,其影響方案的前向安全和后向安全[9]。
為解決上述問題,Ibraimi等[10]和Yu等[11]分別提出了屬性立即撤銷的ABE方案,但這2種方案無法實現(xiàn)數(shù)據(jù)的細粒度訪問控制。Hur等[12]提出了一種支持屬性級用戶撤銷的 ABE方案,該方案能夠?qū)崿F(xiàn)實時撤銷,不存在脆弱性窗口,但該方案無法抵抗用戶合謀攻擊。Yang等[13]提出了一種支持屬性級用戶撤銷的 ABE方案,該方案中數(shù)據(jù)擁有者不需要實時在線參與撤銷工作,且具有較高的計算效率,但該方案在隨機預(yù)言機模型下完成安全性證明,而隨機預(yù)言機模型是一種較弱的安全模型。Yang等[14]提出了另外一種支持屬性撤銷的ABE方案中,屬性授權(quán)機構(gòu)需要更新密文,同時生成新版本的密鑰、更新密鑰和私鑰,這些計算工作給屬性授權(quán)機構(gòu)帶來嚴重的計算負擔。馬華等[15]提出了一種支持屬性撤銷的 ABE方案,該方案基于密鑰加密密鑰樹實現(xiàn)了密鑰的更新,且在解密過程中,將部分解密運算外包給解密服務(wù)器,減少了用戶的計算代價。馬華等[15]聲稱該方案能夠抵抗用戶合謀攻擊,但通過分析發(fā)現(xiàn),該方案無法抵抗撤銷用戶與未撤銷用戶的合謀攻擊。Shiraishi等[16]提出了一種屬性可撤銷的 ABE方案,但是其基于復(fù)雜假設(shè)完成安全證明導(dǎo)致安全性較弱。
目前,移動終端的弱計算能力與 ABE方案解密過程中的復(fù)雜計算過程相矛盾。因此,將 ABE方案的復(fù)雜計算外包給云服務(wù)商是一種切實可行的解決辦法。Green等[17]提出了一種計算外包ABE方案,該方案通過云服務(wù)商將原始密文轉(zhuǎn)變成ElGamal型密文,數(shù)據(jù)用戶通過一次指數(shù)運算就可獲得明文。Lai等[18]和Li等[19]分別提出了可驗證外包解密的ABE方案。另外,Li等[19]所提方案的密文長度與方案所采用的訪問結(jié)構(gòu)復(fù)雜度無關(guān)。
文獻[12,15]中,一個群中的用戶共享相同的屬性群密鑰,因此已被撤銷的用戶和未被撤銷的用戶可以發(fā)起合謀攻擊。針對上述問題,本文提出了一種支持屬性立即撤銷且解密外包的 ABE方案,該方案可以有效抵抗上述合謀攻擊,采用外包技術(shù),還可有效減少屬性中心和用戶的計算負擔。本文在標準模型下基于計算性 Diffie-Hellman(CDH,computational Diffie-Hellman)假設(shè)完成安全證明。最后,實驗表明所提方案具有更高的安全性,且提高了用戶的解密效率。
1) 對于每個參與者所持有的秘密份額都可以構(gòu)成Zp上的向量。
密鑰加密密鑰(KEK, key encryption key)樹[12]是一個完全二叉樹,如圖1所示。令系統(tǒng)中所有用戶集合為系統(tǒng)中的所有屬性集合為。設(shè)Gi?U是擁有屬性atti的一個用戶集合,被稱為屬性群。Gi則是可以正常訪問屬性atti的訪問列表。設(shè)是屬性群集合。例如,若用戶分別擁有屬性集合{那么
圖1 KEK樹示意
數(shù)據(jù)服務(wù)管理者(DSM, data service manager)按如下過程構(gòu)建KEK樹。
1) 二叉樹的每一個葉子節(jié)點關(guān)聯(lián)用戶集合U中的每一個用戶uk。同時,每個內(nèi)部節(jié)點vj存儲一個隨機值jθ。
2) 路徑節(jié)點生成算法Path(uk):從根節(jié)點到葉子節(jié)點上的所有節(jié)點被定義為用戶uk的路徑節(jié)點,如
3) 最小覆蓋集算法Mincs(Gi):可以涵蓋屬性群Gi中所有用戶的最少節(jié)點集合為最小覆蓋集。若,則若,則
在 ABE方案中,由于每個屬性被多個用戶共享,屬性撤銷是一個極其困難的問題,因此構(gòu)建一個安全有效的屬性撤銷ABE方案至關(guān)重要。另外,ABE方案一個重要的安全特點就是抵抗用戶合謀攻擊,但是在閱讀分析文獻[12,15]時發(fā)現(xiàn),這2種方案是不安全的,且存在用戶合謀攻擊。下面分別對這2種方案進行安全性分析。
文獻[12]提出了屬性群概念,并構(gòu)建KEK樹為用戶分發(fā)屬性群密鑰,同時完成屬性撤銷后的密鑰更新工作,但是該方案不能夠抵抗撤銷用戶和未撤銷用戶的合謀攻擊。
一個用戶的密鑰由兩部分組成:屬性集合關(guān)聯(lián)的密鑰sk1(等同于基本ABE用戶私鑰)和基于KEK樹的屬性群密鑰sk2。sk1和sk2是完全獨立的,當一個用戶從某個屬性群撤銷時,該用戶將失去sk2,但是該用戶的sk1仍然是可用的,因此該用戶可以和其他用戶合謀獲得sk2,完成最終密文解密。
攻擊實例:假設(shè)消息m用訪問結(jié)構(gòu)“教師and計算機”加密。用戶u1的屬性集合為“學生,計算機”,用戶u2的屬性集合為“教師,計算機”,則“計算機”的用戶集合為所以“計算機”的最小覆蓋集為此時關(guān)聯(lián)屬性“計算機”的密文頭文件用節(jié)點v4的隨機值4θ加密。u1的路徑節(jié)點是的路徑節(jié)點是
當沒有屬性撤銷時,u2能夠通過解密獲得sk2,u2,通過屬性集合獲得sk1,u2,最終解密密文獲得消息m。
當u2改變行業(yè)從事密碼學時,該用戶的屬性“計算機”將被撤銷,則“計算機”的用戶集合為所以“計算機”的最小覆蓋集為,此時關(guān)聯(lián)屬性“計算機”的密文頭文件將通過用節(jié)點v8的隨機值θ8加密。即使用戶u2仍然擁有關(guān)聯(lián)屬性集合“教師,計算機”的私鑰sk1,u2,由于其沒有θ8,不能完成密文頭解密,因此用戶u2也不能完成最終密文解密。但是用戶u1和用戶u2合謀,u1將隨機值θ8泄露給u2,u2將通過θ8完成對密文頭的解密,再結(jié)合sk1,u2完成解密獲得消息m。
文獻[15]基于文獻[12]構(gòu)建,屬性集合關(guān)聯(lián)的密鑰sk1和KEK樹分發(fā)的屬性群密鑰sk2仍然是完全獨立的,因此該方案也不能抵抗撤銷用戶和未撤銷用戶的合謀攻擊。其分析過程如3.1節(jié)所述,這里不再贅述。
本節(jié)首先描述了支持屬性撤銷的屬性基加密(RO-CP-ABE, CP-ABE with attribute revocation and outsourced decryption)方案的系統(tǒng)模型及其各組成部分的功能,然后對其進行形式化的描述,最后給出該方案的安全模型。
本文提出了一種支持屬性立即撤銷的屬性基加密方案,系統(tǒng)模型主要包括以下4類實體。
屬性機構(gòu)(AA, attribute authority):AA是一個完全可信的權(quán)威機構(gòu),主要負責生成系統(tǒng)公鑰和系統(tǒng)主私鑰,同時管控屬性密鑰分發(fā)等工作。
云服務(wù)商(CSP, cloud service provider):CSP主要是指第三方云存儲提供商,本文定義的CSP包括DSM、計算服務(wù)和存儲服務(wù)。數(shù)據(jù)擁有者將加密的數(shù)據(jù)上傳至CSP,減少了用戶的存儲負擔。為了減少用戶(數(shù)據(jù)擁有者和數(shù)據(jù)用戶)的計算負擔,當撤銷屬性時,DSM完成密文更新工作;當數(shù)據(jù)解密時,CSP承擔了解密過程中的部分計算。同時本文假設(shè)CSP是誠實并好奇的(honest but curious)。
數(shù)據(jù)擁有者(DO, data owner):DO在將數(shù)據(jù)上傳至CSP之前需要用對稱密鑰PK加密數(shù)據(jù),然后基于本文所提方案加密對稱密鑰PK,通過對PK的安全共享完成數(shù)據(jù)的細粒度訪問控制。
數(shù)據(jù)用戶(DU, data user):DU即系統(tǒng)中的消費者,能夠自由地訪問云中的密文數(shù)據(jù)資源。屬性機構(gòu)根據(jù)其屬性為其生成私鑰并用于解密密鑰密文。若其屬性沒有被撤銷且滿足訪問結(jié)構(gòu),則用戶能夠計算出最終明文。
首先給出本文相關(guān)符號及其含義,如表1所示。
表1 相關(guān)符號及其含義
RO-CP-ABE方案包含以下5個階段。
1) 系統(tǒng)初始化階段
AASetup(1λ)→{PK,MSK}:AA運行該算法,輸入安全參數(shù)RK=λ,輸出系統(tǒng)公鑰PK和系統(tǒng)主私鑰MSK。
DSMSetup(PK)→{DPK,DSK}:DSM 運行該算法,輸入PK,輸出DSM的公鑰DPK和主私鑰DSK。
2) 私鑰生成階段
AAKeyGen(id,PK,DPK,MSK,S)→{RK,SK,KEK′}:AA運行該算法,輸入PK、DPK、MSK和屬性集合S,輸出用戶私鑰RK、轉(zhuǎn)換密鑰SK和屬性群初始密鑰KEK′。
DSMKeyGen(KEK′,S)→KEK :DSM運行該算法,輸入KEK′和S,輸出用戶屬性群密鑰KEK。
3) 數(shù)據(jù)加密階段
Encrypt(PK,(M,ρ),m)→CT′:輸入系統(tǒng)公鑰PK、訪問結(jié)構(gòu)(M,ρ)和明文消息m,輸出中間密文CT′。
DSMEncrypt(PK,DSK,CT′)→{Hdr,CT}:輸入PK、DPK和CT′,輸出密文頭Hdr和最終密文CT。
4) 數(shù)據(jù)解密階段
OutDecrypt(PK,Hdr,CT,SK,KEK)→CT:CSP運行該算法,輸入PK、Hdr、CT和SK,輸出轉(zhuǎn)換密文。
Decrypt(PK,CT,CT,RK)→m:DU運行該算法,輸入和RK,輸出明文數(shù)據(jù)m。
5) 用戶屬性撤銷階段
UpKEK(DSK,KEK,attx)
運行該算法,輸入DSK、KEK和被撤銷屬性attx,輸出新的屬性群密鑰
ReEncryption(Hdr,CT,attx):DSM運行該算法,輸入Hdr、CT和被撤銷屬性attx,輸出新的密文頭和密文
為證明所提方案可以有效抵抗用戶合謀攻擊,定義敵手可以詢問2種類型密鑰:1) 已撤銷用戶的私鑰詢問,其中,,但已撤銷挑戰(zhàn)屬性;2) 未撤銷用戶的私鑰詢問,其中,,但S包含挑戰(zhàn)屬性。證明過程如下。
初始化A選擇挑戰(zhàn)屬性Type-I和挑戰(zhàn)訪問結(jié)構(gòu)并發(fā)送給B。其中,若att??S,則一定有
系統(tǒng)建立B運行AASetup和DSMSetup后得到PK、MSK、DPK和DSK。然后,B更新關(guān)聯(lián)屬性att?的密鑰對和。最后,B將PK、DPK和發(fā)送給A,自己保留MSK、DSK和
詢問階段1A可以詢問以下2種類型密鑰。
已經(jīng)被撤銷。B運行AAKeyGen和DSMKeyGen算法獲得RKI、SKI和KEKI,然后將它們發(fā)送給A。2) Type-II私鑰詢問:用戶uII的屬性集合SII不滿足訪問結(jié)構(gòu)但是uII擁有屬性。B運行AAKeyGen和DSMKeyGen算法獲得RKII、SKII和KEKII,然后將它們發(fā)送給A。挑戰(zhàn)階段A提交2個等長消息m0和m1。B選擇隨機值b∈{0,1},并運行Encrypt和DSMEncrypt算法獲得Hdr*和CT,最后將二者傳遞給A。
詢問階段2類似詢問階段1。
猜測階段A輸出。若b′=b,則A贏得游戲,攻破所提方案。A攻破所提方案的優(yōu)勢定義為:
定義 1假設(shè)沒有多項式時間的敵手能夠以不可忽略的優(yōu)勢來攻破上述安全模型,則所提方案是選擇安全的。
本節(jié)給出RO-CP-ABE方案的具體構(gòu)建方法,并基于CDH假設(shè)給出了方案的安全性證明。
1) 系統(tǒng)初始化階段
AASetup(1λ)→{PK,MSK}:該算法首先選擇階為素數(shù)p的循環(huán)群G和GT,g是群G的生成元,存在映射e:G×G→GT。隨機選取α,a∈Zp,隨機選取h1,h2,…,hn∈G。輸出系統(tǒng)主私鑰MSK=gα和系統(tǒng)公鑰PK=(g,e(g,g)α,ga,h1,h2,…,hn)。
DSMSetup(PK)→{DPK,DSK}:DSM 為每一個屬性atti(1≤i≤n)選擇一個隨機指數(shù)ti∈Zp并計算Ti=gti,輸出DSM的公鑰DPK={Ti|1≤i≤n}和主私鑰DSK={ti|1≤i≤n}。
2) 私鑰生成階段
AAKeyGen(id,PK,DPK,MSK,S)→{RK,SK,KEK′}:該算法隨機選擇r∈Z,然后計算K′=gα+arid,idp L′=grid,對于任意 atti∈S,計算K′=hridii,kek′=Trid。然后隨機選擇λ∈Z,計算K=(K′)λ,iip L=(L′)λ,Ki=(Ki′)λ,keki=(kek′i)λ。最后輸出用戶私鑰RK=λ,轉(zhuǎn)換密鑰SK=(K,L,{Ki})和屬性群初始密鑰KEK′={atti,keki},atti∈S。
DSMKeyGen(KEK′,S)→KEK:該算法按2.4節(jié)中 KEK樹為用戶生成屬性群密鑰。對于每一個atti∈S,DSM 計算?i=Path(uid)∩Mincs(Gi)。若?i=?,DSM停止計算;若?i≠?,DSM計算,其中隨機值θj所對應(yīng)節(jié)點vj∈?i。然后輸出KEK={atti,vj,keki,KEKi},atti∈S。
3) 數(shù)據(jù)加密階段
Encrypt(PK,(M,ρ),m)→CT′:該算法隨機選擇向量用于共享加密指數(shù)s。對于1≤i≤l,計算,其中Mi是M的第i行。然后計算,對于。最后輸出中間密文
DSMEncrypt(PK,DSK,CT′)→{Hdr,CT}:對于訪問結(jié)構(gòu)(M,)ρ中每一個屬性atti,DSM隨機選擇并調(diào)用算法。然后重新加密中間密文CT′獲得,計算密文頭最后DSM將(CT,Hdr)上傳到云服務(wù)商進行存儲。
4) 數(shù)據(jù)解密階段
當數(shù)據(jù)用戶的屬性滿足密文的訪問結(jié)構(gòu)且用戶屬性未被撤銷時,可以通過以下過程計算獲得明文。
OutDecrypt(PK,Hdr,CT,SK,KEK)→CT:云服務(wù)商根據(jù)轉(zhuǎn)換密鑰SK和屬性群密鑰KEK計算T′、T′和,如式(1)~式(3)所示,然后云服務(wù)商將CT和CT發(fā)送給數(shù)據(jù)用戶。
5) 用戶屬性撤銷階段
UpKEK(DSK,KEK,attx)當用戶uz的屬性attx被撤銷時,DSM隨機選擇xσ并計算,然后用和替代DPK和DSK中的Tx和tx,獲得新的 DSM 公鑰和主私鑰。DSM更新屬性群并重新計算例如,,則。當用戶u6的屬性attx被撤銷時,,則對于每一個數(shù)據(jù)用戶,DSM計算然后計算和其中隨機值對應(yīng)節(jié)點最后,DSM 用替換KEK中的
ReEncryption(Hdr,CT,attx)DSM隨機選擇,重加密密文:最后
更新密文頭為
定理1若CDH假設(shè)在群G中成立,則沒有多項式時間敵手能夠攻破RO-CP-ABE方案,其中挑戰(zhàn)矩陣為
證明若A在qI次Type-I詢問和qII次Type-II詢問后,攻破所提方案的優(yōu)勢為不可忽略的值ε=AdvA。那么,可以創(chuàng)造一個B能夠以不可忽略的優(yōu)勢攻破CDH假設(shè)。
初始化挑戰(zhàn)者將和發(fā)送給仿真者B,A選擇挑戰(zhàn)訪問結(jié)構(gòu)和挑戰(zhàn)屬性并傳遞給B。其中,若att??S,則一定有
系統(tǒng)建立B隨機選取并計算。輸出公鑰和系統(tǒng)主私鑰MSK=gα。對于每一個屬性B選擇一個隨機指數(shù)并計算。對于att?,B隨機選取x計算。輸出公鑰和主私鑰然后B更新的密鑰對,設(shè)置B更新 DSM 的公鑰和DSM的主私鑰。注意:為理論值,實際情況下B不知道z1,因此也不能計算
詢問階段1A可以詢問2種類型密鑰,B設(shè)置2個列表LI和LII,并初始化2個列表為空。
用戶u的屬性集合S滿足訪問結(jié)構(gòu)(M?,ρ?),II但是uI的屬性已被撤銷。B首先查看中是否存在uI。若存在,則B將發(fā)送個敵手A;否則,B隨機選擇,計算,其隱含設(shè)置。對于i≠x且atti∈SI,計算B產(chǎn)生并計算。其中,隨機值θj與節(jié)點關(guān)聯(lián);針對, B 計算。然后,B隨機選擇值,計算獲得
用戶uII的屬性集合SII不滿足訪問結(jié)構(gòu)但是uII擁有屬性。B首先查看中是否存在uII。若存在,則B將發(fā)送個敵手A;否則,B隨機選擇,計算。對于i≠x且,仿真者B計算,而后求交集然后,B根據(jù)交集結(jié)果計算,其中隨機值jθ所對應(yīng)節(jié)點對于,計算和其中隨機值所對應(yīng)節(jié)點
挑戰(zhàn)階段A提交2個等長的消息m0和m1。B隨機選擇b∈{0,1}和向量其用于共享加密指數(shù)s。對于1≤i≤l,計算,其中是M?的第i行。然后,B計算
對于i≠x且,B隨機選擇k∈Z,ip并計算;對于,計算其意味著。B最終計算密文為
詢問階段2類似詢問階段1。
猜測階段A輸出一個值作為對b的猜測。假設(shè)A猜測b′=b,且。然后,仿真者B分別從LI和LII中選擇對于,存在LI中的和LII中的相結(jié)合,使等式(7)成立。
如果B沒有中止游戲,那么A的視覺和真實的攻擊視覺相同。假設(shè)敵手A進行了qI次Type-I詢問和qII次Type-II詢問,B從LI和LII中正確地選中和的概率是,因此,B攻破CDH假設(shè)的優(yōu)勢為
6.1.1 功能比較
表 2表明對比方案的訪問結(jié)構(gòu)都具有強表達性,且可以靈活地表示屬性的組合。所有方案都實現(xiàn)了屬性級的用戶撤銷。文獻[12,15]沒有給出形式化的安全證明,相比較而言,文獻[13,16]和本文方案給出了形式化安全證明,但只有本文方案基于弱假設(shè) CDH完成安全證明。另外,在解密過程中,文獻[15]和本文方案將部分計算外包給 CSP,有效地減少了用戶的計算量。
6.1.2 通信成本
在進行通信成本對比之前,給出各符號所代表的含義,|p|、|g|、|gT|分別代表Zp、G、GT中元素的長度,|Ck|代表KEK的長度,nc、nk、na分別代表訪問結(jié)構(gòu)、私鑰和系統(tǒng)中的屬性數(shù)量,nu代表系統(tǒng)中的用戶數(shù)量。
通信成本主要由密鑰和密文產(chǎn)生,本文方案與相關(guān)方案的通信成本對比情況如表3所示。
AA與DU之間的通信成本主要由密鑰產(chǎn)生。由于文獻[15]和本文方案采用了解密外包技術(shù),因此屬性機構(gòu)需要傳送給數(shù)據(jù)用戶一個最終解密密鑰RT。另外,本文方案需要屬性機構(gòu)傳輸nk|g|個kek密鑰給數(shù)據(jù)用戶,用于后續(xù)生成屬性群密鑰。
AA與DO之間的通信成本主要由公鑰產(chǎn)生。屬性機構(gòu)只需將公鑰發(fā)送給DO,然后DO使用公鑰對明文消息加密。
表2 本文方案與相關(guān)方案的功能對比
表3 本文方案與相關(guān)方案的通信成本對比
CSP與DU之間的通信成本主要由密文產(chǎn)生。文獻[12,15]和本文方案使用了 KEK樹技術(shù),所以CSP不僅要發(fā)送密文,還要發(fā)送密文頭和KEK密鑰。文獻[12,15]中,CSP需要額外發(fā)送大小為的密文頭和大小為的屬性群密鑰。本文方案中,CSP需要額外發(fā)送大小為的密文頭和大小為的屬性群密鑰,DU需要發(fā)送個kek密鑰給云服務(wù)商。另外,文獻[15]和本文方案采用了外包解密技術(shù),因此DU需要將其大小為的外包密鑰發(fā)送給CSP,由CSP代為解密。
CSP與DO之間的通信成本主要由DO生成的密文產(chǎn)生。
通過原理分析發(fā)現(xiàn),本文方案與其他方案相比在存儲成本與通信成本的開銷方面基本持平,在某些方面開銷略大。但是本文方案基于弱假設(shè)且在標準模型下完成了方案的安全性證明,能夠抵抗用戶的合謀攻擊;本文方案將復(fù)雜的解密計算外包給CSP,同時由CSP完成屬性群密鑰更新和密文更新操作,有效較少用戶的計算量。另外,文獻[12,15]無法抵抗撤銷用戶與未撤銷用戶之間的合謀攻擊,而抵抗用戶合謀攻擊時ABE方案最基本的安全需求。綜合分析,本文方案具有一定的優(yōu)勢,更適用于實際情況。
本文基于 Ubuntu系統(tǒng)搭建實驗環(huán)境,并基于Charm實現(xiàn)本文所提方案。首先本文用 10個屬性構(gòu)建了訪問結(jié)構(gòu),并分別執(zhí)行上述5種對比方案,每種方案執(zhí)行10次,然后取其平均值作為最終值。需要注意,本文給出的時間為屬性機構(gòu)、DO和DU的計算時間,而云服務(wù)具有強大的計算能力,因此這里沒有列出CSP的計算時間。5種方案各個階段執(zhí)行時間對比如圖2(a)所示。
系統(tǒng)建立階段文獻[13]的執(zhí)行時間大約是其他方案的2倍,這是因為文獻[13]在系統(tǒng)初始化階段需要為每個屬性設(shè)置2個公共屬性密鑰。密鑰生成階段本文方案執(zhí)行時間要大于其他方案,這是因為本文方案屬性機構(gòu)需要為每個屬性設(shè)置一個kek密鑰,同時本文方案采用外包技術(shù),屬性機構(gòu)需要將密鑰盲化。數(shù)據(jù)加密階段文獻[13]的執(zhí)行時間同樣是其他方案的 2倍,這是因為進行密文加密時,文獻[13]需要為每個屬性額外計算2個用于撤銷后更新密文的組件,而其他方案撤銷計算由第三方執(zhí)行。數(shù)據(jù)解密階段由于文獻[15]和本文方案采用了外包解密技術(shù),因此需要較少的計算量,這對于資源有限的用戶至關(guān)重要。
本文方案由 CSP完成屬性群密鑰更新和密文更新計算,因此本節(jié)只仿真加解密計算。
如圖2(b)所示,加密時間與訪問結(jié)構(gòu)復(fù)雜度呈正相關(guān)。另外,文獻[13]需要為每個屬性額外計算2個用于撤銷后更新密文的組件,而其他方案撤銷計算由第三方執(zhí)行,所以文獻[13]所需執(zhí)行時間大約是其他方案的2倍,這在上文中已經(jīng)分析。而其他4種方案的加密時間大致相同。
如圖2(c)所示,解密時間與解密所需屬性數(shù)量呈線性增長關(guān)系,由于文獻[15]和本文方案采用了外包解密技術(shù),其用戶將復(fù)雜的計算外包給CSP,只需要進行少量計算就能夠完成解密任務(wù)。在解密計算中,文獻[15]只需計算一個雙線性對操作和一個GT中的指數(shù)運算,而本文方案只需計算一個GT中的指數(shù)運算,與屬性數(shù)量無關(guān)。
圖2 仿真時間對比
綜合分析,本文方案對于屬性機構(gòu)的計算需求稍高于其他方案;由于采用外包解密技術(shù),相對于其他方案,本文方案對于用戶的計算需求明顯小于其他方案;同時,由DSM完成屬性撤銷過程中的全部計算任務(wù),有效較少了AA和用戶的計算量,因此可以得出本文方案在計算效率方面有較大優(yōu)勢。
屬性級用戶撤銷是 ABE方案的一個重點研究方向。本文研究現(xiàn)有方案發(fā)現(xiàn)文獻[12,15]存在用戶合謀攻擊,其原因為 2種方案中的KEK對于屬性群中用戶完全相同?;诖耍疚奶岢隽艘环N支持屬性撤銷的 ABE方案,有效地解決了上述問題。所提方案可以有效抵抗撤銷用戶與未撤銷用戶的合謀攻擊,同時,該方案將復(fù)雜的解密計算外包給CSP,減輕了DU的計算負擔。在標準模型下基于CDH假設(shè)完成安全證明。最后從理論和實驗這 2個方面對所提方案的效率與功能進行了分析,結(jié)果表明所提方案可以安全實現(xiàn)屬性級用戶撤銷,并具有快速解密的能力。