李春花 王 樺 張彥哲 周 可
(武漢光電國(guó)家實(shí)驗(yàn)室(華中科技大學(xué)) 武漢 430074)
采用擴(kuò)展公鑰的云存儲(chǔ)廣播加密優(yōu)化方法
李春花 王 樺 張彥哲 周 可
(武漢光電國(guó)家實(shí)驗(yàn)室(華中科技大學(xué)) 武漢 430074)
(li.chunhua@hust.edu.cn)
基于廣播加密的云存儲(chǔ)系統(tǒng)受到研究者的關(guān)注.然而,基本的廣播加密方案不能適應(yīng)云存儲(chǔ)環(huán)境中用戶(hù)和權(quán)限的動(dòng)態(tài)變更情況.針對(duì)廣播加密中密鑰管理分發(fā)開(kāi)銷(xiāo)大的問(wèn)題,提出一種擴(kuò)展公鑰的廣播加密優(yōu)化方法,通過(guò)保留初始產(chǎn)生公鑰時(shí)使用的部分私有參數(shù),當(dāng)用戶(hù)加入或撤離系統(tǒng)時(shí),使用保留的私有參數(shù)產(chǎn)生新的公鑰來(lái)加密數(shù)據(jù).這樣,合法用戶(hù)仍可以使用之前已分發(fā)的私鑰解密新公鑰加密的數(shù)據(jù),從而避免了用戶(hù)動(dòng)態(tài)變化時(shí)公鑰的頻繁變化和密鑰的重復(fù)分發(fā).通過(guò)引入懶惰回收機(jī)制,降低了權(quán)限變更和密鑰定期更新帶來(lái)的開(kāi)銷(xiāo).測(cè)試結(jié)果表明:采用優(yōu)化方案后,增加用戶(hù)數(shù)量和權(quán)限撤銷(xiāo)時(shí),系統(tǒng)性能得到較大提高.
云存儲(chǔ);廣播加密;擴(kuò)展公鑰;密鑰管理;優(yōu)化
近年來(lái),云存儲(chǔ)因其價(jià)格低廉、部署方便、隨時(shí)隨地可用等優(yōu)點(diǎn)而成為信息領(lǐng)域的一大研究熱點(diǎn).然而,用戶(hù)將數(shù)據(jù)存放到云端之后便失去了對(duì)數(shù)據(jù)的直接控制,存放在云端的數(shù)據(jù)能否得到安全的管理和有效的訪問(wèn)控制一直是用戶(hù)擔(dān)憂(yōu)的問(wèn)題,尤其是近年來(lái)屢次出現(xiàn)的一些隱私泄露、數(shù)據(jù)丟失等安全事件,給云存儲(chǔ)系統(tǒng)的進(jìn)一步推廣應(yīng)用帶來(lái)了很大的阻礙[1-2].
數(shù)據(jù)加密技術(shù)是提高存儲(chǔ)系統(tǒng)安全和數(shù)據(jù)安全的一種基本方法,將數(shù)據(jù)在上傳到云端之前進(jìn)行加密可以有效地保護(hù)數(shù)據(jù)的機(jī)密性.云存儲(chǔ)系統(tǒng)中由于用戶(hù)群體廣泛、文件數(shù)量巨大,因此管理數(shù)據(jù)密鑰和會(huì)話(huà)密鑰非常復(fù)雜,加上云用戶(hù)時(shí)不時(shí)地加入和撤離系統(tǒng),導(dǎo)致密鑰更新頻繁,極大地影響了系統(tǒng)的性能.如何提高云存儲(chǔ)系統(tǒng)中密鑰管理的安全性、如何降低密鑰重分發(fā)的性能開(kāi)銷(xiāo)是云存儲(chǔ)安全研究的重要內(nèi)容之一.
已有的安全云存儲(chǔ)系統(tǒng)中針對(duì)密鑰的管理和分發(fā)提出了很多方法.Adya等人[3]提出一種無(wú)密鑰服務(wù)器的分布式文件系統(tǒng)FARSITE,他們采用對(duì)稱(chēng)密鑰加密文件,并用被授權(quán)用戶(hù)的公鑰加密對(duì)稱(chēng)密鑰后存儲(chǔ)在云端,這種方式在權(quán)限變更時(shí)計(jì)算開(kāi)銷(xiāo)較大.文獻(xiàn)[4]提出的Plutus系統(tǒng)中文件和目錄都進(jìn)行了加密,通過(guò)file-groups實(shí)現(xiàn)文件之間權(quán)限的共享,減少了分發(fā)密鑰的次數(shù);但是Plutus系統(tǒng)中用戶(hù)是直接向數(shù)據(jù)擁有者請(qǐng)求密鑰的,這樣不僅增加了數(shù)據(jù)擁有者的負(fù)載,更重要的是在數(shù)據(jù)擁有者離線(xiàn)時(shí)無(wú)法獲取文件訪問(wèn)權(quán)限,這種設(shè)計(jì)模式也使得權(quán)限的撤銷(xiāo)變得更加復(fù)雜.Goh等人[5]提出一種中間件形式的安全存儲(chǔ)系統(tǒng)SiRiUS,每個(gè)文件采用對(duì)稱(chēng)密鑰進(jìn)行加密,并用非對(duì)稱(chēng)密鑰進(jìn)行文件簽名,以確保文件的完整性.同時(shí)每個(gè)用戶(hù)擁有2個(gè)對(duì)應(yīng)的非對(duì)稱(chēng)密鑰用于加密文件密鑰和簽名密鑰,并存儲(chǔ)在元數(shù)據(jù)中以方便分發(fā).這種方法雖然結(jié)合了FARSITE和Plutus的優(yōu)點(diǎn),但并沒(méi)有克服密鑰重分發(fā)和帶寬開(kāi)銷(xiāo)較大問(wèn)題,其擴(kuò)展性不足以適應(yīng)云存儲(chǔ)環(huán)境.
文獻(xiàn)[6]提出的Cloudproof系統(tǒng)使用廣播加密機(jī)制進(jìn)行密鑰分發(fā),密鑰的管理比SiRiUS更加簡(jiǎn)單.同Plutus系統(tǒng)類(lèi)似,Cloudproof系統(tǒng)中也使用了群組的方式減少密鑰數(shù)量,采用block-group將權(quán)限相同的塊使用相同的密鑰加密,雖比Plutus訪問(wèn)控制粒度更細(xì),但并沒(méi)有解決撤銷(xiāo)權(quán)限時(shí)的開(kāi)銷(xiāo)問(wèn)題.而且,Cloudproof系統(tǒng)采用的是固定公鑰廣播加密方案,密文和私鑰的大小固定,但要求接收用戶(hù)集合在系統(tǒng)建立時(shí)就能唯一確定,此后若有用戶(hù)加入或離開(kāi),則計(jì)算開(kāi)銷(xiāo)會(huì)很大,因此無(wú)法適應(yīng)用戶(hù)變化頻繁的云存儲(chǔ)環(huán)境.文獻(xiàn)[7-8]提出了動(dòng)態(tài)廣播加密的概念,用戶(hù)可以在廣播系統(tǒng)建立之后再加入到系統(tǒng)中,但由于加解密時(shí)間開(kāi)銷(xiāo)較大,無(wú)法滿(mǎn)足云存儲(chǔ)系統(tǒng)的性能要求.文獻(xiàn)[9]提出一種使用多重線(xiàn)性映射方法解決公鑰廣播加密中長(zhǎng)期存在的性能開(kāi)銷(xiāo)問(wèn)題,但不能保證重新生成的隨機(jī)數(shù)是有效的,從而增加了系統(tǒng)的不穩(wěn)定性.
本文將在Cloudproof基礎(chǔ)上,對(duì)其使用的廣播加密方案進(jìn)行優(yōu)化,通過(guò)擴(kuò)展公鑰和保留系統(tǒng)初始階段產(chǎn)生公鑰時(shí)所使用的部分私有參數(shù)來(lái)提高密鑰管理的效率和權(quán)限變更時(shí)的性能.當(dāng)用戶(hù)加入或撤離系統(tǒng)時(shí)使用保留的私有參數(shù)產(chǎn)生新的公鑰來(lái)加密數(shù)據(jù),這樣已授權(quán)用戶(hù)仍可以使用之前分發(fā)的私鑰來(lái)解密采用新公鑰加密的數(shù)據(jù),從而避免了因用戶(hù)和權(quán)限的動(dòng)態(tài)變化而導(dǎo)致頻繁的公鑰變化和密鑰重分發(fā)等問(wèn)題.
廣播加密用于在廣播信道上傳輸加密的消息[10],通過(guò)廣播加密進(jìn)行加密的內(nèi)容只有加密時(shí)選定的授權(quán)用戶(hù)集合中的用戶(hù)才能正確解密.密鑰由數(shù)據(jù)擁有者管理,無(wú)需在系統(tǒng)中引入第三方,且數(shù)據(jù)擁有者不需要長(zhǎng)期在線(xiàn),大大簡(jiǎn)化了密鑰管理的復(fù)雜性.本文采用文獻(xiàn)[11]提出的公開(kāi)密鑰廣播加密方案(BGW方案),針對(duì)該方案應(yīng)用在云存儲(chǔ)環(huán)境中產(chǎn)生的問(wèn)題進(jìn)行優(yōu)化.
設(shè)G和G1是階為p的乘法循環(huán)群,g是群G的生成元,稱(chēng)映射e:G×G→G1為一個(gè)雙線(xiàn)性映射,如果e滿(mǎn)足3個(gè)性質(zhì):
1) 可計(jì)算性(computable).存在有效算法對(duì)?R,S∈G,計(jì)算e(R,S)的值.
2) 雙線(xiàn)性(bilinear).對(duì)于?R,S∈G和a,b∈Zp,都有換算關(guān)系:
e(Ra,Sb)=e(R,S)a b.
(1)
3) 非退化性(non-degelerate).
e(g,g)≠1.
(2)
映射過(guò)程中用到的一些數(shù)學(xué)符號(hào)定義如下:
Zp——模p的加法群{ 0,1,…,p};
G——包括G和G1,均是階為p的乘法循環(huán)群;
g——群G的生成元;
e( , )——雙線(xiàn)性映射.
在BGW方案中,一個(gè)廣播加密系統(tǒng)由3部分組成.
1) Setup(n).輸入接收者的數(shù)量n,輸出n個(gè)私鑰d1,d2,…,dn和公鑰PK.具體過(guò)程如下:
選取G的任意生成元g∈G和任意a∈Zp,對(duì)于i= 1,2,…,2n,計(jì)算g(αi)∈G,將g(αi)視作gi.選取任意γ∈Zp,計(jì)算v=gγ∈G,最終得到:
PK=(g,g1,…,gn,gn+2,…,g2n,v).
(3)
計(jì)算用戶(hù)私鑰:
(4)
2) Encrypt(S,PK).輸入一個(gè)接收者的子集S?{1,2,…,n}和公鑰PK,輸出 (Hdr,K).其中K作為對(duì)稱(chēng)密鑰用于加密,Hdr則是本次加密產(chǎn)生的公開(kāi)信息.具體過(guò)程為:
3) Decrypt(S,id,di,Hdr,PK).輸入公鑰PK、步驟2中輸入的S和產(chǎn)生的Hdr以及用戶(hù)的id和私鑰di,輸出K,用K解密數(shù)據(jù):
(5)
BGW方案中用戶(hù)需要存儲(chǔ)的私鑰di大小固定,加解密時(shí)都需要使用公鑰PK,公鑰大小為O(n),解密時(shí)還需要廣播頭Hdr,Hdr的大小固定,加解密的運(yùn)算量均為O(t)(與授權(quán)用戶(hù)數(shù)相關(guān)).
本節(jié)分析了基于廣播加密的密鑰分發(fā)基本方案,指出了其中的不足,在此基礎(chǔ)上提出了適用于云環(huán)境的廣播加密優(yōu)化方法.
在云存儲(chǔ)環(huán)境中使用廣播加密管理密鑰時(shí),系統(tǒng)由3部分構(gòu)成:云端、數(shù)據(jù)擁有者和普通用戶(hù).每個(gè)用戶(hù)都可以同時(shí)是數(shù)據(jù)擁有者和普通用戶(hù).
圖1描述了用戶(hù)與云端的交互過(guò)程。其中,用戶(hù)1對(duì)于其上傳到云端的文件來(lái)說(shuō)是數(shù)據(jù)擁有者,用戶(hù)2和用戶(hù)3可以向用戶(hù)1請(qǐng)求這些文件的訪問(wèn)權(quán)限,同時(shí)當(dāng)用戶(hù)1請(qǐng)求用戶(hù)2和用戶(hù)3的文件權(quán)限時(shí)又是普通用戶(hù).所有文件的權(quán)限都由對(duì)應(yīng)的文件上傳者管理,云端只負(fù)責(zé)接收文件的讀寫(xiě)請(qǐng)求,無(wú)法對(duì)沒(méi)有權(quán)限的用戶(hù)授權(quán),也無(wú)法獲取文件內(nèi)容.
Fig. 1 Interactive processes between the user and the cloud圖1 用戶(hù)和云端的交互過(guò)程
1) 區(qū)分文件讀寫(xiě)權(quán)限
數(shù)據(jù)擁有者上傳文件之前首先使用對(duì)稱(chēng)加密算法加密文件,加密文件使用的密鑰記作Ke;之后選取一對(duì)非對(duì)稱(chēng)加密體制中的公私鑰Kv和Ks,使用私鑰Ks對(duì)加密后的文件生成一個(gè)簽名Sig,并將簽名和Kv與文件一起上傳到云端.這樣數(shù)據(jù)擁有者就可以通過(guò)分發(fā)Ke和Ks的方式向用戶(hù)授予讀寫(xiě)權(quán)限.得到Ke的用戶(hù)可以解密出文件內(nèi)容,即擁有讀權(quán)限.用戶(hù)在每次修改文件內(nèi)容時(shí)需要使用Ke將文件重新加密,然后使用Ks重新生成簽名,云端需要在用戶(hù)每次提交讀請(qǐng)求時(shí)使用Kv檢查簽名是否正確,所以只有持有Ks的用戶(hù)擁有寫(xiě)權(quán)限.
2) 授予用戶(hù)權(quán)限
數(shù)據(jù)擁有者通過(guò)廣播加密將讀寫(xiě)密鑰分發(fā)給其他用戶(hù),選取擁有讀權(quán)限的用戶(hù)集合Sr和擁有寫(xiě)權(quán)限的用戶(hù)集合Sw,分別用2個(gè)集合為參數(shù)使用廣播加密將Ke和Ks加密,將加密后的Ke和Ks與文件一起上傳到云端,這樣有權(quán)限的用戶(hù)就可以通過(guò)自己事先從數(shù)據(jù)擁有者獲取到的廣播加密私鑰di解密出對(duì)應(yīng)的Ke或Ks,從而獲取文件的權(quán)限.撤銷(xiāo)用戶(hù)權(quán)限時(shí)需要先生成新的讀寫(xiě)密鑰,將對(duì)應(yīng)的密鑰重新使用廣播加密方案加密后上傳.如果更新了讀密鑰還需要重新加密文件.
在系統(tǒng)初始化之后,數(shù)據(jù)擁有者保存了公鑰PK和用戶(hù)數(shù)n,云端保存了公鑰PK,其他用戶(hù)只保存自己對(duì)應(yīng)的私鑰di.
在上傳某個(gè)文件之后,數(shù)據(jù)擁有者和其他用戶(hù)保存的內(nèi)容不變,而云端則需要額外存儲(chǔ)對(duì)應(yīng)的用戶(hù)集合Sr,Sw和廣播加密生成的公開(kāi)信息Hdr.
Fig. 2 Data format stored in the cloud圖2 存儲(chǔ)在云端的數(shù)據(jù)格式
從上述數(shù)據(jù)交互和密鑰分發(fā)的過(guò)程可以看出:用戶(hù)加入系統(tǒng)時(shí)需要獲取其他所有用戶(hù)分發(fā)的廣播加密私鑰,也需要向其他所有用戶(hù)分發(fā)廣播加密私鑰,導(dǎo)致空間開(kāi)銷(xiāo)和帶寬開(kāi)銷(xiāo)都很大.由于廣播加密的初始階段是根據(jù)當(dāng)前指定的用戶(hù)數(shù)進(jìn)行初始化的,新用戶(hù)加入系統(tǒng)必然引起所有用戶(hù)的重新初始化,此時(shí)產(chǎn)生的新私鑰和原有的私鑰不同,文件也需要重新加密,因此導(dǎo)致時(shí)間開(kāi)銷(xiāo)和帶寬開(kāi)銷(xiāo)都很大.針對(duì)以上問(wèn)題本文提出一種針對(duì)廣播加密的擴(kuò)展公鑰方法,以降低用戶(hù)數(shù)量變化時(shí)密鑰重分發(fā)引起的時(shí)間開(kāi)銷(xiāo)和帶寬開(kāi)銷(xiāo).
廣播加密系統(tǒng)中,用戶(hù)之間交互時(shí)由于相互存儲(chǔ)了對(duì)方提供的廣播加密私鑰,造成存儲(chǔ)空間的浪費(fèi),同時(shí)也增加了用戶(hù)分發(fā)私鑰的時(shí)間開(kāi)銷(xiāo).實(shí)際情況中用戶(hù)不會(huì)向所有其他用戶(hù)請(qǐng)求文件,因此,在用戶(hù)加入系統(tǒng)時(shí)可以不獲取所有私鑰,而是在第1次請(qǐng)求文件時(shí)數(shù)據(jù)擁有者才向他分發(fā)廣播加密私鑰,這樣不僅減少了用戶(hù)存儲(chǔ)的私鑰數(shù)量,也減少了分發(fā)私鑰的次數(shù),從而減少了網(wǎng)絡(luò)開(kāi)銷(xiāo).然而當(dāng)系統(tǒng)用戶(hù)數(shù)增加時(shí)仍然會(huì)產(chǎn)生重新初始化的問(wèn)題,針對(duì)此問(wèn)題本文提出一種擴(kuò)展公鑰的方法,在撤銷(xiāo)用戶(hù)權(quán)限時(shí)使用懶惰回收策略以減少文件重加密引起的開(kāi)銷(xiāo).
由2.1節(jié)可知,廣播加密公鑰PK和用戶(hù)私鑰di都是在系統(tǒng)初始化階段生成:
PK′=(g,g1,…,gn,gn+1,gn+3,…,
g2n,g2n+1,g2n+2,v),
在新公鑰中增加的gn+1會(huì)破壞原有公鑰的安全性,原有公鑰中的gn+2也會(huì)影響新公鑰的安全性,因此如果按這種方式擴(kuò)展公鑰就需要將公鑰擴(kuò)展為原本的2倍大小以確保安全.用戶(hù)請(qǐng)求私鑰時(shí)先檢查當(dāng)前的公鑰是否還可以產(chǎn)生新私鑰,如果不可以再進(jìn)行擴(kuò)展.由于更新了廣播加密公鑰,之前的key block需要重新加密,這部分開(kāi)銷(xiāo)與文件數(shù)相關(guān).
用戶(hù)進(jìn)行廣播加密和解密時(shí)都需要下載公鑰,實(shí)際加解密時(shí)使用的并不是公鑰中的全部參數(shù),而是有權(quán)限的用戶(hù)對(duì)應(yīng)的那一部分,若改變公鑰的存儲(chǔ)方式,讓用戶(hù)可以選擇性地下載公鑰中的某些參數(shù),則可以將用戶(hù)進(jìn)行廣播加解密時(shí)的帶寬開(kāi)銷(xiāo)從O(n)降低到O(t),其中n表示公鑰能產(chǎn)生的私鑰數(shù),t表示本次加密有權(quán)限的用戶(hù)數(shù).
本方案中,數(shù)據(jù)擁有者在撤銷(xiāo)用戶(hù)讀權(quán)限之后生成新的對(duì)稱(chēng)密鑰,并對(duì)新的有讀權(quán)限的用戶(hù)集合廣播加密,使用版本號(hào)區(qū)分新舊密鑰并且將版本號(hào)附在文件后上傳到云端,用戶(hù)在讀文件時(shí)根據(jù)文件當(dāng)前加密使用的版本號(hào)選取對(duì)應(yīng)的密鑰解密文件.用戶(hù)提交寫(xiě)操作時(shí)使用最新的密鑰加密,當(dāng)文件密鑰版本更新到最新之后,下次數(shù)據(jù)擁有者修改key block內(nèi)容時(shí)將舊版本密鑰丟棄.撤銷(xiāo)用戶(hù)寫(xiě)權(quán)限時(shí)生成新的公私鑰對(duì)并立刻更新key block中的內(nèi)容和文件簽名即可.
之所以保留當(dāng)前版本到最新版本的密鑰,是因?yàn)槿绻麛?shù)據(jù)擁有者在更新密鑰時(shí)刪除當(dāng)前版本和最新版本之間的密鑰,有可能在更新權(quán)限時(shí)有其他用戶(hù)在進(jìn)行寫(xiě)操作,那么其他用戶(hù)加密使用的密鑰會(huì)被丟棄,從而使得文件無(wú)法解密.而更新寫(xiě)密鑰時(shí)進(jìn)行寫(xiě)操作只會(huì)導(dǎo)致云端驗(yàn)證不通過(guò),用戶(hù)可以重新獲取寫(xiě)密鑰生成簽名或重新提交寫(xiě)請(qǐng)求.
Fig. 3 The cloud data format when lazy revocation is introduced圖3 引入懶惰回收后云端數(shù)據(jù)的格式
BGW方案的安全性是基于BDHE假設(shè)的,可以抵抗完全同謀攻擊,即所有無(wú)權(quán)限用戶(hù)聯(lián)合起來(lái)也不能獲得廣播加密明文,適合在云環(huán)境中保護(hù)密鑰所需要的安全性,因此數(shù)據(jù)擁有者可以使用基本方案安全地分發(fā)密鑰.
采用擴(kuò)展公鑰方法后,新產(chǎn)生的公鑰中g(shù)n+1會(huì)破壞原有公鑰的安全性,因此在擴(kuò)展公鑰之后需要將key block使用新的公鑰重加密.重新加密避免了增加用戶(hù)帶來(lái)的安全風(fēng)險(xiǎn),但是也產(chǎn)生了額外計(jì)算開(kāi)銷(xiāo),這部分開(kāi)銷(xiāo)會(huì)使得擴(kuò)展公鑰時(shí)用戶(hù)加入所需的時(shí)間較長(zhǎng).原有公鑰中的內(nèi)容均包含在新公鑰中,不會(huì)影響新公鑰的安全性.由于數(shù)據(jù)擁有者需要保留α和γ以生成新公鑰,而公開(kāi)α?xí)沟肂DHE假設(shè)不成立,公開(kāi)γ使得用戶(hù)可以計(jì)算其他用戶(hù)的私鑰,因此數(shù)據(jù)擁有者需要避免α和γ的泄露.
引入懶惰回收機(jī)制,使得用戶(hù)在被撤銷(xiāo)讀權(quán)限之后、文件讀密鑰更新之前仍可以使用之前的讀密鑰解密文件,即:若用戶(hù)緩存了文件讀密鑰,則在文件密鑰更新之前仍可以讀取文件,這在一定程度上降低了安全性,但是用戶(hù)被撤銷(xiāo)權(quán)限之后只能獲得修改之前的文件內(nèi)容,無(wú)法獲取文件最新內(nèi)容,從而保護(hù)了修改后文件的安全訪問(wèn).這樣的權(quán)衡自然一定程度上降低了安全性,但是考慮到一旦用戶(hù)可以讀文件內(nèi)容即可以保留一份文件的副本,本方法認(rèn)為延長(zhǎng)用戶(hù)對(duì)文件歷史版本的讀權(quán)限的有效時(shí)間,雖然增加了信息泄露風(fēng)險(xiǎn)但提高了系統(tǒng)的整體性能,這種平衡策略是可以接受的.
在開(kāi)源云存儲(chǔ)項(xiàng)目OpenStack的Swift平臺(tái)上對(duì)本文方案進(jìn)行了測(cè)試.密鑰管理分發(fā)方案的額外開(kāi)銷(xiāo)主要產(chǎn)生在用戶(hù)數(shù)量變化和密鑰變化時(shí),本文將從這2方面進(jìn)行對(duì)比測(cè)試.
由BGW方案的介紹可知,方案中私鑰di大小固定,加解密時(shí)都需要使用公鑰PK,公鑰大小為O(n),初始化產(chǎn)生一個(gè)公鑰的時(shí)間也是O(n),解密時(shí)還需要廣播頭Hdr,Hdr的大小固定,加解密的運(yùn)算量均為O(t).對(duì)于擴(kuò)展公鑰的方法來(lái)說(shuō),加解密的運(yùn)算量不變,擴(kuò)展公鑰到可以支持n個(gè)用戶(hù)時(shí)的時(shí)間開(kāi)銷(xiāo)為O(n).
在實(shí)際使用中,當(dāng)前對(duì)算法的實(shí)現(xiàn)中單個(gè)私鑰大小為276 B,Hdr大小為216 B,而公鑰的大小則和用戶(hù)數(shù)量相關(guān),在用戶(hù)數(shù)為8 192時(shí)約7 MB.根據(jù)所使用的加密算法不同,key block的大小也會(huì)不同,這部分開(kāi)銷(xiāo)與系統(tǒng)的具體實(shí)現(xiàn)相關(guān).
在使用廣播加密前需要針對(duì)對(duì)應(yīng)的用戶(hù)數(shù)量進(jìn)行初始化.對(duì)于基本方案,有新用戶(hù)加入系統(tǒng)時(shí),系統(tǒng)中的其他用戶(hù)都需要更新用戶(hù)數(shù)并進(jìn)行初始化,該用戶(hù)也需要針對(duì)系統(tǒng)中其他用戶(hù)做初始化.采用擴(kuò)展公鑰方法之后,用戶(hù)第1次初始化產(chǎn)生一定大小的公鑰,之后通過(guò)擴(kuò)展公鑰的方式適應(yīng)用戶(hù)數(shù)或角色數(shù)的變化.
圖4可以看出,系統(tǒng)采用擴(kuò)展公鑰優(yōu)化方法之后,增加新用戶(hù)時(shí)時(shí)間開(kāi)銷(xiāo)大大降低.基本方案中,每次加入新用戶(hù)產(chǎn)生的重新初始化時(shí)間開(kāi)銷(xiāo)很大,增加300個(gè)用戶(hù)的時(shí)間超過(guò)770 s.對(duì)于擴(kuò)展公鑰方法,在當(dāng)前公鑰可以分配的私鑰用完之前增加用戶(hù)的開(kāi)銷(xiāo)非常低,增加300個(gè)用戶(hù)的時(shí)間小于10 s,增加10 000個(gè)用戶(hù)的時(shí)間是284.37 s(由于橫坐標(biāo)的關(guān)系,未在圖上表示出來(lái)),而且之前已經(jīng)加入的用戶(hù)也不需要更換私鑰.由于本文采用了公鑰擴(kuò)展方案后統(tǒng)一使用新公鑰加密的方式,在公鑰擴(kuò)展時(shí)有可能需要對(duì)key block進(jìn)行修改.
Fig. 4 Time cost vs the number of users between BGW and our scheme圖4 系統(tǒng)增加用戶(hù)時(shí)的時(shí)間開(kāi)銷(xiāo)
撤銷(xiāo)權(quán)限的時(shí)間開(kāi)銷(xiāo)主要取決于對(duì)對(duì)應(yīng)密鑰進(jìn)行廣播加解密消耗的時(shí)間,在沒(méi)有采用懶惰回收機(jī)制的方案中,用戶(hù)撤銷(xiāo)讀權(quán)限需要下載文件重新加密,在采用了懶惰回收機(jī)制之后省去了這部分開(kāi)銷(xiāo),撤銷(xiāo)寫(xiě)權(quán)限不需要重加密,兩者的開(kāi)銷(xiāo)是相同的.
Fig. 5 Time cost when lazy revocation scheme is adopted圖5 結(jié)合懶惰回收策略的時(shí)間開(kāi)銷(xiāo)
圖5表示基本方案和結(jié)合懶惰回收之后撤銷(xiāo)讀權(quán)限的開(kāi)銷(xiāo),用戶(hù)數(shù)為1 000,授權(quán)用戶(hù)數(shù)為100.由于實(shí)驗(yàn)室測(cè)試環(huán)境處于同一局域網(wǎng)內(nèi),上傳下載的速度可以達(dá)到10 MBps左右,但是在文件較大時(shí),基本方案撤銷(xiāo)讀權(quán)限耗時(shí)仍較高.相比基本方案,采用懶惰回收之后的開(kāi)銷(xiāo)和文件大小沒(méi)有關(guān)系,只有下載、修改和上傳key block的開(kāi)銷(xiāo),這部分時(shí)間開(kāi)銷(xiāo)在總用戶(hù)數(shù)1 000、授權(quán)用戶(hù)數(shù)100時(shí)為0.02 s,相比基本方案,時(shí)間開(kāi)銷(xiāo)降低很多,也節(jié)省了下載上傳文件消耗的帶寬.
為了解決使用廣播加密在云存儲(chǔ)系統(tǒng)中重新分發(fā)密鑰存在的性能開(kāi)銷(xiāo)大的問(wèn)題,本文提出了一種對(duì)公鑰進(jìn)行擴(kuò)展的方法,并且結(jié)合懶惰回收機(jī)制進(jìn)一步優(yōu)化了權(quán)限撤銷(xiāo)時(shí)的性能.測(cè)試表明優(yōu)化方法降低了基本方案在增加用戶(hù)和更新密鑰時(shí)的時(shí)間開(kāi)銷(xiāo)和帶寬開(kāi)銷(xiāo),可以更好地適應(yīng)云存儲(chǔ)系統(tǒng)中用戶(hù)的動(dòng)態(tài)變化.
[1]Liu Yahui, Zhang Tieying, Jin Xiaolong, et al. Personal privacy protection in the era of bid data[J]. Journal of Computer Research and Development, 2015, 52(1): 221-228 (in Chinese)(劉雅輝, 張鐵贏, 靳小龍, 等. 大數(shù)據(jù)時(shí)代的隱私保護(hù)[J]. 計(jì)算機(jī)研究與發(fā)展, 2015, 52(1): 221-228)
[2] Kan Yang, Jia Xiaohua. Expressive, efficient, and revocable data access control for multi-authority cloud storage[J]. IEEE Trans on Parallel and Distributed Systems, 2014, 25(7): 1735-1744
[3] Adya A, Bolosky W J, Castro M, et al. Farsite: Federated, available, and reliable storage for an incompletely trusted environment[C] //Proc of the 5th Symp on OSDI. New York: ACM, 2002: 1-14
[4] Kallahalla M, Riedel E, Swaminathan R, et al. Plutus: Scalable secure file sharing on untrusted storage[C] //Proc of the 2nd USENIX Conf on File and Storage Technologies. Berkeley, CA: USENIX Association, 2003: 29-42
[5] Goh E, Shacham H, Modadugu M, et al. SiRiUS: Securing remote untrusted storage[C] //Proc of the Network and Distributed System Security Symp (NDSS 2003). Reston, VA: Internet Society, 2003: 131-145
[6] Popa R A, Lorch J, Molnar D, et al. Enabling security in cloud storage SLAs with CloudProof[C] //Proc of the 2011 USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2011
[7] Cecile D, Pascal P, David P. Fully collusion secure dynamic broadcast encryption with constant-size ciphertexts or decryption keys[C] //Proc of the 2007 Int Conf on Pairing-Based Cryptography. Berlin: Springer, 2007: 39-59
[8] Cecile D. Identity-based broadcast encryption with constant size ciphertexts and private keys[C] //Proc of CRYPTO 2007. Berlin: Springer, 2007: 200-215
[9] Boneh D, Waters B, Zhandry M. Low overhead broadcast encryption from multilinear maps[C] //Proc of CRYPTO 2014. Berlin: Springer, 2014: 206-223
[10] Koyama K, Ohta K. Identity-based conference key distribution systems[C] //Proc of CRYPTO 1987. Berlin: Springer, 1987: 175-194
[11] Boneh D, Gentry C, Waters B. Collusion resistant broadcast encryption with short ciphertexts and private keys[C] //Proc of CRYPTO 2005. Berlin: Springer, 2005: 258-275
OptimizationforBroadcastEncryptioninCloudUsingExtendedPublicKey
Li Chunhua, Wang Hua, Zhang Yanzhe, and Zhou Ke
(WuhanNationalLaboratoryforOptoelectronics(HuazhongUniversityofScienceandTechnology),Wuhan430074)
Security issues have been a major hurdle for the application of cloud storage. As data encryption is the mainstream method to ensure confidentiality, users always share their data by means of key’s management and distribution. However, how to manage massive keys and distribute them securely and efficiently is a challenge in cloud storage. In recent years, broadcast encryption scheme has been paid more attention by researchers to mitigate above problems for cloud data sharing. Since current schemes take insufficient account of changes of users and users’s privilege, they do not perform well in cloud. To reduce the overhead of key distribution, an optimization method is proposed for public-key based broadcast encryption in this paper. First, the scope of public keys is expanded to two or more times and the initial related parameters used for generating public keys are kept simultaneously. These parameters can ensure private keys distributed previously still available when they are employed to generate the new public keys for new valid users, thus greatly decreases the cost of redistributing private keys. Second, lazy revocation is adopted to reduce the cost of updating keys. Experimental results show that our optimized method outperforms the existing schemes while adding new users and revoking users’ privilege in cloud.
cloud storage; broadcast encryption; extended public key; key management; optimization
2015-10-12;
2017-04-14
國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2016YFB0800402);中央高校基本科研業(yè)務(wù)費(fèi)專(zhuān)項(xiàng)資金項(xiàng)目(2016YXMS020)
This work was supported by the National Key Research and Development Program of China(2016YFB0800402) and the Fundamental Research Funds for the Central Universities(2016YXMS020).
王樺(birch_wh@163.com)
TP391
LiChunhua, born in 1971. PhD, associate professor. Her main research interests include storage security, privacy protection, and big data.
WangHua, born in 1975. PhD, associate professor. Her main research interests include cloud storage system, data backup and caching.
ZhangYanzhe, born in 1991. Master. His main research interests include storage system and information security (465096070@qq.com).
ZhouKe, born in 1974. Professor, PhD supervisor. Senior member of CCF. His main research interests include distributed system, cloud computing, storage security and big data (k.zhou@hust.edu.cn).