羅王平 , 馮朝勝 , 秦志光 , 袁 丁 , 廖娟平 , 劉 霞
1(四川師范大學 計算機科學學院,四川 成都 610101)
2(網(wǎng)絡與數(shù)據(jù)安全四川省重點實驗室(電子科技大學),四川 成都 610054)
對于企業(yè)信息中心而言,如果要將數(shù)據(jù)存儲外包給公有云并同時保證數(shù)據(jù)安全性和隱私性,一般做法為:將數(shù)據(jù)加密后再上傳到云端.但如果企業(yè)信息中心還想利用這種外包模式構建文件共享框架,問題將變得非常復雜.
解決外包云數(shù)據(jù)共享的一般方案是:用每個共享用戶的公鑰加密數(shù)據(jù)加密密鑰,然后將加了密的數(shù)據(jù)加密密鑰發(fā)送給共享者.顯然,這種方法的代價過大:計算量和通信量都和共享用戶的數(shù)量成正比,使得它難以實施.針對這個問題,學術界提出了一種稱為密文策略的基于屬性的加密算法CP-ABE(ciphertext-policy attribute-based encryption).由于該算法包含的訪問控制方法類似于企業(yè)信息系統(tǒng)常用的基于角色訪問控制方法RBAC(rolebased access control),且具有“一次加密,多人分享”的特點,因此,在外包數(shù)據(jù)共享中具有可實施性.然而,該算法要求運算量較大的加解密運算都由用戶客戶端負責且由較多私鑰子項組成的用戶私鑰也都由用戶保管,這對其實施特別是在移動設備上的實施造成阻礙.針對這一問題,利用公有云中的云計算服務器來分擔大量的計算工作和存儲全部用戶私鑰,提出一種面向公有云環(huán)境的密文共享方案.本文的具體貢獻包括:
(1) 提出一種面向公有云的文件共享框架.在該框架中,共享數(shù)據(jù)的數(shù)據(jù)加密密鑰先要基于安全存儲訪問結構樹在用戶客戶端進行加密.共享時,由云服務器分擔近一半文件共享訪問結構樹對應密文子項的計算.訪問結構樹的葉子節(jié)點不僅可以對應屬性,還可以直接對應用戶標識符,使得該方案同時支持基于屬性的共享和基于身份的共享.
(2) 設計一種面向公有云的文件共享方案.基于所提出的文件共享框架和經(jīng)典的CP-ABE 算法,設計一種具體的可實施的面向公有云的文件共享方案.在該方案中,構成用戶私鑰的絕大多數(shù)私鑰子項由云服務器進行存儲,用戶只需要安全存儲兩個私鑰子項.
(3) 證明方案的有效性.安全性分析表明,所提出的方案和經(jīng)典的CP-ABE 具有相同的安全性.性能分析則表明,該方案在計算量和存儲量上對用戶客戶端要求很低,個人電腦和移動設備亦能勝任.
本文首先指出云密文共享存在的主要問題及解決思路并說明主要貢獻.第1 節(jié)對密文策略基于屬性加密算法的研究現(xiàn)狀進行總結,并分析其優(yōu)缺點.第2 節(jié)提出一種面向公有云的密文共享框架.第3 節(jié)基于所提出的共享框架,構建一種面向公有云的密文共享方案.第4 節(jié)從安全性和性能上對所提出的共享方案進行分析.第5節(jié)對本文方案進行實驗分析.最后對本文進行總結.
Bethencourt 等人[1]率先提出CP-ABE 的構造方法.該算法包括初始化、密鑰生成、加密和解密4 個基本部分.他們證明了所提出的方案在一般群模型和隨機預言模型下是可以對抗選擇明文攻擊的,同時還證明了它可以抵御合謀攻擊.2007 年,針對Bethencourt 等人方案的訪問策略不支持“NOT”邏輯運算的問題,Cheung 等人[2]將屬性分成正、負和不相關3 種狀態(tài),率先實現(xiàn)在CP-ABE 方案中支持“NOT”邏輯運算.但他們的方案卻不能支持“OR”邏輯運算.2008 年,Goyal 等人針對Bethencourt 等人所提出算法的安全性僅僅建立在一般群模型上以及Cheung 等人的方案雖然將安全性擴展到d-BDH(decisional bilinear Diffie-Hellman)假設條件但訪問策略僅能支持“AND”邏輯運算這一不足,提出一種有界CP-ABE 算法[3].該算法與以往算法顯著不同是:密文與訪問樹關聯(lián),密鑰和訪問樹關聯(lián),這使得算法在d-BDH 假設條件下支持“AND”和“OR”運算,但也使得該算法過于復雜而無法實施.Bobba 等人[4]對基于屬性的算法進行擴展,提出了密鑰策略的基于屬性集的加密算法CP-ASBE(ciphertextpolicy attribute-set based encryption).與CP-ABE 不同的是:分配給用戶的數(shù)據(jù)集的元素本身可以不是屬性而是屬性子集;支持給用戶分配多個一樣的屬性但這些屬性分屬不同的屬性子集(同一屬性子集不能出現(xiàn)相同的屬性).與CP-ABE 相比,CP-ASBE 能夠處理更復雜的用戶屬性結構和訪問控制邏輯,因而更加靈活,應用價值更大.但無論是用戶屬性的分配、訪問結構樹的構建,還是解密操作,該算法都過于復雜,特別是當用戶屬性結構深度超過2 時,方案的復雜程度會大為增加.2011 年,Water 等人[5]發(fā)現(xiàn),KP-ABE(key-policy attribute-based encryption)方案之所以較容易實現(xiàn)在d-BDH 假設條件下的安全,主要原因在于密文和屬性關聯(lián)使得僅根據(jù)是否在密文屬性集中就能實現(xiàn)屬性公開參數(shù)的不同處理;而在CP-ABE 中,密文關聯(lián)的是復雜得多的訪問策略(同一屬性可能會多次出現(xiàn)),這使得屬性公開參數(shù)的區(qū)別處理變得十分困難.鑒于此,Bethencourt 等人的方案[1]的安全性基于GGM(generic group model),而Goyal 等人[3]的方案需要將CP-ABE 轉變?yōu)镵P-ABE 才能實現(xiàn)d-BDH 假設條件下的安全.考慮到任何訪問策略都可以表示成樹,而任何樹都可以轉變?yōu)長SSS(linear secret sharing scheme)[6,7],他們提出基于LSSS 的CP-ABE 方案.在他們方案中,使用矩陣實現(xiàn)訪問策略和秘密共享,矩陣的每一行都和一個屬性關聯(lián).只有滿足訪問策略的用戶私鑰才能恢復秘密共享數(shù),進而解密密文.該方案的安全性基于d-BDH 假設,在效率上也有較大的提升[8].2013 年,Balu 等人[9]針對Water 等人的方案存在訪問策略中屬性重復需要專門方法處理且重復出現(xiàn)次數(shù)有限制這一問題,提出在CP-ABE 方案中用線性整數(shù)秘密共享方案LISS(linear integer secret scheme)代替LSSS 并給出了構建共享矩陣的3 個原則.LISS 和LSSS 一樣能夠表示任意訪問策略,但其不是在有限群上而是在整數(shù)區(qū)間上實現(xiàn)秘密共享且效率比LSSS 更高.其方案的安全性同樣基于d-BDH 假設.2010 年,Yu 等人考慮到:在ABE 的多數(shù)實際應用場景中,數(shù)據(jù)存儲服務器一般是半可信的且始終在線,將代理加密技術引入到CP-ABE 中,提出利用外包環(huán)境中的服務器來輔助用戶屬性撤銷的CP-ABE 方案[10].該方案在屬性的狀態(tài)上效仿Cheung 等人的方案[2],要求用3 倍于屬性空間的數(shù)來描所有屬性的正、負、不相關3 種狀態(tài),要求用戶存儲的密鑰子項數(shù)量等于屬性空間大小,消耗了大量空間,增加了用戶密鑰管理負擔.文獻[11]針對已有的直接撤銷模式的CP-ABE 方案基本都是基于身份進行撤銷即通過撤銷用戶所擁有的全部屬性來撤銷用戶密文訪問權限而無法實現(xiàn)對某一個或幾個屬性撤銷的問題,在合數(shù)階雙線性群上,基于雙系統(tǒng)加密的思想,提出一種支持完全細粒度屬性撤銷的CP-ABE 方案并證明該方案在標準模型下是安全的.該方案建立在合數(shù)階群上,增加了方案的復雜性;公鑰參數(shù)數(shù)量隨用戶數(shù)量線性增加也是其不足.2011 年,Hur 等人針對授權機構可以解密任何密文的問題,他們將兩方計算2PC(two party computation)協(xié)議引入到密鑰的生成過程中,為每個用戶生成標志參數(shù);授權機構和數(shù)據(jù)存儲中心基于該協(xié)議生成密鑰生成參數(shù),兩個機構分別生成部分密鑰子項[12].這一改變使得授權機構和數(shù)據(jù)存儲中心都無法單獨生成用戶密鑰,進而也就無法解密任一密文.文獻[13]結合云計算的特點對CP-ASBE 進行了改進,提出一種基于云計算環(huán)境的分層的CP-ASBE 方案,即CP-HASBE(ciphertextpolicy hierarchical attribute-set based encryption).在密鑰管理和密鑰分配上,該方案沒有給出效率較高的方法,密鑰分配非常麻煩,用戶需要自己管理的密鑰數(shù)據(jù)較多.在云計算的利用上,該方案只利用了云的存儲能力,而沒有利用云的計算能力.2014 年,文獻[14]提出一種面向云中大數(shù)據(jù)的支持訪問控制策略動態(tài)更新的CP-ABE.該文獻針對3 種類型的訪問策略即單調(diào)的訪問控制樹、基于線性秘密共享方案的訪問結構和一般的具有門限功能的訪問控制樹,分別設計了策略動態(tài)更新算法.該方案之所以能夠實現(xiàn)策略的動態(tài)更新,要點之一是加密方保存了數(shù)據(jù)加密時產(chǎn)生的隨機數(shù),而這些隨機數(shù)正是新舊策略聯(lián)系的紐帶.該方案的另一大優(yōu)勢是充分利用了云計算服務器的存儲能力和計算能力.但是,為實現(xiàn)動態(tài)策略更新要求保存大量隨機數(shù)給數(shù)據(jù)所有者帶來很大負擔,特別是在文件較多的情況下.
從上面的分析不難發(fā)現(xiàn),已有的密文共享還存在諸多問題,用戶客戶端計算量過大、密鑰保存量過多和只支持基于屬性的共享而不支持基于身份的共享是其中3 個比較突出的問題.
針對用戶客戶端計算量過大、密鑰存儲量過多的問題,將授權中心標識符作為特殊屬性引入到用戶屬性中.為授權中心標識符生成密鑰子項,該子項利用安全信道發(fā)送給用戶秘密保存.改造訪問結構樹:根節(jié)點操作符為“AND”,左子樹為反映訪問邏輯表達式的屬性樹或用戶身份標識符對應的葉子節(jié)點,而根節(jié)點的右子樹為葉子節(jié)點,與授權中心標識符對應.
改造后,將主要的計算和存儲遷移到云端,除授權中心標識外所有用戶屬性對應的密鑰子項都存儲在云端.加密時,客戶端只負責近一半密文子項的生成,另一半則由云服務器完成.解密時,除授權中心標識符對應的密文子項需要由用戶客戶端解密完成外,其他解密工作都外包給云服務器.所有密文子項也全部存儲在云服務器上.由于缺少授權中心標識符對應的密鑰子項這一關鍵數(shù)據(jù),云服務器無法解密存放在其上的任何密文數(shù)據(jù).
針對已有CP-ABE 方案的密文共享只能基于屬性而無法針對個人用戶,將身份標識符作為特殊屬性加入到用戶個人屬性中.在用戶私鑰分配時,給用戶身份標識符分配相應的密鑰子項.在創(chuàng)建訪問結構時,利用用戶屬性或身份標識符構建訪問結構樹.構建訪問結構樹時,如果只使用用戶屬性,則和以前基于屬性的密文共享方式一樣,實現(xiàn)的是基于角色的訪問控制;如果只使用用戶標識符屬性,就屬于基于個人身份的共享,實現(xiàn)的是基于身份的訪問控制;如果既有用戶屬性又有個人屬性,則屬于既包含屬性授權又包含個人授權的混合訪問授權.
在面向公有云的密文共享框架中,主要包括授權中心、云服務器、數(shù)據(jù)所有者和用戶,如圖1 所示.授權中心位于企業(yè)可信域中,負責用戶密鑰的生成、分配、更新和撤銷.云服務器位于云域,負責密文和用戶私鑰的存儲.用戶,可能在可信域中也可能在不可信域中,或作為數(shù)據(jù)所有者,利用客戶端加密數(shù)據(jù)后上傳到云端保存;或作為數(shù)據(jù)共享者,從云端讀取并解密授權共享密文.在本文中,假設云服務器是半可信的(會忠實執(zhí)行用戶要求的操作,但也可能利用自己所擁有的數(shù)據(jù)甚至和惡意用戶合謀去解密非授權密文).
Fig.1 Ciphertext-sharing framework for public cloud圖1 面向公有云的密文共享框架
先用對稱加密算法對共享文件的數(shù)據(jù)進行加密,再采用ABE 算法對數(shù)據(jù)加密密鑰進行加密.
在已有的密文共享方案中,幾乎都采取的是文件加密和密文共享同時在用戶客戶端進行的方式,而在實際的文件共享中,無論文件是否需要加密,都是先要將文件上傳到存儲服務器,再進行文件共享.基于該事實,將文件共享分成前后相隨的兩個階段:文件安全存儲和密文共享,下面分別進行說明.
(1) 文件安全存儲
敏感文件在共享前,需要先存儲到云端.為確保文件數(shù)據(jù)的機密性,需要對數(shù)據(jù)進行加密.這里,也采用CP-ABE 進行加密,訪問結構如圖2 所示,uidi和uid0分別為數(shù)據(jù)所有者標識符和授權中心標識符.在共享前,由于能夠匹配密文訪問結構樹的只有數(shù)據(jù)所有者,故只有他能夠解密數(shù)據(jù).
Fig.2 Access tree of secure storage of cloud file圖2 云文件安全存儲訪問結構樹
(2) 密文共享
為實現(xiàn)共享,數(shù)據(jù)所有者首先根據(jù)訪問策略或訪問邏輯表達式構建文件共享訪問結構樹;然后,根據(jù)共享訪問結構樹計算各葉子節(jié)點的秘密共享數(shù);最后計算每個葉子節(jié)點對應的兩個密文子項中的一個.將文件共享結構樹和葉子節(jié)點對應的一半密文子項以及用于計算另一半密文子項的相關數(shù)據(jù)上傳到云端.
云服務器根據(jù)安全存儲訪問結構樹和文件共享結構樹構造云文件共享訪問結構樹(如圖3 所示).基于安全存儲訪問結構樹和文件共享訪問結構樹,構造云文件訪問結構樹的具體過程為:生成“OR”節(jié)點,用其替代安全存儲訪問結構樹中代表數(shù)據(jù)所有者的用戶標識符屬性對應的節(jié)點,而用戶標識符屬性對應的葉子節(jié)點成為這個新建“OR”節(jié)點的左孩子,文件共享訪問結構樹則成為這個新建“OR”節(jié)點的右子樹.圖3 中的文件共享訪問結構樹表達的是能夠訪問密文的用戶:要么是計算機學院云計算實驗室的教師(基于屬性的訪問控制),要么是身份標識符UID 的值為uidj或uidk的計算機學院教師(基于身份的訪問控制).云文件共享訪問結構樹除包含文件共享訪問結構樹的邏輯外,還允許數(shù)據(jù)所有者訪問自己以密文形式存儲在云端的數(shù)據(jù).
云服務器還要利用數(shù)據(jù)所有者上傳的相關數(shù)據(jù),完成另一半密文子項的計算.
Fig.3 Access tree of cloud file sharing圖3 云文件共享訪問結構樹
和一般的ABE 方案一樣,面向公有云的安全文件共享方案也包括初始化、私鑰生成、加密和解密4 個模塊.
(1) 初始化:Setup(A,AID,d)
d為安全參數(shù).授權中心選擇一個階為大素數(shù)p的雙線性群G0和G1,記G0的生成元為g,對應的雙線性映射為e:G0×G0→G1.定義系統(tǒng)所需的屬性空間A={a1,a2,…,an},和用戶身份空間AID={uid0,uid1,uid2,…,uidm}(uid0為授權中心標識符),定義一個哈希函數(shù)H:{0,1}*→G0.最后隨機選擇,將如下系統(tǒng)公鑰信息發(fā)往云服務器并公開:
授權中心秘密保存主私鑰:MK={gα,β}.
(2) 生成用戶私鑰:KeyGen(w,MK)
授權中心為用戶Ui分配一對公私鑰,將發(fā)往云服務器并公開,SEKuidi由用戶秘密保存.
設用戶Ui對應的屬性集合為w′?A,令用戶屬性身份集(分別為授權中心和用戶的標識符).隨機選擇;對于每個元素aj∈w,隨機選擇.生成的私鑰如下:
將uid0對應的私鑰子項通過安全信道發(fā)送給用戶秘密保存,將其他私鑰子項保存在云端的用戶私鑰表中.
(3) 加密:Encrypt(m,T,PK)
數(shù)據(jù)所有者Ui構造安全存儲訪問結構樹T(如圖2 所示).在需要共享時,將T改造為云文件共享訪問結構樹(如圖3 所示).
①文件安全存儲
設需要安全存儲的文件為f.用戶客戶端使用對稱加密算法(如AES)和數(shù)據(jù)加密密鑰kf加密文件得數(shù)據(jù)密文Ekf(f).為安全存儲訪問結構樹T根節(jié)點隨機選擇一個一元一次多項式Qr(x)和,使得s=Qr(0)且Qr(1)和Qr(2)分別為其左右子樹根節(jié)點的取值.然后計算數(shù)據(jù)加密密鑰的密文如下:
用戶客戶端將Ekf(f)、CT和Qr(1)的密文一起上傳保存到云端.
② 密文共享
在文件共享階段,數(shù)據(jù)所有者根據(jù)訪問邏輯表達式構建文件共享訪問結構樹T′.為在訪問結構樹T′中每個操作符為“AND”的非葉子節(jié)點x隨機選擇一個一元多項式函數(shù)Qx(x).令T′的根節(jié)點對應的秘密共享數(shù)為Qr(1)(用解密求得).對于任意節(jié)點x且其父節(jié)點操作符為“AND”,,index(x)為x在兄弟中的序號(從左往右進行編號);對于任意節(jié)點x且父節(jié)點操作符為“OR”,.按照以上方式從上至下最終可以為每個葉子節(jié)點賦值表示T′葉子節(jié)點的集合.隨機選擇,計算用戶共享密文子項:
其中,att()用來求葉子節(jié)點對應的屬性.將CT′和上傳到云端.
云服務器先利用T′將T改造為云文件共享訪問結構樹.計算T′對應的云共享密文子項:
kf完整的共享密文如下:
(4) 解密:Decrypt(CT,SK)
解密時,先在云服務器上完成部分解密,再在用戶客戶端上完成最后的解密工作.
①云服務器解密
共享情況下解密基于T′,葉子節(jié)點和非葉子節(jié)點有著不同的解密算法.
對于葉子節(jié)點x(aj=att(x)),其解密算法為
對于非葉子節(jié)點x,解密算法為
安全存儲情況下只對用戶標識符對應的葉子節(jié)點解密,其解密算法同于上面葉子節(jié)點解密算法,解密結果為:
② 用戶客戶端解密
用戶再利用kf將文件密文進行解密以恢復文件f.
采用和Bethencourt 等人提出原始方案(下面稱作BSW 方案)進行對比來分析所提出方案的安全性.和BSW方案相比,所提出方案向云服務器多暴露了所有用戶除授權中心標識符外其他所有屬性對應的私鑰子項.下面通過兩個挑戰(zhàn)游戲證明方案能夠確保數(shù)據(jù)的機密性.
游戲0:BSW 方案采用的安全游戲.
游戲1:基于本文所提出方案開展的游戲.與BSW 方案相比,攻擊者還擁有所有用戶的除授權中心標識符外其他所有屬性對應的私鑰子項;攻擊者還可以從授權中心獲得指定屬性身份集(不滿足密文訪問策略)的私鑰.
引理.攻擊者贏得游戲1 和贏得游戲0 的優(yōu)勢是一樣.
證明:在安全游戲中,攻擊者(含云服務器在內(nèi)的惡意用戶)向挑戰(zhàn)者(數(shù)據(jù)所有者)提交兩個等長的消息m0和m1.挑戰(zhàn)者隨機從{0,1}中選擇一個數(shù)(記為b),加密mb并將其密文E發(fā)回給攻擊者.攻擊者根據(jù)自身擁有的信息猜測E是m0還是m1的密文.設攻擊者的猜測值為b′,如果猜中即b=b′,攻擊者贏得游戲.如果攻擊者每次猜中的概率與猜不中的概率的差值可忽略不計,則稱為以可忽略優(yōu)勢贏得游戲即可抵御選擇明文攻擊;否則,稱作以不可忽視優(yōu)勢贏得游戲即不可抵御選擇明文攻擊.
用多項式時間算法A和B分別表示游戲1 和游戲0 的攻擊者.
Begin
假設前m次密鑰查詢使用的屬性身份集剛好對應于m個用戶的屬性身份集(不包括數(shù)據(jù)所有者身份標識符);
End
由算法B可知,算法A贏得游戲1 的優(yōu)勢并不比算法B高,當然也不會比B低(因為知道更多信息),故算法A和算法B有著一樣的優(yōu)勢.因此,攻擊者贏得游戲1 和贏得游戲0 的優(yōu)勢是一樣.□
定理.本文所提出的方案,在一般群模型和隨機預言模型下可抵御選擇明文攻擊.
證明:如引理所證,攻擊者贏得游戲1 和贏得游戲0 的優(yōu)勢是一樣的,而Bethencourt 等人已經(jīng)證明在一般群模型和隨機預言模型下,攻擊者贏得游戲0 的優(yōu)勢可忽略不計,故在同樣條件下,攻擊者贏得游戲1 的優(yōu)勢同樣可忽略不計.所以本文所提出的方案,即使多個用戶合謀或云服務器與用戶合謀,在一般群模型和隨機預言模型下可抵御選擇明文攻擊.□
下面從計算和存儲兩個方面討論所提出方案的性能.
(1) 計算性能
由于數(shù)據(jù)處理時,最耗費時間的運算依次是雙線性運算B和指數(shù)運算E,所以用這2 個指標來衡量性能.
解密時,客戶端解密一次葉子節(jié)點(與授權中心標識符對應)的計算代價為2B.解密云共享文件訪問結構樹根節(jié)點的代價為2E,完成最后的解密代價為1B,故用戶客戶端解密總的計算代價為3B+2E.數(shù)據(jù)所有者解密時,云服務器只需對一個葉子節(jié)點即uidi對應的密文子項進行解密,計算代價為2B.共享者解密時,在非葉子節(jié)點對應邏輯操作都為“AND”的情況下,云服務器解密文件共享訪問結構樹T′的每個節(jié)點(根除外)都要參與一次指數(shù)運算,故云服務器的計算代價為2(|TL|-2)B+(|T|-3)E.BSW 方案與本文所提出方案在用戶客戶端的計算代價比較見表1.
Table 1 Comparison of user client computing overhead表1 用戶客戶端計算開銷對比
(2) 存儲性能
在所提出的方案中,無論是用戶私鑰還是用戶數(shù)據(jù)都以外包形式存放在公有云上,用戶唯一需要安全保存的是授權中心分配給他的與授權中心標識對應的私鑰子項,大大減輕了密鑰管理的負擔.云服務器負責管理其他用戶私鑰子項,所需存儲空間大小與用戶所擁有的屬性數(shù)量成線性關系.對某一個文件,采用本方案需要的密文存儲空間和采用基本CP-ABE 方案需要的存儲空間相當,只是多了兩個密文子項(需要4 個群元素的存儲空間),分別和用戶標識符與授權中心標識符對應.
利用雙線性對加密庫(http://crypto.stanford.edu/pbc/)和CP-ABE 開發(fā)工具包(http://acsc.csl.sri.com/cpabe/),基于本文所提出方案在Hadoop 環(huán)境下實現(xiàn)了一個面向公有云的密文共享系統(tǒng)并進行性能實驗.實驗使用的虛擬機配置為:1 個Intel(R) Xeon(R) CPU(E5-2620 2.0GHZ);內(nèi)存1GB;系統(tǒng)CentOS6.5 64 位.所有算法采用Java語言編寫,雙線性映射和冪運算等有關橢圓曲線加密的操作均來自雙線性對加密庫JPBC.所實現(xiàn)的系統(tǒng)采用160 位橢圓曲線群,橢圓曲線為512 位有限域上的超奇異橢圓曲線y2=x3+x.
加密和解密實驗分別針對BSW 方案和本文方案各進行20 輪,每輪使用相同大小的數(shù)據(jù)和相同的文件訪問結構樹(為方便比較,訪問結構樹的非葉子節(jié)點對應的邏輯運算均取為“AND”);每輪實驗進行20 次,取20 次實驗的平均值為最終實驗結果.訪問結構樹葉子節(jié)點數(shù)量依輪次遞增,前 10 輪實驗加密時間對比見表2.
Table 2 Comparison of experimental data of encryption time表2 加密時間實驗數(shù)據(jù)對比
從實驗數(shù)據(jù)可以看出,BSW 方案客戶端和本文方案加密時間都隨著葉子節(jié)點數(shù)量不斷增加,加密時間與葉子節(jié)點數(shù)量呈線性關系(如圖4 所示),但本文方案的加密時間更短.隨著葉子節(jié)點數(shù)量增加,二者加密時間的差距增大即本文方案節(jié)約的時間增多,這和上一節(jié)所作的性能分析結果是一致的.
Fig.4 Comparison chart of encryption time圖4 加密時間的對比圖
解密前10 輪實驗解密時間(客戶端)對比見表3.
Table 3 Comparison of experimental data of decryption time表3 解密時間實驗數(shù)據(jù)對比
從實驗結果(如圖5 所示)可以看出,BSW 方案解密時間隨用戶與訪問結構樹匹配屬性數(shù)增加而線性增加,而本文方案客戶端解密時間比較穩(wěn)定,在42ms 左右,這使得一般個人電腦、平板電腦和手機(和實驗虛擬機配置相當)也能較快地解密共享密文.
Fig.5 Comparison chart of decryption time圖5 解密時間的對比圖
由于實現(xiàn)了細粒度的訪問控制和在密文共享上具有“一對多”的顯著優(yōu)勢,加之和企業(yè)信息系統(tǒng)廣泛采用的基于角色訪問控制方法相似,CP-ABE 可能成為企業(yè)外包云密文數(shù)據(jù)共享的重要訪問控制方法.然而,已有的基于CP-ABE 的密文共享方案存在客戶端計算量過大、用戶管理密鑰過多、不支持個人共享等問題.考慮到公有云強大的計算能力和存儲能力,將公有云引入到密文共享方案的設計之中,提出一種面向公有云的安全文件共享框架,基于該框架設計一種面向公有云的密文共享方案.該方案將絕大多數(shù)計算和存儲都外包給公有云,用戶只需保存兩個空間占用很小的私鑰子項且客戶端只需進行少量計算就能完成共享文件的解密.安全性分析表明,該方案在不僅能夠對抗惡意用戶的合謀攻擊,還能在一般群模型和隨機預言模型下對抗選擇明文攻擊.