蔣 琳,徐 穎,吳宇琳*,王 軒,方俊彬
(1.哈爾濱工業(yè)大學(深圳)計算機科學與技術(shù)學院,廣東 深圳 518052;2.暨南大學 理工學院,廣東 廣州 510632)
在大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)等信息技術(shù)的快速發(fā)展下,信息數(shù)據(jù)呈現(xiàn)爆炸式的增長。為了減輕用戶的本地存儲能力負擔,越來越多的企業(yè)選擇在云端存儲海量數(shù)據(jù)。由于云服務器并不是完全可信的第三方,如何確保存儲在云服務器中用戶隱私數(shù)據(jù)的安全成為亟需解決的問題。密碼學作為信息安全的基石,可以保證數(shù)據(jù)的完整性、機密性和不可否認性,是解決數(shù)據(jù)安全問題的關(guān)鍵技術(shù)。由于云服務提供平臺不是可信第三方,因此現(xiàn)階段普遍的做法是將數(shù)據(jù)加密之后再存儲到云服務器上,傳統(tǒng)的公鑰加密體制通常是構(gòu)建在一對一的數(shù)據(jù)安全上,無法滿足加密數(shù)據(jù)共享中的一對多的場景。屬性基加密(Attribute-based Encryption,ABE)作為公鑰密碼體制中的一員,能夠?qū)崿F(xiàn)細粒度的訪問控制和一對多的加密模式,被廣泛地應用于云計算環(huán)境中進行加密數(shù)據(jù)共享。
2005年,Sahai等人[1]提出了ABE的概念,首次將用戶的身份信息轉(zhuǎn)換為一系列的屬性來控制加密數(shù)據(jù)的訪問。ABE機制引入了屬性集合和訪問策略的概念,只有當屬性滿足訪問策略時,用戶才可以解開密文。2006年,Goyal等人[2]根據(jù)密鑰/密文與策略的關(guān)系將ABE進一步地劃分為密鑰策略屬性基加密(Key-Policy Attribute-based Encryption,KP-ABE)和密文策略屬性基加密(Cipher-Policy Attribute-based Encryption,CP-ABE)兩種類型。為了達到理想的靈活性,需要為ABE設計更具有表達性的訪問結(jié)構(gòu),如訪問樹(Tree)[3]、線性秘密共享矩陣(LSSS)[4]和一般電路[5]等。傳統(tǒng)的ABE系統(tǒng)大多都是單授權(quán)系統(tǒng),需要一個完全可信的中央授權(quán)機構(gòu)(Central Authority,CA)進行屬性授權(quán)管理和密鑰生成的工作。這也帶來了用戶隱私和單機器系統(tǒng)計算瓶頸的問題,對整個系統(tǒng)的安全十分不利,如果CA遭到惡意攻擊造成密鑰泄露更會導致嚴重的數(shù)據(jù)機密性問題。有學者針對多授權(quán)機構(gòu)的ABE方案[6-7]進行研究,這些方案仍然需要CA幫助管理。為了解決這個問題,Lewko等人[8]提出了一個分散的多授權(quán)機構(gòu)ABE系統(tǒng),該系統(tǒng)任何一方都可以成為授權(quán)機構(gòu),且不需要CA進行屬性管理和密鑰分發(fā)。之后,又提出了許多不借助CA進行屬性管理和密鑰分發(fā)的方案[9-11]。上述方案大多數(shù)都是由傳統(tǒng)的訪問結(jié)構(gòu)如LSSS,Tree作為控制策略,這些結(jié)構(gòu)只能處理固定數(shù)量的屬性變量,無法處理對任意數(shù)量的屬性變量。2012年,Waters[12]提出了支持正則語言的ABE,在該使用確定性有限自動機(Deterministic Finite Automata,DFA)被用來作為訪問結(jié)構(gòu)生成解密密鑰,以此識別任意長度的屬性字符串,但是該方案依賴于q-type類型的動態(tài)假設且安全性只滿足選擇性安全。文獻[13-15]對提升方案的安全性進行了詳細研究。這些研究側(cè)重單授權(quán)機構(gòu)下自適應安全性的提升和簡化安全性證明,存在密鑰泄露的安全問題。
基于以上分析,本文提出了一種以DFA作為訪問結(jié)構(gòu)的多授權(quán)機構(gòu)KP-ABE方案。通過使不同權(quán)限的授權(quán)機構(gòu)管理相關(guān)密鑰分發(fā),解決了單授權(quán)機構(gòu)下遭受攻擊容易導致密鑰泄露的問題。用戶密鑰由多個授權(quán)機構(gòu)共同生成,并且和用戶的身份標識綁定,所提方案能夠抵抗非法用戶及授權(quán)機構(gòu)的共謀攻擊。此外,該方案在系統(tǒng)建立后仍然可以動態(tài)增加授權(quán)機構(gòu),并且滿足大屬性集合的構(gòu)造,增強了方案的可擴展性。最后,使用雙系統(tǒng)加密技術(shù)[16-18]證明該方案在隨機預言機模型下滿足自適應安全。
① 雙線性:對于所有的g,h∈G,a,b∈Zn,有e(ga,hb)=e(g,h)ab。
② 非退化性:?g∈G,使得e(g,g)≠1。
③ 可計算性:對于所有的g,h∈G,存在一個算法可以有效地計算e(g,h)。
④ 正交性:群的3個子群在雙線性映射下滿足“正交性”,即對于任意的g∈Gpi,h∈Gpj(i,j∈{1,2,3}),則有當i≠j的時候,e(g,h)為群GT的生成元,即e(g,h)=1。
本文提出的基于DFA訪問結(jié)構(gòu)的多授權(quán)機構(gòu)KP-ABE方案系統(tǒng)模型如圖1所示。由5個實體構(gòu)成:中央授權(quán)機構(gòu)、普通授權(quán)機構(gòu)、云服務器、數(shù)據(jù)擁有者和數(shù)據(jù)使用者。
圖1 系統(tǒng)模型Fig.1 System Model
中央授權(quán)機構(gòu):負責建立系統(tǒng)全局公開參數(shù),并為系統(tǒng)中的用戶生成一個全局的唯一標識(gid),為每個授權(quán)機構(gòu)產(chǎn)生一個唯一標識(θ)。
授權(quán)機構(gòu):每個授權(quán)機構(gòu)之間是相互獨立的,負責生成自己的公私鑰對,并根據(jù)用戶的訪問策略產(chǎn)生相對應的密鑰。
云服務器:主要提供數(shù)據(jù)存取的服務。在該系統(tǒng)中,云服務器被設定為半誠實的實體,即它會正確地執(zhí)行系統(tǒng)中合法用戶的操作,同時也試圖從接收的數(shù)據(jù)中獲取信息。
數(shù)據(jù)擁有者:根據(jù)數(shù)據(jù)的屬性值對該數(shù)據(jù)進行加密,并上傳到云服務器上。
數(shù)據(jù)使用者:在該系統(tǒng)中,每個用戶都擁有一個全局唯一的標識,并根據(jù)自己在不同機構(gòu)上的訪問策略可以獲得對應的解密密鑰。用戶可以從云服務器上下載密文數(shù)據(jù),當所有的訪問策略滿足加密數(shù)據(jù)的屬性后,用戶才能使用其密鑰解密密文。
本文所提方案包括以下5個多項式時間算法,其形式化描述如下:
① GlobalSetup(λ)→GP:系統(tǒng)全局建立算法,由中央授權(quán)機構(gòu)執(zhí)行。算法輸入安全參數(shù)λ,輸出系統(tǒng)全局公共參數(shù)GP。
② AuthSetup(GP,θ)→(pkθ,skθ):授權(quán)機構(gòu)初始化算法,由每個授權(quán)機構(gòu)執(zhí)行。算法輸入全局公開參數(shù)GP和授權(quán)機構(gòu)的唯一標識θ,輸出為該授權(quán)機構(gòu)的公鑰和私鑰。
③ KeyGen(GP,ASKθ,θ,gid)→SKθ,gid:數(shù)據(jù)擁有者密鑰生成算法,算法由授權(quán)機構(gòu)執(zhí)行。算法輸入全局公開參數(shù)GP、屬性機構(gòu)的私鑰ASKθ、用戶訪問自動機θ和用戶身份標識gid,算法為gid標識的用戶生成密鑰SKθ,gid。
④ Encrypt(GP,{APKθ,ωθ}θ∈Auth,m)→CT:數(shù)據(jù)加密算法,由數(shù)據(jù)擁有者執(zhí)行。算法輸入全局公開參數(shù)GP、屬性機構(gòu)的公鑰和屬性字符串{APKθ,ωθ}θ∈Auth以及明文數(shù)據(jù)m,輸出生成的密文數(shù)據(jù)CT。
⑤ Decrypt(GP,{SKθ,gid}θ∈Auth,CT)→m/⊥:數(shù)據(jù)解密算法,由數(shù)據(jù)使用者執(zhí)行。算法輸入全局公開參數(shù)GP、用戶的組密鑰{SKθ,gid}θ∈Auth和密文CT。如果密文的屬性字符串滿足標識為gid的用戶的訪問結(jié)構(gòu),則算法輸出解密的明文數(shù)據(jù)m,否輸出m/⊥。
所提算法的安全性主要基于以下模型進行證明,此安全模型由挑戰(zhàn)者和敵手之間的安全游戲進行描述。
系統(tǒng)建立:挑戰(zhàn)者運行GlobalSetup和AuthSetup算法,生成全局公共參數(shù)和授權(quán)機構(gòu)的公私鑰對。令Auth*表示所有授權(quán)機構(gòu)的集合,令Authc表示被腐蝕的授權(quán)機構(gòu)的集合。對被腐化的授權(quán)機構(gòu),挑戰(zhàn)者將其私鑰和公共參數(shù)一并發(fā)送給敵手。
敵手查詢請求階段1:敵手向未被腐蝕的授權(quán)機構(gòu)發(fā)送有限自動機θ以及身份標識gid進行密鑰詢問。挑戰(zhàn)者運行KeyGen算法,產(chǎn)生解密秘鑰SKθ,gid,并把它發(fā)送給敵手,這一過程可重復多項式有界次。
挑戰(zhàn)階段:敵手提交2個長度相等的消息M0,M1和待挑戰(zhàn)的屬性字符串{ωθ}θ∈Auth*。對每個授權(quán)機構(gòu)θ∈Auth*/(Auth*∩Authc),其ωθ不能被詢問階段1中的所有θ接受。然后挑戰(zhàn)者投擲一枚硬幣b,b取隨機值0或者1,運行加密算法Encrypt(GP,{APKθ,ωθ}Auth*,Mb)生成密文CT*并返回給敵手。
詢問階段2:重復詢問階段1的過程,唯一的限制是對于θ∈Auth*/(Auth*∩Authc)的授權(quán)機構(gòu),其發(fā)送的θ不能接收ωθ。挑戰(zhàn)者以階段1中的方式進行回應,這一過程可重復多項式有界次。
猜測階段:攻擊者返回一個關(guān)于b的猜測b′。如果b′=b,則攻擊者獲勝。攻擊者在游戲中的攻擊優(yōu)勢為Adv=Pr[b′=b]-1/2。
定義:對于任意多項式時間內(nèi)攻擊者,如果在上述安全游戲中獲得勝利的優(yōu)勢可以忽略,那么該方案是自適應CPA安全的。
該方案包括以下5個多項式時間算法,具體構(gòu)造如下:
③ KeyGen(GP,ASKθ,θ,gid)→SKθ,gid:由標識為θ的授權(quán)機構(gòu)執(zhí)行。假設身份標識為gid的用戶在標識為θ授權(quán)機構(gòu)下?lián)碛械脑L問結(jié)構(gòu)為θ=(Q,ZN,T,q0,qn-1)。令n表示狀態(tài)機的狀態(tài)個數(shù)即n=|Q|。對每個狀態(tài)qx∈Q{qn-1}選取一個對應的隨機數(shù)uθ,x∈ZN,有uθ=(uθ,0,uθ,1,…,uθ,n-1),其中uθ,n-1=α,并計算得到令uskθ,1,0=H(gid),令m表示自動機的轉(zhuǎn)移函數(shù)的個數(shù)即m=|T|。對每一個轉(zhuǎn)移函數(shù)T={(qxt,qyt,σt)|t∈[1,m]},選擇隨機數(shù)rθ,t∈Zn,通過計算得到輸出SKθ,gid=(uskθ,0,{uskθ,1,t}t∈[0,m],{uskθ,2,t,uskθ,3,t}t∈[1,m],θ)。
⑤ Decrypt(GP,{SKθ,gid}θ∈Auth,CT)→m/⊥:由數(shù)據(jù)使用者執(zhí)行。對每個機構(gòu)θ∈Auth進行下列計算:
對于所有授權(quán)機構(gòu)θ∈Auth,如果數(shù)據(jù)使用者的與密鑰相關(guān)聯(lián)的自動機θ能夠接受與密文相關(guān)聯(lián)的ωθ,則有:
3.2.1 抗共謀安全性
在本文所提的系統(tǒng)中,用戶的密鑰與用戶的身份標識gid相關(guān)聯(lián),在密文中,明文m與e(g1,g1)Γ相乘,所以必須借助Γ的值才能夠恢復出明文數(shù)據(jù)。Γ使用加法秘密共享被拆分為多個共享值,并且使用e(g1,g1)αθsθ,0對不同機構(gòu)的共享值進行加密,如果想要恢復這些共享值,用戶的訪問策略和屬性字符串匹配才可以獲得滿足條件的SKθ,gid并最終解開密文。解密過程,當有2個身份標識gid和gid′的用戶想要合謀解開密文的時,在雙方的訪問結(jié)構(gòu)滿足條件之后,解密的計算過程中產(chǎn)生式子e(g1,H(gid))∑θ∈Authδθ無法被約掉,也就無法得到正確的明文結(jié)果。因此本文提供的方案具有抗共謀安全性。
3.2.2 自適應選擇明文安全
本方案的安全性證明類似于雙系統(tǒng)加密證明技術(shù)。首先介紹半函數(shù)密文和半函數(shù)密鑰,這些半功能密文和密鑰僅用于安全性證明,不會在實際方案中出現(xiàn)。
①半功能密文:
②半功能密鑰:
本文將通過一系列的混合游戲來證明所提方案的安全性,具體的定義如下:
GameReal:第一個游戲GameReal表示真實的安全游戲,即用戶的密鑰和挑戰(zhàn)密文都是正常的。
Game0:在該游戲里,用戶的密鑰都是偽正常密鑰,挑戰(zhàn)密文是正常的密文。
Game1:該游戲與Game0的唯一區(qū)別是挑戰(zhàn)密文是偽正常密文。
假設q為攻擊者密鑰查詢的總次數(shù),對于j∈[1,q]定義2種類型的游戲:
Game2,j,1:該游戲中,對前j-1個密鑰請求,使用type2類型的半功能密鑰;對于第j個密鑰請求,使用type1類型的半功能密鑰;其余的密鑰請求使用正常密鑰。挑戰(zhàn)密文使用type1類型的半功能密文。
Game2,j,2:該游戲中,對前j個密鑰請求,使用type2類型的半功能密鑰;其余的密鑰請求使用正常密鑰。挑戰(zhàn)密文使用type2類型的半功能密文。
Gamefinal:該游戲和Game2,q,2的唯一區(qū)別就是不使用mb來生成挑戰(zhàn)密文,而是使用隨機值生成挑戰(zhàn)密文。
使用下面5個引理證明這些游戲是不可區(qū)分的。
引理1:假設存在一個攻擊者能以的優(yōu)勢區(qū)分GameReal和Game0,則存在敵手能以接近的優(yōu)勢攻破假設1。
引理2:假設存在一個攻擊者能以的優(yōu)勢區(qū)分Game0和Game1,則存在敵手能以接近的優(yōu)勢攻破假設1。
引理3:假設存在一個攻擊者能以的優(yōu)勢區(qū)分Game2,j-1,2和Game2,j,1,則存在敵手能以接近的優(yōu)勢攻破假設2。
引理4:假設存在一個攻擊者能以的優(yōu)勢區(qū)分Game2,j,1和Game2,j,2,則存在敵手能以接近的優(yōu)勢攻破假設3。
引理5:假設存在一個攻擊者能以的優(yōu)勢區(qū)分Game2,q,2和Gamefinal,則存在敵手能以接近的優(yōu)勢攻破假設4。
定理1。如果假設1,2,3,4成立,則本文所提的方案在隨機預言機模型下滿足自適應安全。
證明。如果假設1,2,3,4成立,可以由先前的引理得到安全游戲GameReal和Gamefinal是不可區(qū)分的,在Gamefinal中,密文完全隱藏了b的信息,攻擊者無法獲取到任何有關(guān)b的信息,因此攻擊者贏得Gamefinal的優(yōu)勢是可以忽略的,同樣攻擊者贏得GameReal的優(yōu)勢也是可以忽略的。所以,不存在一個多項式時間的敵手可以以不可忽略的優(yōu)勢攻破本文所提的方案。
本文利用DFA作為訪問結(jié)構(gòu),設計了一個多授權(quán)機構(gòu)的KP-ABE方案,解決了單一授權(quán)機構(gòu)的密鑰濫用問題,提高了方案的安全性,并從訪問結(jié)構(gòu)、安全性、是否支持大屬性集和共謀攻擊等方面進行性能比較。
表1 性能比較Tab.1 Performance comparison
為了驗證本文所提方案的有效性,同時對方案的時間開銷有更為直觀的了解,接下來將給出方案的實驗仿真結(jié)果。方案在開源代碼庫JPBC的基礎上進行了仿真實現(xiàn)。由于所提方案基于合數(shù)階群構(gòu)造,故選取JPBC中的Type Al參數(shù)類型,設置群的階為N=npq其中|n|=|p|=|q|=128 bit。實驗運行的軟件環(huán)境為Windows10 64位操作系統(tǒng),Java版本為1.8。硬件環(huán)境為(英特爾)Intel(R) Core(TM) i7-8700 CPU @ 3.20 GHz(3 192 MHz)。群的所有實驗仿真結(jié)果均取程序運行20次后的平均值。實驗結(jié)果如下:
授權(quán)機構(gòu)的初始化算法的開銷為5E+P,其中E是指一次冪指數(shù)運算,P是指一次雙線性配對操作,初始化算法時間復雜度與DFA中字符集字符的數(shù)量無關(guān)。授權(quán)機構(gòu)初始化時間隨DFA中字符集字符數(shù)量的關(guān)系如圖2所示,隨著字符集中字符數(shù)量的增加,授權(quán)機構(gòu)初始化時間不會隨之增長,滿足大屬性集合的性質(zhì)。
圖2 授權(quán)機構(gòu)初始化算法時間開銷Fig.2 Time cost of AuthSetup algorithm
方案在初始化、加密、密鑰生成和解密4個算法消耗的計算時間如圖3所示。假設用戶的各個機構(gòu)訪問策略不變,同時用于加密的屬性字符串長度依次增加。從圖3可以看出,密鑰生成算法和授權(quán)時間開銷基本是固定的,原因在于該算法計算開銷與屬性字符串無關(guān);而數(shù)據(jù)加密和數(shù)據(jù)解密時間開銷與屬性字符串長度成線性增長關(guān)系。
圖3 方案的時間開銷Fig.3 Time cost of the proposed scheme
本文對傳統(tǒng)的基于DFA訪問結(jié)構(gòu)的ABE方案進行改進,提出了一種基于DFA訪問結(jié)構(gòu)的多授權(quán)ABE方案,解決了單授權(quán)機構(gòu)下密鑰泄露問題。所提方案不僅支持系統(tǒng)擴展性,還能夠抵抗非法用戶和授權(quán)機構(gòu)的共謀攻擊,增強了系統(tǒng)的安全性。此外,基于合數(shù)階雙線性群的子群判斷假設問題,證明了方案在隨機預言機模型下滿足自適應安全,并通過仿真實驗測試了所提方案的計算開銷。本文所提的方案構(gòu)建在計算開銷比較大的合數(shù)階雙線性群,如何在計算效率更高的素數(shù)階雙線性群上構(gòu)建基于DFA訪問結(jié)構(gòu)的自適應安全的多授權(quán)ABE方案是下一步要進行的工作。