刘 荣,潘洪志,刘 波,祖 婷,方 群,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.