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

技术编号:9718840 阅读:217 留言:0更新日期:2014-02-27 05:37
一种多重云环境下数据完整性验证方法,其步骤如下:阶段一预处理:由客户端执行,包括初始化,文件分块,数据标签的生成,文件、标签、公开参数的存储四个步骤;阶段二挑战-响应:该阶段是用户与云服务提供商交互的一个过程,不管是在数据更新前,还是更新后,用户向云服务提供商发起挑战,服务器做出相应的回应,用户根据服务器给的回应进行完整性验证;阶段三用户验证:由用户执行,用户收到组织者返回的数据P={P1,P2}时,从可信第三方处获得存储的公开参数,验证云服务提供商存储的数据是否是完整的,如果验证成功则输出accept,否则输出reject;阶段四动态更新:用户需要对数据进行动态操作时,用户计算出新的标签并发送给组织者,组织者再进行分布式存储。

【技术实现步骤摘要】

本专利技术涉及,即一种多重云存储环境下,能够支持公开验证和数据动态更新的数据完整性验证方法,属于云计算安全领域。
技术介绍
云存储是一种在线的存储模式,即用户(客户端)与服务器(云端)通过一定的协议,将自己的外包数据存储于云端,这种新兴的存储方式,具有云计算的灵活性、低成本性、可扩展性。用户可以随时随地接入云端,获取自己的数据;按照“pay as you go”(现收现付)的方式,根据实际使用的存储空间付费,降低了数据的维护和存储设备的成本,并且能够按照存储的需要进行扩展。与此同时,云存储也存在许多安全问题,其中,云端数据的完整性是用户关注的热点问题之一。用户将数据存储于云端,在物理上失去了对数据的控制。由于网络的攻击,月艮务器机器故障等原因,存储于云端的数据可能被篡改,删除等。而云服务提供商为了更好的信誉等其他原因,可能隐瞒数据出错的事实。现有的研究主要集中在“单个云存储服务提供商”环境下的数据完整性验证,包括对只读数据的完整性验证和支持数据动态操作的完整性验证方案。而在多重云存储的环境中,用户为了进一步确保数据的可用性,将数据分别存储于多个云存储服务提供商中。由于之前的方案只针对单个云存储服务提供商,用户每次只能对一个服务提供商进行数据的完整性验证,所以在多重云环境下,需要对每个服务提供商分别进行挑战,这样不仅执行效率很低,而且通信代价很高。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)。因为服务器的返回值中的参数π’与其他参数无关,所以服务器可以利用此参数伪造证据;此外,在该方案中,进行第三方公开验证时,第三方需要知道用户每个数据块存储的位置,这对于用户的数据是一种潜在的威胁。本方法涉及的主要技术理论为双线性映射。本专利技术运用了双线性映射的性质,对处理后的数据块进行BLS签名(Boneh,Lynn和Shacham提出的短签名方案,简称BLS签名方案),最后对签名进行验证。双线性映射的描述如下:设G,Gt分别是阶为P (P为素数)的乘法群,g为G的生成元,定义双线性映射为e =GXG-Gt,并满足一下特性:(I)双线性。如果 U,V e Zp,则满足 e(gu, gv) =e (g, g)uv。(2)非退化性。e (g, g) ^ 1(3)可计算性。对于u e Zp,存在一个有效算法计算e(g, gu)。
技术实现思路
(I)专利技术目的针对现有技术中存在的问题,本专利技术的目的是提供,即一种应用于多重云环境下支持公开验证和数据动态更新的数据完整性验证方法。用户可对存于多个云服务提供商上的数据进行完整性验证。本专利技术利用了基于双线性对的BLS签名技术和同态聚合技术,能够高效地、安全地实现完整性验证,并且支持第三方进行公开验证。(2)技术方案通信过程中包括三个网络实体,用户、可信第三方、多个服务提供商。其中,多个服务提供商中指定一个组织者(Organizer)直接与其他的云服务提供商进行通信。以下将结合附图对所述的完整性验证方案的技术方案进行阐述。本专利技术,它包括预处理、挑战-响应、用户验证、动态更新四个阶段,其具体作法和步骤如下:阶段一(预处理):由客户端执行,包括初始化,文件分块,数据标签的生成,文件、标签、公开参数的存 储四个步骤,是用户在存储数据之前执行的操作;步骤1.1 (初始化):初始化阶段是运行一个概率性的密钥生成算法,可表示为:KeyGen (1λ) — {sk,pk},其输入为安全参数λ,输出为公钥pk和私钥sk,用户保留sk,公开Pk ;步骤1.2 (文件分块):用户将要存储到多个云端服务器的数据文件F分成η块,每一块为s部分;算法可表示为F — {mu}nXs,其中m为数据块;步骤1.3(数据标签的生成):用户在群G中随机选择s个公开的参数U1,...,Us,计算出每个数据块Hii (i=l...η)对应的标签Oik,得到所有标签的集合σ ;可用算法表示为:TagGen (sk, pk, F) — { σ };步骤1.4 (文件、标签、公开参数的存储):用户将数据文件F和对应的标签发送给云端服务提供商中的组织者,组织者根据数据块的存储情况,将各个数据块和对应的标签存储于各个云服务提供商;阶段二 (挑战-响应):挑战-响应阶段是用户与云服务提供商交互的一个过程,不管是在数据更新前,还是更新后,用户可以向云服务提供商发起挑战(即完整性验证请求),服务器根据挑战,做出相应的回应,用户根据服务器给的回应进行完整性验证。本阶段包括用户发起挑战、组织者转发挑战、云服务商生成证据、组织者聚合证据四个阶段;步骤2.1 (用户发起挑战):是用户生成挑战的过程,可表示为:Challenge (chal)当用户想要验证存储于云端多个服务提供商的数据的完整性时,用户生成挑战Chal=Q发送给组织者;步骤2.2 (组织者转发挑战):组织者根据挑战的数据块将收到的挑战Chal=Q转发给服务提供商CSPk,可表示为Forward(Chal);步骤2.3 (各个云服务提供商生成证据):,云服务提供商CSPk(ke [1,1])收到组织者转发的chal后,计算完整性证据Pk并返回给组织者,算法表示为GenProof (pk, Q, Iiii, σ ix) — {Pk}步骤2.4 (组织者聚合证据):组织者聚合各个云服务提供商返回的数据并将聚合结果返回给用户;阶段三(用户验证):由用户执行,用户收到组织者返回的数据P= {P,,PJ时,从可信第三方处可以获得存储的公开参数,验证云服务提供商存储的数据是否是完整的,如果验证成功则输出accept (接受),否则输出reject (拒绝);阶段四(动态更新):用户需要对数据进行动态操作时,用户计算出新的标签并发送给组织者,组织者再进行分布式存储。(3)优点及功效本专利技术,即一种多重云环境下的支持公开验证和数据动态操作的完整性验证方案,该方案涉及数据在多个云服务器上的存储,数据公开的完整性校验,存于云端数据的动态更新,其功效和优点是:I)利用了基于双线性对的BL本文档来自技高网
...

【技术保护点】
一种多重云环境下数据完整性验证方法,其特征在于:它包括预处理、挑战?响应、用户验证、动态更新四个阶段,其具体作法和步骤如下:阶段一预处理:由客户端执行,包括初始化,文件分块,数据标签的生成,文件、标签、公开参数的存储四个步骤,是用户在存储数据之前执行的操作;步骤1.1初始化:初始化阶段是运行一个概率性的密钥生成算法,表示为:KeyGen(1λ)→{sk,pk},其输入为安全参数λ,输出为公钥pk和私钥sk,用户保留sk,公开pk;步骤1.2文件分块:用户将要存储到多个云端服务器的数据文件F分成n块,每一块为s部分;算法表示为F→{mij}n×s,其中m为数据块;步骤1.3数据标签的生成:用户在群G中随机选择s个公开的参数u1,...,us,计算出每个数据块mi(i=1...n)对应的标签σik,得到所有标签的集合σ;用算法表示为:TagGen(sk,pk,F)→{σ};步骤1.4文件、标签、公开参数的存储:用户将数据文件F和对应的标签发送给云端服务提供商中的组织者,组织者根据数据块的存储情况,将各个数据块和对应的标签存储于各个云服务提供商;阶段二挑战?响应:挑战?响应阶段是用户与云服务提供商交互的一个过程,不管是在数据更新前,还是更新后,用户向云服务提供商发起挑战即完整性验证请求,服务器根据挑战,做出相应的回应,用户根据服务器给的回应进行完整性验证;本阶段包括用户发起挑战、组织者转发挑战、云服务商生成证据、组织者聚合证据四个阶段;步骤2.1用户发起挑战:是用户生成挑战的过程,表示为:Challenge(chal)当用户想要验证存储于云端多个服务提供商的数据的完整性时,用户生成挑战chal=Q发送给组织者;步骤2.2组织者转发挑战:组织者根据挑战的数据块将收到的挑战chal=Q转发给服务提供商CSPk,表示为Forward(chal);步骤2.3各个云服务提供商生成证据:云服务提供商CSPk(k∈[1,l])收到组织者转 发的chal后,计算完整性证据Pk并返回给组织者,算法表示为GenProof(pk,Q,mi,σix)→{Pk};步骤2.4组织者聚合证据:组织者聚合各个云服务提供商返回的数据并将聚合结果返回给用户;阶段三用户验证:由用户执行,用户收到组织者返回的数据P={P1,P2}时,从可信第三方处获得存储的公开参数,验证云服务提供商存储的数据是否是完整的,如果验证成功则输出accept即接受,否则输出reject即拒绝;阶段四动态更新:用户需要对数据进行动态操作时,用户计算出新的标签并发送给组织者,组织者再进行分布式存储。...

【技术特征摘要】
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和对应的标签发送给云端服务提供商中的组织者,组织者根据数据块的存储情况,将各个数据块和对应的标签存储于各个云服务提供商; 阶段二挑战-响应:挑战-响应阶段是用户与云服务提供商交互的一个过程,不管是在数据更新前,还是更新后,用户向云服务提供商发起挑战即完...

【专利技术属性】
技术研发人员:毛剑张晏李腾陈岳刘建伟张键红
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1