一种多重云环境下数据完整性验证方法

文档序号:6521563阅读:204来源:国知局
一种多重云环境下数据完整性验证方法
【专利摘要】一种多重云环境下数据完整性验证方法,其步骤如下:阶段一预处理:由客户端执行,包括初始化,文件分块,数据标签的生成,文件、标签、公开参数的存储四个步骤;阶段二挑战-响应:该阶段是用户与云服务提供商交互的一个过程,不管是在数据更新前,还是更新后,用户向云服务提供商发起挑战,服务器做出相应的回应,用户根据服务器给的回应进行完整性验证;阶段三用户验证:由用户执行,用户收到组织者返回的数据P={P1,P2}时,从可信第三方处获得存储的公开参数,验证云服务提供商存储的数据是否是完整的,如果验证成功则输出accept,否则输出reject;阶段四动态更新:用户需要对数据进行动态操作时,用户计算出新的标签并发送给组织者,组织者再进行分布式存储。
【专利说明】一种多重云环境下数据完整性验证方法
【技术领域】
[0001]本发明涉及一种多重云环境下数据完整性验证方法,即一种多重云存储环境下,能够支持公开验证和数据动态更新的数据完整性验证方法,属于云计算安全领域。
【背景技术】
[0002]云存储是一种在线的存储模式,即用户(客户端)与服务器(云端)通过一定的协议,将自己的外包数据存储于云端,这种新兴的存储方式,具有云计算的灵活性、低成本性、可扩展性。用户可以随时随地接入云端,获取自己的数据;按照“pay as you go”(现收现付)的方式,根据实际使用的存储空间付费,降低了数据的维护和存储设备的成本,并且能够按照存储的需要进行扩展。
[0003]与此同时,云存储也存在许多安全问题,其中,云端数据的完整性是用户关注的热点问题之一。用户将数据存储于云端,在物理上失去了对数据的控制。由于网络的攻击,月艮务器机器故障等原因,存储于云端的数据可能被篡改,删除等。而云服务提供商为了更好的信誉等其他原因,可能隐瞒数据出错的事实。
[0004]现有的研究主要集中在“单个云存储服务提供商”环境下的数据完整性验证,包括对只读数据的完整性验证和支持数据动态操作的完整性验证方案。而在多重云存储的环境中,用户为了进一步确保数据的可用性,将数据分别存储于多个云存储服务提供商中。由于之前的方案只针对单个云存储服务提供商,用户每次只能对一个服务提供商进行数据的完整性验证,所以在多重云环境下,需要对每个服务提供商分别进行挑战,这样不仅执行效率很低,而且通信代价很高。Yan Zhu等人发表的文章《CooperativeProvable Data Possession for Integrity Verification in Multicloud Storage))中提出了 CPDP 方案(参考文献:Y.Zhu, H.Hu, G.J.Ahn, M.Yu, “Cooperative Provable DataPossession for Integrity Verification in MultiCloud Storage,,,IEEE Transactionson Parallel and Distributed Systems, 23 (12),2012,2231-2244),实现 了多重云环境下的数据完整性验证,但是该方案在设计上存在漏洞(参考文献:Huaqun Wang, YuqingZhang, “On the Knowledge Soundness of a Cooperative Provable Data PossessionScheme in Multicloud Storage,,,IEEE Transactions on Parallel and DistributedSystems,2013)。因为服务器的返回值中的参数π’与其他参数无关,所以服务器可以利用此参数伪造证据;此外,在该方案中,进行第三方公开验证时,第三方需要知道用户每个数据块存储的位置,这对于用户的数据是一种潜在的威胁。
[0005]本方法涉及的主要技术理论为双线性映射。
[0006]本发明运用了双线性映射的性质,对处理后的数据块进行BLS签名(Boneh,Lynn和Shacham提出的短签名方案,简称BLS签名方案),最后对签名进行验证。双线性映射的描述如下:
[0007]设G,Gt分别是阶为P (P为素数)的乘法群,g为G的生成元,定义双线性映射为e =GXG-Gt,并满足一下特性:[0008](I)双线性。如果 U,V e Zp,则满足 e(gu, gv) =e (g, g)uv。
[0009](2)非退化性。e (g, g) ^ 1
[0010](3)可计算性。对于u e Zp,存在一个有效算法计算e(g, gu)。

【发明内容】

[0011](I)发明目的
[0012]针对现有技术中存在的问题,本发明的目的是提供一种多重云环境下数据完整性验证方法,即一种应用于多重云环境下支持公开验证和数据动态更新的数据完整性验证方法。用户可对存于多个云服务提供商上的数据进行完整性验证。本发明利用了基于双线性对的BLS签名技术和同态聚合技术,能够高效地、安全地实现完整性验证,并且支持第三方进行公开验证。
[0013](2)技术方案
[0014]通信过程中包括三个网络实体,用户、可信第三方、多个服务提供商。其中,多个服务提供商中指定一个组织者(Organizer)直接与其他的云服务提供商进行通信。以下将结合附图对所述的完整性验证方案的技术方案进行阐述。
[0015]本发明一种多重云环境下数据完整性验证方法,它包括预处理、挑战-响应、用户验证、动态更新四个阶段,其具体作法和步骤如下:
[0016]阶段一(预处理):由客户端执行,包括初始化,文件分块,数据标签的生成,文件、标签、公开参数的存 储四个步骤,是用户在存储数据之前执行的操作;
[0017]步骤1.1 (初始化):初始化阶段是运行一个概率性的密钥生成算法,可表示为:KeyGen (1λ) — {sk,pk},其输入为安全参数λ,输出为公钥pk和私钥sk,用户保留sk,公开Pk ;
[0018]步骤1.2 (文件分块):用户将要存储到多个云端服务器的数据文件F分成η块,每一块为s部分;算法可表示为F — {mu}nXs,其中m为数据块;
[0019]步骤1.3(数据标签的生成):用户在群G中随机选择s个公开的参数U1,...,Us,计算出每个数据块Hii (i=l...η)对应的标签Oik,得到所有标签的集合σ ;可用算法表示为:TagGen (sk, pk, F) — { σ };
[0020]步骤1.4 (文件、标签、公开参数的存储):用户将数据文件F和对应的标签发送给云端服务提供商中的组织者,组织者根据数据块的存储情况,将各个数据块和对应的标签存储于各个云服务提供商;
[0021]阶段二 (挑战-响应):挑战-响应阶段是用户与云服务提供商交互的一个过程,不管是在数据更新前,还是更新后,用户可以向云服务提供商发起挑战(即完整性验证请求),服务器根据挑战,做出相应的回应,用户根据服务器给的回应进行完整性验证。本阶段包括用户发起挑战、组织者转发挑战、云服务商生成证据、组织者聚合证据四个阶段;
[0022]步骤2.1 (用户发起挑战):是用户生成挑战的过程,可表示为:Challenge (chal)当用户想要验证存储于云端多个服务提供商的数据的完整性时,用户生成挑战Chal=Q发送给组织者;
[0023]步骤2.2 (组织者转发挑战):组织者根据挑战的数据块将收到的挑战Chal=Q转发给服务提供商CSPk,可表示为Forward(Chal);[0024]步骤2.3 (各个云服务提供商生成证据):,[0025]云服务提供商CSPk(ke [1,1])收到组织者转发的chal后,计算完整性证据Pk并返回给组织者,算法表示为GenProof (pk, Q, Iiii, σ ix) — {Pk}[0026]步骤2.4 (组织者聚合证据):组织者聚合各个云服务提供商返回的数据并将聚合结果返回给用户;[0027]阶段三(用户验证):由用户执行,用户收到组织者返回的数据P= {P,,PJ时,从可信第三方处可以获得存储的公开参数,验证云服务提供商存储的数据是否是完整的,如果验证成功则输出accept (接受),否则输出reject (拒绝);[0028]阶段四(动态更新):用户需要对数据进行动态操作时,用户计算出新的标签并发送给组织者,组织者再进行分布式存储。[0029](3)优点及功效[0030]本发明一种多重云环境下数据完整性验证方法,即一种多重云环境下的支持公开验证和数据动态操作的完整性验证方案,该方案涉及数据在多个云服务器上的存储,数据公开的完整性校验,存于云端数据的动态更新,其功效和优点是:I)利用了基于双线性对的BLS签名技术和同态聚合技术,能够高效地、安全地实现云端数据的完整性验证。2)支持公开验证。3)交互数据量小,通信开销为0(1),且用户的本地存储量也仅为0(1)。4)用户可以同时向多个云服务器发起完整性验证挑战,且挑战次数不受限制。5)支持数据的动态更新,包括数据的修改,删除等。
【专利附图】

【附图说明】[0031]图1为本发明流程框图;[0032]图2为本发明网络实体图;[0033]其中,CSPl和CSP2表示两个不同的云服务提供商,Organizer也是云服务提供商之一,用来协调用户与各个云服务提供商。[0034]图3为本发明数据存储方式的示例图;[0035]其中,05?1、05?2、05?3和05?4表示四个不同的云服务提供商,1111,1112,…,m9表示用户将要存储的数据块。连线表示该数据块存储于对应的云服务提供商中。注意,一块数据可能存储在多个云服务提供商中。[0036]图4为本发明数据和标签的计算示意图;[0037]其中,Iiii (i=l...η)表示文件分成的数据块;每一块分成s部分,每一部分表示为Inij (i=l...n; j=l..s) (i=l...s)表示用户的随机选取的公开参数!Iiumi (i=l...η)表示数据块存储的份数;。ij(i=l...n; j=l..Mimi)表示数据块Hii对应的Mimi个标签。
【具体实施方式】[0038]本发明包括三个网络实体,用户、可信第三方、多个云服务提供商(cloud serviceproviders, CSPs)。其中,多个服务提供商中指定一个组织者(Organizer),如图2所示。本发明中,用户将文件分块后,在多个CSP中进行存储,对应其中的一个数据块,可能存储于多个云服务提供商中,在图3中给出了一个数据存储方式的示例。以下将结合附图对所述的数据完整性验证方法进行详细阐述,图1为本发明流程框图;图2为本发明网络实体图;图3为本发明数据存储方式的示例图;图4为本发明数据和标签的计算示意图。
[0039]主要的符号及概念:
[0040](l)ji=(p,G, GT, e, g)是系统参数,其中,P为大素数,为循环群G的阶;e:GXG-GT为非退化的双线性映射。G=〈g>,g为G的生成元。
[0041](2)1是云服务提供商的个数,分别表示为:ICSP1, CSP2, CSP1I
[0042](3)F是用户需要存储的文件,Fn是文件F文件名,分成了 η块,每一块分成了 s部
分,F={mij}mxn。
[0043](4)Q是用户生成的挑战,用户每次随机选取c块数据和每块数据对应的加权系数aj(j=l..c)作为挑战。即:9={(;[』,&』),」=1...。,;^£ [I, n], aj e Zp},
[0044](5) H: {O, 1}* —G是一个哈希函数,将任意长度的输入映射到群G上。
[0045]本发明一种多重云环境下数据完整性验证方法,即一种多重云环境下的支持公开验证和数据动态操作的完整性验证方案,该方案涉技术方案可分为预处理、挑战-响应、用户验证、数据更新四个阶段。见图1,本发明多重云环境下数据完整性验证方法,该方法具体步骤如下:
[0046]阶段一:预处理阶段
[0047]本阶段中,数据的分块和各数据块的标签的计算如图4所示。
[0048]步骤1.1:初始化(KeyGen(Ix) — {sk, pk})
[0049]用户选择安全参数λ,生成系统参数Ji和H。在Zp中随机选择α作为用户的私钥,在群G中计算V — ga作为用的公钥。pk={v, g}, sk= { α }
[0050]步骤1.2:文件分块(F — ImijInxs)
[0051]用户将要存储到多个云端服务器的数据文件F分成η块,每一块为s部分,文件F可以表示为:
【权利要求】
1.一种多重云环境下数据完整性验证方法,其特征在于:它包括预处理、挑战-响应、用户验证、动态更新四个阶段,其具体作法和步骤如下: 阶段一预处理:由客户端执行,包括初始化,文件分块,数据标签的生成,文件、标签、公开参数的存储四个步骤,是用户在存储数据之前执行的操作; 步骤1.1初始化:初始化阶段是运行一个概率性的密钥生成算法,表示为:KeyGen (1λ) — {sk,pk},其输入为安全参数λ,输出为公钥pk和私钥sk,用户保留sk,公开Pk ; 步骤1.2文件分块:用户将要存储到多个云端服务器的数据文件F分成η块,每一块为s部分;算法表示为F — ImijInxs,其中m为数据块; 步骤1.3数据标签的生成:用户在群G中随机选择s个公开的参数U1,...,Us,计算出每个数据块叫(1=1...11)对应的标签Oik,得到所有标签的集合σ ;用算法表示为:TagGen (sk, pk, F) — {σ}; 步骤1.4文件、标签、公开参数的存储:用户将数据文件F和对应的标签发送给云端服务提供商中的组织者,组织者根据数据块的存储情况,将各个数据块和对应的标签存储于各个云服务提供商; 阶段二挑战-响应:挑战-响应阶段是用户与云服务提供商交互的一个过程,不管是在数据更新前,还是更新后,用户向云服务提供商发起挑战即完整性验证请求,服务器根据挑战,做出相应的回应,用户根据服务器给的回应进行完整性验证;本阶段包括用户发起挑战、组织者转发挑战、云服务商生成证据、组织者聚合证据四个阶段; 步骤2.1用户发起挑战:是用户生成挑战的过程,表示为=Challenge(Chal)当用户想要验证存储于云端多个服务提供`商的数据的完整性时,用户生成挑战Chal=Q发送给组织者; 步骤2.2组织者转发挑战:组织者根据挑战的数据块将收到的挑战Chal=Q转发给服务提供商 CSPk,表示为 Forward (chal); 步骤2.3各个云服务提供商生成证据:云服务提供商CSPk(k e [I, I])收到组织者转发的chal后,计算完整性证据Pk并返回给组织者,算法表示为GenProof (pk, Q, Hii, σ ix) — {Pj ; 步骤2.4组织者聚合证据:组织者聚合各个云服务提供商返回的数据并将聚合结果返回给用户; 阶段三用户验证:由用户执行,用户收到组织者返回的数据P= {P,,PJ时,从可信第三方处获得存储的公开参数,验证云服务提供商存储的数据是否是完整的,如果验证成功则输出accept即接受,否则输出reject即拒绝; 阶段四动态更新:用户需要对数据进行动态操作时,用户计算出新的标签并发送给组织者,组织者再进行分布式存储。
【文档编号】G06F17/30GK103605784SQ201310631352
【公开日】2014年2月26日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】毛剑, 张晏, 李腾, 陈岳, 刘建伟, 张键红 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1