劉 榮,潘洪志,劉 波,祖 婷,方 群,2,何 昕,2 ,王 楊,2
(1.安徽師范大學(xué) 數(shù)學(xué)計算機科學(xué)學(xué)院,安徽 蕪湖 241002; 2.安徽師范大學(xué) 網(wǎng)絡(luò)與信息安全安徽省重點實驗室,安徽 蕪湖 241002)(*通信作者電子郵箱1571960513@qq.com)
云計算(Cloud Computing)[1-2]通過虛擬化計算資源構(gòu)建數(shù)據(jù)中心,為云用戶提供了高性價比、高效、動態(tài)、彈性規(guī)模擴展的計算、存儲及各類信息處理服務(wù),深刻地改變了傳統(tǒng)信息產(chǎn)業(yè)的技術(shù)架構(gòu)和運作模式。云服務(wù)提供商(Cloud Service Provider, CSP)為用戶提供各類云服務(wù),但部分CSP搜集用戶信息進行挖掘的行為會造成信息泄露,因為CSP并不是完全可信的[3]。Gemalto報告指出:2016年上半年全球發(fā)生的數(shù)據(jù)泄露記錄總數(shù)超過了5.54億條,數(shù)據(jù)泄露事件比2015年增長了15%、高達974起。由此可看出,云安全問題已嚴(yán)重制約云計算的發(fā)展。數(shù)據(jù)所有權(quán)和管理權(quán)的分離是導(dǎo)致云存儲系統(tǒng)中的數(shù)據(jù)安全問題的核心根源[3-5]。CSP可獲得該數(shù)據(jù)或應(yīng)用的優(yōu)先訪問權(quán),因為用戶將數(shù)據(jù)外包給CSP,這也造成外包數(shù)據(jù)的安全威脅相當(dāng)嚴(yán)峻,如何解決該問題是研究者面臨的巨大挑戰(zhàn)。
屬性加密機制(Attribute Based Encryption, ABE)由Sahai等[6]在2005年提出,建議用一組屬性組成的集合表示用戶的身份信息。2006年,Goyal等[7]基于ABE機制提出密鑰策略屬性基加密(Key-Policy ABE, KP-ABE)。Bethencourt等[8]于2007年提出了適用于訪問控制類應(yīng)用的密文策略屬性基加密機制(Ciphertext-Policy ABE, CP-ABE)。2010年,Okamoto等[9]提出了第一個基于素數(shù)階的自適應(yīng)安全的屬性加密方案。2013年,Hohenberger等[10]從一些經(jīng)典屬性加密方案出發(fā),通過雙線性群上的數(shù)學(xué)性質(zhì),將方案中解密所需雙線性運算次數(shù)降為常數(shù)階。2015年,施榮華等[11]在屬性加密的基礎(chǔ)上引入分割策略,提高了數(shù)據(jù)安全性且降低了系統(tǒng)開銷;但該方案只支持?jǐn)?shù)據(jù)的上傳和下載,不支持?jǐn)?shù)據(jù)動態(tài)更新。
以上工作研究較好地改進了云環(huán)境下CP-ABE方案的效率,提高了系統(tǒng)安全性,降低了算法的運算復(fù)雜度,但是未考慮數(shù)據(jù)的動態(tài)更新。本文提出一種支持動態(tài)更新操作的密文策略的屬性基加密(Dynamic Updating CP-ABE, DU-CPABE)方案,利用數(shù)據(jù)線性分割思想將數(shù)據(jù)分成固定大小的數(shù)據(jù)塊,用CP-ABE加密算法對數(shù)據(jù)塊進行加密,并構(gòu)建A-MHT(Address-Merkle Hash Tree)搜索樹結(jié)構(gòu),在保證數(shù)據(jù)機密性和計算效率的同時實現(xiàn)數(shù)據(jù)動態(tài)更新操作。
DU-CPABE模型由用戶、云服務(wù)提供商及可信授權(quán)中心三個要素構(gòu)成,結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)安全模型Fig. 1 System security model
DU-CPABE模型可以描述為:用戶對數(shù)據(jù)進行分塊加密后將密文存儲在云服務(wù)器上,并將系統(tǒng)公鑰和主密鑰存儲在可信授權(quán)中心;用戶要更新數(shù)據(jù)時,向CSP發(fā)出更新請求,CSP查找A-MHT搜索樹,定位待更新的數(shù)據(jù)塊;然后向可信授權(quán)中心請求私鑰,當(dāng)滿足條件時,獲得私鑰;用戶獲得私鑰和密文數(shù)據(jù)塊后,解密并更新、上傳數(shù)據(jù)塊,更新A-MHT搜索樹。
ABE屬于公鑰加密機制,它面向的解密對象不是單個用戶而是一個群體,因為ABE引入了屬性的概念,這也使ABE算法在云計算環(huán)境下有廣泛的應(yīng)用前景。將訪問控制的權(quán)利交給用戶,用戶可以自主選擇所要訪問文件,這是CP-ABE加密算法在云環(huán)境下最大的優(yōu)勢。一個CP-ABE算法主要包括以下四個步驟:
1)Setup:輸入一個安全參數(shù),得到主密鑰MK和公開參數(shù)PK。
2)Encrypt:輸入MK、PK以及明文M,得到密文C。
3)KeyGen:輸入一個屬性集合和MK,得到私鑰SK。
4)Decrypt:輸入C、SK,解密C得到M。
定義1數(shù)據(jù)塊。數(shù)據(jù)塊是文件讀寫的基本單位。文件M由多個數(shù)據(jù)塊組成,表示為M={m1,m2,…,mn},mi(1≤i≤n)為第i個數(shù)據(jù)塊。
定義2數(shù)據(jù)塊Hash值。用于定位數(shù)據(jù)塊地址信息。所有數(shù)據(jù)塊的哈希標(biāo)簽信息集合表示為H={h(m1),h(m2),…,h(mn)},其中,h(mi)是數(shù)據(jù)塊mi的哈希信息標(biāo)簽。
定義3關(guān)聯(lián)標(biāo)志。用于記錄數(shù)據(jù)塊在云端存儲的地址。所有數(shù)據(jù)塊的存儲位置關(guān)聯(lián)標(biāo)志信息集合表示為A={a(m1),a(m2),…,a(mn)},其中,a(mi)是數(shù)據(jù)塊mi的存儲位置信息標(biāo)簽。
Merkle哈希樹(Merkle Hash Tree, MHT)[12]為滿二叉樹結(jié)構(gòu),葉子節(jié)點存儲數(shù)據(jù)塊(文件或文件的集合),而非葉子節(jié)點存儲其葉子節(jié)點的哈希值(稱作路徑哈希值)。MHT的操作不僅包括查找,也包括修改、插入和刪除,且更新操作相對而言比較簡單。
為快速定位云數(shù)據(jù)存儲位置,可在MHT葉子節(jié)點上增加存儲位置關(guān)聯(lián)信息標(biāo)志A{a(m1),a(m2),…,a(mn)},從而構(gòu)造A-MHT搜索樹,結(jié)構(gòu)如圖2所示。
圖2 A-MHT結(jié)構(gòu)Fig. 2 A-MHT structure
用戶利用數(shù)據(jù)塊構(gòu)造帶存儲位置關(guān)聯(lián)標(biāo)志信息的A-MHT搜索樹來計算根節(jié)點R的hash值,算法描述如下:
算法1A-MHT搜索樹構(gòu)造算法。
輸入文件數(shù)據(jù)M;
輸出A-MHT搜索樹。
createAMHTree(fileM){
1)
lpa(M);
//客戶端用線性分割算法對數(shù)據(jù)文件進行分塊
2)
fori=1~n{
//n為數(shù)據(jù)塊數(shù)
3)
hash(mi);
//計算數(shù)據(jù)塊mi的hash值H{h(m1),h(m2),…,h(mn)}
4)
encrypt(mi);
//加密得密文為C{c1,c2,…,cn}
5)
uploadData((h(mi),ci));
//密文上傳至云端并將本地的數(shù)據(jù)文件信息刪除
6)
getAddress(a(mi));}
//CSP接收密文后,
//將密文存儲到云端并返回存儲關(guān)聯(lián)標(biāo)志信息
7)
initAMHTree();}
//初始化帶存儲關(guān)聯(lián)標(biāo)志信息的A-MHT樹
用戶將數(shù)據(jù)存儲到云端后,不僅要讀取數(shù)據(jù),還可能對數(shù)據(jù)進行更新,包括修改(M)、插入(I)和刪除(D)操作。數(shù)據(jù)一旦發(fā)生變化,現(xiàn)有方案就要對整個文件重新加密,少量更新也將產(chǎn)生較大的計算和通信開銷。而本文提出的DU-CPABE方案則可有效降低數(shù)據(jù)動態(tài)更新所帶來的開銷。
1.5.1修改數(shù)據(jù)
算法2修改數(shù)據(jù)塊算法。
輸入待修改數(shù)據(jù)塊mi;
輸出更新后A-MHT搜索樹。
modifyData(mi){
1)
query(M);
//客戶端向CSP發(fā)出修改請求
2)
search(ci);
//搜索A-MHT樹,找到ci對應(yīng)地址a(mi)
3)
download(ci);
//所需的數(shù)據(jù)塊ci下載到本地
4)
decrypt(ci);
//用對應(yīng)的解密策略解密得到mi
5)
6)
updateAMHTree(M,ci′,h(mi′),a(mi));}
//更新云端的A-MHT搜索樹
圖3 數(shù)據(jù)塊修改前后的A-MHT對照Fig. 3 Comparison of A-MHT before and after block data modification
1.5.2插入數(shù)據(jù)
修改數(shù)據(jù)并不改變數(shù)據(jù)的邏輯結(jié)構(gòu),但插入數(shù)據(jù)是在文件的特定位置插入新的數(shù)據(jù)塊,數(shù)據(jù)的邏輯結(jié)構(gòu)將改變。
若用戶在數(shù)據(jù)塊mi后面插入m*,加密后的密文為c*,則插入數(shù)據(jù)塊的算法描述如下:
算法3插入數(shù)據(jù)塊算法。
輸入待插入數(shù)據(jù)塊m*;
輸出更新后A-MHT搜索樹。
insertData(m*){
1)
query(I);
//客戶端計算哈希值h(m*)并向CSP發(fā)出插入請求
2)
storage(m*);
//CSP存儲m*并記錄存儲關(guān)聯(lián)標(biāo)志信息a(m*)
3)
updateAMHTree(I,c*,h(m*),a(m*));}
//更新云端的A-MHT 搜索樹
A-MHT搜索樹更新操作包括:1)增加葉子節(jié)點(h(m*),a(m*)),并將其插入到A-MHT中的節(jié)點(h(mi),a(mi))之后;2)重新計算根節(jié)點R′的hash值,調(diào)整A-MHT樹型結(jié)構(gòu),將存儲(h(mi),a(mi))的葉子節(jié)點的位置改成父親節(jié)點,第i塊數(shù)據(jù)塊和新增加的數(shù)據(jù)塊作為其葉子節(jié)點。數(shù)據(jù)插入前后A-MHT結(jié)構(gòu)變化情況如圖4所示。
1.5.3刪除數(shù)據(jù)
刪除數(shù)據(jù)是數(shù)據(jù)插入的反操作,即刪除指定塊mi并將其后所有塊都向前移一個位置,算法描述如下:
算法4刪除數(shù)據(jù)塊算法。
輸入待刪除數(shù)據(jù)塊mi;
輸出更新后A-MHT搜索樹。
deleteData(mi)
1)
{query(D);
//客戶端向CSP發(fā)出刪除請求
2)
search(ci);
//搜索A-MHT樹,找到ci對應(yīng)地址a(mi)
3)
delete(mi,h(mi),a(mi));
//刪除數(shù)據(jù)塊mi及其云存儲空間和葉子節(jié)點
4)
updateAMHTree(D,ci,h(mi),a(mi));}
//更新云端的A-MHT搜索樹
A-MHT搜索樹更新操作包括: 1)刪除數(shù)據(jù)塊mi,刪除mi的云存儲空間,刪除葉子節(jié)點h(mi);2)重新計算根節(jié)點R′的hash值,調(diào)整A-MHT樹型結(jié)構(gòu),將未刪除的葉子節(jié)點調(diào)整為其父親節(jié)點的位置。刪除數(shù)據(jù)前后的A-MHT變化情況如圖5所示。
圖4 數(shù)據(jù)塊插入前后的A-MHT對照Fig. 4 Comparison of A-MHT before and after block data insert
圖5 數(shù)據(jù)塊刪除前后的A-MHT對照Fig. 5 Comparison of A-MHT before and after block data delete
綜上所述,通過構(gòu)建A-MHT搜索樹,可簡化數(shù)據(jù)動態(tài)更新過程,實現(xiàn)數(shù)據(jù)文件在低開銷和高效率條件下的修改、插入和刪除等動態(tài)更新操作。
1)訪問權(quán)限的安全管理。該方案無須考慮第三方CSP是否可靠,因為其完全性由數(shù)據(jù)擁有者對其他用戶進行訪問授權(quán)而CSP不參與數(shù)據(jù)加密的密鑰產(chǎn)生與管理。數(shù)據(jù)提供者可以制定靈活的訪問控制策略來管理用戶訪問行為,僅當(dāng)用戶擁有的屬性集合匹配訪問控制策略時才能解密數(shù)據(jù)。系統(tǒng)公共參數(shù)與系統(tǒng)主密鑰由用戶和可信第三方授權(quán)產(chǎn)生較大的計算和通信開銷,而DU-CPABE方案可有效降低數(shù)據(jù)動態(tài)更新開銷。
2)數(shù)據(jù)完整性。該方案中,用戶上傳文件前計算hash值,并存儲在本地。若攻擊者對云端數(shù)據(jù)進行篡改、刪除等操作,那么文件的hash值會發(fā)生改變,完整性驗證將無法被通過。因此,數(shù)據(jù)的完整性得以保證。
3)數(shù)據(jù)的安全性。云安全要求CSP無法獲取有關(guān)用戶數(shù)據(jù)的任何信息,用戶的數(shù)據(jù)以密文形式在云端存儲,因而具有計算安全性。本文數(shù)據(jù)用CP-ABE算法對各個數(shù)據(jù)塊進行加密存儲于云服務(wù)器,只有滿足訪問控制策略的用戶才可以獲得私鑰,繼而解密數(shù)據(jù)。假定系統(tǒng)信道是安全的,則本文方案安全性可歸約為CP-ABE的安全性。
定理1共謀抵抗。DU-CPABE方案是可以抵抗用戶合謀攻擊的。
證明本文方案的基礎(chǔ)是基于屬性的加密體制,CP-ABE是可以抵抗共謀的,同時也認(rèn)為本文方案對于共謀抵抗是安全的。因為攻擊者利用CP-ABE算法中的公共參數(shù)進行合謀攻擊,而用戶定義的訪問控制策略是依賴CP-ABE,對于合謀攻擊CP-ABE在文獻[7]中已經(jīng)被證明是安全的。
定理2數(shù)據(jù)保密性。無論是好奇的CSP,還是未授權(quán)的用戶都無法獲知相關(guān)的數(shù)據(jù)信息,故而DU-CPABE方案保證了云存儲數(shù)據(jù)的私密性。
證明本文方案的基礎(chǔ)是CP-ABE加密體制,不符合要求的用戶包括CSP、未授權(quán)的用戶都沒法解密密文,因為方案中訪問控制策略完全由用戶依據(jù)CP-ABE自己定義。如果存在一個多項式時間算法能夠破解密文,則相當(dāng)于解決了雙線性Diffie-Hellman(Bilinear Diffie-Hellman, BDH)問題,而這是不可能的。
CP-ABE算法在K-Bilinear Diffie-Hellman Exponent(K-BDHE)困難假設(shè)下是安全的。CP-ABE算法也可以抗共謀攻擊,故非授權(quán)用戶即便相互合作也無法對數(shù)據(jù)信息進行解密,從而無法得到原始明文。另外采取用戶數(shù)據(jù)分塊存儲方式,攻擊者無法獲取足夠的信息恢復(fù)原始數(shù)據(jù),因而進一步保證了云端數(shù)據(jù)的安全性。
本文仿真環(huán)境:CPU為Intel Pentium CPU G3260@ 3.30 GHz,內(nèi)存4.00 GB,操作系統(tǒng)Windows 7 64位操作系統(tǒng),仿真軟件為Matlab 2012b。
圖6為DU-CPABE方案加解密時間與屬性個數(shù)的關(guān)系,可以看出DU-CPABE方案的加解密時間隨著屬性個數(shù)增加呈線性增長,屬性個數(shù)是決定加密時間的關(guān)鍵因素,但圖(b)中的增長率比圖(a)中的增長率稍緩。
圖6 DU-CPABE方案加解密時間與屬性個數(shù)的關(guān)系Fig. 6 Relationship between encryption and decryption time and number of attributes
設(shè)數(shù)據(jù)文件大小為1 MB,分為10個塊,屬性個數(shù)為10。在理想信道中通過仿真比較DU-CPABE方案和CP-ABE方案在增加更新次數(shù)時加解密時間和通信開銷的變化情況,結(jié)果如圖7所示。
圖7(a)表明,系統(tǒng)時間開銷與文件更新次數(shù)成正比,但隨著更新次數(shù)的增加,DU-CPABE方案的時間開銷比CP-ABE方案增長要緩;另外,在更新次數(shù)較少的情況下,對整個數(shù)據(jù)文件的加密過程,DU-CPABE方案比CP-ABE方案所花費時間要多,但隨著更新次數(shù)的增加,DU-CPABE方案在時間開銷上的增幅變緩,當(dāng)更新次數(shù)為5時,與CP-ABE相比,時間開銷平均下降了14.6%。
圖7(b)是兩種方案系統(tǒng)通信開銷與文件更新次數(shù)的變化關(guān)系。在理想信道中,隨著更新次數(shù)的增加,DU-CPABE方案較CP-ABE方案在通信開銷上得到了較為明顯的改善。
圖7 DU-CPABE和CP-ABE方案性能比較Fig. 7 Performance comparison of DU-CPABE and CP-ABE
DU-CPABE方案將線性分塊策略和CP-ABE相結(jié)合,同時構(gòu)造新的索引結(jié)構(gòu)A-MHT搜索樹,實現(xiàn)了數(shù)據(jù)動態(tài)更新操作,在一定程度上減少了系統(tǒng)的開銷,在用戶數(shù)據(jù)頻繁更新的云環(huán)境中,更能顯示該方案的優(yōu)勢。
在數(shù)據(jù)所有權(quán)與管理權(quán)分離的情況下,云存儲系統(tǒng)既要保證數(shù)據(jù)擁有者的隱私,又要兼顧性能開銷,面臨較大挑戰(zhàn),其安全問題已經(jīng)成為云計算應(yīng)用推廣的瓶頸。本文提出的DU-CPABE方案能很好地兼顧云數(shù)據(jù)安全性和性能開銷,增加了云存儲應(yīng)用的靈活性,在數(shù)據(jù)頻繁更新時展現(xiàn)出了優(yōu)勢。未來工作需要解決數(shù)據(jù)分塊與塊間冗余、A-MHT搜索樹的重構(gòu)等問題,以進一步改善數(shù)據(jù)處理性能。
參考文獻:
[1]MELL P, GRANCE T. The NIST definition of cloud computing [J]. Communications of the ACM, 2011, 53(6): 50.
[2] SHARMA R, TRIVEDI R K. Literature review: cloud computing — security issues, solution and technologies [J]. International Journal of Engineering Research, 2014, 3(4): 221-225.
[3]馮登國,張敏,張妍,等.云計算安全研究[J].軟件學(xué)報,2011,22(1):71-83. (FENG D G, ZHANG M, ZHANG Y, et al. Study on cloud computing security [J]. Journal of Software, 2011, 22(1): 71-83.)
[4]金瑜,王凡,趙紅武,等.云計算環(huán)境下信任機制綜述[J].小型微型計算機系統(tǒng),2016,37(1):1-11. (JIN Y, WANG F, ZHAO H W, et al. Survey on trust mechanisms in the environment of cloud computing [J]. Journal of Chinese Computer Systems, 2016, 37(1): 1-11.)
[5]蘇金樹,曹丹,王小峰,等.屬性基加密機制[J].軟件學(xué)報,2011,22(6):1299-1315. (SU J S, CAO D, WANG X F, et.al. Attribute-based encryption schemes [J]. Journal of Software, 2011, 22(6): 1299-1315.).
[6]SAHAI A, WATERS B. Fuzzy identity-based encryption [C]// EUROCRYPT 2005: Proceedings of the 2005 Annual International Conference on the Theory and Applications of Cryptographic Techniques, LNCS 3494. Berlin: Springer, 2005: 457-473.
[7]GOYAL V, PANDEY O, SAHAI A, et al. Attribute-based encryption for fine-grained access control of encrypted data [C]// CCS ’06: Proceedings of the 13th ACM Conference on Computer and Communications Security. New York: ACM, 2006: 89-98.
[8]BETHENCOURT J, SAHAI A, WATERS B. Ciphertext-policy attribute-based encryption [C]// SP’07: Proceedings of the 2007 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2007: 321-334.
[9]OKAMOTO T, TAKASHIMA K. Fully secure functional encryption with general relations from the decisional linear assumption [C]// CRYPTO 2010: Proceedings of the 2010 International Cryptology Conference on Advances in Cryptology, LNCS 6223. Berlin: Springer, 2010: 191-208.
[10]HOHENBERGER S, WATERS B. Attribute-based encryption with fast decryption [C]// PKC 2013:Proceedings of the 2013 Public-Key Cryptography, LNCS 7778. Berlin: Springer, 2013: 162-179.
[11]施榮華,劉鑫,董健,等.云環(huán)境下一種基于數(shù)據(jù)分割的CP-ABE隱私保護方案[J].計算機應(yīng)用研究,2015,32(2):521-523. (SHI R H, LIU X, DONG J, et al. Privacy protection scheme in cloud computing using CP-ABE based on data partition [J]. Application Research of Computers, 2015, 32(2): 521-523.)
[12]WANG Q, WANG C, REN K, et al. Enabling public auditability and data dynamics for storage security in cloud computing [J]. IEEE Transactions on Parallel and Distributed Systems, 2011, 22(5): 847-859.