改进动态操作的云数据完整性证明方案的制作方法

文档序号:8922892阅读:179来源:国知局
改进动态操作的云数据完整性证明方案的制作方法
【技术领域】
[0001] 本发明属于信息安全技术领域,更为具体地讲,是在云环境下,改进动态操作的云 数据完整性证明方案。
【背景技术】
[0002] 云存储系统能够给用户提供可靠的、自定义的、资源利用率最大化的服务。用户可 以将自己的本地数据存储在云端,在不同地点通过网络访问云端数据。这样的数据存储方 式有着很多优点:节约了用户的本地存储空间与维护复杂度、用户可以更加灵活的访问自 己的数据、同时可以获得更加强大的计算能力而不必担心硬件和软件等条件的限制。
[0003] 云计算在给用户带来便利性的同时,由于用户并不真正存储数据,从而难以保证 数据的完整性和可用性。首先,云存储服务器会不可避免的受到外界和内部的攻击,而使数 据存在丢失与篡改等安全问题。其次,云服务提供商可能会为了获取更大利益,而刻意删 除、更改用户数据。这些问题都会使数据的完整性和可用性难以保证,同时在传统的支持动 态操作的云存储系统中,对于云中动态文件的动态操作所产生的计算和通信开销是由用户 完全承担的,这给用户带来了相应的计算和通信压力。
[0004] 本方案旨在提出一个支持第三方代理审计和动态操作的云存储系统,系统为了减 轻用户的计算和通信负担,设计了一个功能强大的第三方审计者,用户不仅能够委托其承 担审计工作而且能够使其代理完成动态操作的任务。

【发明内容】

[0005] 为了克服上述现有云数据审计中动态操作方案的不足,本发明提供了一种改进动 态操作的云数据完整性验证方案,减少了传统方案中用户执行动态操作的通信和计算负 担。通过对系统中数据签名和Merkle哈希树(Merklehashtree,简记为MHT)签名所用密 钥的分离,来实现让第三方代理审计平台代替用户执行动态操作的目的。
[0006] 本发明所采用的技术方案是:本发明中的云存储系统含有三个实体:分别是用户 端(CloudUser,简记为⑶),云服务提供商(CloudServerProvider,简记为CSP)和第三 方审计平台(ThirdPartyVerifier,简记为TPV)。
[0007] 本发明由三个步骤组成:初始化、审计和动态操作,在此三个步骤中由7个逻辑 函数执行逻辑过程:KeyGen、ParaGen、GenChal、GenProof、VerifyProof、ExecUpdate、 VerifyUpdate。
[0008] 三个步骤的具体叙述。
[0009] 1):初始化:初始化阶段,用户端运行KeyGen函数产生用户端和TPV的私钥和公 钥。然后利用公私钥运行ParaGen函数产生文件块的签名和Merkle哈希树根的签名。最 后用户端将文件块、文件块的签名集合和哈希树根的签名发送到云端保存。
[0010] 2):审计:在审计阶段,TPV首先生成挑战信息"chal",然后发送给TPV申请审计, CSP收到挑战信息后运行GenProof函数生成审计的证据发送给TPV,TPV运行VerifyProof 函数进行验证完成审计。
[0011] 3):动态操作:动态操作阶段用户将要更新的数据块和其签名发送到CSP,同时也 把新数据产生的Merkle哈希树叶子节点发送给TPV。CSP运行ExecUpdate函数进行更新, 并将新的Merkle哈希树根、旧根以及旧根的签名作为更新后证据发送给TPV进行验证。TPV 验证成功后对新根进行签名,发送给CSP完成动态操作。
[0012] 7个逻辑函数的具体叙述。
[0013] 1) :KeyCen(lk) - (pk,sk):此函数的功能是产生一对公钥和私钥,在开始阶段由 用户执行,输入一个安全参数,然后输出相应的公钥和私钥。
[0014] 2) :ParaGen(csk,tsk,F) - (S,sigtsk(h(R))):在开始阶段由用户运行此函数,输 入要存放在云端的文件,用户和TPV的私钥,函数将产生文件块的签名信息和Merkle哈希 树根的签名。
[0015] 3) :GenChal〇 - (chal):此函数是由TPV在审计阶段运行产生挑战信息"chal"。
[0016] 4):GenProof(F,S,w,chal) - (proof):此函数是由CSP在审计阶段运行,输入 TPV发送来的审计信息和文件的内容,签名集合等参数,函数将产生此次审计的证据。
[0017] 5):VerifyProof(pk,chal,proof) - (result):此函数是由TPV在审计阶段接 收到CSP发送回来的证据之后运行此函数验证收到的证据是否正确从而完成审计工作。
[0018]6):ExecUpdate(i,m/,s/,update) - (F',S',Pupdate):此函数由CSP在动 态操作阶段运行,CSP收到用户发送过来的要更新的信息,然后进行更新同时产生更新的证 据。
[0019] 7):VerifyUpdate(pk,update,Pupdate) ^ (result,sigskl(H(R,))):此函数是由 TPV在动态操作阶段收到CSP的更新的证据和用户的更新信息时运行,运行后如验证成功 会产生新的Merkle哈希树的根的签名,否则输出false。
[0020] 与传统方案相比,本发明的有益效果是:减少了用户在动态操作过程中的计算负 担,使用户更加快捷的对云数据进行动态操作和审计。
【具体实施方式】
[0021] 本发明由三步骤组成:初始化,审计和动态操作。三个步骤的具体实施过程如下。
[0022] 符号引入。
[0023] ? F-Cm^,mu,? ? ?,mu,mu,m2,2, ? ? ?,mu,? ? ?,爪以,mu,? ??,nvJ:F是通过文件 分区技术划分的二级分区的文件数据块组成的集合。
[0024] ?h( ? )-{0,1}#-G:密码学中的哈希函数,G是一个循环乘法群。
[0025] ?H( ? )-{0,1}#-G:密码学中的哈希函数,G是一个循环乘法群。
[0026]
:伪随机函数(PRF)。
[0027]
:伪随机排列(PRP)。
[0028] 首先定义一个双线性映射,G、GT是给定素数p阶的循环乘法群,e:GXG-GT,令g 为G的生成元。
[0029]( -)初始化阶段。
[0030] 1-1):用户运行KeyGen(lk)函数产生系统中的私钥和公钥:首先选择两个随机数 csk-ZP,tsk-ZP作为私钥,然后选择一个随机数u-G,计算v=utsk,w=gd作为公钥。 所以系统的私钥集合sk= (csk,tsk),公钥集合pk= (g,v,u,w),其中tsk作为TPV的私 钥由用户保存之后发送给TPV,csk用于对数据块的签名。
[0031] 1-2):用户运行?3以6611(〇81^481^,?)函数计算文件块和116416哈希树根的签名。 文件块的签名
,S为F的n个文件块的签名集 合,z为每个文件块二级分区的数量。用户根据Merkle哈希树的构造方法生成树根R,其中Merkle哈希树的叶子节点是由每个一级文件块的哈希值构成。Merkle哈希树根R的值为 h(R),用户用TPV的私钥tsk对Merkle哈希树的根进行签名sigtsk(h(R)) = (h(R))tskGG。
[0032] 1-3):用户将(F,S,sigtsk(h(R)))发送给CSP并删除本地数据。
[0033](二)审计阶段。
[0034] 2-1):在审计阶段首先由TPV运行GenChal()函数从[1,n]中选择一组随机序列: I={cpc2, . . .,c」,1 <q<n,(^= 31key(q),key为每次审计时随机选取,然后再为每个 cGI选择一个随机参数:
chal为挑战信息,c 即要挑战的文件块号。TPV将挑战信息chal发送给CSP进行挑战。
[0035] 2-2) :CSP收到TPV发送的挑战信息chal,运行函数GenProof(F,S,chal)生成证 据。首先CSP执行fke;y(chal)选择一个随机数yeZf,其中key为每次审计时随机选取, 然后令k=wr= (gcslTGG,JT/ =

,CSP生成证据
,D。为MHT 相应结点的辅助序列,CSP将证据proof发送给TPV进行验证。
[0036] 2-3):TPV接收到proof后执行VerifyProof(pk,chal,proff)进行验 证。首先用
产生MHT的根h(R)然后验证e(sigtsk(h(R)), u) ? =e(h(R),v)是否正确,如果错误输出false,如果正确再验证证据:
,当挑战信息中的数据块和签名在CSP中存 放正确时验证通过。
[0037]
I推导过程如下:
[0038] (三)动态操作阶段。
[0039] 动态操作包括用户对数据的插入、修改、删除操作,动态操作是基于Merkle哈希 树实现的,动态操作后的验证工作由TPV代理实现。
[0040] 3
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1