?

可信執行環境賦能的云數據動態群組訪問控制

2023-09-07 08:47宋祁朋馬建峰
西安電子科技大學學報 2023年4期
關鍵詞:子群訪問控制密文

李 玥,宋祁朋,賈 皓,鄧 鑫,馬建峰

(1.西安電子科技大學 網絡與信息安全學院,陜西 西安 710071;2.西安電子科技大學 空天地一體化綜合業務網全國重點實驗室,陜西 西安 710071;3.華北電力大學 控制與計算機工程學院,北京 102206)

1 引 言

云計算技術的快速發展,給人們在文件存儲、處理和共享等方面提供了很大的便捷。廉價的計算成本和巨大的存儲容量吸引了越來越多的企業以及個人用戶選擇將數據外包存儲至云計算平臺上。但是,云服務供應商可能會在未經用戶允許的情況下,擅自泄露篡改用戶隱私數據或重要文件,因此大部分的云服務供應商并不能完全被信任。為保護數據隱私,數據擁有者通常會在上傳數據之前對數據進行加密。但是云計算服務中存在大量共享數據的需求,密文數據并不能通過云服務器便捷地來分享給他人。因此,基于密碼學的云數據訪問控制成為了近年來的研究熱點。

針對基于密碼學的云數據訪問控制問題,文獻[1]提出了混合加密(Hybrid Encryption,HE)思路。其基本思想是,在公鑰基礎設施的輔助下,利用對稱加密技術加密數據,非對稱加密手段加密并分發數據對稱加密密鑰,但HE在一對多數據共享方面存在諸多不足。廣播加密(Broadcast Encryption,BE)致力于解決數據擁有者和一組用戶進行一對多的密文數據共享。早期廣播加密方案[2]多基于公鑰基礎設施,為免去公鑰管理的負擔,有學者提出身份基廣播加密(Identity Based Broadcast Encryption,IBBE)[3],利用標識用戶的任意字符串作為公鑰,對數據進行加密。只要用戶身份在共享用戶集合中,便可利用其私鑰進行解密。和IBBE類似,基于屬性加密(Attribute Based Encryption,ABE)[4],通過為用戶以及數據定義一組屬性,支持數據擁有者和群組用戶之間,進行細粒度密文數據群體共享。

為了解決密文數據在不解密前提下共享給新用戶,代理重加密技術(Proxy ReEncryption,PRE)[5]應運而生,能對存儲在云服務器上的密文進行安全轉換。在代理重加密中,基于授權人(Delegator)公鑰加密的密文可以被轉換為另一種密文,且保持對應明文不變,被轉換后的密文可以由被授權人(Delegate)的私鑰進行解密。該密文轉換過程由一個半可信的代理者(Proxy)執行。為支持一對多的代理重加密,有學者提出了IBBE-PRE[6]。為解決代理權限過大帶來的隱患,且數據擁有者有時候只想共享一部分密文數據,文獻[7]提出了條件代理重加密(Conditional PRE,CPRE)[7]。只有符合條件約束的密文才能被代理進行密文轉化。條件代理重加密,只有密文滿足授權人設定的條件(關鍵字),代理者才能將授權人的密文轉換成受理人可解密的密文,即授權人可以通過關鍵字限制受理人的權限。文獻[8]提出了細粒度的基于身份的代理重加密機制,但并不支持群組共享。文獻[9]在文獻[8]的基礎上添加了一對多的群組共享支持。為近一步提升云數據共享的靈活性,文獻[10]提出了PBAA方案,同時支持群組共享、細粒度訪問控制等功能。文獻[11]考慮了代理重加密的可驗證性以及公平性問題,并提出了VF-ABPRE,允許共享數據用戶驗證云數據平臺返回的重加密密文是否正確,同時保障云平臺數據免于用戶的惡意控告。文獻[12]提出了一個基于屬性的云安全多群組數據共享加密方案。該方案構建了可驗證外包解密的可撤銷屬性基加密,實現了抗合謀的用戶撤銷,可以在不影響未撤銷用戶的情況下加入或撤銷任意數量的用戶。

近年來,也有學者聚焦于云數據訪問控制中數據分布式存儲以及跨群組共享問題,文獻[13-15]基于區塊鏈CP-ABE技術,提出了一種具有抗屬性篡改的密文數據共享機制。文獻[16]提出了基于區塊鏈的密文策略訪問控制機制。文獻[17]提出了一種基于區塊鏈的跨群組的細粒度數據共享方案,通過群簽名來保證跨用戶組的細粒度訪問控制,但沒有考慮群組用戶的動態性,即群組中成員的動態加入和撤銷。隨著隱私保護的概念漸入人心,不少學者關注數據共享相關的隱私保護問題。文獻[18]關注了數據共享中的用戶身份隱私保護問題。文獻[19]研究了IoT場景中的具有隱私保護屬性的訪問控制機制。

綜合上述分析,云存儲平臺上密文數據的訪問控制越來越靈活便捷,但大多數研究都是基于對的構造方法,在計算開銷上相較于傳統公鑰加密技術,要慢一個數量級[20],因此計算復雜度越來越高。此外,大多數研究忽略了群組動態變更的情況,即缺乏動態群組訪問控制管理能力。在管理群成員頻繁變動的大用戶群時,其所需的計算開銷難以接受。針對云平臺上群組動態訪問控制管理問題,筆者提出了低開銷、細粒度的動態群組訪問控制機制,主要工作如下:

(1) 基于可信計算環境,即英特爾?軟件防護擴展(Intel?Software Guard eXtensions,SGX)技術,以PBAA方案為基礎,構建了CSP群組訪問控制管理服務器,實現在不可信云存儲共享平臺上,以低計算復雜度和存儲開銷,實現數據共享系統的群組成員的可信管理。

(2) 利用分治的思想,對密文數據共享用戶群體,實現層次化管理,降低了群組成員變更操作的開銷。

(3) 給出系統實現,并對方案進行仿真分析,證明了方案的有效性與高效性。

2 基礎知識

2.1 Intel SGX

Intel SGX是Intel為滿足可信計算需求推出的一組擴展指令集[21],與ARM Trustzone和Sanctum類似,SGX致力于在不受信的環境下,為用戶應用程序提供可信執行環境(Trusted Execution Environment,TEE)。為此,SGX允許用戶應用程序在一段位于Enclave地址空間中,開辟一段受保護的內存空間。這段受保護空間實行嚴格的訪問控制和加密操作,保護程序數據的機密性和代碼的完整性。SGX將信任域縮小至CPU制造商,減少了可信計算基(Trusted Computing Base,TCB)的大小。支持SGX的CPU提供了內存加密引擎(Memory Encryption Engine,MEE)硬件單元,通過對保護內存讀寫的解密加密,保證了數據只有在Enclave內存中才是明文。SGX依賴的關鍵技術如下:

(1) 內存隔離。SGX從系統主存中征用128 MB作為處理器預留內存(Processor Reserves Memory,PRM)。PRM中的所有代碼和數據在CPU之外是加密的。當把數據加載到CPU時,需要進行相應的解密和完整性檢查。諸如Hypervisor、BIOS、操作系統等特權應用,都不能隨意訪問這段PRM區域。操作系統被允許置換出Enclave頁面,SGX保證置換頁面的完整性、保密性和及時性,但是置換頁面會帶來較大性能開銷?;赟GX的用戶應用程序由Enclave部分和非受信任部分組成,其他進程只能通過SGX提供的安全接口和Enclave交互。

(2) 認證。SGX提供了本地認證和遠程認證兩種機制。本地認證是指在同一個平臺上的兩個Enclave在交換信息之間使用SGX報告機制彼此相互認證。遠程認證功能則允許在遠程系統上驗證代碼或數據的完整性和真實性。這種驗證是通過密碼學測度加載到Enclave中的初始代碼和數據來完成的。SGX的認證功能保證了測度的真實性以及測度來源的可靠性。認證的結果可以提供給第三方,以證明Enclave的真實性。此外,SGX遠程認證機制還允許在Enclave和外部實體之間建立一條安全信道用來加載敏感數據。

(3) 數據密封。當Enclave被實例化之后,硬件會對數據提供保護。但當Enclave被關閉時,Enclave內部所有的數據都將丟失。為了對Enclave運行時的數據進行持久化,SGX提供了數據密封機制。目前的SGX有兩種密封數據的方法,分別是密封到安全區標識和密封到密封標識。數據密封機制首先使用一個密封密鑰來加密和保護數據完整性,此密封密鑰只能由特定平臺上的Enclave生成。然后,數據即可存儲在Enclave之外的不受信任的內存或存儲中。只有具有相同密封密鑰的Enclave才能解開數據的密封,保證了數據的安全性。

需要指出的是,SGX易遭受各式側信道攻擊,也有相關研究關注如何檢測和對抗側信道攻擊。如何保證SGX的安全不在文中考慮范圍之內。

2.2 PBAA方案介紹

1) PBAA方案7種算法

原始PBAA方案[10]包含7個算法:Setup,Register,Encrypt,DKGen,ReEnc,Dec1和Dec2。各算法的大體工作流程如下:

(1) (PK,MSK)←Setup(1l,N):可信第三方(Certificate Authority,CA)執行Setup算法完成系統初始化。給定安全參數l和一個密文的最大共享人數N,CA運行Setup算法生成系統公鑰PK和主密鑰MSK。CA公開PK參數,保證MSK信息不泄露。

(2) SKID←Register(PK,MSK,ID):當用戶ID申請加入云數據共享系統時,CA負責驗證用戶ID身份的真實性。在此基礎上,給定PK、MSK和身份ID,CA運行Register算法來輸出用戶ID的私鑰SKID,并通過安全信道將SKID分發給用戶ID。

(3) CT←Encrpty(PK,M,S,L):當用戶將數據外包到云存儲服務商之前,調用Encrypt算法來保護數據隱私。具體來說,數據所有者首先指定接收者用戶集和S(其中|S|≤N)和描述條件集L,然后用S和L對數據M進行加密,然后數據所有者將生成的密文CT外包傳輸給CSP。

(4) DKID→S′|←DKGen(PK,SKID,S′,):當數據所有者想要將加密數據共享給一組新的用戶S′時,數據所有者需要制定一個訪問策略,指定數據所有者希望共享數據的類型。隨后數據所有者通過調用DKGen算法,以PK、SKID、身份集S′(|S′|≤N)和訪問策略為參數,生成帶有S′和的委托密鑰(即重加密密鑰)DKID→S′|。

(5) CT′∕⊥←ReEnc(PK,CT,S,L,DKID→S′|):在收到數據擁有者發來的委托密鑰DKID→S′|之后,CSP通過調用ReEnc算法,以PK,在S和L下生成的原始密文CT,委托密鑰DKID→S′|為參數,嘗試進行密文轉換。如果數據用戶ID∈S且L滿足,則ReEnc算法,可針對S′輸出一個重加密密文CT′,否則返回錯誤符號⊥。

(6)M∕⊥←Dec1(PK,SKID,CT,S):給定由PK、SKID和用戶集合S生成的原始密文CT,如果數據用戶ID∈S,那么運行此解密算法可獲取原始消息M,否則收到錯誤符號⊥。

(7)M∕⊥←Dec2(PK,SKID′,CT′,S′):給定由PK、SKID′和用戶集合S′生成的重加密密文CT′,如果數據用戶ID′∈S′,那么運行此解密算法可獲取原始消息M,否則收到錯誤符號⊥。

2) PBAA方案的優勢

相比于群組密態數據共享方案,PBAA方案具有如下優勢:

(1) 基于身份的廣播數據共享,支持數據所有者指定一組用戶,并用這些用戶的身份加密數據,并進行數據共享;

(2) 基于策略的重加密,支持數據所有者對重加密密文制定細粒度的訪問策略。

3 系統模型

方案系統模型如圖1所示,包含5個參與者:系統管理員(system ADMINistrator,ADMIN),云存儲服務提供商(Cloud Storage Provider,CSP),數據擁有者(Data Owner,DO),數據用戶(Data User,DU),可信第三方(CA)。

圖1 系統模型

既有云數據訪問控制方案,其工作基本原理是:數據擁有者和數據用戶,通過非可信CSP進行數據共享業務。被共享的數據通過對稱加密算法,例如:AES算法,進行加密。對稱加密的密鑰則通過所提出的動態群組訪問控制方案進行加密并分發。系統細粒度訪問控制以及代理重加密功能。數據擁有者,可以指定一組共享數據的用戶S和一組條件(例如:關鍵字等),對數據加密并上傳至CSP。密文數據擁有者,如果需要和一組新用戶S′共享數據,則可在原始條件基礎上構造一個訪問結構,生成重加密密鑰。憑借重加密密鑰,CSP可對原始密文中滿足訪問結構的部分進行重加密操作,以便新的用戶群S′可以用其私鑰順利重加密解密秘文。

為簡化訪問控制管理,筆者在CSP中引入基于Intel SGX的管理服務器。在數據擁有者擬和用戶群共享數據時,會和管理服務器通信。后者負責創建針對待共享數據群密鑰。數據擁有者通過群,密鑰對數據加密,并上傳至CSP,同時管理服務器通過身份基廣播加密的方式生成訪問控制相關元數據,存于CSP之后,以便用戶群讀取。

管理服務器同時還承擔重加密過程中的代理角色,負責將需要重加密的密文進行密文轉換。此外,當用戶群體發生成員變更時,例如增加/刪除群成員時,動態訪問控制管理亦由管理服務器負責。

系統模型中的CA主要用于實現系統中初始信任關系的建立。

4 算法設計

4.1 用戶和Enclave間的初始信任建立

提出的方案依賴的可信基為管理服務中的Enclave部分。因此,在系統初始化階段,需要在Enclave程序和數據用戶之間建立雙向信任關系,建立起來的信任關系是用戶文件端到端安全的基石。為達成這一目的,可依賴可信第三方完成這一過程。圖2展示了初始信任建立過程。

圖2 用戶和Enclave程序的雙邊信任建立

(1) 用戶對Enclave的信任建立。其核心步驟在于Enclave可以向用戶出示CA簽發的證書。為此,在初始階段,首先Enclave在其內部生成一對公鑰和私鑰。其中私鑰絕不離開Enclave,公鑰連同Enclave測量結果一起發送給CA。CA向SGX機制中遠程認證服務,例如:IAS,進行驗證,確定Enclave的真實性,并確定運行在Enclave中代碼的可信性。一旦上述過程完成,CA簽發證書給Enclave,連同之前Enclave傳遞而來的公鑰,傳給Enclave。CA的公鑰被安全存放于Enclave中。憑借CA簽發的證書,用戶完成對Enclave的信任建立,后續可以放心地管理服務器申請用于PBAA-SGX機制的私鑰。

(2) Enclave對數據用戶的信任建立。為避免用戶身份偽冒攻擊,Enclave需要對和自己交互的數據用戶進行身份認證。為此,每個數據用戶下向CA申請數字證書。CA簽發的證書中,包含用戶的身份信息,例如:用戶ID等。數據用戶可通過CA中含有的CA公鑰對所收到的證書進行真實性驗證。當用戶和Enclave進行安全通信時,會向Enclave展示CA簽發的證書。Enclave憑借數字證書完成對數據用戶的信任建立。

4.2 PBAA-SGX構造方案

由于Intel SGX的引入,數據共享的可信基發生了改變。因此,利用SGX提供的可信計算能力,在PBAA方案[10]基礎之上,構建PBAA-SGX方案,在實現細粒度的訪問控制同時,將計算復雜度開銷控制在合理范圍之內。

4.2.1 系統設置階段

原版PBAA要求通過CA執行Setup算法。由于SGX Enclave的可信性,PBAA-SGX在設計,通過管理服務器的Enclave部分,執行Setup算法。因此,主密鑰MSK可以在Enclave中以明文形式存在。當需要持久化存儲時,可以通過SGX數據密封技術,在非可信存儲載體上進行存儲。Setup算法(PK,MSK)←PBAA_SGX_Setup(1l,N)具體執行過程和PBAA一致:假設和T是兩個素數階p上的有限循環群,g是群的生成元,如果存在一個有效的雙線性映射e:×T,此映射要求對于所有的u∈,v∈以及a,b∈p都有e(ua,vb)=e(u,v)ab,以及e(g,g)≠1。

管理服務器Enclave部分,首先根據給定安全參數l和一個密文的最大共享人數N,生成雙線性映射參數(p,g,,T,e),然后隨機選擇α∈p,μ,w,u,h,v∈,然后計算μ1=μα以及g1=gα,g2=gα2,…,gN=gαN;w1=wα,w2=wα2,…,wN=wαN;v1=vα,v2=vα2,…,vN=vαN。除此之外,管理服務器選取兩個公開Hash函數H:{0,1}→p和F:T→,然后生成系統密鑰PK=(p,g,g1,…,gN,w,w1,…,wN,v,v,…,vN),以及主密鑰MSK=(μ,α)。

最大共享人數N是一個根據實際業務需求事先合理設定的系統參數,其選取應盡量避免出現群成員動態管理中(例如:不斷增添新的共享成員)實際需要共享人數大于N的情況。如果共享人數超過了預設最大共享人數,則系統應當重新執行Setup,Register,Encrypt等一系列算法。對于以PBAA為代表的傳統方案,設定較大的N值會導致各項操作(例如添加新的成員)的時間復雜度的大幅提升(參見節5.2仿真實驗分析部分的圖3~圖8)。由于所述方案在群成員管理方面時間復雜度的優勢,即使設置較大的N值,相較于原始PBAA方案,本方案動態群組成員訪問控制管理時間復雜度依然處于較低水平,因此能更好地應對密態數據群組共享中群成員的動態變化。

圖3 系統設置階段的時間開銷

圖4 加密密鑰生成階段的時間開銷

圖5 委托密鑰生成階段的時間開銷

圖6 重加密密文生成階段的時間開銷

圖7 原始密文解密階段的時間開銷

圖8 重加密密文解密階段的時間開銷

4.2.2 用戶注冊階段

PBAA-SGX在SGX Enclave中執行用戶PBAA_SGX_Register算法。其過程與PBAA保持一致是,使用給定的用戶身份ID生成用戶私鑰SKIDμ1/α+H(ID)。SGX可以通過數據密封技術,持久化保存用戶私鑰SKID。

4.2.3 加密密鑰生成階段

PBAA-SGX與原版PBAA方案最大不同之處在于,PBAA方案僅能使用系統公鑰PK,而PBAA-SGX可以同時使用PK和MSK。利用主密鑰,算法CT←PBAA_SGX_Encrpty(PK,MSK,M,S,L)的計算復雜度可以得到極大簡化。

給定待分享數據用戶身份集合S以及描述數據特征的條件集合L,管理服務器首先生成一個用于加密數據的秘密值M∈T,生成隨機數s∈p,并計算:

(1)

C4,j=grj,C5,j=(uH(Lj)h)rj(Cw)-s,

(2)

g∏IDi∈S(α+H(IDi))=(gan)(gan-1)ε1(gan-2)ε2…(ga)εn-1,

(3)

此外,為減少用戶群成員關系變動(例如:群成員增加,群成員刪除等操作)的計算開銷,可以對Cg,Cv,Cw進行持久化存儲(參見節4.3.2和4.3.3)。這些結構可以完全通過系統公開參數計算而言。

4.2.4 委托密鑰生成與重加密階段

PBAA-SGX對委托密鑰生成算法DKID→S′|←PBAA_SGX_DKGen(PK,MSK,SKID,S′,)進行了計算復雜度優化。由于管理服務器Enclave創建了用戶SKID且Enclave中的代碼都是可信的,假設只有當執行委托密鑰生成的時候,管理服務器Enclave可以訪問密封態SKID,因此用戶可以創建訪問控制策略,委托管理服務器執行委托密鑰生成操作。具體操作流程和PBAA方案類似。由于PBAA_SGX_DKGen可以訪問MSK,與節4.2.3中分析類似,PBAA_SGX_DKGen的計算復雜度可以得到簡化。

PBAA-SGX中重加密操作CT′/⊥←PBAA_SGX_ReEnc(PK,MSK,CT,S,L,DKID→S′|),因含有結構因此其計算過程可以通過直接訪問MSK得以簡化。其余計算,與PBAA方案保持一致,此處不予贅述。

4.2.5 原始密文與重加密密文解密階段

PBAA-SGX算法在解密算法方面(包括原始密文和重加密密文的解密),其操作流程與原版PBAA一致。因為其計算流程無法通過SGX的引入得以簡化。由于其計算復雜度大致為O(|S|2),因此可以通過引入子群劃分的思想(分治思想),對原始用戶集合進行再分組,降低解密算法的復雜度。具體內容參見節4.3。

4.3 基于子群劃分的管理

盡管PBAA-SGX對群組成員動態管理方面做了優化,但當共享用戶集合規模龐大且用戶成員頻繁變動時,在訪問控制管理方面仍然存在難以承受的計算開銷。為解決這一問題,提出了基于子群劃分的群成員層次化管理機制?;境霭l點是,PBAA-SGX中解密操作的執行時間和用戶群規模有關。如果將用戶群近一步分成子群,則有望降低解密操作的復雜度。每個子群通過子群廣播密鑰bk對群密鑰Sk進行加密,以便處于同一群但在不同子群的成員可以通過Sk進行安全可靠的通信。

子群劃分機制其核心思想是,首先將整個用戶集合,按照某種子群劃分策略,劃分成一系列子群。管理服務器利用PBAA-SGX中的PBAA_SGX_Encrpty算法,針對每個子群p,生成子群廣播密鑰bk,以及密文ck。值得指出的是,子群劃分在管理服務器中的Enclave中執行。因此,管理服務器無法獲取Sk以及廣播密鑰bk。當群組成員發生變動時,管理服務器在更新完群成員信息之后,只需要針對發生具體變動的子群更新群組管理數據,并對元數據進行更新(參見圖1)。用戶端通過監聽子群元數據變動事件,即可及時獲取群訪問控制信息。

子群劃分策略對訪問控制性能有一定的影響。較小的用戶子群可以降低用戶端的授權密鑰延時,但有可能增加管理服務器端的群組變更操作數量??梢钥紤]的方案有:按照群組成員被移出群組的概率進行排布。本方案采用最簡單的等數量劃分作為子群劃分策略。最優子群劃分策略將作為后續研究工作的一個研究點?;谧尤簞澐值墓芾頇C制,主要由用戶子群創建、用戶群成員添加、用戶群成員刪除等算法構成:

4.3.1 用戶子群創建

子群創建的流程如算法1所示。管理服務器依據指定的子群劃分策略對用戶群做群組劃分,隨后針對用戶集合S生成群密鑰Sk。算法中步驟③~⑥,由管理服務器中的Enclave部分執行。遍歷用戶子群集合,針對每個子群p調用PBAA_SGX_Encrypt算法,生成子群公有密鑰cp,bp。其中bp用作對稱加密算法(如AES算法),對群密鑰Sk進行加密,并返回密文yp。數據用戶DU可以通過解密cp得到bp。作為密態數據的訪問控制元數據,被公開存儲于CSP平臺上。算法1步驟⑥調用SGX的數據密封機制,對群密鑰Sk進行持久化存儲。

算法1用戶集合子群創建。

輸入:用戶集合S={DU1,…,DUn},子群劃分策略Policy

輸出:用戶集合公有訪問密鑰,訪問控制元數據

② 生成用戶集合S公有訪問密鑰:Sk←RandomKey()

③ forp∈do

④ (bp,cp)←sgx_pbaa_encrypt(PK,MSK,L,p)

⑤yp←sgx_aes(sgx_sha(bp),Sk)

⑥ sealed_Sk←sgx_seal(Sk)

⑦ Store:(1) sealed_Sk;(2) ?p∈P:〈?u∈p,yp,cp〉

4.3.2 用戶群成員添加

當和大量用戶共享密文數據時,經常會有添加新用戶群成員至用戶集合中的操作。為用戶群添加新成員的更新流程如算法2所示:以用戶群增加單一用戶DUnew為例,首先要根據子群劃分策略,為待添加用戶選取最合適的子群。如果此子群不存在,則執行算法1中子群創建流程。如果發現目標子群,則需要將用戶添加至此群。為了保障新入群用戶可以訪問過去數據,不對群里面實施更新操作。算法2中的步驟④~⑥、步驟在Enclave環境中執行。需要指出的是,由于管理服務器運行PBAA_SGX時,可直接訪問系統主密鑰MSK,且式(1)和式(2)中的Cg,Cv以及Cw已被存儲至CSP。以式(1)中C1更新為例,可C1←(C1)α+H(DUnew),計算復雜度為常數時間。

算法2用戶群成員添加。

①P′←?p∈,suchthat|p|

③pnew←{unew}

④ (bnew,cnew)←sgx_i_create_partition(MSK,pnew)

⑤ Sk←sgx_unseal(sealed_gk)

⑥ynew←sgx_aes(sgx_sha(bnew),Sk)

⑦ Store:〈unewynew,cnew〉

⑧ else

⑨pnew←RandomItem(′)

⑩pnew←pnew∪DUnew

4.3.3 用戶群成員刪除

從用戶群中刪除指定成員的具體流程如算法3所示:以刪除單一用戶DUnew為例,該算法核心思想在于,更新群密鑰Sk,同時對于所有子群更新廣播密鑰bk,實現Sk的安全分發。具體過程如下:確定待刪除用戶所在子群后,更新群密鑰Sk。對于待刪除用戶所在子群,得益于PBAA-SGX的設計,可以通過諸如C1←(C1)α+H(DUrem)-1操作,實現新子群廣播密鑰bk的常數復雜度計算(算法3步驟④)。

對于其他沒有成員變更的子群,則可以實現廣播密鑰更新的操作(算法3步驟⑦)。由于Cg,Cv,Cw等元素已經被存儲起來,只需要在執行PBAA_SGX_Encrpty操作時,更新式(1)~(3)所需的隨機數即可。偽代碼算法3步驟③~⑨在Enclave中執行。

算法3用戶群成員刪除。

①prem←p∈,suchthat DUrem∈p

②prem←prem{DUrem

③ Sk←RandomKey()

④ (brem,crem)←sgx_remove_user(MSK,prem,DUrem)

⑤yrem←sgx_aes(sgx_sha(brem),Sk)

⑥ forp∈premdo

⑦ (bp,cp)←sgx_rekey_partition(p)

⑧yp←sgx_aes(sgx_sha(bp),Sk)

⑨ sealed_Sk←sgx_seal(Sk)

⑩ Update:(1)〈?ui∈prem,yrem,crem〉

5 性能分析

5.1 理論分析

5.1.1 PBAA-SGX的計算復雜度分析

和原始PBAA方案相比,PBAA-SGX通過SGX技術以及子群劃分機制的引入,各階段操作的復雜度均有明顯降低。理論分析結果如表 1所示,表中S和|S|表示用戶集合以及用戶數量,S′和|S′|代表能解密重加密數據的用戶集合以及對應的用戶數量,p和|p|分別為用戶群劃分后的子群集合以及其中子群的用戶數量。

表1 PBAA-SGX與PBAA各操作計算復雜度比較

原版 PBAA 在系統設置方面,其計算復雜度和用戶群數量有關,即O(|S|)。PBAA-SGX 針對各個子群分別執行Setup算法,計算復雜度可視為O(|p|)。兩種機制在用戶注冊階段復雜度一致,均為常數級復雜度。對于加密階段,原始 PBAA 方案需要完成大量類似于式(3)中Cg結構的計算,由于涉及多項式展開操作,因此計算復雜度為O(|S|2)。PBAA-SGX方案在管理服務器(參見圖1)的SGX Enclave中來執行加密操作。主密鑰MSK、用戶注冊時獲取的SKID在Enclave中均以明文的方式存在。因此,PBAA-SGX 可以直接用式(3)左邊部分完成計算,而不用通過多項式展開,因此時間復雜度降低至O(|S|)。此外,由于子群劃分機制的引入,時間復雜度可進一步降低至O(|p|)。

對于解密階段、委托密鑰生成階段以及密文重加密階段,由于PBAA-SGX方案可以直接訪問位于SGX Enclave中的敏感數據,因此和加密階段時間復雜度分析類似,在SGX技術和子群劃分機制的協同作用下,時間復雜度降低至O(|p|)。對于原始密文解密階段和重加密密文解密階段,原始PBAA方案和PBAA-SGX 都必須通過執行多項式展開操作來完成解密,但是PBAA-SGX通過子群劃分,可以將時間復雜度從O(|S|2)降低為O(|p|2)。

5.2 仿真實驗分析

筆者提出的方案,在Intel SGX SDK(version 2.5)、適配Intel SGX的PBC函數庫以及GMP函數庫基礎上,采用C/C++語言實現。實驗環境為配備有Intel(R) i7-7700k CPU和16 GB內存的Ubuntu18.04 64位操作系統。實驗分析將比較在相同用戶數量的情況下,當管理服務器采用原版PBAA方案,與采用基于子群劃分的PBAA-SGX方案,在不同操作下的時間開銷。實驗部分采用簡單的均分的子群劃分策略,下述的p代表用戶分區中的最多用戶數量,主要考慮p=500和p=1 000兩種情況。采用共享數據用戶數量逐漸增加的方式進行實驗。

5.2.1 系統設置階段的時間開銷

圖3展示了PBAA方案,子群大小為1 000的PBAA-SGX方案以及子群大小為500的PBAA-SGX方案,在系統設置階段的時間消耗對比結果??梢杂^察到,原始的PBAA方案在系統設置階段需要的時間與最大共享用戶數量呈線性關系。采用子群劃分的PBAA-SGX方案在系統初始化階段,其消耗時間基本保持不變,因為其計算復雜度與子群的最大容量有關,并且子群用戶越少,時間消耗越少。

此外,當子群大小為1 000且最大共享用戶數量在2 000以內時,PBAA-SGX在系統設置階段時間開銷明顯高于原始PBAA方案,這是由于PBAA-SGX方案使用SGX技術引入了額外的開銷。PBAA-SGX系統設置階段運行在SGX Enclave中,因此創建和初始化Enclave區域需要額外時間開銷。此外,系統設置執行過程,Enclave和非可信部分的交互也會導致所需計算時間的增加。但是當用戶數量大于2 000時,可以觀察到PBAA-SGX在此階段所需的計算時間低于原始PBAA方案。

需要指出的是,SGX技術雖然會引入一定的開銷(主要體現在系統設置,即初始化階段,且開銷增加完全可以接受),但換取了后續其他群組成員動態管理操作上時,時間復雜度大幅優化。

5.2.2 加密密鑰生成階段的計算時間開銷

圖4展示了原始的PBAA方案、p=1 000的PBAA-SGX方案以及p=500的PBAA-SGX方案在加密密鑰生成階段的時間消耗。由于原始PBAA方案在加密密鑰生成階段計算復雜度為O(|S|2),因此其為數據共享用戶集合生成群密鑰的時間隨著用戶數量的增加而急速增加。在PBAA-SGX方案中,在SGX技術和子群劃分技術的協同作用下,此操作的時間復雜度降低至O(|p|),其中,p為子群容量。因此 PBAA-SGX方案在此階段的計算開銷,相對于原始PBAA方案要少很多,尤其是在用戶數量較大時,PBAA-SGX方案的優勢更加明顯。

此外,系統在設置階段需要設定較大的N值,以盡可能避免出現群成員動態管理中(例如:不斷增添新的共享成員)實際需要共享人數大于N的情況。由圖4可知,較大的N值會導致加密群共享密鑰時間復雜度的大幅提升,而PBAA-SGX則能更好地應對這一問題。

5.2.3 委托密鑰生成和重加密階段的計算時間開銷

圖 5和圖 6分別展示了原始PBAA方案、分區大小為1 000的PBAA-SGX方案以及分區大小為500的PBAA-SGX方案,在委托密鑰生成階段以及密文重加密階段的時間開銷。明顯可以看出,在此階段PBAA-SGX方案相較于原始的PBAA方案,在時間開銷方面具有顯著的優勢,可以更好地支持密文數據大規模群體共享。

5.2.4 解密階段的時間開銷

圖 7和圖 8分別展示了原始PBAA方案、分區大小為1 000的PBAA-SGX方案以及分區大小為500的PBAA-SGX方案,對原始密文解密以及重加密密文解密的時間消耗。在此階段原始PBAA方案與PBAA-SGX方案的時間復雜度分別為O(|S|2)和O(|p|2)。但PBAA-SGX方案中引入了子群劃分機制,使得用戶解密的時間復雜度,只依賴于子群大小,而不隨著用戶數量的增多而改變,因此在用戶數量較多時,PBAA-SGX方案所消耗的時間會遠遠小于原始PBAA方案。

6 結束語

針對加密云數據群組訪問控制這一問題,筆者基于文獻中現有的PBAA方案,提出了PBAA-SGX方案。PBAA-SGX通過引入Intel SGX可信計算技術以及子群劃分機制,在CSP平臺上提供了輕量且靈活的群組訪問控制功能。實驗結果表明,相較于PBAA方案,PBAA-SGX方案計算復雜度得到了極大降低,實現以低計算開銷、細粒度的加密云存儲數據的訪問控制。在后續研究中,擬在文中的基礎上增加子群大小動態調整機制,探尋業務感知的子群劃分機制,進一步提升云平臺數據的動態群組訪問控制的靈活性。

猜你喜歡
子群訪問控制密文
一種針對格基后量子密碼的能量側信道分析框架
超聚焦子群是16階初等交換群的塊
一種支持動態更新的可排名密文搜索方案
基于模糊數學的通信網絡密文信息差錯恢復
子群的核平凡或正規閉包極大的有限p群
ONVIF的全新主張:一致性及最訪問控制的Profile A
動態自適應訪問控制模型
淺析云計算環境下等級保護訪問控制測評技術
大數據平臺訪問控制方法的設計與實現
恰有11個極大子群的有限冪零群
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合