2. 密码科学技术国家重点实验室,北京 100878;
3. 信息保障技术国防科技重点实验室,北京 100072
2. State Key Lab. of Cryptology, Beijing 100878, China;
3. Sci. and Technol. on Info. Assurance Lab., Beijing 100072, China
随着云存储的不断发展,越来越多的企业和用户选择将数据和应用从本地转移到远程云服务器[1],这逐渐成为了未来信息存储的主流趋势,如Google每月有超过400 PB的数据存储到分布式文件系统(Google file system, GFS)中[2],Facebook每天有超过500 TB的数据存储到Amazon的云端[3]。而在实际应用中,数据损坏的情况不可避免[4],在2015年8月20日,Google位于比利时布鲁塞尔的数据中心遭雷击,造成电力系统供电中断,导致数据中心磁盘损坏和云存储系统断线,部分数据永久丢失[5]。因此,在云存储系统中数据出现损坏情况时需要准确快速地进行损坏数据的探测,进而有针对性地进行数据恢复工作[6]。除此之外,原始文件更新也是现实的需求,在云存储系统中不仅要实现动态更新功能,还要确保远程云服务器能够实时对原始文件进行更新[7]。
在现有方案中,云存储的损坏数据探测过程和动态更新的计算开销和通信开销往往与云存储服务器中数据块数量呈线性增长关系,这也会给第三方服务器和云存储服务器带来非常大的计算开销和通信开销,而且还会限制方案的可拓展性,无法满足用户数据存储快速增长的需求。文献Cao[8]、李力[9]等提出了基于逐一验证标签的云存储方案,该方案的每个存储服务器都有一个聚合标签,通过一一验证聚合标签确定损坏数据块所在的服务器,再在该服务器里逐一探测损坏数据。但是,该方案的计算和通信开销会随着服务器数量和每个服务器内数据块数量呈线性增长,且不支持数据的动态更新。Erway等[10–11]提出了基于认证跳跃表的云存储方案,该方案的数据块对应跳跃表的底层节点,通过验证根节点与验证路径上的节点探测损坏数据块,支持数据动态更新。但是,在探测损坏数据过程中,验证路径较长,且每次验证过程中需要大量的辅助信息支持,使得计算开销与通信开销增大。Zheng[12]和Ren[13]等提出了基于值域2~3树的云存储方案,该方案采用了数据结构比认证跳跃表简单的值域2~3树,通过验证聚合标签探测出损坏数据块,且支持数据动态更新,但是,值域2~3树的结构仍较为复杂,两个叶子节点数量相同的树可能结构不一样,导致树的生成时间较长,而且每个云存储服务器都有一个值域2~3树,在探测损坏数据时,需要一一验证每个树的聚合标签,消耗时间较多,效率不高。
针对上述问题,在已有工作的基础上,基于LT编码设计了两级分布式二叉树的云存储方案以进行损坏数据探测与动态更新。在分布式云存储中,由于存储节点之间的带宽和通信负载可能会成为瓶颈,需要采用恢复时具有较少通信开销的编码,特别是当一个节点发生故障,且需要进行数据探测时,LT码能高效地执行数据探测与更新操作,而且整个过程中的通信开销和计算开销都比较小。该方案通过对探测数据建立两级分布式二叉树结构,确保了探测过程中的数据冗余量最小化和验证结构可扩展性,从同态技术出发,将探测数据作为叶子节点,利用BLS(Boneh–Lynn–Shacham)签名的聚合特性,将所有探测数据的验证标签进行聚合得到根节点的聚合标签值,验证根节点的聚合标签值是否正确,若正确则证明探测数据无损坏,反之则证明探测数据存在损坏情况,再通过两级分布式二叉树探测出损坏数据块。除此之外,利用LT码的编码性质,实现了数据动态更新,数据用户通过从云存储服务器得到的部分两级分布式二叉树来计算更新后根节点的聚合标签值,再与云存储服务器更新后得到的根节点聚合标签值进行比较,若相同则证明云存储服务器执行了数据更新操作,反之则证明未执行数据更新操作。实验分析与结果表明,相比于现有方案,该方案在存储开销相当的情况下,有效地减少了计算和通信开销,显著提高了损坏数据探测的效率。
1 问题描述 1.1 系统模型在云数据存储服务中,包含3类实体:数据用户、云存储服务器、第三方服务器,如图1所示。
![]() |
图1 云存储系统模型 Fig. 1 Model of cloud storage system |
1)数据用户。数据用户先将文件
2)云存储服务器。云存储服务器主要负责编码数据包的存储和管理。在损坏数据探测过程中,云存储服务器构建两级分布式二叉树,并将相应的聚合符号和聚合标签发送到第三方服务器,以此判断损坏数据块。在数据动态更新过程中,云存储服务器将待更新的数据块和相应的编码数据包发给数据用户,待数据用户更新数据后,云存储服务器更新相应的编码数据包。
3)第三方服务器。为了减轻数据用户实时在线与有限计算资源的负担,数据用户可以与第三方服务器进行协商,将损坏数据探测任务委托给第三方服务器进行。当数据出现损坏情况时,第三方服务器探测出损坏的数据块,通知云存储服务器进行损坏数据块的修复,同时,将结果报告给数据用户。
1.2 预备知识介绍在文件处理的过程中用到的LT编码以及签名的相关知识。
1)LT码编解码原理
LT码[14]的一个特点是在编码过程中,可以生成无限数量的编码数据包,而每个编码数据包都是根据LT码的RS度分布,通过对一定数量的原始数据包进行XOR运算来产生。在解码时,LT码以
$\tau \left( i \right) = \left\{ {\begin{aligned}&{R/im,}\quad {i= 1,2, \cdots ,m/R - 1;}\\&{R\ln\!\left( {R/\delta } \right)/m,}\quad {i=m/R;}\\&{0,}\quad {i=m/R + 1,2, \cdots ,m}{\text{。}}\end{aligned}} \right.$ |
2)计算Diffie-Hellman问题(computation Diffie-Hellman, CDH)
给定任意的整数
3)双线性映射
设
①可计算性。对于任意的
②双线性。对于任意的
③非退化性。存在
详细介绍作者提出的基于LT码的损坏数据探测技术与动态更新技术,其中,
设
基于LT码的损坏数据探测技术的主要步骤包括:
1)密钥生成算法
2)标签生成算法
3)探测生成算法
4)示证验证算法
基于LT码的动态更新技术的主要步骤包括:
1)密钥生成算法
2)标签生成算法
3)数据更新请求算法
4)数据更新算法
5)更新验证算法
将文件
每个编码数据包
${\sigma _{lij}} \leftarrow {(H(l\parallel i\parallel j) \cdot {u^{{C_{lij}}}})^\eta } \in G$ | (1) |
这些数据将以
为了对服务器上存储的数据进行损坏探测,首先随机选择
${\mu _l} = \sum\limits_{i = 1}^\alpha {\sum\limits_{j = 1}^t {{a_i}{b_j}{C_{lij}}} } ,\;\;{\varsigma _l} = \prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {{\sigma _{lij}^{{a_i}{b_j}}}} } $ | (2) |
同理,在探测主树中,每个探测子树的根节点作为叶子节点,计算得到探测主树的根节点,具体计算式如下:
$\mu = \sum\limits_{l = 1}^n {{\mu _l}} ,\;\;\varsigma = \prod\limits_{l = 1}^n {{\varsigma _l}} $ | (3) |
在探测主树中,执行示证验证算法
$e(\varsigma ,g)\mathop {\rm{ = }}\limits^? e \,\left( {\prod\limits_{l = 1}^n {\prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {H{{(l\parallel i\parallel j)}^{{a_i}{b_j}}}} } } \cdot {u^\mu },v} \right)$ | (4) |
$\begin{aligned}e(\varsigma ,g) & = e\left(\prod\limits_{l = 1}^n {{\varsigma _l}} ,g\right) = \\&e\left(\prod\limits_{l = 1}^n {\prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {{\sigma _{lij}^{{a_i}{b_j}}} } }} ,g\right) = \\&e{\left(\!\prod\limits_{l = 1}^n {\prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {{{(H(l\parallel i\parallel j))}^{{a_i}{b_j}}}} } } \cdot \prod\limits_{l = 1}^n {\prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {{u^{{a_i}{b_j}{C_{lij}}}}} } } ,g\!\right)^\eta } \!=\\&e\left(\prod\limits_{l = 1}^n {\prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {{{(H(l\parallel i\parallel j))}^{{a_i}{b_j}}}} } } \cdot {u^{{\sum\limits_{l = 1}^n} {{\sum\limits_{i = 1}^\alpha} {{\sum\limits_{j = 1}^t} {{a_i}{b_j}{C_{lij}}} } } }},v \right) = \\&e\left(\prod\limits_{l = 1}^n {\prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {{{(H(l\parallel i\parallel j))}^{{a_i}{b_j}}}} } } \cdot {u^\mu },v\right) \end{aligned} $ | (5) |
如果式(4)等式左右两边相等,则证明当前所有服务器上的数据块不存在损坏情况;否则,证明服务器中存在损坏数据块,此时,对根节点的左右子树分别通过式(4)计算,以此类推,直至找到某个叶子节点不满足式(4)的验证,即某个服务器中存在损坏数据块,假设第
$e({\varsigma _l},g)\mathop {\rm{ = }}\limits^? e\left( {\prod\limits_{i = 1}^\alpha {\prod\limits_{j = 1}^t {H{{(l\parallel i\parallel j)}^{{a_i}{b_j}}}} } \cdot {u^{{\mu _l}}},v} \right)$ | (6) |
同理,直至找到某个数据块不满足式(6)的验证,则证明该数据块已损坏,最后启动数据修复程序。
2.5 动态更新当数据用户需要更新数据时,向服务器发送更新请求,服务器根据编码数据块中的编码向量将相应的编码数据块传回给数据用户进行处理。假设更新前的数据块为
在探测子树与探测主树中,定义从第
![]() |
图2 两级分布式二叉树示例 Fig. 2 Example of two level distributed binary tree |
得到更新后的编码数据块
从理论复杂度与实验结果分析两个方面将基于LT编码环境下的两级分布式二叉树的损坏数据探测方案与逐一取回验证损坏数据探测方案[8]进行分析比较,以及将基于LT编码环境下的动态更新方案与基于RS编码环境下的动态更新方案[18]进行分析比较。
整个实验系统在Ubuntu 14.04环境下用Python语言编写,设置服务器数量
在基于LT编码的环境下,两个不同的损坏数据探测方案的复杂度比较见表1。
表1 两个不同方案的复杂度比较 Tab. 1 Complexity comparison of two different schemes |
![]() |
从表1可以看到,作者提出的两级分布式二叉树的损坏数据探测方案的复杂度最优为
如第2.3节所述,数据用户在将编码数据包发送给服务器之前要提前运行解码算法,以保证数据可用性,即对
由于
![]() |
图3 执行解码算法时间与LT开销因子的关系 Fig. 3 Relationship between decoding time and LT factor |
两级分布式二叉树的开销包括树的生成时间和节点存储开销,对于一个给定的文件,其对应的两级分布式二叉树的高度与文件大小和数据块数量相关。假设叶子节点数为
表2 不同大小文件的两级分布式二叉树的生成时间和存储开销 Tab. 2 Time and storage cost of two level distributed binary tree with different size files |
![]() |
当出现损坏数据时,需要执行损坏数据探测方案,尽可能快地查找到损坏数据块,如图4所示,随着文件越来越大,两级分布式二叉树损坏数据探测方案的探测时间也越来越大,但是,其增长的幅度比逐一取回验证方案的探测时间的增长幅度小得多,主要原因在于逐一取回验证方案的探测时间开销为
![]() |
图4 不同大小文件的损坏数据探测时间 Fig. 4 Detection time of damaged data for files of different sizes |
对数据用户而言,存储在服务器上的数据可能不止一个地方损坏,出现多处损坏可能会降低损坏数据探测的效率,进一步,比较在同一文件下不同的损坏数据块数量与探测时间的关系,如图5所示。
![]() |
图5 相同大小文件的不同大小损坏数据的探测时间 Fig. 5 Different damaged data detection time with the same size of files |
当损坏数据块数量为1/300时,两级分布式二叉树损坏数据探测方案的探测时间达到最小值,因为整个探测路径是从探测主树的根节点到探测子树的叶子节点,即整个树的高度。随着损坏数据块的数量越来越多,两级分布式二叉树损坏数据探测方案的探测时间也增大,当所有数据块都损坏时,探测时间达到最大值,因为需要遍历整个探测主树与子树,而逐一取回验证方案的探测时间不随损坏数据块的数量变化而变化。由图5可以看出,在同一文件下,随着损坏数据的不断增加,两个方案的探测时间差不断缩减,甚至到最后两级分布式二叉树探测方案的探测时间比逐一取回验证的损坏数据探测方案的探测时间还要多,其原因在于两级分布式二叉树探测方案每多一次对叶子节点进行计算,就需要对根节点至相应叶子节点的路径上所有节点进行计算。
当数据用户需要更新数据时,需要执行数据动态更新方案,并尽可能快地将数据块进行更新。原始文件大小为300 MB,如图6所示,随着更新数据量不断增加,数据更新所需时间也不断增长,但是从整体上看,作者提出的基于LT编码的数据动态更新方案比基于RS编码的数据动态更新方案[18]所需时间少一些,主要原因在于LT码是XOR运算,比RS码的矩阵乘法运算简单高效。
![]() |
图6 不同更新数据量的更新时间 Fig. 6 Update time of different sizes of update data |
4 结 论
云存储是一个以数据存储和管理为核心的云计算系统,是未来存储发展的一种趋势,但随着云存储越来越普及以及数据量越来越大,存储的数据出现损坏情况无可避免,如何能够快速进行损坏数据探测则越来越重要。作者研究了云存储系统中的损坏数据探测和动态更新问题,并且设计了一种基于LT编码的两级分布式二叉树的方案。该方案利用BLS签名的聚合性质对数据块进行计算并生成聚合标签,通过验证聚合标签是否正确来以定位出损坏数据所处的位置,提升了探测损坏数据块的效率;同时,方案基于LT码的编码性质可支持对更新数据块进行异或运算,实现了数据的动态更新,并且能对云服务器是否进行数据更新加以验证。理论分析与实验结果表明,与逐一进行数据探测的方案相比,作者所提方案在存储开销相当的情况下,有效减少了计算和通信开销,显著提高了损坏探测的效率。下一步工作将重点研究如何优化存储数据的数据结构与数据动态更新方案。
[1] |
Yu Y,Man H A,Ateniese G,et al. Identity-based remote data integrity checking with perfect data privacy preserving for cloud storage[J]. IEEE Transactions on Information Forensics & Security, 2017, 12(4): 767-778. DOI:10.1109/tifs.2016.2615853 |
[2] |
Li Guojie. The scientific value of big data research[J]. Communication of China Computer Federation, 2012, 8(9): 1-8. [李国杰. 大数据研究的科学价值[J]. 中国计算机学会通讯, 2012, 8(9): 1-8.] |
[3] |
Luo Junzhou,Jin Jiahui,Song Aibo,et al. Cloud computing:Architecture and key technologies[J]. Journal on Communications, 2011, 32(7): 3-21. [罗军舟,金嘉晖,宋爱波,等. 云计算:体系架构与关键技术[J]. 通信学报, 2011, 32(7): 3-21. DOI:10.3969/j.issn.1000-436X.2011.07.002] |
[4] |
Xu G,Yang Y,Yan C,et al. A rapid locating protocol of corrupted data for cloud data storage[J]. KSII Transactions on Internet & Information Systems, 2016, 10(10): 4703-4723. DOI:10.3837/tiis.2016.10.005 |
[5] |
Sliwko L,Getov V.AGOCS—Accurate Google cloud simulator framework[C]//Proceedings of the 2016 IEEE Conferences on Ubiquitous Intelligence and Computing,Advanced and Trusted Computing,Scalable Computing and Communications,Cloud and Big Data Computing,Internet of People,and Smart World Congress.Toulouse:IEEE,2016:550–558.
|
[6] |
Guise P D.Data recovery:Preventing data loss in the age of big data,cloud,and virtualization[M].Boca Raton:CRC Press,2016.
|
[7] |
Castiglione A,De Santis A,Masucci B,et al. Supporting dynamic updates in storage clouds with the Akl-Taylor scheme[J]. Information Sciences, 2017, 387: 56-74. DOI:10.1016/j.ins.2016.08.093 |
[8] |
Cao Ning,Yu Shucheng,Yang Zhenyu,et al.LT codes-based secure and reliable cloud storage service[C]//Proceedings of the 31st Annual IEEE International Conference on Computer Communications (INFOCOM 2012).Orlando:IEEE,2012:693–701.
|
[9] |
Li Li,Yan Tianyun. A data cloud storage scheme based on LT code[J]. Computer Engineering, 2014, 40(4): 7-13. [李力,鄢田云. 一种基于LT码的数据云存储方案[J]. 计算机工程, 2014, 40(4): 7-13. DOI:10.3969/j.issn.1000-3428.2014.04.002] |
[10] |
Erway C C,Papamanthou C,Tamassia R.Apparatus,methods,and computer program products providing dynamic provable data possession:U.S.Patent 8978155[P].2015-03-10.
|
[11] |
Erway C C,Küpçü A,Papamanthou C,et al.Dynamic provable data possession[J].ACM Transactions on Information and System Security (TISSEC),2015,17(4).DOI:10.1145/2699909
|
[12] |
Zheng Qingji,Xu Shouhuai.Fair and dynamic proofs of retrievability[C]//Proceedings of the First ACM Conference on Data and Application Security and Privacy.New York:ACM,2011:237–248.
|
[13] |
Ren Zhengwei,Wang Lina,Wang Qian,et al. Dynamic proofs of retrievability for coded cloud storage systems[J]. IEEE Transactions on Services Computing, 2015, 11(4): 685-698. DOI:10.1109/TSC.2015.2481880 |
[14] |
Luby M.LT codes[C]//Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science.Vancouver:IEEE,2002:271.
|
[15] |
Shacham H,Waters B. Compact proofs of retrievability[J]. Journal of Cryptology, 2013, 26(3): 442-483. DOI:10.1007/s00145-012-9129-2 |
[16] |
Yedidia J S,Freeman W T,Weiss Y.Understanding belief propagation and its generalizations[M]//Exploring Artificial Intelligence in the New Millennium.San Francisco:Morgan Kaufmann Publishers Inc.,2003:236–239.
|
[17] |
Ren Z,Wang L,Deng R,et al. Improved fair and dynamic provable data possession supporting public verification[J]. Wuhan University Journal of Natural Sciences, 2013, 18(4): 348-354. DOI:10.1007/s11859-013-0941-9 |
[18] |
Lee O T,Kumar S D M,Chandran P.Erasure coded storage systems for cloud storage—Challenges and opportunities[C]//Proceedings of the 2016 International Conference on Data Science and Engineering (ICDSE).Cochin:IEEE,2016:1–7.
|