云存储的密钥更新方法及云数据审计系统的实现方法转让专利

申请号 : CN201510192375.7

文献号 : CN104811300B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 禹勇李艳楠邱佳惠张亚芳薛靓

申请人 : 电子科技大学

摘要 :

本发明公开了一种云存储的密钥更新方法及云数据审计系统的实现方法,属于网络安全技术领域。本发明的云存储方法为:当云用户需要更新密钥时,请求CA服务器生成新密钥,并基于从云服务器下载的文件标签和数据块标签,以及当前新旧密钥生成新文件标签和数据块标签并上传至云服务器中,用以替换云服务器中对应的旧文件标签和数据块标签。同时本发明还公开了基于零知识验证的云数据审计系统的实现方法,当云用户需要更新密钥时,基于上述更新方法更新云服务器上的对应文件标签和数据块标签。本发明用于云网络,能显著降低密钥改变引起的云服务器与云用户间的通信代价,同时降低云用户重新计算标签的计算代价;且在审计时能有效保护数据隐私。

权利要求 :

1.云存储的密钥更新方法,其特征在于包括下列步骤:

步骤1:云用户基于CA服务器生成的密钥将文件存储到云服务器:云用户为待上传文件设置文件名,并基于当前密钥的文件标签私钥生成对应的文件标签f:f=t0||t,其中t0=F||n,F表示文件名,n表示文件F的数据块分块数,符号“||”表示追加操作;参数t=(H0(t0))ssk,其中H0为从0和1组成的比特序列集映射到p阶加法循环群G的抗碰撞哈希函数,参数p为系统基于预设安全参数所选择的大素数,ssk表示当前密钥的文件标签私钥;

云用户对待上传文件进行编码,并将编码后的文件分成n个数据块,基于当前数据块标签私钥生成数据块标签σi;

云用户将每个文件的当前文件标签f、数据块和数据块标签σi上传至云服务器;

步骤2:云用户基于新密钥生成新文件标签和新数据块标签,云服务器更新对应文件的文件标签和数据块标签:云用户向CA服务器发送密钥更新请求,CA服务器生成新密钥并发送至云用户;

云用户向云服务器发送更新标签请求,在收到云服务器的回复后,云用户从云服务器上下载文件标签f和数据块标签σi,下标i为各文件的数据块标识符;

云用户生成新文件标签f′和新数据块标签σ′i并上传至云服务器:提取下载的文件标签f中的参数t0和t,基于当前新旧密钥生成新文件标签f′=t0||t′,其中t′=tssk′/ssk,ssk′表示当前新密钥的文件标签私钥;基于下载的数据块标签σi和当前新旧密钥生成新数据块标签σ′i=σiα′/α,其中α′和α分别表示当前新旧密钥的数据块标签私钥;

云服务器将对应文件的文件标签和数据标签更新为新文件标签f′和新数据块标签σ′i。

2.如权利要求1所述的方法,其特征在于,CA服务器生成的密钥包括文件标签公钥spk和数据块标签公钥v、文件标签私钥ssk和数据块标签私钥α,其中spk=gssk,系统预设参数g为加法循环群G的生成元,任取α∈Zp,根据v=gα计算得到文件块标签公钥v,其中Zp为模p的加法循环群。

3.如权利要求1或2所述的方法,其特征在于,步骤1中,所述基于当前数据块标签私钥生成数据块标签σi为:将每个数据块分成s个子数据块,用mij表示不同数据块的每个子数据块,其中1≤i≤n,

1≤j≤s,则数据块标签 其中H1为从0和1组成的比特序列集映射到加法循环群G的抗碰撞哈希函数,uj为加法循环群G的任意数。

4.云数据审计系统的实现方法,包括云用户、CA服务器、云服务器和云审计服务器,其特征在于,包括下列步骤:步骤S1:云用户向CA服务器申请密钥:

步骤S101:云用户向CA服务器发送密钥申请;

步骤S102:CA服务器生成密钥并发送至云用户,所述密钥包括文件标签公钥spk和数据块标签公钥v、文件标签私钥ssk和数据块标签私钥α;

步骤S2:云用户向云服务器上传数据:

步骤S201:云用户为待上传文件设置文件名,并基于当前文件标签私钥ssk生成对应的文件标签f=t0||t,其中t0=F||n,F表示文件名,n表示文件F的数据块分块数,符号“||”表示追加操作;参数t=(H0(t0))ssk,其中H0为从0和1组成的比特序列集映射到p阶加法循环群G的抗碰撞哈希函数,参数p为系统基于预设安全参数所选择的大素数;

步骤S202:云用户对待上传文件进行编码,并将编码后的文件分成n个数据块,再将每个数据块分成s个子块,用mij表示不同数据块的每个子块,其中1≤i≤n,1≤j≤s;基于当前数据块标签私钥生成数据块标签σi;

步骤S203:云用户将每个文件的当前文件标签f、mij和数据块标签σi串联后上传至云服务器;

步骤S3:审计服务器对云服务器的审计:

步骤S301:云用户向审计服务器发送审计请求,包括文件标识符信息、云服务器标识信息和当前文件标签公钥、数据块标签公钥;

步骤S302:审计服务器验证所述审计请求是否有效,若是,则随机选取两个随机值k、ψ,再基于审计请求中的文件标识符信息生成承诺值和挑战值并发送至审计请求中对应的云服务器;否则,拒绝所述审计请求;

步骤S303:云服务器接收所述挑战值和承诺值后,生成随机化的响应标签发送至审计服务器;

步骤S304:审计服务器将随机值k、ψ发送给云服务器;

步骤S305:云服务器根据随机值k、ψ验证承诺是否有效,若是,则拒绝审计请求;否则计算对应的响应值并发送给审计服务器;

步骤S306:审计服务器基于所述响应值和挑战值、当前文件标签公钥、数据块标签公钥验证响应值的有效性;

步骤S307:审计服务器根据步骤S306的验证结果向云用户发送审计报告,若验证成功,则发送审计成功;否则,发送审计失败;

步骤S4:云用户基于新密钥生成新文件标签和新数据块标签,云服务器更新对应文件的文件标签和数据块标签:步骤S401:云用户向CA服务器发送密钥更新请求;

步骤S402:CA服务器生成新密钥并发送至云用户;

步骤S403:云用户向云服务器发送更新标签请求,在收到云服务器的回复后,云用户从云服务器上下载文件标签f和数据块标签σi,下标i为各文件的数据块标识符;

步骤S404:云用户生成新文件标签f′和新数据块标签σ′i并上传至云服务器:提取下载的文件标签f中的参数t0和t,生成新文件标签f′=t0||t′,其中t′=tssk′/ssk,ssk′表示当前新密钥的文件标签私钥;

生成新数据块标签σ′i=σiα′/α,其中α′和α分别表示当前新旧密钥的数据块标签私钥;

步骤S504:云服务器将对应文件的文件标签和数据标签更新为新文件标签f′和新数据块标签σi′。

5.如权利要求4所述的方法,其特征在于,CA服务器生成密钥为:选择文件密钥对(spk,ssk),且spk=gssk,其中spk表示文件标签公钥,系统预设参数g为p阶加法循环群G的生成元,参数p为系统基于预设安全参数所选择的大素数;任取α∈Zp,根据v=gα计算得到文件块标签公钥v,其中Zp为模p的加法循环群。

6.如权利要求4所述的方法,其特征在于,步骤S202中,生成数据块标签σi为:其中H1为从0和1组成的比特序列集映射到加法循环群G的抗碰撞哈希函数,uj为加法循环群G的任意数。

7.如权利要求4、5或6所述的方法,其特征在于,步骤S301中,文件标识符信息为待审计文件的当前文件标签;

步骤S302中,所述承诺值Ψ为:Ψ=gkhψ,系统预设参数g为p阶加法循环群G的生成元,参数p为系统基于预设安全参数所选择的大素数,参数h为加法循环群G中的随机数;

所述挑战值chal为:chal=当前文件标签||{(i,vi)},其中vi∈Zp,1≤i≤c,c∈Zp且c≤n,Zp为模p的加法循环群。

8.如权利要求7所述的方法,其特征在于,步骤S303中,生成随机化的响应标签(T,Π)具体为:计算参数η=e(g,h),其中e为G×G→GT的双线性映射,G、GT为p阶加法循环群;

计算参数ηj=e(uj,v),其中1≤j≤s,v表示当前数据块标签公钥;

随机选择参数r,ρr,ρ1...ρs∈Zp,计算参数 和参数 其中σi表示当前文件的数据块标签。

9.如权利要求8所述的方法,其特征在于,步骤S305中,所述响应值为(zr,z1,z2,...,zs),其中zr=ρr-kr,zj=ρj-kμj,参数

10.如权利要求9所述的方法,其特征在于,步骤S306中,验证响应值的有效性为:检验等式e(g,t)=e(spk,H0(t0))是否成立,其中参数t=(H0(t0))ssk,且t0=F||n,H0为系统预设的抗碰撞哈希函数,spk表示当前密钥的文件标签公钥,F表示文件名,符号“||”表示追加操作;

若否,则输出验证失败;

若是,则继续验证等式 是否成立,若

是,则输出验证成功;若否,则输出验证失败,其中H1为从0和1组成的比特序列集映射到加法循环群G的抗碰撞哈希函数,u1,u2,…,us为加法循环群G中的随机数。

说明书 :

云存储的密钥更新方法及云数据审计系统的实现方法

技术领域

[0001] 本发明属于网络安全技术领域,具体涉及一种云存储的密钥更新方法以及基于其的云数据审计系统的实现方法。

背景技术

[0002] 云计算是分布式计算、网格计算、并行计算、分布式存储、虚拟化等传统计算机技术和网络技术发展融合的产物,实现了长期以来人们梦寐以求的“把计算作为一种设施”的愿望,是信息技术的一次重要革新,也是我国信息技术产业实现创新突破、跨越式发展的战略机遇。
[0003] 云计算带来了超强的计算能力和巨大的经济效益,其优势毋庸置疑,然而,安全问题成为推广云计算的“拦路虎”和制约云计算快速发展的重要因素。2010年4月,高德纳公司的调查报告指出:云数据的安全性与隐私是人们使用云服务的主要担忧。而近期,一系列云计算中的安全事故如搜狗浏览器用户数据泄露事件、中国铁路官方售票网站12306泄露用户信息事件等更加剧了人们的担忧。
[0004] 外包数据存储(云存储)是云计算提供的最基本服务。云存储向云用户提供可伸缩、位置无关、价格便宜、应用透明的外援存储服务,具有存储容量和性能的高扩展性、地理位置的无约束性和按使用付费等特点,已经成为云计算中一个较快的利润增长点。然而,云服务提供商不是完全可信的,由于利益驱使,云服务提供商可能删除不被访问或者访问较少的数据,将节约的空间租赁给其他用户但仍然收费;或者,由于服务器故障、管理失误或受到攻击,导致云用户部分数据丢失,但云服务提供商为了维护自己的声誉,刻意隐瞒或掩盖数据丢失事件。所以在云存储环境中,必须将云服务提供商数据管理的权利关进“审计”的笼子里。
[0005] 在云存储环境中,租户(云用户)失去了对数据和环境的掌控,这是云计算面临的首要安全问题。由于海量数据带来的巨大通信代价,直接利用传统的数据完整性验证技术进行完整性检测的方法行不通。因此,外包云数据完整性检测的基本要求是客户只需取回少量数据,通过知识证明协议和概率分析手段,能够以很大的概率相信数据完好地保存在云服务器。云数据审计协议是检验云服务器是否正确地保存数据的新型技术,防止云服务器删除、修改数据,并确保存储数据的可回取性。目前,云数据审计协议主要包括数据拥有证明PDP(Provable  Data  Possession)和数据可回取证明PoR(Proof  of Retrievability)。
[0006] 在信息安全顶级会议CCS 2007上,Ateniese等首次提出了数据拥有证明PDP的概念和安全模型,同时,他还提出了两个高效的可证明安全的PDP方案。PDP协议使得用户在不取回文件的情况下,能够验证存储在不可信服务器上的文件的完整性,极大的节省了通信带宽。同时,Juels等提出了可回取证明PoR的概念,基于纠错码和随机抽样技术确保服务器正确存储了数据,而且用户在需要数据的时候能够取回数据。作为PoR协议的代表,2008年,Shacham和Waters利用纠删码设计了两个高效且紧致的PoR方案,并在Juels等的安全模型下进行了严格的安全性论证。第一个方案的构造基于BLS短签名,客户的挑战和服务器的响应长度都很短,并且满足公开可验证,其安全性在随机预言机模型下可证明;第二个方案的设计基于伪随机函数PRF,可以在标准模型下进行安全性证明,且服务器的响应信息的长度更短,但只支持秘密验证。这两个方案也都利用了同态可验证标签技术将响应证明聚合成一个认证值,降低了通信代价。
[0007] 在云审计系统中,公钥密码学基础为这些算法和协议的设计与实现提供了强大的理论支撑,这些都需要PKI技术的参与。然而在一个PKI系统中,密钥更新又是一个不容忽视的问题:云用户密钥可能由于使用次数过多而发生泄漏或密钥由于数字证书的到期而不能继续使用。而传统的办法,当密钥更新后,云用户则需要从云服务器上下载全部文件,重新用新密钥计算数据块标签、文件标签并对其进行签名,然后再将数据和签名上传。该处理方式虽然可以完成密钥更新后,对云服务器上相应文件的更新,但这不仅大大增加了云用户的计算负担,同时每一次更新密钥,云用户都需要从云服务器上下载大量数据,这都需要极大的数据带宽,还会增加云服务器和云用户之间的通信代价。

发明内容

[0008] 本发明的发明目的在于:针对云存储中可能存在的密钥泄露、数字证书到期等问题,提出了一种云存储的密钥更新方法,以保证在云用户更新密钥后,无需从云服务器上下载整个文件,而只需下载各文件所对应的文件标签及数据块标签,更新这些标签内容,便可完成密钥更新,以减少由于密钥更新所带来的云服务器与云用户之间的通信代价,降低云用户的计算复杂性。
[0009] 本发明的云存储的密钥更新方法包括下列步骤:
[0010] 步骤1:云用户基于CA服务器生成的密钥将文件存储到云服务器:
[0011] 云用户为待上传文件设置文件名,并基于当前密钥的文件标签私钥生成对应的文件标签f:f=t0||t,其中t0=F||n,F表示文件名,n表示文件F的数据块分块数,符号“||”表示追加操作;参数t=(H0(t0))ssk,其中H0为从0和1组成的比特序列集映射到p阶加法循环群G的抗碰撞哈希函数,参数p为系统基于预设安全参数所选择的大素数,ssk表示当前密钥的文件标签私钥;云用户对待上传文件进行编码,并将编码后的文件分成n个数据块,基于当前数据块标签私钥生成数据块标签σi;云用户将每个文件的当前文件标签f、数据块和数据块标签σi上传至云服务器;
[0012] 步骤2:云用户基于新密钥生成新文件标签和新数据块标签,云服务器更新对应文件的文件标签和数据块标签:
[0013] 云用户向CA服务器发送密钥更新请求,CA服务器生成新密钥并发送至云用户;
[0014] 云用户向云服务器发送更新标签请求,在收到云服务器的回复后,云用户从云服务器上下载文件标签f和数据块标签σi,下标i为各文件的数据块标识符;云用户生成新文件标签f′和新数据块标签σ′i并上传至云服务器:提取下载的文件标签f中的参数t0和t,基于当前新旧密钥(旧密钥即云用户的当前原密钥)生成新文件标签f′=t0||t′,其中t′=ssk′/sskt ,ssk′表示当前新密钥的文件标签私钥;基于下载的数据块标签σi和当前新旧密钥生成新数据块标签σ′i=σiα′/α,其中α′和α分别表示当前新旧密钥的数据块标签私钥;云服务器将对应文件的文件标签和数据标签更新为新文件标签f′和新数据块标签σ′i。
[0015] 同时,本发明还公开了一种基于“零知识验证”的云审系统的实现过程,通过使得审计服务器无法得到云用户的任何信息来保护云用户的隐私。本发明的云数据审计系统的实现方法,包括云用户、CA服务器、云服务器和云审计服务器,通过下列步骤实现:
[0016] 步骤S1:云用户向CA服务器申请密钥:
[0017] 步骤S101:云用户向CA服务器发送密钥申请;
[0018] 步骤S102:CA服务器生成密钥并发送至云用户,所述密钥包括文件标签公钥spk和数据块标签公钥v、文件标签私钥ssk和数据块标签私钥α;
[0019] 步骤S2:云用户向云服务器上传数据:
[0020] 步骤S201:云用户为待上传文件设置文件名,并基于当前文件标签私钥ssk生成对应的文件标签f=t0||t,其中t0=F||n,F表示文件名,n表示文件F的数据块分块数,符号“||”表示追加操作;参数t=(H0(t0))ssk,其中H0为从0和1组成的比特序列集映射到p阶加法循环群G的抗碰撞哈希函数,参数p为系统基于预设安全参数所选择的大素数;
[0021] 步骤S202:云用户对待上传文件进行编码,并将编码后的文件分成n个数据块,再将每个数据块分成s个子块,用mij表示不同数据块的每个子块,其中1≤i≤n,1≤j≤s;基于当前数据块标签私钥生成数据块标签σi;
[0022] 步骤S203:云用户将每个文件的当前文件标签f、mij和数据块标签σi串联后上传至云服务器;
[0023] 步骤S3:审计服务器对云服务器的审计:
[0024] 步骤S301:云用户向审计服务器发送审计请求,包括文件标识符信息、云服务器标识信 息和当前文件标签公钥、数据块标签公钥;
[0025] 步骤S302:审计服务器验证所述审计请求是否有效,若是,则随机选取两个随机值k、ψ,再基于审计请求中的文件标识符信息生成承诺值和挑战值并发送至审计请求中对应的云服务器;否则,拒绝所述审计请求;
[0026] 步骤S303:云服务器接收所述挑战值和承诺值后,生成随机化的响应标签发送至审计服务器;
[0027] 步骤S304:审计服务器将随机值k、ψ发送给云服务器;
[0028] 步骤S305:云服务器根据随机值k、ψ验证承诺是否有效,若是,则拒绝审计请求;否则计算对应的响应值并发送给审计服务器;
[0029] 步骤S306:审计服务器基于所述响应值和挑战值、当前文件标签公钥、数据块标签公钥验证响应值的有效性;
[0030] 步骤S307:审计服务器根据步骤S306的验证结果向云用户发送审计报告,若验证成功,则发送审计成功;否则,发送审计失败;
[0031] 步骤S4:云用户基于新密钥生成新文件标签和新数据块标签,云服务器更新对应文件的文件标签和数据块标签:
[0032] 步骤S401:云用户向CA服务器发送密钥更新请求;
[0033] 步骤S402:CA服务器生成新密钥并发送至云用户;
[0034] 步骤S403:云用户向云服务器发送更新标签请求,在收到云服务器的回复后,云用户从云服务器上下载文件标签f和数据块标签σi,下标i为各文件的数据块标识符;
[0035] 步骤S404:云用户生成新文件标签f′和新数据块标签σi′并上传至云服务器:
[0036] 提取下载的文件标签f中的参数t0和t,生成新文件标签f′=t0||t′,其中t′=tssk′/ssk,ssk′表示当前新密钥的文件标签私钥;
[0037] 生成新数据块标签σi′=σiα′/α,其中α′和α分别表示当前新旧密钥的数据块标签私钥;
[0038] 步骤S504:云服务器将对应文件的文件标签和数据标签更新为新文件标签f′和新数据块标签σi′。
[0039] 综上,由于采用了上述技术方案,本发明的有益效果是:
[0040] (1)所需网络带宽小:本发明在更新密钥后,云用户无需从云服务器上下载全部的文件和数据块,取而代之的只是一些轻量级的文件标签和数据块标签,因此云用户与云服务器通信量较小,因而整个交互过程也无需消耗大量的网络带宽;
[0041] (2)计算代价低:本发明在更新密钥后,云用户无需根据整个文件内容重新计算文件标签、对数据分块等操作,而只是对旧的文件标签和数据块标签进行少量计算便可获得新文件标签和新数据块标签,大大降低了云用户的计算负担。
[0042] (3)保护用户隐私:本发明基于“零知识验证”实现审计服务器与云服务器的交互过程,通过使得审计服务器无法得到云用户的任何信息来保护云用户的数据隐私。

附图说明

[0043] 图1是具体实施方式中,本发明的云数据审计系统的交互过程示意图;
[0044] 图2是具体实施方式中,云用户在上传数据时对文件的处理过程示意图;
[0045] 图3是具体实施方式中,审计服务器对云服务器的审计过程示意图;
[0046] 图4是具体实施方式中,云用户与云服务器交互过程示意图;
[0047] 图5是具体实施方式中,云用户与CA服务器交互过程示意图。

具体实施方式

[0048] 为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
[0049] 本发明以密码学理论为基础,提供一种具有密钥更新和数据隐私保护功能的云数据审计的实现方法。首先对本发明所应用的密码学理论进行简单介绍:
[0050] (1)公钥基础设施PKI(public key infrastructure)
[0051] PKI技术是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系。简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI作为一种安全技术,已经深入到网络的各个层面,PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。完整的PKI系统必须具有权威认证中心(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分。其中认证中心CA作为PKI的核心部分,实现了PKI中一些很重要的功能,具体描述如下:
[0052] a)证书的申请:接收验证用户数字证书的申请。
[0053] b)证书的审批:审核用户身份,并确定用户是否具有申请证书的资格。
[0054] c)证书的发放:产生公私钥对,并向申请者颁发数字证书。
[0055] d)证书的更新:接收、处理用户的数字证书更新请求。
[0056] e)证书的查询:接收、处理用户数字证书的查询请求。
[0057] f)证书的撤销:产生和发布证书废止列表(CRL)。
[0058] 在本发明中,云用户向CA服务器发出证书申请的请求,CA服务器审核用户身份后,为其产生公私钥对,同时颁发数字证书,并将证书加入数字证书库,以方便用户的查询。在用户需要更新密钥时,云用户向CA服务器提出证书更新请求,CA服务器通过审核后,将原证书加入证书废止列表(CRL),并为用户产生新的公私钥对,颁发新的数字证书,同时将新证书加入数字证书库。
[0059] (2)哈希(Hash)函数
[0060] Hash函数又称为散列、杂凑函数,就是把任意长的输入消息变换成固定长的输出消息的一种函数,这个输出值称为该消息的Hash值。它通常用来产生消息、数据块和文件的短的“指纹”,主要用于完整性校验和提高数字签名的有效性。一个安全的Hash函数应该至少满足以下几个条件;
[0061] a)可计算性:给定一个输入串x,H(x)可以在|x|的低阶多项式时间内计算出。
[0062] b)单向性:对于任意给定的Hash值h,想要找到一个输入串x,使得h=H(x)在计算上是不可行的;
[0063] c)散列性:对于一个输入串x,H(x)与区间[0,2n]上的均匀分布的消息串是计算上不可区分的;
[0064] d)抗弱碰撞性:对于任意给定的输入串x,想要找到另一个输入串x≠y,使得H(x)≠H(y)在计算上是不可行的;
[0065] e)抗强碰撞性:找到任意的x,y,其中x≠y,使得H(x)=H(y))在计算上是不可行的;
[0066] 本发明中,所涉及的两个抗碰撞的Hash函数H0,H1:{0,1}*→G,都是从0和1组成的比特序列集合映射到椭圆曲线上的加法循环群G。
[0067] (3)双线性对
[0068] 假设G和GT是阶为p的两个加法循环群,g是加法循环群G的生成元。如果映射e:G×G=GT满足以下三个条件,则称为双线性对。
[0069] a)可计算性:e的计算是有效的。
[0070] b)双线性:对于任意的a,b∈Zq,称为e(ga,gb)=e(g,g)ab;
[0071] c)非退化性:对于G中的生成元g,满足e(g,g)≠1;
[0072] 本发明所涉及的双线性对都是满足上述性质的双线性对,这样的双线性对可以通过有限域上的超奇异椭圆曲线和超奇异椭圆曲线的Tate或Weil对来构造。
[0073] (4)零知识证明
[0074] 零知识证明(zero-knowledge proof)是由Goldwasser等人在20世纪80年代初提出的。它指的是证明者能够在不向验证者泄露任何有用的信息的情况下,使验证者相信某个论断是 正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。其一般步骤为,证明者向验证人发送一个承诺(commitment),验证者发送一系列挑战值(challenge)给证明者,此时证明者通过自己拥有的消息和挑战值计算响应值(response)并发送给验证者,最后,验证者验证响应值的有效性,若响应值有效,则验证者相信证明者确实拥有该消息。
[0075] 本发明中,在审计服务器对云服务器的审计过程中利用了零知识证明保护云用户的隐私,云服务器向审计服务器证明云用户的数据完整的保存在云服务器上而未被篡改或删除,且不能向审计服务器泄露任何云用户的数据信息,即若审计服务器选择两个等长的文件F0=(m0,1,m0,2,...,m0,n)和F1=(m1,1,m1,2,...,m1,n),并选择一系列元数据和一些必要的交互对服务器进行审计,在审计结束后,审计服务器仍不能判断该用户的文件是F0或F1。
[0076] 参照图1,以下就本发明的云存储的密钥更新方法应用到本发明的云数据审计系统的具体实现过程进行描述:
[0077] 步骤S100.系统参数初始化:
[0078] 在本具体实施方式中,选择云服务器执行系统的参数初始化,当然,也可以是CA服务器、审计服务器等,本发明不作限定。
[0079] 云服务器运行系统初始化:基于预设的安全参数l,可计算得到一个安全的大素数p和两个以p为阶的加法循环群G和GT,且g为群G的一个生成元,e:G×G→GT是一个双线性映射。随机选择h,u1,u2…us∈G,计算η=e(g,h)。H0和H1是两个抗碰撞的Hash函数,其中H0:{0,* *1}→G,H1:{0,1}→G。从而得到系统参数串crs=(l,p,G,GT,g,e,h,u1,u2…us,η,H0,H1)。
[0080] 步骤S200.云用户向CA服务器申请密钥:
[0081] 云用户向CA服务器提出密钥(包括文件标签公钥spk和数据块标签公钥v、文件标签私钥ssk和数据块标签私钥α,)申请,同时向CA提供身份证明,以证明自己的身份,经CA验证后,若满足申请条件,则为其生成公私钥对,并颁发数字证书。否则,拒绝请求。参照图5,本过程的具体实现如下:
[0082] 步骤S201:云用户生成数字证书的申请请求并发送至CA服务器,该申请请求中携带系统参数(p,g)、云用户的身份证明;
[0083] 步骤S202:CA服务器收到后,审核身份证明,若通过,则为所申请的云用户生成私一对签名密钥(ssk,spk),使spk=gssk;然后任取α∈Zp,计算v=gα。最终的公钥为(spk,v),私钥为(ssk,α),其中Zp为模p的加法循环群。再将生成的数字证书发送至云用户。
[0084] 步骤S300.云用户上传数据至服务器:
[0085] 云用户从一个域中为待存储的文件选择一个文件名,并为该文件计算一个文件标签,作为文件的唯一标识符;然后将文件数据进行编码、分块,并为每一个数据块计算一个标签值,最后将数据和标签一起上传至云服务器,同时删除本地文件。参照图2、4,本过程的具体实现如下:
[0086] 首先,云用户基于系统参数对待上传文件(待存储的文件)进行预处理:
[0087] 步骤S301:为将要上传的文件选择一个文件名F;令t0=F||n,并计算t=(H0(t0))ssk,最终生成文件标签f=t0||t,其中n表示文件F的预设数据块分块数,符号“||”表示追加操作;
[0088] 步骤S302:对文件F进行编码得到文件F'(可以采用任一惯用编码方式完成编码,本具体实施方式中,采用RS(Reed-Solomon codes)码,然后再将编码后的文件F'分成n个数据块,再将每个数据块分成s个子数据块,得到文件{mij}1≤i≤n,1≤j≤s;
[0089] 步骤S303:为每一个数据块计算一个标签
[0090] 然后,云用户将预处理后得到的文件块、文件标签和数据块标签上传至云服务器:
[0091] 步骤S304:将文件名、数据块、标签级联,生成上传文件F*=ft||{mij}1≤i≤n,1≤j≤s||{σi}1≤i≤n,并将上传文件F*上传至云服务器,同时本地删除所有数据。
[0092] 步骤S400.审计服务器对云服务器的审计过程:
[0093] 云用户生成一个审计请求发送给审计服务器,审计服务器收到云用户的审计请求后,生成一个挑战值发送给云服务器;云服务器收到挑战值后根据挑战值和保存的相应文件内容、标签信息等计算响应值,发送给审计服务器;最后审计服务器验证响应值的有效性,进而确定云用户的源文件是否完整保存在云服务器上,并生成审计报告:审计成功或审计失败反馈给云用户。参照图3,本过程的具体实现如下:
[0094] 步骤S401:云用户生成一个审计请求req=IPaudit||Cert||f,发送给审计服务器,请求审计云服务器。审计请求req中,IPaudit是云服务器ip地址,用以标识云服务器;Cert为云用户 的公钥证书,f是待审计文件的文件标签,用以标识待审计文件;
[0095] 步骤S402:审计服务器收到审计请求后,先验证请求的有效性,如果无效,则拒绝请求;否则,提取审计请求中的有效信息(IPaudit,f),并随机选取一个整数c(c≤n)和随机值k,ψ,计算承诺值Ψ=gkhψ;对每个i(1≤i≤c)选择一个随机的元素vi∈Zp;最终生成一个承诺值Ψ和挑战值chal=f||{(i,vi)}1≤i≤c,并将(chal,Ψ)发送给相应ip地址的云服务器;
[0096] 步骤S403:云服务器收到(chal,Ψ)后,进行标签随机化:云服务器首先计算η=e(g,h),η1=e(u1,v),…,ηs=e(us,v),然后随机选择r,ρr,ρ1...ρs∈Zp,计算并将随机化的响应标签(Τ,Π)发给审计服务器;
[0097] 步骤S404:审计服务器发送之前选定的随机值(k,ψ)给云服务器;
[0098] 步骤S405:云服务器计算Ψ=gkhψ是否成立,若否,则拒绝审计请求;若是,则计算响应值(zr,z1,...,zs),其中zr=ρr-kr,zj=ρj-kμj, 1≤j≤s。云服务器将响应值(zr,z1,...,zs)发送给审计服务器;
[0099] 步骤S406:审计服务器收到云服务器发来的响应值后,根据自己发送的挑战值chal、响应值(zr,z1,...,zs),以及云用户的公钥来验证所接收的响应值的有效性:
[0100] 首先检验等式e(g,t)=e(spk,H0(t0))是否成立,若否,则输出验证失败;若是,则继续验证等式 是否成立,若否,则输出验证失败;若是,则验证成功,说明云用户的文件完整的保存在云服务器上;
[0101] 步骤S407:审计服务器根据上一步的验证结果向云用户发送审计报告,若验证成功,则发送审计成功;否则,发送审计失败。
[0102] 步骤S500.密钥更新时云用户与CA服务器和云服务器的交互过程:
[0103] 当云用户需要更新密钥时,云用户首先向CA服务器发送一个更新密钥请求,CA服务器将旧的数字证书放入CRL表中,同时为其生成新密钥,并颁发数字证书;密钥更新后,云用户向云服务器发送更新标签请求,并从云服务器上下载相应的文件标签和数据块标签,并用新密钥和旧的标签信息重新生成有效的文件标签和数据块标签,并将新标签重新上传至云服务器。参照图5,本过程的具体实现如下:
[0104] 步骤S501:云用户生成数字证书更新请求并发送至CA服务器,该申请请求中携带系统参数(p,g)、云用户的身份证明;
[0105] 步骤S502:CA服务器收到后,审核身份证明,若通过,将旧的数字证书放入CRL表,并为其生成新的签名密钥:生成新的ssk',α'∈Zp,计算spk'=gssk',v'=gα',则新公钥pk'=(spk',v'),新私钥为sk'=(ssk',α'),再将生成的新数字证书发送至云用户。
[0106] 步骤S503:云用户向云服务器发送更新标签请求,在收到云服务器的回复后,云用户从云服务器上下载文件标签和数据块标签f||{σi}1≤i≤n;
[0107] 步骤S504:云用户用新密钥重新计算参数 则新文件标签为f′=t0||t';用新密钥计算新数据块标签 然后将新的有效的文件标签和数据块标签f′||{σi'}1≤i≤n重新上传至云服务器;
[0108] 步骤S505:云服务器将对应文件的文件标签和数据标签更新为新文件标签和新数据块标签f′||{σi'}1≤i≤n;
[0109] 步骤S506:每当云用户需要更新密钥时,重复上述步骤S501-S505。
[0110] 以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。