一种分布式云存储数据完整性保护方法

文档序号:7851716阅读:239来源:国知局
专利名称:一种分布式云存储数据完整性保护方法
技术领域
本发明涉及一种分布式云存储数据完整性保护方法,它也是一种用于验证存储于云服务器中的用户数据完整性并且可进行数据纠错的方法,属于云计算安全领域。 背景技术
Internet网络应用技术快速发展普及,加之Web2. O的发展导致网络用户和网络数据量高速增长,用户对数据的处理能力提出了更高的要求,云计算的特点迎合了这些需求。云计算为用户存储提供了极大的方便,用户不必再关心复杂的硬件管理。尽管云计算有这些吸引人的优势,但它也给数据保护带来了新的安全挑战与威胁首先,由于用户物理上不再拥有他们的数据,传统的用于数据保护的加密不能直接被采用。因此就需要能够验证数据正确存储的方法,考虑到云中大量的用户和大量的数据,对云计算中的数据存储安全来说,如何有效验证外包数据的正确性是一个巨大的挑战。其次,虽然云计算下的设施比个人计算设备更加强大和可靠,但它们仍然面临内部和外部的数据完整性威胁,大量觊觎云端数据的黑客们不停的挖掘着服务商Web应用上的漏洞,以期望打开缺口,获得有价值的数据。最后,具有数据优先访问权的并不是用户自己,而是云计算服务商。由于利益问题,云服务供应商对用户的数据就可能存在不诚实行为。因此,在云计算的实际应用中,设计能够保证数据正确存储的健壮安全的方案尤为重要。对云存储这种海量数据存储,我们一方面要考虑到数据的持有性验证的高效和低开销,另一方面要考虑到数据一旦存储出错可以采取的应对措施。基于此考虑,我们发明了本方法,涉及的主要技术为Goppa纠错编码,基于椭圆曲线的签名技术,Paillier加性同态加密算法。首先,Goppa码是20世纪70年代初俄国学者Goppa系统构造出的一类有理分式码。它是一类重要的线性纠错码,其最主要的优点是它的某些子类能够达到Shannon信道编码定理所给的性能,并且有快速译码算法。特别是它的不等价码类数目很大,于是,在1978年,McElice用Goppa码构造了一类公钥密码体制,自此开始了用纠错码构造密码体制及各种认证码。因此无论在实际中还是理论上,也无论在是在差错控制系统还是在密码中,Goppa码都具有重要意义。其定义如下设0〈n;^qm,L= {a0,是一个有序集合,Bi e GF(qm)且互不相等,又设 GF (q)上的 η 维空间 GFn(q),码字 C= [Clricn_2. · · c0] e GFn(q),
与C对于的GF (qm)上的z有理式为尺(二) =。此时,Goppa码的生成多项式g (Z)满
足{C; Rc (z) =Omodg (z)}。其次,Paillier密码算法满足加法同态的性质,即对于数据m G Zn,用公钥η和生成元g进行加密的结果为ε (m) Zg1Vmodn2,其中r为随机数,其同态的性质为S(Hi1) = (g;'J=二 sijn、+;; 2 mod")。最后,椭圆曲线密码(Elliptic curve cryptography,缩写为ECC)为密码学里运用最为广泛的公钥密码体制。ECC的主要优势是在某些情况下它比其他的方法使用更小的密钥(比如RSA加密算法),提供相当的或更高等级的安全。其安全性建立在椭圆曲线上的离散对数问题,即在椭圆曲线构成的Abel群Ep(a,b)上考虑方程Q=kP,其中P,Q e Ep(a, b),k<P,则由k和P易求Q,但是由P、Q求k则是困难的。

发明内容
(I)发明目的本发明的目的是提出供一种分布式云存储数据完整性保护方法,它克服了现有技术的不足。可用于解决云存储环境中用户对远端数据的保护和控制,其实现了用户对其存储在云服务器中数据的完整性和持有型的验证,该发明有验证次数不受限制,验证时采用随机抽取数据块,数据存储出错时错误定位和错误恢复的功能。
(2)技术方案为了达到上述目的,本发明结合了 Goppa纠错编码技术,椭圆曲线密码技术和Paillier同态加密技术,其技术方案如下。本发明包括两个实体,用户(User)和云服务提供商(CSP)。以下将结合附图对所述的持有性验证的技术方案进行阐述,图I为本发明流程框图;图2为数据预处理后的分布存储示意图;图3为挑战-响应机制交互图。如图1,本发明共包括7步,按照执行阶段其可分为初始化、挑战-响应和交互操作三个阶段。本发明是一种分布式云存储数据完整性保护方法,该方法具体步骤如下阶段I:初始化包括第(1Γ(3)步,数据块F的拥有者执行数据分割和编码{F — Μ}操作,同态标签(HVTs)的生成{(sk, F) — HVTs}操作,然后将编码数据M和同态标签HVTs外包到云端服务器进行存储和管理,用户需严格保证私钥的安全。步骤I :数据分割与编码{F — M} :User首先对原始数据F (以文件的形式存在)进行预处理生成存储数据M。F被分割成m个等大小的数据块(F1, F2,…,FJ,每一个数据块进一步被分割成I部分 //Λ,…,接着我们对其进行编码处理,方案中采用Goppa码编码方案对原始数据F进行编码处理,生成编码数据Μ,最后用户(User)外包编码数据M至云端CSP进行存储和管理;步骤2:同态标签(Homomorphic Verifiable Tags (HVTs))的生成{(sk, F) — HVTs}:对于每一个数据块Ζ(Λ,基于同态加密算法,我们根据设定的安全参数为其计算同态标签,我们所生成的同态标签具有加法同态的性质;步骤3 :数据的远程存储{(M(j),HVT) — SjI :用户将同态标签(2^,7^'”,一,2;(”)和数据块化1 一起存入第j个服务器,类似地,其它数据库则存储至其它的η个服务器中。用户则自己存储私钥和一些随机数。阶段2 :挑战-响应包括第(4) (6)步,用户生成挑战,指定其要检测的随机数据块,根据用户挑战,云服务器通过执行生成证据(GenProof) {(chal,HVTs,M) — R}操作作出响应。最后用户通过执行验证KR,sk) — Γsuccess", "failure")}操作,作出最后的数据检测结果判断。步骤4 :用户发起挑战{chal}:当用户想要验证服务器3」是否正确持有数据的时,用户向其发出挑战用户生成一个挑战chal,发送给服务器Sj ;
步骤5 :服务器作出响应生成证据(GenProof) {(chal, HVTs, M) — R}:当服务器收到挑战chal时,存储数据块…力的服务器需要产生一个证据R=(T,P )。之后,服务器将R返回给用户;步骤6:验证{(R,sk) — ("success", "failure")}:当用户收到服务器返回的R时,利用自己的私钥sk进行运算,从而对其服务器存储的数据状态进行判断,结果为“success” 或者 “failure,,。阶段3 :交互操作包括第(7)步,如果验证{(R, sk) — ("success", "failure")}操作的输出结果为“failure”,用户则要求CSP进行数据恢复操作,这可能会需要双方之间的交互。普通情况下,用户可将数据M下载下来,然后执行修复{(M*,P) — F}即可恢复出原数据。步骤7 :数据修复{(M*, P) — F}:如果检测到数据损坏,我们就可确定存储该数据 块的服务器S」出现的存储错误,这时可利用预处理时采用的纠错码进行数据恢复,对损坏数据M*和P进行译码即可恢复出原数据F。(3)优点及功效本发明一种分布式云存储数据完整性保护方法,该方法涉及数据的编码,数据验证和数据的恢复方面,其优点和功效是1)用户的本地量存储小,用户只需存储编码生成矩阵和私钥就可以对数据的持有性验证;2)交互数据量小,用户发出的挑战和服务器作出的响应的通信量固定的,与存储数据大小无关;3)用户可发起的持有性验证挑战次数不受限制;4)采用随机抽样计算校验块的方法,在减小服务器计算开销的同时,仍可保证检查的高置信度;5)采用线性纠错编码技术预处理存储数据实现了数据错误定位和错误纠正。


图I为本发明流程框图;图2数据预处理及分布存储图;图3挑战-响应机制流程图;图中符号说明如下在图I中,数字1,2,3,4,5,6,7代表各个步骤的序号,F代表原文件,M代表编码后的文件;在图2中,Μ )表示编码后的数据,#表示将Μ )分块后的每一块数据,Si代表第i个服务器,chal表示用户生成的挑战,R(J)表示服务器S」的响应;
具体实施例方式以下将结合附图对所述的完整性保护方法详细阐述,图I为本发明流程框图;图2为本发明数据预处理后的分布存储示意图;图3为本发明挑战-响应机制交互图。主要的符号及算法解释(I)F代表用户原数据,M为编码后的数据,包含nXl个数据块/ b第j个数据向量的第i块,它将被存储到服务器S」· G*= (I(n_r) x (n_r) I Pt)代表Goppa码的生成矩阵,其中P为冗余校验块生成矩阵;M*代表了服务器中存储出错的数据块。(2)E()和DO为分别为paillier密码算法的加密算法和解密算法,Ic1为其公钥,k2为其私钥,N为模数,paillier加密算法满足加法同态的性质。(3) G为椭圆曲线Ep(a, b)的生成元,其中大素数p〈N,P=yG,P表示在挑战中的公开参数,y为用户产生的保密参数;(4) ( ·)是一个伪随机置换(pseudorandom permutation, PRP)函数,即满足
权利要求
1.ー种分布式云存储数据完整性保护方法,其特征在于该方法具体步骤如下 阶段I :初始化包括第(1Γ(3)歩,,数据块F的拥有者执行数据分割和编码{F —Μ}操作,同态标签HVTs的生成{(sk, F) — HVTs}操作,然后将编码数据M和同态标签HVTs外包到云端服务器进行存储和管理,用户需严格保证私钥的安全; 步骤I :数据分割与编码{F —M} :User首先对以文件形式存在的原始数据F进行预处理,生成存储数据M ;F被分割成m个等大小的数据块(F1, F2,…,FJ,每ー个数据块进ー步被分割成I部分び,'…//"},接着对其进行编码处理,方案中采用Goppa码编码方案对原始数据F进行编码处理,生成编码数据M,最后用户User外包编码数据M至云端CSP进行存储和管理; 步骤2 :同态标签HVTs的生成{(sk,F) — HVTs}:对于每ー个数据块ガΛ,基于同态加密算法,根据设定的安全參数为其计算同态标签,所生成的同态标签具有加法同态的性质;步骤3:数据的远程存储{(M(J)1HVT) — Sj}:用户将同态标签(广ブ严,…,Γ尸ハ和数据-Mu) —起存入第j个服务器,类似地,其它数据库则存储至其它的η个服务器中,用户则自己存储私钥和ー些随机数; 阶段2:挑战-响应包括第(4Γ(6)步,用户生成挑战,指定其要检测的随机数据块,根据用户挑战,云服务器通过执行生成证据66成1'0ば{((*&1,取1'8^)—1 }操作作出响应,最后用户通过执行验证{(R,sk) — ("success","failure")}操作,作出最后的数据检测结果判断; 步骤4 :用户发起挑战{chal}:当用户想要验证服务器も是否正确持有数据的时,用户向其发出挑战用户生成一个挑战chal,发送给服务器も; 步骤5 :服务器作出响应生成证据GenProof {(chal, HVTs, M) — R}:当服务器收到挑战chal时,存储数据的服务器需要产生ー个证据R= (Τ,P),之后,服务器将R返回给用户; 步骤6:验证{(R,sk) — ("success","failure")}:当用户收到服务器返回的R吋,利用自己的私钥sk进行运算,从而对其服务器存储的数据状态进行判断,结果为“success”或者 “failure” ; 阶段3 :交互操作包括第(7)步,如果验证{(R, sk) — ("success", "failure")}操作的输出结果为“failure”,用户则要求CSP进行数据恢复操作,这可能会需要双方之间的交互;普通情况下,用户将数据M下载下来,然后执行修复{(M% P) — F}即恢复出原数据;步骤7 :数据修复{(M*, P) — F}:如果检测到数据损坏,就确定存储该数据块的服务器A出现的存储错误,这时利用预处理时采用的纠错码进行数据恢复,对损坏数据M*和P进行译码即恢复出原数据F。
全文摘要
一种分布式云存储数据完整性保护方法,该方法有七大步骤步骤1数据分割与编码{F→M};步骤2同态标签HVTs的生成{(sk,F)→HVTs};步骤3数据的远程存储{(M(j),HVT)→Sj};步骤4用户发起挑战{chal};步骤5服务器作出响应{R};步骤6验证{(R,sk)→("success","failure")};步骤7数据修复{(M*,P)→F}。本发明中用户采用随机数据块抽样减小通信开销,采用线性编码可实现数据的错误定位和错误恢复,并且数据持有性验证次数不受限制,验证置信度高,安全可靠。它在云计算安全技术领域里具有较好的实用价值和广阔的应用前景。
文档编号H04L29/08GK102710757SQ20121015954
公开日2012年10月3日 申请日期2012年5月21日 优先权日2012年5月21日
发明者修春娣, 刘建伟, 张晏, 徐先栋, 李坤, 毛剑 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1