劉 榮,潘洪志,劉 波,祖 婷,方 群,2,何 昕,2 ,王 楊,2
(1.安徽師范大學 數學計算機科學學院,安徽 蕪湖 241002; 2.安徽師范大學 網絡與信息安全安徽省重點實驗室,安徽 蕪湖 241002)(*通信作者電子郵箱1571960513@qq.com)
云計算(Cloud Computing)[1-2]通過虛擬化計算資源構建數據中心,為云用戶提供了高性價比、高效、動態、彈性規模擴展的計算、存儲及各類信息處理服務,深刻地改變了傳統信息產業的技術架構和運作模式。云服務提供商(Cloud Service Provider, CSP)為用戶提供各類云服務,但部分CSP搜集用戶信息進行挖掘的行為會造成信息泄露,因為CSP并不是完全可信的[3]。Gemalto報告指出:2016年上半年全球發生的數據泄露記錄總數超過了5.54億條,數據泄露事件比2015年增長了15%、高達974起。由此可看出,云安全問題已嚴重制約云計算的發展。數據所有權和管理權的分離是導致云存儲系統中的數據安全問題的核心根源[3-5]。CSP可獲得該數據或應用的優先訪問權,因為用戶將數據外包給CSP,這也造成外包數據的安全威脅相當嚴峻,如何解決該問題是研究者面臨的巨大挑戰。
屬性加密機制(Attribute Based Encryption, ABE)由Sahai等[6]在2005年提出,建議用一組屬性組成的集合表示用戶的身份信息。2006年,Goyal等[7]基于ABE機制提出密鑰策略屬性基加密(Key-Policy ABE, KP-ABE)。Bethencourt等[8]于2007年提出了適用于訪問控制類應用的密文策略屬性基加密機制(Ciphertext-Policy ABE, CP-ABE)。2010年,Okamoto等[9]提出了第一個基于素數階的自適應安全的屬性加密方案。2013年,Hohenberger等[10]從一些經典屬性加密方案出發,通過雙線性群上的數學性質,將方案中解密所需雙線性運算次數降為常數階。2015年,施榮華等[11]在屬性加密的基礎上引入分割策略,提高了數據安全性且降低了系統開銷;但該方案只支持數據的上傳和下載,不支持數據動態更新。
以上工作研究較好地改進了云環境下CP-ABE方案的效率,提高了系統安全性,降低了算法的運算復雜度,但是未考慮數據的動態更新。本文提出一種支持動態更新操作的密文策略的屬性基加密(Dynamic Updating CP-ABE, DU-CPABE)方案,利用數據線性分割思想將數據分成固定大小的數據塊,用CP-ABE加密算法對數據塊進行加密,并構建A-MHT(Address-Merkle Hash Tree)搜索樹結構,在保證數據機密性和計算效率的同時實現數據動態更新操作。
DU-CPABE模型由用戶、云服務提供商及可信授權中心三個要素構成,結構如圖1所示。

圖1 系統安全模型Fig. 1 System security model
DU-CPABE模型可以描述為:用戶對數據進行分塊加密后將密文存儲在云服務器上,并將系統公鑰和主密鑰存儲在可信授權中心;用戶要更新數據時,向CSP發出更新請求,CSP查找A-MHT搜索樹,定位待更新的數據塊;然后向可信授權中心請求私鑰,當滿足條件時,獲得私鑰;用戶獲得私鑰和密文數據塊后,解密并更新、上傳數據塊,更新A-MHT搜索樹。
ABE屬于公鑰加密機制,它面向的解密對象不是單個用戶而是一個群體,因為ABE引入了屬性的概念,這也使ABE算法在云計算環境下有廣泛的應用前景。將訪問控制的權利交給用戶,用戶可以自主選擇所要訪問文件,這是CP-ABE加密算法在云環境下最大的優勢。一個CP-ABE算法主要包括以下四個步驟:
1)Setup:輸入一個安全參數,得到主密鑰MK和公開參數PK。
2)Encrypt:輸入MK、PK以及明文M,得到密文C。
3)KeyGen:輸入一個屬性集合和MK,得到私鑰SK。
4)Decrypt:輸入C、SK,解密C得到M。
定義1數據塊。數據塊是文件讀寫的基本單位。文件M由多個數據塊組成,表示為M={m1,m2,…,mn},mi(1≤i≤n)為第i個數據塊。
定義2數據塊Hash值。用于定位數據塊地址信息。所有數據塊的哈希標簽信息集合表示為H={h(m1),h(m2),…,h(mn)},其中,h(mi)是數據塊mi的哈希信息標簽。
定義3關聯標志。用于記錄數據塊在云端存儲的地址。所有數據塊的存儲位置關聯標志信息集合表示為A={a(m1),a(m2),…,a(mn)},其中,a(mi)是數據塊mi的存儲位置信息標簽。
Merkle哈希樹(Merkle Hash Tree, MHT)[12]為滿二叉樹結構,葉子節點存儲數據塊(文件或文件的集合),而非葉子節點存儲其葉子節點的哈希值(稱作路徑哈希值)。MHT的操作不僅包括查找,也包括修改、插入和刪除,且更新操作相對而言比較簡單。
為快速定位云數據存儲位置,可在MHT葉子節點上增加存儲位置關聯信息標志A{a(m1),a(m2),…,a(mn)},從而構造A-MHT搜索樹,結構如圖2所示。

圖2 A-MHT結構Fig. 2 A-MHT structure
用戶利用數據塊構造帶存儲位置關聯標志信息的A-MHT搜索樹來計算根節點R的hash值,算法描述如下:
算法1A-MHT搜索樹構造算法。
輸入文件數據M;
輸出A-MHT搜索樹。
createAMHTree(fileM){
1)
lpa(M);
//客戶端用線性分割算法對數據文件進行分塊
2)
fori=1~n{
//n為數據塊數
3)
hash(mi);
//計算數據塊mi的hash值H{h(m1),h(m2),…,h(mn)}
4)
encrypt(mi);
//加密得密文為C{c1,c2,…,cn}
5)
uploadData((h(mi),ci));
//密文上傳至云端并將本地的數據文件信息刪除
6)
getAddress(a(mi));}
//CSP接收密文后,
//將密文存儲到云端并返回存儲關聯標志信息
7)
initAMHTree();}
//初始化帶存儲關聯標志信息的A-MHT樹
用戶將數據存儲到云端后,不僅要讀取數據,還可能對數據進行更新,包括修改(M)、插入(I)和刪除(D)操作。數據一旦發生變化,現有方案就要對整個文件重新加密,少量更新也將產生較大的計算和通信開銷。而本文提出的DU-CPABE方案則可有效降低數據動態更新所帶來的開銷。
1.5.1修改數據

算法2修改數據塊算法。
輸入待修改數據塊mi;
輸出更新后A-MHT搜索樹。
modifyData(mi){
1)
query(M);
//客戶端向CSP發出修改請求
2)
search(ci);
//搜索A-MHT樹,找到ci對應地址a(mi)
3)
download(ci);
//所需的數據塊ci下載到本地
4)
decrypt(ci);
//用對應的解密策略解密得到mi
5)
6)
updateAMHTree(M,ci′,h(mi′),a(mi));}
//更新云端的A-MHT搜索樹

圖3 數據塊修改前后的A-MHT對照Fig. 3 Comparison of A-MHT before and after block data modification
1.5.2插入數據
修改數據并不改變數據的邏輯結構,但插入數據是在文件的特定位置插入新的數據塊,數據的邏輯結構將改變。
若用戶在數據塊mi后面插入m*,加密后的密文為c*,則插入數據塊的算法描述如下:
算法3插入數據塊算法。
輸入待插入數據塊m*;
輸出更新后A-MHT搜索樹。
insertData(m*){
1)
query(I);
//客戶端計算哈希值h(m*)并向CSP發出插入請求
2)
storage(m*);
//CSP存儲m*并記錄存儲關聯標志信息a(m*)
3)
updateAMHTree(I,c*,h(m*),a(m*));}
//更新云端的A-MHT 搜索樹
A-MHT搜索樹更新操作包括:1)增加葉子節點(h(m*),a(m*)),并將其插入到A-MHT中的節點(h(mi),a(mi))之后;2)重新計算根節點R′的hash值,調整A-MHT樹型結構,將存儲(h(mi),a(mi))的葉子節點的位置改成父親節點,第i塊數據塊和新增加的數據塊作為其葉子節點。數據插入前后A-MHT結構變化情況如圖4所示。
1.5.3刪除數據
刪除數據是數據插入的反操作,即刪除指定塊mi并將其后所有塊都向前移一個位置,算法描述如下:
算法4刪除數據塊算法。
輸入待刪除數據塊mi;
輸出更新后A-MHT搜索樹。
deleteData(mi)
1)
{query(D);
//客戶端向CSP發出刪除請求
2)
search(ci);
//搜索A-MHT樹,找到ci對應地址a(mi)
3)
delete(mi,h(mi),a(mi));
//刪除數據塊mi及其云存儲空間和葉子節點
4)
updateAMHTree(D,ci,h(mi),a(mi));}
//更新云端的A-MHT搜索樹
A-MHT搜索樹更新操作包括: 1)刪除數據塊mi,刪除mi的云存儲空間,刪除葉子節點h(mi);2)重新計算根節點R′的hash值,調整A-MHT樹型結構,將未刪除的葉子節點調整為其父親節點的位置。刪除數據前后的A-MHT變化情況如圖5所示。

圖4 數據塊插入前后的A-MHT對照Fig. 4 Comparison of A-MHT before and after block data insert

圖5 數據塊刪除前后的A-MHT對照Fig. 5 Comparison of A-MHT before and after block data delete
綜上所述,通過構建A-MHT搜索樹,可簡化數據動態更新過程,實現數據文件在低開銷和高效率條件下的修改、插入和刪除等動態更新操作。
1)訪問權限的安全管理。該方案無須考慮第三方CSP是否可靠,因為其完全性由數據擁有者對其他用戶進行訪問授權而CSP不參與數據加密的密鑰產生與管理。數據提供者可以制定靈活的訪問控制策略來管理用戶訪問行為,僅當用戶擁有的屬性集合匹配訪問控制策略時才能解密數據。系統公共參數與系統主密鑰由用戶和可信第三方授權產生較大的計算和通信開銷,而DU-CPABE方案可有效降低數據動態更新開銷。
2)數據完整性。該方案中,用戶上傳文件前計算hash值,并存儲在本地。若攻擊者對云端數據進行篡改、刪除等操作,那么文件的hash值會發生改變,完整性驗證將無法被通過。因此,數據的完整性得以保證。
3)數據的安全性。云安全要求CSP無法獲取有關用戶數據的任何信息,用戶的數據以密文形式在云端存儲,因而具有計算安全性。本文數據用CP-ABE算法對各個數據塊進行加密存儲于云服務器,只有滿足訪問控制策略的用戶才可以獲得私鑰,繼而解密數據。假定系統信道是安全的,則本文方案安全性可歸約為CP-ABE的安全性。
定理1共謀抵抗。DU-CPABE方案是可以抵抗用戶合謀攻擊的。
證明本文方案的基礎是基于屬性的加密體制,CP-ABE是可以抵抗共謀的,同時也認為本文方案對于共謀抵抗是安全的。因為攻擊者利用CP-ABE算法中的公共參數進行合謀攻擊,而用戶定義的訪問控制策略是依賴CP-ABE,對于合謀攻擊CP-ABE在文獻[7]中已經被證明是安全的。
定理2數據保密性。無論是好奇的CSP,還是未授權的用戶都無法獲知相關的數據信息,故而DU-CPABE方案保證了云存儲數據的私密性。
證明本文方案的基礎是CP-ABE加密體制,不符合要求的用戶包括CSP、未授權的用戶都沒法解密密文,因為方案中訪問控制策略完全由用戶依據CP-ABE自己定義。如果存在一個多項式時間算法能夠破解密文,則相當于解決了雙線性Diffie-Hellman(Bilinear Diffie-Hellman, BDH)問題,而這是不可能的。
CP-ABE算法在K-Bilinear Diffie-Hellman Exponent(K-BDHE)困難假設下是安全的。CP-ABE算法也可以抗共謀攻擊,故非授權用戶即便相互合作也無法對數據信息進行解密,從而無法得到原始明文。另外采取用戶數據分塊存儲方式,攻擊者無法獲取足夠的信息恢復原始數據,因而進一步保證了云端數據的安全性。
本文仿真環境:CPU為Intel Pentium CPU G3260@ 3.30 GHz,內存4.00 GB,操作系統Windows 7 64位操作系統,仿真軟件為Matlab 2012b。
圖6為DU-CPABE方案加解密時間與屬性個數的關系,可以看出DU-CPABE方案的加解密時間隨著屬性個數增加呈線性增長,屬性個數是決定加密時間的關鍵因素,但圖(b)中的增長率比圖(a)中的增長率稍緩。

圖6 DU-CPABE方案加解密時間與屬性個數的關系Fig. 6 Relationship between encryption and decryption time and number of attributes
設數據文件大小為1 MB,分為10個塊,屬性個數為10。在理想信道中通過仿真比較DU-CPABE方案和CP-ABE方案在增加更新次數時加解密時間和通信開銷的變化情況,結果如圖7所示。
圖7(a)表明,系統時間開銷與文件更新次數成正比,但隨著更新次數的增加,DU-CPABE方案的時間開銷比CP-ABE方案增長要緩;另外,在更新次數較少的情況下,對整個數據文件的加密過程,DU-CPABE方案比CP-ABE方案所花費時間要多,但隨著更新次數的增加,DU-CPABE方案在時間開銷上的增幅變緩,當更新次數為5時,與CP-ABE相比,時間開銷平均下降了14.6%。
圖7(b)是兩種方案系統通信開銷與文件更新次數的變化關系。在理想信道中,隨著更新次數的增加,DU-CPABE方案較CP-ABE方案在通信開銷上得到了較為明顯的改善。

圖7 DU-CPABE和CP-ABE方案性能比較Fig. 7 Performance comparison of DU-CPABE and CP-ABE
DU-CPABE方案將線性分塊策略和CP-ABE相結合,同時構造新的索引結構A-MHT搜索樹,實現了數據動態更新操作,在一定程度上減少了系統的開銷,在用戶數據頻繁更新的云環境中,更能顯示該方案的優勢。
在數據所有權與管理權分離的情況下,云存儲系統既要保證數據擁有者的隱私,又要兼顧性能開銷,面臨較大挑戰,其安全問題已經成為云計算應用推廣的瓶頸。本文提出的DU-CPABE方案能很好地兼顧云數據安全性和性能開銷,增加了云存儲應用的靈活性,在數據頻繁更新時展現出了優勢。未來工作需要解決數據分塊與塊間冗余、A-MHT搜索樹的重構等問題,以進一步改善數據處理性能。
參考文獻:
[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].軟件學報,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]金瑜,王凡,趙紅武,等.云計算環境下信任機制綜述[J].小型微型計算機系統,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].軟件學報,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]施榮華,劉鑫,董健,等.云環境下一種基于數據分割的CP-ABE隱私保護方案[J].計算機應用研究,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.