去中心化的安全分布式存储系统
来源:计算机工程杂志 更新时间:2013-03-01

去中心化的安全分布式存储系统
发表时间:2013/3/1 贾亚茹 刘向阳 刘胜利 来源:万方数据
关键字:分布式存储 分布式纠删码 去中心化存储 加密
信息化调查找茬投稿收藏评论好文推荐打印社区分享
提出一种去中心化的安全分布式存储系统。通过公钥加密和单钥加密相结合的方法,提高存储数据的保密性。对每个数据源使用不同的对称密钥进行分布式加密,采用分布式纠删码对加密后的数据进行编码。使用RS 多项式编码和List Decoding 译码方法存储加密的对称密钥,以保证系统的鲁棒性。分析结果表明,该方案的计算复杂度较低。
1 概述
    随着计算机和网络技术的发展,存储模式也由个人集中式的存储发展为分布式存储。分布式存储就是将数据存储在多台独立的存储服务器上。分布式存储通过备份、冗余编码等手段,可以提高系统的可靠性、可用性和存取效率,还易于扩展[1]。因此,越来越多的用户将自己的大量数据外包给存储服务方进行分布式存储。这种模式在给用户带来方便和快捷的同时,也带来了新的问题。例如:用户如何保证数据的隐私性。为解决这个问题,研究者提出了新的方案[2]。但该方案完全使用公钥加密,导致方案的加解密效率不高,而且加密时仍然需要集中式的处理,没有实现真正意义下的“去中心化”。本文针对分布式存储,研究如何将“去中心化”和用户数据进行高效加解密结合,提出一种去中心化的安全分布式存储系统。
2 相关工作
    分布式存储通常以提高可靠性为目的。为提高可靠性,存储数据的一般方法是通过编码增加冗余信息,利用纠删编码的原理,对数据进行纠删编码,将编码后的各个数据片段分布式地存储于异地的存储服务器中。
    分布式存储原理如图1 所示。具体如下:对于一个文件M,首先将其分成k 个等长的分组(最后一组不足可填充0),形成向量 M’= (M1,M2 , , , M k),然后利用(n, k)纠删码对其进行编码来增加冗余,得到与M’ 相关的码字向量C =(C1,  C2 , ,  Cn)。将码字的n 个部分分别存储在n 个存储服务器中。数据恢复时,只需存取n个存储服务器中的任意k 个即可解码恢复出原始数据M。
130065140580032803_new.jpg (454×181) 
图1 分布式存储原理
    目前分布式存储的研究重在研究系统的计算复杂度、通信效率、鲁棒性等。一个好的分布式存储系统应满足计算复杂度低、通信代价小、具有较好的抗灾难性等。
    在一般情况下,分布式存储系统是将分组消息形成的向量 M’= M1,M2 , , , M k集中进行编码处理的。但如果数据来源是异地的,则需先将所有的数据汇聚在某个服务器上集中进行编码处理,之后再将处理好的分组数据发送给各个异地的存储服务器。
    文献[1]讨论了异地数据源(如传感器网络中的传感器采集的数据)分布式存储中如何去中心化,即:使数据的编码不再集中进行,而转由各个存储服务器分布式地进行。其思想是使用分布式的纠删码原理实现分布式编码以去中心化的。由于省去了集中化处理所需的汇聚步骤,编码过程转由各个存储服务器分布式地完成,因此整个系统的架构有了较大的简化。同时,由于所采用的纠删码所使用的生成矩阵实际上是一个稀疏矩阵,因此编码和译码的效率较高。去中心化的分布式存储原理如图2 所示。
130065140681378600_new.jpg (452×198)
 
图2 去中心化的分布式存储原理
    分布式存储对于如何保证数据的保密性方面研究相对较少。文献[2]在去中心化分布式存储的基础上增加数据的保密性。该文利用了特殊的具有同态性的公钥密码算法,使对密文的纠删编码可以直接进行解密后再进行纠删解码,其系统结构如图3 所示。
130065140776884062_new.jpg (930×247)
 
图3 文献[2]系统结构
    但公钥密码算法的算法复杂度实质是非常高的,几乎从来不会场直接应用于对大量数据加解密,而分布式存储的应用场景很多都是大量数据的存储,因此,文献[2]方案的实用性较低。该方案具有以下缺点:  (1)方案使用了公钥算法,至使其数据的加解密速度慢,难以达到实时性要求。由于公钥算法的安全性一般都基于一些数学上的困难问题,如离散对数、大整数分解等,因此公钥算法的算法复杂度高,加密和解密速度很慢,一般只是用于对少量数据(如密钥)的加密。以RSA 公钥算法为例,它加解密所针对的数据一般是1 024 bit。因此,对于大量的数据,只能将其以1 024 bit 为一组进行分割,然后逐组进行加密,解密也是分组进行。而在分布式存储中,用户一般都是借助第三方服务器来存储大量数据的,这样公钥算法对大量数据的加解密都难以达到实时性的要求,更不适合于计算能力弱的网络环境(如无线传感器网等)。
    (2)数据的分布存储并没有完全实现去中心化。虽然方案借助了文献[1]中的去中心化的纠删码的思想,但之前的加密操作却是集中处理的。由于所有的密文需要共享一个相同的标识hID=H (M1,M2 , , , M n),而且该标识参与了加密运算,这就导致了方案中的加密过程不可能去中心化,因而就失去了文献[1]方案“去中心化”的特性。
    (3)系统架构复杂。方案中解密时需要借助分布式的解密服务器,而且要求合谋的服务器个数不超过t 个。在文献[2]中,解密服务器是独立于存储服务器的,专门用于为用户进行解密操作。用户的私钥通过(t, m)门限体制存储于m 个密钥服务器中。文中假设解密服务器的安全级别比存储服务器要高:存储服务器可以允许任意多个服务器合谋,而对于解密服务器却中允许不超过t 个服务器间的合谋。
    (4)在方案的解密操作中,分布式的解密服务器需要进行的是计算复杂度很高的模指数算法,而用户最后的合成阶段,即使利用了所使用的公钥算法的同态性质也需要至少O(k)次模指数操作和复杂度更高的双线性配对操作。
3 去中心化的安全分布式存储系统
    本文针对文献[2]方案,提出一个新的通用的去中心化的安全存储系统,如图4 所示。
130065140935993163_new.jpg (917×332)

图4 去中心化的安全分布式存储系统
130065141075501142_new.jpg (401×1170)130065141260591729_new.jpg (414×1166)

 以上方案描述假设了每个Mi 都是有限域Fq 上的元素,如果Mi 很多,可以将其分成若干个Fq 上的元素,逐个参与以上的各个步骤。同一个Mi 中的各块数据是共享一个对称密钥Ki 的,而且对其密文的纠错编码时,编码时共享同一组编码系数。
4 性能分析
    对本文提出的分布式存储系统的性能分析如下:
    (1)本方案中通过公钥体制和对称密码体制之间的结合,且消息的各个部分消息Mi 使用了不同的对称密钥Ki,使得整个加密操作都可以分布式完成,实现了加密阶段的去中心化,且分布式存储服务器的存储代价与文献[2]方案的相同。(2)计算复杂度高的公钥密码只用于加密对称密钥,而其它的大量数据都使用对称密码,使得加密步骤的计算复杂度大大降低。
    (3)采用了文献[1]中的分布式纠删编码方法,实现编码阶段的去中心化。由于所采用的纠删码的生成矩阵实质上是一个随机的稀疏矩阵,因此其编码和译码的计算复杂度都小于O(n3)。
点击图片查看大图
    (4)从密文中恢复出明文,对称密钥的恢复非常重要。为了保证密钥的恢复,这里采用RS 纠错码中的多项式编码[5-6]和List Decoding 的译码方法[3-4]。纠错码的应用保证了即使某些存储服务器提供的数据有误,在不知道错误存储器的位置的情况下,只要发生服务器出错个数不超过其纠错能力,一般的RS 译码都可以将其纠正。使用ListDecoding,其纠错能力更加强大,它可以纠RS 码纠错能力之外的错误。通过放松与接收码字的距离,可以输出多个码字,而其中的一个必定是其中的正确解。
5 结束语
    本文提出一种去中心化的安全分布式存储系统。该系统具有如下特点:(1)只需要存储服务器,而无需解密服务器,从而简化了系统的架构;(2)保证系统中的加密操作分布式进行,实现真正意义上的去中心化;(3)利用公钥密码体制和单钥密码体制相结合的传统思想,保证了数据的快速加解密;(4)无论是存储服务器还是解密服务器,都可以达到防止全合谋的特性,即无论多少个服务器合谋,其安全性都不会受到破坏。下一步工作将研究如何提高系统效率。