本发明属于云服务器存储技术领域,具体涉及一种支持数据删重和用户身份匿名性的云服务器存储完整性检测方法。
背景技术:
近年来,云服务器计算技术逐渐渗入人们生活的方方面面,为人们的生活带来了极大的便利。云服务器服务中的云服务器存储服务可以向人们提供价格低廉的数据存储服务,并得到了广泛的应用。越来越多的用户愿意把他们的数据存放在远程的云服务器上,以此来释放本地存储以及维护这些数据需要耗费的资源。对云服务器来说,要存放来自不同用户的越来越多的数据。根据EMC的最近的调查显示,有75%的数据是重复的。云服务器存储服务提供商为了节省带宽开销和存储开销,当多个用户上传相同的数据至云服务器时,他尝试将副本删除,即对每个不同的文件云服务器只存储一份。这样可以极大的提高云服务器存储空间的利用率,使得云服务器可以为更多的用户服务。
对于用户来说,虽然云服务器存储有着非常吸引人的优势,但是也存在一些安全问题。例如,云服务器可能遭受到黑客的恶意攻击,或者硬件故障,以至于造成用户数据丢失。又或者有些云服务器为了经济利益,抛弃用户不经常访问的数据。也有的云服务器为了维持良好的声誉,向用户隐瞒数据丢失的事实。当用户把他们的数据存放在远程的云服务器上,就意味着失去了对这些数据的直接的物理的控制。当他们的数据遭到恶意篡改以及部分数据丢失时,用户可能并不能及时知晓。所以用户有理由怀疑存储在远程云服务器上的数据的完整性。
云服务器存储完整性检测是一个有效的解决办法。云服务器存储完整性检测分为私有审计和公开审计。在私有审计方案中,用户执行审计任务。但是由于用户计算资源受限以及存储在云服务器数据量大,审计任务繁琐,私有审计会给用户带来很大的计算和通信负担。在公开审计中,用户将审计任务外包一个可信的第三方审计者(TPA),TPA只需要将审计结果返回给用户,这样可以极大的减轻用户审计负担,更符合实际应用。
对于云服务器来说,与传统的云服务器相比,支持数据删重的云服务器可以知道拥有相同文件的不同用户的身份。这样云服务器可以就可以根据这些用户的身份来猜测这个文件的属性,导致数据隐私遭到泄露。并且在传统的方案中,拥有相同文件的不同用户独立的进行审计任务。这样对于同一份文件不仅要计算多次审计所用到的认证器,还要进行多次审计任务。并且对于云服务器来说也要存储多份来自不同用户的认证器,这对于云服务器来说一个存储负担。所以不论是对于云服务器还是用户来说都需要有一个高效的方法,来解决支持数据删重以及用户身份匿名性的云服务器存储完整性检测问题。
技术实现要素:
为解决现有技术中存在的问题,本发明提供一个高效的支持数据删重和用户身份匿名性的云服务器存储完整性检测方法。当用户生成的审计所需要的认证器不包含任何用户身份的信息。并且本专利提出的完整性检测方法,不仅可以保护用户身份的匿名性,也可以实现云服务器的定量存储。即对于一个文件,只需要计算一份认证器,云服务器也只需要存储一份这些认证器的副本。
为克服上述技术问题,本发明提供一种数据删重和用户身份匿名性云服务器存储完整性检测装置,其包括:
初始上传用户客户端、后续的上传请求用户客户端、云服务器、第三方审计中心;
所述初始上传用户客户端是指需要远程存储的文件在云服务器上并没有先前存储,并且在上传时需要计算文件的认证器并和该文件一同发送给云服务器;
所述云服务器具有丰富的计算及存储资源,并向用户提供数据存储服务;
所述第三方审计中心可以代表用户完成审计任务,来减轻用户的计算以及通信负担。
除初始上传者外,还包括后续的上传请求用户,其想要上传云服务器已经存储有的文件,不需要上传计算认证器。
本发明还提供采用上述装置进行数据删重和用户身份匿名性云服务器存储完整性检测的方法,其包括:
第一步,当用户需要把一文件存储在远程的云服务器时,首先把该文件的hash值发送给云服务器;
第二步,云服务器收到此hash值后,看已经存有的文件的hash值是否与其相同的,如果有,说明这个文件已经存储在云服务器上,该用户为后续的上传请求者,就不需再次上传此文件;
第三步,如果没有,说明这个用户为初始上传者,该用户需要把文件的密文连同其对应的认证器一块发送给云服务器;如果有,云随机选择几个随机文件快序号发送给用户,用户将这几个文件块返回给云,云服务器来验证这些文件块的正确性。正确,说明这个用户为后续上传用户,则不需要上传文件;不正确,同初始上传者一样需要把文件的密文连同其对应的认证器一块发送给云服务器;
第四步,用户向第三方审计中心发送审计委托的请求,而后第三方审计中心(TPA)首先向云服务器发送质询信息,云服务器收到后,要计算生成相应的证明作为回应发送给TPA,TPA验证这个证明的合理性,审计完成后,TPA将审计的结果返回给用户。
所述数据删重和用户身份匿名性云服务器存储完整性检测的方法,进一步具体包括:
第1步,系统初始化,生成各种系统参数并且选择方案所需要的伪随机哈希函数以及伪随机置换函数;
第2步,文件加密,将用户的元数据用收敛加密算法进行加密;
第3步,数据删重,判断云服务器是否已经存储有该文件,如果已经存储,用户就不用再上传;
第4步,数据文件上传,用户将加密后的数据上传到云服务器;
第5步,审计,第三方审计中心对文件进行审计,并将审计结果返回给用户。
其中,所述第1步进一步包括:
第a步,选择方案所需要的伪随机哈希函数和伪随机置换函数;
第b步,生成各种系统参数。
其中,所述第2步进一步包括:
第a步,用户对n个数据块{m1,...,mn}中每个数据块作为哈希函数的输入H3;
第b步,哈希函数H3输出各个文件块的加密密钥,
第c步,生成密文C={C1,C2,...,Cn}。
其中,所述第3步进一步包括:
第a步,用户首先计算文件的hash值,并将这个hash值发送给云服务器;
第b步,云服务器收到这个hash值后,看存储的文件的hash值是否有与此值相同的,如果没有,通知该用户上传该文件及其对应的审计所需要的认证器;
第c步,如果已经存储的文件的hash值有与此hash值相等的,云服务器从[1,n]中随机选择d个元素组成集合D发送给用户,用户将相应序号的文件块作为回应发送给云服务器;
第d步,云服务器收到用户的回应后,计算:
并验证e(T′,g)=e(η′·ψ′,v)是否成立,如果成立就认为用户确实拥有整个文件。用户可以不上传这个文件并且可以合法的访问该文件。
其中,所述第4步进一步包括:
第a步,用户使用密钥ktag为每个文件块生成认证器。用户首先选择s个随机数:{u1,u2,...,us},为每个文件块计算:
第b步,用户将密文以及其对应的Ti上传到云服务器。
其中,所述第5步进一步包括:
第a步,产生质询,审计中心TPA随机选择一个有c个元素的集合,并且产生两个随机数,将质询信息chal=(c,k1,k2)发送给云服务器;
第b步,产生证明,云服务器收到质询后,首先对1≤t≤c计算和然后计算和最后向TPA返回可以证明云服务器拥有整个文件的证明(T,η),其中η={η1,η2,…,ηs};
第c步,证明验证,当TPA收到证明后,首先对1≤t≤c计算和而后验证下面等式是否成立:
如果成立则审计通过,否则不通过。
本发明还提供采用上述装置进行数据删重和用户身份匿名性云服务器存储完整性检测的系统,其包括:
系统初始化模块,生成各种系统参数并且选择方案所需要的伪随机哈希函数以及伪随机置换函数;
文件加密模块,将用户的元数据用收敛加密算法进行加密;
数据删重模块,判断云服务器是否已经存储有该文件,如果已经存储,用户就不用再上传;
数据文件上传模块,用户将加密后的数据上传到云服务器;
审计模块,第三方审计中心对文件进行审计,并将审计结果返回给用户。
有益的技术效果
本发明与现有技术相比,具有以下有益效果:
(1)本发明可以保证用户身份的匿名性。在现存的数据删重完整性检测方案中,用户生成认证器是需要使用用户的私钥,这个私钥包含有用户的身份信息。而且在支持数据删重的云服务器中,云服务器可以知道拥有同一文件的不同用户的身份。根据这些用户的身份,云服务器可以猜测该文件的大致内容,用户的数据隐私遭到严重破坏。在本发明中,云服务器不能知道拥有同一文件的不同用户的身份信息。因为用户为每个文件块生成的认证器只与文件内容相关,与拥有这一文件的各用户身份信息无关。当用户需要从云服务器下载该文件时,只需要向云服务器提交一个合法的下载证明即可,也不需要用户的身份信息。
(2)本发明提供的方法实现了云服务器的定量存储。在大多数的数据删重完整性检测方案中,云服务器对每一份文件需要存储N份文件块的认证器,其中N是拥有这一文件的用户的数量。所以这些方案的云服务器的存储负担是与N成线性关系的。在本发明中,对于每一份文件,云服务器只需要存储一份认证器用来完成审计任务。所以在该专利中,云服务器的存储负担是定量的与拥有同一文件的用户数量无关。
(3)本发明实现了对于每一份文件只需要计算一份认证器。在现存的数据删重完整性检测方案中,拥有同一文件的不同用户需要独立计算各自的认证器。在本发明中,只需要最初的上传者对每个文件块计算认证器,后续的上传请求者不需要计算认证器。所以此方法显著的减少了后续的上传请求者的计算以及通信负担。
附图说明
图1为支持数据删重和用户身份匿名性的云服务器存储完整性检测系统模型图。
图2为云服务器存储文件与用户的对应关系图。
图3为数据删重阶段示意图。
图4为审计阶段示意图。
具体实施方式
为了解决云服务器的数据删重以及用户的身份匿名的问题,本发明提出了一种高效的支持数据删重和用户身份匿名性的云服务器存储完整性检测方法。与传统的云服务器不同的是,本发明提供的支持数据删重的云服务器可以知道拥有相同文件的不同用户的身份,这样云服务器就可以根据这些用户的身份来推断出这个加密文件的属性。例如,如果拥有该文件的用户都是学生,那么这个文件内容应该教育方面的内容。当然,随着用户身份的细化,猜测到的文件内容也会更多,严重泄露了用户的数据隐私。在该方法中,用户生成的审计所需要的认证器不包含用户身份的任何信息。而且在用户下载文件时,只需要发送给云服务器一个合法的证明,不需要任何身份信息。在整个方案中,云服务器不知道关于这些用户身份的任何信息。并且在该方法中,实现了云服务器的定量存储。对于每一个文件,只需要第一个上传者计算其认证器,云服务器也只需要存储着一份认证器,而与拥有同一份文件的用户数量无关。
为了进一步提高存储效率和审计性能,本专利对用户数据使用一种普通段结构存储:将数据文件F分割成n个数据块{m1,m2,...,mn},并将每个文件块分割成s个部分,即mi={mi1,mi2,...,mis},1≤i≤n。
本专利所涉及的理论如下:
双线性配对:
设G1是阶为q的加法群,G2是两个阶为q的乘法群,若映射e:G1×G2→G2满足以下性质:
1)双线性:对于a,b∈G1满足e(aP,bQ)=e(P,Q)ab。
2)非退化性:存在P,Q∈G,使得
3)可计算性:存在有效算法,对于均可计算e(P,Q)。
则称该映射e为双线性配对。
BLS短签名:
1)群G是阶为素数q的乘法循环群,其生成元为g,签名者随机选取然后计算X=gx∈G,签名者公私钥分别为X和x。
2)假设消息为M,签名者计算σ=(H(M))x,其中
3)验证时,首先已知消息M及其签名σ,然后计算e(g,σ)和e(X,H(M))是否相等,若相等则表示σ是消息M的签名。
本发明提供一种数据删重和用户身份匿名性云服务器存储完整性检测装置,其包括:
初始上传用户客户端、后续的上传请求用户客户端、云服务器和第三方审计中心;
所述初始上传用户客户端是指需要远程存储的文件在云服务器上并没有先前存储,并且在上传时需要计算文件的认证器并和该文件一同发送给云服务器;
所述云服务器具有丰富的计算及存储资源,并向用户提供数据存储服务;
所述第三方审计中心可以代表用户完成审计任务,来减轻用户的计算以及通信负担。
除初始上传者外,还包括后续的上传请求用户,其想要上传云服务器已经存储有的文件,不需要上传计算认证器。
本发明还提供采用上述装置进行数据删重和用户身份匿名性云服务器存储完整性检测的方法,其包括:
第一步,当用户需要把一文件存储在远程的云服务器时,首先把该文件的hash值发送给云服务器;
第二步,云服务器收到此hash值后,看已经存有的文件的hash值是否与其相同的,如果有,说明这个文件已经存储在云服务器上,该用户为后续的上传请求者,就不需再次上传此文件;
第三步,如果没有,说明这个用户为初始上传者,该用户需要把文件的密文连同其对应的认证器一块发送给云服务器;如果有,云随机选择几个随机文件快序号发送给用户,用户将这几个文件块返回给云,云服务器来验证这些文件块的正确性。正确,说明这个用户为后续上传用户,则不需要上传文件;不正确,同初始上传者一样需要把文件的密文连同其对应的认证器一块发送给云服务器;
第四步,用户向第三方审计中心发送审计委托的请求,而后第三方审计中心(TPA)首先向云服务器发送质询信息,云服务器收到后,要计算生成相应的证明作为回应发送给TPA,TPA验证这个证明的合理性,审计完成后,TPA将审计的结果返回给用户。
所述数据删重和用户身份匿名性云服务器存储完整性检测的方法,进一步具体包括:
第1步,系统初始化,生成各种系统参数并且选择方案所需要的伪随机哈希函数以及伪随机置换函数;
第2步,文件加密,将用户的元数据用收敛加密算法进行加密;
第3步,数据删重,判断云服务器是否已经存储有该文件,如果已经存储,用户就不用再上传;
第4步,数据文件上传,用户将加密后的数据上传到云服务器;
第5步,审计,第三方审计中心对文件进行审计,并将审计结果返回给用户。
所述第1步进一步包括:
第a步,选择方案所需要的伪随机哈希函数和伪随机置换函数;
第b步,生成各种系统参数。
所述第a步进一步具体为系统参数生成中心选择阶为素数p的乘法循环群群G1和G2,e为可计算的双线性映射e:G1×G1→G2,g为G1的生成元,选择五个伪随机hash函数,其中H1是从串映射到的hash函数:H2是从串映射到一点的哈希函数:H2:{0,1}*→G1;其中H3是将一个任意长度的串映射到一定长度的串:H3:{0,1}*→{0,1}l,其中l是所采用加密算法的密钥的比特长度以及其他两个hash函数:和h:{0,1}*→{0,1}*,并且选择一个伪随机置换函数,将[1,n]中的几个数随机映射其中的另几个数:
所述第b步进一步具体为用户执行H1,H3函数并将文件F的内容作为输入,生成各阶段所需要的密钥,其中函数H1的输出为ktag,作为计算认证器时所需要的密钥,用户计算作为验证密钥,函数H3的输出kenc,用于加密文件F,用户计算作为从云服务器下载文件的一个合法性的证明。
所述第2步进一步包括:
第a步,用户对n个数据块{m1,...,mn}中每个数据块作为哈希函数的输入H3;
第b步,哈希函数H3输出各个文件块的加密密钥,
第c步,生成密文C={C1,C2,...,Cn}。
所述第三步进一步包括:
第a步,用户首先计算文件的hash值,并将这个hash值发送给云服务器;
第b步,云服务器收到这个hash值后,看存储的文件的hash值是否有与此值相同的,如果没有,通知该用户上传该文件及其对应的审计所需要的认证器;
第c步,如果已经存储的文件的hash值有与此hash值相等的,云服务器从[1,n]中随机选择d个元素组成集合D发送给用户,用户将相应序号的文件块作为回应发送给云服务器;
第d步,云服务器收到用户的回应后,计算:
并验证e(T′,g)=e(η′·ψ′,v)是否成立,如果成立就认为用户确实拥有整个文件。用户可以不上传这个文件并且可以合法的访问该文件。
第4步进一步包括:
第a步,用户使用密钥ktag为每个文件块生成认证器。用户首先选择s个随机数:{u1,u2,...,us},为每个文件块计算:
第b步,用户将密文以及其对应的Ti上传到云服务器。
第5步进一步包括:
第a步,产生质询,审计中心TPA随机选择一个有c个元素的集合,并且产生两个随机数,将质询信息chal=(c,k1,k2)发送给云服务器;
第b步,产生证明,云服务器收到质询后,首先对1≤t≤c计算和然后计算和最后向TPA返回可以证明云服务器拥有整个文件的证明(T,η),其中η={η1,η2,...,ηs};
第c步,证明验证,当TPA收到证明后,首先对1≤t≤c计算和而后验证下面等式是否成立:
如果成立则审计通过,否则不通过。
本发明还提供采用上述装置进行数据删重和用户身份匿名性云服务器存储完整性检测的系统,其包括:
系统初始化模块,生成各种系统参数并且选择方案所需要的伪随机哈希函数以及伪随机置换函数;
文件加密模块,将用户的元数据用收敛加密算法进行加密;
数据删重模块,判断云服务器是否已经存储有该文件,如果已经存储,用户就不用再上传;
数据文件上传模块,用户将加密后的数据上传到云服务器;
审计模块,第三方审计中心对文件进行审计,并将审计结果返回给用户。
在系统初始化模块中:
选择方案所需要的伪随机哈希函数和伪随机置换函数,系统参数生成中心选择阶为素数p的乘法循环群群G1和G2,e为可计算的双线性映射e:G1×G1→G2,g为G1的生成元,选择五个伪随机hash函数,其中H1是从串映射到的hash函数:H2是从串映射到一点的哈希函数:H2:{0,1}*→G1;其中H3是将一个任意长度的串映射到一定长度的串:H3:{0,1}*→{0,1}l,其中l是所采用加密算法的密钥的比特长度以及其他两个hash函数:和h:{0,1}*→{0,1}*,并且选择一个伪随机置换函数,将[1,n]中的几个数随机映射其中的另几个数:
生成各种系统参数,用户执行H1,H3函数并将文件F的内容作为输入,生成各阶段所需要的密钥,其中函数H1的输出为ktag,作为计算认证器时所需要的密钥,用户计算作为验证密钥,函数H3的输出kenc,用于加密文件F,用户计算作为从云服务器下载文件的一个合法性的证明。
所述文件加密模块中:
用户对n个数据块{m1,...,mn}中每个数据块作为哈希函数的输入H3;
哈希函数H3输出各个文件块的加密密钥,
生成密文C={C1,C2,...,Cn}。
所述数据删重模块中:
用户首先计算文件的hash值,并将这个hash值发送给云服务器;
云服务器收到这个hash值后,看存储的文件的hash值是否有与此值相同的,如果没有,通知该用户上传该文件及其对应的审计所需要的认证器;
如果已经存储的文件的hash值有与此hash值相等的,云服务器从[1,n]中随机选择d个元素组成集合D发送给用户,用户将相应序号的文件块作为回应发送给云服务器;
第d步,云服务器收到用户的回应后,计算:
并验证e(T′,g)=e(η′·ψ′,v)是否成立,如果成立就认为用户确实拥有整个文件,用户可以不上传这个文件并且可以合法的访问该文件。
所述数据文件上传模块中:
用户使用密钥ktag为每个文件块生成认证器。用户首先选择s个随机数:{u1,u2,...,us},为每个文件块计算:
用户将密文以及其对应的Ti上传到云服务器。
所述审计模块中:
产生质询,审计中心TPA随机选择一个有c个元素的集合,并且产生两个随机数,将质询信息chal=(c,k1,k2)发送给云服务器;
产生证明,云服务器收到质询后,首先对1≤t≤c计算和然后计算和最后向TPA返回可以证明云服务器拥有整个文件的证明(T,η),其中η={η1,η2,...,ηs};
证明验证,当TPA收到证明后,首先对1≤t≤c计算和而后验证下面等式是否成立:
如果成立则审计通过,否则不通过。
以下采用实施例和附图来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
图1为支持数据删重的云服务器存储完整性检测系统模型图。图中示意了该系统中有四个参与实体,即初始上传者、后续的上传请求用户、云服务器、可信第三方审计中心(TPA)。初始上传者和后续上传请求用户都是是云服务器的使用者,是有着大量的要外包的数据,计算能力受限的设备。其中初始上传者需要上传的文件在云服务器并未存有,所以初始上传者需要将该文件的密文连同其对应的认证器一起发送给云服务器。后续的上传请求用户想上传的文件在云服务器上已经存在,所以他们不需要上传该文件以及认证器。云服务器是为用户提供云服务器服务的平台,可以帮用户存储大量的外包数据。第三方审计中心(TPA)减轻了审计过程中用户的计算负担,用户将数据审计委托给TPA,审计完成后TPA将结果返回给用户。
当用户需要把一文件存储在远程的云服务器时,首先把该文件的hash值发送给云服务器。云服务器收到此hash值后,看已经存有的文件的hash值是否与其相同的。如果有,说明这个文件已经存储在云服务器上,该用户为后续的上传请求者,就不需再次上传此文件。如果没有,说明这个用户为初始上传者,该用户需要把文件的密文连同其对应的认证器一块发送给云服务器。在审计过程中,用户向第三方审计中心发送审计委托的请求,而后第三方审计中心(TPA)首先向云服务器发送质询信息。云服务器收到后,要计算生成相应的证明作为回应发送给TPA。TPA验证这个证明的合理性。审计完成后,TPA将审计的结果返回给用户。
图2为云服务器存储文件与用户的对应关系图。图中示意了在支持数据删重的云服务器上,云服务器存储的一个文件一般对应多个用户。根据图中的示意,可以看出一个文件对应多个用户。假设在云服务器中存储有三个文件,文件1、文件2和文件3。在支持数据删重的云服务器上,可以知道云服务器知道拥有同一文件的不同用户的身份。那么就出现这样一种情况,假设图中文件1的用户身份均为学生,那么云服务器就可以知道其对应文件1的大体内容是和教育相关的。随着用户身份的细化,云服务器所猜测到的文件的内容也逐渐贴近于真实内容。例如,这个文件1的用户不仅是学生还是计算机系的大学生,那么云服务器就可以猜测到文件1的内容应该和大学计算机教学有关。再进一步,如果文件1有一个人的身份是大学数据结构教师,那么云服务器就可以准确的猜测出文件1是数据结构教学资料。这样显然严重泄露了用户数据隐私。所以,保护用户的身份隐私是非常重要的。
图3为数据删重阶段示意图。图中示意了由用户C向云服务器发送文件的hash值,而后云服务器根据此值来判断是否已经存有该文件。如果存有,就验证一下用户是否确实拥有这个文件,通过验证的用户则不需要上传该文件。否则,用户需要上传该文件以及其对应的认证器。
如图中示意,在用户上传文件之前,首先把文件密文的hash值h(C)发送给云。云收到此hash值看已经存有的文件中是否有与此值相等的hash值。如果有,说明用户想要上传的文件在云中已经存在。为了确定此用户确实拥有整个文件并想要上传该文件,云在[1,n]随机选取d个元素发给用户。用户收到云发来的质询信息后,将相应序号的文件块{mi}i∈D作为回应发送给云。收到云发来的回应后,云首先计算:
并且验证等式e(T′,g)=e(η′·ψ′,v)是否成立。如果成立,云就相信该用户确实拥有整个文件。该用户不需再上传这个文件。
图4为审计阶段示意图。图中示意了TPA向云服务器发送质询信息,而后云服务器向TPA发送一个可以证明其确实拥有整个文件的证明。最后TPA来验证这个证明的合理性。如果合理,就认为云服务器确实诚实的存储有整个文件,没有作弊。否则,认为云服务器没有存储有整个文件。
当第三方审计中心(TPA)收到用户发来的审计请求后,首先随机选择一个有c个元素的集合,并且产生两个随机数,将质询信息chal=(c,k1,k2)发送给云服务器。云端收到质询后,首先对1≤t≤c计算和然后计算和最后向TPA返回可以证明云拥有整个文件的证明(T,η),其中η={η1,η2,...,ηs}。当TPA收到证明后,首先对1≤t≤c计算和而后验证下面等式是否成立:
如果成立则审计通过,否则不通过。
本发明的实现过程如下:
系统初始化:系统参数生成中心选择阶为素数p的乘法循环群群G1和G2,e为可计算的双线性映射e:G1×G1→G2,g为G1的生成元,选择五个伪随机hash函数,其中H1是从串映射到的hash函数:H2是从串映射到一点的哈希函数:H2:{0,1}*→G1;其中H3是将一个任意长度的串映射到一定长度的串:H3:{0,1}*→{0,1}l,其中l是所采用加密算法的密钥的比特长度。以及其他两个hash函数:和h:{0,1}*→{0,1}*。并且选择一个伪随机置换函数,将[1,n]中的几个数随机映射其中的另几个数:用户执行H1,H3函数并将文件F的内容作为输入,生成各阶段所需要的密钥。其中函数H1的输出为ktag,作为计算认证器时所需要的密钥。用户计算作为验证密钥。函数H3的输出kenc,用于加密文件F。用户计算作为从云端下载文件的一个合法性的证明。
文件加密阶段:用户对n个数据块{m1,...,mn}中每个数据块作为哈希函数的输入H3。哈希函数H3输出各个文件块的加密密钥,使用这些加密密钥生成密文C={C1,C2,...,Cn}。
数据删重阶段:在上传文件之前,用户首先计算文件密文的hash值h(C),并将这个hash值h(C)发送给云服务器。云端收到h(C)后,看存储的文件的hash值是否有与h(C)相同的。如果没有,通知该用户上传该文件及其对应的审计所需要的认证器。如果已经存储的文件的hash值有与此hash值h(C)相等的,云服务器从[1,n]中随机选择d个元素发送给用户,用户将相应序号的文件块作为回应发送给云.云收到用户的回应后,计算:
并验证e(T′,g)=e(η′·ψ′,v)是否成立,如果成立就认为用户确实拥有整个文件。用户可以不上传这个文件并且可以合法的访问该文件。
数据上传阶段:用户使用密钥ktag为每个文件块生成认证器。用户首先选择s个随机数:{u1,u2,...,us},为每个文件块计算认证器:
对数据计算块认证器是为了审计时用来验证数据完整性,本专利中块标签基于BLS短签名计算;用户把文件密文C={C1,C2,...,Cn}和块标签Ti一起发到云端存储,然后可经过安全通道将审计任务委托给审计中心。审计中心验证用户委托合法后就可以根据用户要求对数据不定期审计。
质询阶段:审计中心TPA随机选择一个有c个元素的集合,并且产生两个随机数,将质询信息chal=(c,k1,k2)发送给云服务器。
证明产生阶段:云端收到质询后,首先对1≤t≤c计算和然后计算和最后向TPA返回可以证明云拥有整个文件的证明(T,η),其中η={η1,η2,...,ηs}。
证明验证:当TPA收到证明后,首先对1≤t≤c计算和而后验证下面等式是否成立:
如果成立则审计通过,否则不通过。若通过验证则表明数据完整,否则数据损坏或丢失。审计中心将审计结果发送给用户,用户可以据此评估云端服务的优劣。
所有上述的首要实施这一知识产权,并没有设定限制其他形式的实施这种新产品和/或新方法。本领域技术人员将利用这一重要信息,上述内容修改,以实现类似的执行情况。但是,所有修改或改造基于本发明新产品属于保留的权利。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。