一种云存储服务中多副本数据的公开审计方法与流程

文档序号:14836276发布日期:2018-06-30 12:33阅读:206来源:国知局
本发明属于信息安全领域,特别涉及面向云存储的数据安全审计,适用于云存储环境中多副本数据的完整性公开审计。
背景技术
::随着云存储技术及其相关产业的飞速发展,越来越多的个人和企业倾向于将其数据外包到云上,以提高数据存储的可靠性并减少其维护开销。然而,云存储给用户带来便利的同时,也引起了许多安全问题。特别是,由于数据所有权和管理权的分离,使用户难以用传统的方式验证数据的完整性,从而使得用户和云服务方之间存在信任鸿沟。近年来随着云中多副本存储服务的出现和普及,面向多副本数据的安全审计问题也逐渐引起了人们的关注。Curtmola等人最早关注这个问题,提出了多副本数据持有性证明方案,该方案采用RSA签名和随机掩码技术,实现对多副本数据的完整性审计,但该方案不支持公开审计(见CurtmolaR,KhanO,BurnsR,etal.MR-PDP:Multiple-replicaprovabledatapossession[C]//DistributedComputingSystems,2008.ICDCS'08.The28thInternationalConferenceon.IEEE,2008:411-420);Hao等人提出了基于Boneh-Lynn-Shacham签名方案,实现了对多副本数据的公开审计(见HaoZ,YuN.Amultiple-replicaremotedatapossessioncheckingprotocolwithpublicverifiability[C]//Data,PrivacyandE-Commerce(ISDPE),2010SecondInternationalSymposiumon.IEEE,2010:84-89);Chen等人在此基础上给出了多用户多副本数据持有性批量审计方案(见陈何峰,林柏,杨旸,等.基于BLS的多用户多副本数据持有性批量审计[J].密码学报.2014,(04):368-378)。然而,这些方案均无法支持多副本数据的动态更新。为实现多副本数据的动态审计,Liu等人(见LiuC,ChenJ,YangLT,etal.Authorizedpublicauditingofdynamicbigdatastorageoncloudwithefficientverifiablefine-grainedupdates[J].IEEETransactionsonParallelandDistributedSystems,2014,25(9):2234-2244)和Barsoum等人(见BarsoumAF,HasanMA.OnVerifyingDynamicMultipleDataCopiesoverCloudServers[J].IACRCryptologyePrintArchive,2011,2011:447)分别给出了基于Merkle哈希树和索引哈希表的审计方案。前者利用多个Merkle哈希树合并成的MR-MHT树作为多副本动态数据的认证结构。后者摒弃了索引哈希表记录数据块序号,设计了版本映射表作为认证结构,避免了标签生成与对应的数据块序号相关。较之前者,使得数据动态更新更为高效。然而,因其须对不同副本中相同序号的标签进行聚合,故标签生成开销较大。针对现有研究存在的问题,本发明提出了一种新的多副本数据的完整性审计方案。在确保多副本云数据高效审计的同时,支持多副本数据的动态更新以及多副本数据的批量审计(即第三方审计者可一次性审计来自多个用户的审计任务)。技术实现要素:本发明提供了一种云存储服务中多副本数据的公开审计方法,旨在提供高效的多副本云数据完整性公开审计同时,支持多副本数据的动态更新以及多副本数据的批量审计。本发明采用了如下技术方案:一种云存储服务中多副本数据的公开审计方法,包括:(1)密钥生成步骤:用户生成密钥对,即私钥SK={x},公钥PK={g,u,v,y};用户保存私钥SK,并将公钥PK发布给云服务方和第三方审计者;其中x为整数集合Zp中的随机数,u,v为阶是素数p的循环群G1中的随机元素,g为阶是素数p的循环群G2的生成元,且y=gx;(2)用户数据预处理步骤:用户首先为待处理的文件F生成文件标识ID;并将文件F划分为n个数据块,即F={b1,b2,···,bn},其中bi(i=1,2,...,n)为第i个数据块;同时记录各数据块的版本信息,得到集合Ф={(vi,ti)|1≤i≤n},其中,vi,ti分别为数据块bi的版本号和时间戳;此外,用户还为每个数据块bi生成相应的数字签名σi,从而得到数字签名集合Λ={σi|1≤i≤n};随后,对各数据块通过插入不同的随机掩码生成t个不同的副本文件,记多副本集合为FS={F’1,F’2,…,F’t},其中F’j(j=1,2,...,t)为第j个副本文件;最后,用户把文件标识ID和版本信息Ф交由第三方审计者保存,将文件标识ID、数据块签名集合Λ和多副本集合FS发送给云服务方,之后删除私钥之外的所有数据;(3)云服务方数据预处理步骤:云服务方接收到用户发送过来的多副本集合FS、数据块签名集合Λ和文件标识ID后,首先对各数据块签名σi进行双线性配对计算得到数据块标签ωi,即ωi=e(σi,g),并将标签集合Ω={ωi|1≤i≤n}保存,同时将各副本存放于不同的服务器;(4)第三方审计者数据预处理步骤:第三方审计者将用户发送来的文件标识ID和版本信息Ф={(vi,ti)|1≤i≤n}存放在动态哈希表中,以实现数据新鲜度(最新版本状态)的可审计。动态哈希表是新近提出的用于支持数据动态性的一个认证数据结构(见TianH,ChenY,ChangCC,etal.Dynamic-hash-tablebasedpublicauditingforsecurecloudstorage[J].IEEETransactionsonServicesComputing,2017,10(5):701-714),其本质上是一个二维表,表中将多个文件以数组方式进行组织,而每个文件中各数据块的版本信息以链表方式进行组织。(5)挑战步骤:第三方审计者响应用户审计请求或定期地代表用户对其数据进行审计,为此需首先生成挑战信息,包括随机选择的数据块序号集合Ψ={ψs|s=1,2,…,c},随机数集合Τ={rs|rs∈Zp,s=1,2,…,c},以及随机掩码R=ya,其中,c为各副本文件中需挑战的数据块数目,a为整数集合Zp中随机数;随后,第三方审计者将挑战信息(Ψ,Τ,R)发送给云服务方;(6)证据生成步骤:云服务方收到第三方审计者的挑战信息后,须生成数据持有性证据,包括标签证据Θ和数据块证据集合Ρ={ρj|1≤j≤t},其中ρj为第j个副本文件的数据块证据;随后将证据信息(Θ,Ρ)返回给第三方审计者;(7)证据验证步骤:第三方审计者对云服务方返回的证据信息(Θ,Ρ)进行验证;若验证成功,则说明多副本文件是完整的;否则,说明某些多副本文件中的数据已被损坏;(8)数据动态更新步骤:当需对数据进行更新(包括修改、插入和删除)时,用户需向第三方审计者发送更新信息UTPA,向云服务方送更新信息UCSP;在收到更新信息后,第三方审计者将随之更新动态哈希表,云服务方将更新相应的数据块和标签。(9)批量审计步骤:当有w个不同用户同时发起审计请求时,云服务方为每个用户分别生成标签证据Θk和数据块证据集合Ρk={ρk,j|1≤j≤t},其中k=1,2,...,w;接着,将所有的标签证据进行再次聚合得到标签批量审计证据ΘB,将各用户不同副本文件的数据块证据进行再次聚合得到数据块批量审计证据集合Г={ΡBj|1≤j≤t};随后,云服务方将批量审计证据(ΘB,Г)发送给三方审计者;第三方审计者对批量审计证据进行验证;若验证成功,则说明所有用户的多副本文件都是完整的;否则,说明某些多副本文件中的数据已被损坏。优选的,所述用户数据预处理步骤包括如下过程:(2.1)用户首先为待处理的文件F生成文件标识ID;并将文件F划分为n个数据块,即F=(b1,b2,···,bn),其中bi为第i个数据块;同时记录各数据块的版本信息,得到集合Ф={(vi,ti)|1≤i≤n},其中,vi,ti分别为数据块bi的版本号和时间戳;此外,用户还为每个数据块bi生成相应的数字签名σi,其计算过程为:其中,H(·)是安全哈希函数,其功能是将字符串映射到整数集合Zp上;(2.2)用户对各数据块通过插入不同的随机掩码生成t个不同的副本文件,记多副本集合为FS=(F’1,F’2,…,F’t),其中F’j={mj,1,mj,2,…,mj,n},j=1,2,...,t,且mj,i(i=1,2,…,n)由数据块bi差异化得到,其计算过程为:mj,i=bi+H(vi||ti||j)。(2.3)用户把文件标识ID和版本信息Ф交由第三方审计者保存,将文件标识ID、数据块签名集合Λ={σi|1≤i≤n}和多个副本集合FS发送给云服务方,之后删除私钥之外的所有数据。优选的,所述证据生成步骤包括如下过程:(6.1)云服务方收到第三方审计者的挑战信息后,首先为多副本文件生成标签证据,其计算过程为:其中,是多副本文件第ψs个数据块的标签;(6.2)云服务方为每个副本文件生成数据块证据ρj(j=1,2,…,t),其计算过程为:其中,e是双线性映射函数;是第j个副本文件的第ψs个数据块;(6.3)云服务方将证据信息(Θ,Ρ={ρj|1≤j≤t})返回给第三方审计者。优选的,所述证据验证步骤包括如下过程:第三方审计者将云服务方返回的证据信息(Θ,Ρ)代入如下等式进行验证:其中,分别为第ψs个数据块的版本号和时间戳;若等式成立,则说明多副本文件是完整的;否则,说明某些多副本文件中的数据已被损坏。优选的,所述数据动态更新步骤包括如下过程:(8.1)数据块修改:如用户需要将文件F第i个数据块bi修改为bi’,用户首先为bi’生成版本信息(vi’,ti’),然后发送更新信息UTPA=(ID,modify,i,vi’,ti’)给第三方审计者,其中,ID为文件F的标识符;modify代表更新操作为修改。第三方审计者收到更新信息UTPA后,在动态哈希表中找到文件F的第i个数据块的版本信息,将其替换为(vi’,ti’)。此外,用户需为修改后的数据块生成新的签名以及t个数据块副本M’={m’j,i=bi’+H(vi’||ti’||j)|1≤j≤t},然后发送更新信息UCSP=(ID,modify,i,M’,σ’i)给云服务方,其中,ID为文件F的标识符;modify代表更新操作为修改。云服务方收到更新信息UCSP后,对数字签名σ’i再处理得到数据块标签ω’i=e(σ’i,g),随后对第i个数据块标签及多个副本进行更新,即将ωi替换为ω’i,将数据块副本mj,i替换为m’j,i,j=1,2,…,t。(8.2)数据块插入:如用户需要在文件F第i个数据块后面插入b*,用户首先为b*生成版本信息(v*,t*),然后发送更新信息UTPA=(ID,insert,i,v*,t*)给第三方审计者,其中,ID为文件F的标识符;insert代表更新操作为插入。第三方审计者收到更新信息UTPA后,在动态哈希表中找到文件F的第i个数据块版本信息的位置,并在此位置后插入版本信息(v*,t*)。此外,用户需为插入的数据块生成新的签名σ*=(vH(v*||t*)ub*)x以及t个数据块副本M*={m*j=b*+H(v*||t*||j)|1≤j≤t},然后发送更新信息UCSP=(ID,insert,i,M*,σ*)给云服务方,其中,ID为文件F的标识符;insert代表更新操作为插入。云服务方收到更新信息UCSP后,对数字签名σ*再处理得到数据块标签ω*=e(σ*,g),随后将在第i个数据块标签ωi后插入标签ω*,以及在数据块副本mj,i后插入数据块m*j,j=1,2,…,t。(8.3)数据块删除:如用户需要把文件F第i个数据块bi删除,用户发送更新信息UTPA=(ID,delete,i)给第三方审计者,其中,ID为文件F的标识符;delete代表更新操作为删除。第三方审计者收到更新信息UTPA后,在动态哈希表中找到文件F的第i个数据块的版本信息,并将其删除。此外,用户发送更新信息UCSP=(ID,delete,i)给云服务方,其中,ID为文件F的标识符;delete代表更新操作为删除。云服务方收到更新信息UCSP后,将在第i个数据块标签ωi删除,并同时删除bi的所有数据块副本,即{mj,i|j=1,2,…,t}。优选的,所述批量审计步骤包括如下过程:(9.1)当有w个不同用户同时发起审计请求时,云服务方为每个用户分别生成标签证据Θk和数据块证据集合Ρk={ρk,j|1≤j≤t};其中,标签证据Θk的计算过程为:其中,是第k个用户的第ψs个标签;rk,s是关于第k个用户的挑战信息中随机数集合的第s个随机数;数据块证据集合中每个元素ρk,j的计算过程为:其中,uk是第k个用户的公钥;Rk是挑战信息中第k个用户的随机掩码;是第k个用户的第j个副本文件中第ψs个数据块;(9.2)云服务方将所有的标签证据进行再次聚合得到标签批量审计证据ΘB,其计算过程为:并将各用户不同副本文件的数据块证据进行再次聚合得到数据块批量审计证据集合Г={ΡBj|1≤j≤t},其中ΡBj的计算过程为:(9.3)云服务方将批量审计证据(ΘB,Г)发送给三方审计者。(9.4)第三方审计者将云服务方返回的批量审计证据(ΘB,Г)代入如下等式进行验证:其中,vk,uk均为第k个用户的公钥;分别为第k个用户的第ψs个数据块的版本号和时间戳;Rk是挑战信息中第k个用户的随机掩码,且其中yk为第k个用户的公钥,a为整数集合Zp中随机数;若等式成立,则说明多副本文件是完整的;否则,说明某些多副本文件中的数据已被损坏。本发明提供的技术方案带来的有益效果是:本发明所提出的公开审计方法可在确保多副本云数据高效审计的同时,支持多副本数据的动态更新以及多副本数据的批量审计。以下结合附图及实施例对本发明作进一步详细说明,但本发明的一种云存储服务中多副本数据的公开审计方法不局限于实施例。附图说明图1是本发明实施例公开审计的时序图;图2是本发明实施例动态哈希表图;图3是本发明实施例数据动态更新的时序图。具体实施方式以下通过具体的实施方式对本发明进一步描述。本发明提供了一种云存储服务中多副本数据的公开审计方法,以下结合附图对本发明进一步说明。参见图1所示,本发明一种云存储服务中多副本数据的公开审计方法,包括密钥生成步骤、用户数据预处理步骤、云服务方数据预处理步骤、第三方审计者数据预处理步骤、挑战步骤、证据生成步骤和证据验证步骤,具体如下:1.密钥生成步骤:用户生成密钥对,即私钥SK={x},公钥PK={g,u,v,y};用户保存私钥SK,并将公钥PK发布给云服务方和第三方审计者;其中x为整数集合Zp中的随机数,u,v为阶是素数p的循环群G1中的随机元素,g为阶是素数p的循环群G2的生成元,且y=gx;2.用户数据预处理步骤包括如下过程:2.1用户首先为待处理的文件F生成文件标识ID;并将文件F划分为n个数据块,即F=(b1,b2,···,bn),其中bi为第i个数据块;同时记录各数据块的版本信息,得到集合Ф={(vi,ti)|1≤i≤n},其中,vi,ti分别为数据块bi的版本号和时间戳;此外,用户还为每个数据块bi生成相应的数字签名σi,其计算过程为:其中,H(·)是安全哈希函数,其功能是将字符串映射到整数集合Zp上;2.2用户对各数据块通过插入不同的随机掩码生成t个不同的副本文件,记多副本集合为FS=(F’1,F’2,…,F’t),其中F’j={mj,1,mj,2,…,mj,n},j=1,2,...,t,且mj,i(i=1,2,…,n)由数据块bi差异化得到,其计算过程为:mj,i=bi+H(vi||ti||j)。2.3用户把文件标识ID和版本信息Ф交由第三方审计者保存,将文件标识ID、数据块签名集合Λ={σi|1≤i≤n}和多个副本集合FS发送给云服务方,之后删除私钥之外的所有数据。3.云服务方数据预处理步骤:云服务方接收到用户发送过来的多副本集合FS、数据块签名集合Λ和文件标识ID后,首先对各数据块签名σi进行双线性配对计算得到数据块标签ωi,即ωi=e(σi,g),并将标签集合Ω={ωi|1≤i≤n}保存,同时将各副本存放于不同的服务器;4.第三方审计者数据预处理步骤:第三方审计者将用户发送来的文件标识ID和版本信息Ф={(vi,ti)|1≤i≤n}存放在动态哈希表中,以实现数据新鲜度(最新版本状态)的可审计。动态哈希表是新近提出的用于支持数据动态性的一个认证数据结构(见TianH,ChenY,ChangCC,etal.Dynamic-hash-tablebasedpublicauditingforsecurecloudstorage[J].IEEETransactionsonServicesComputing,2017,10(5):701-714),参见图2所示,动态哈希表的本质上是一个二维表,表中将多个文件以数组方式进行组织,而每个文件中各数据块的版本信息以链表方式进行组织。5.挑战步骤:第三方审计者响应用户审计请求或定期地代表用户对其数据进行审计,为此需首先生成挑战信息,包括随机选择的数据块序号集合Ψ={ψs|s=1,2,…,c},随机数集合Τ={rs|rs∈Zp,s=1,2,…,c},以及随机掩码R=ya,其中,c为各副本文件中需挑战的数据块数目,a为整数集合Zp中随机数;随后,第三方审计者将挑战信息(Ψ,Τ,R)发送给云服务方;6.证据生成步骤包括如下过程:6.1云服务方收到第三方审计者的挑战信息后,首先为多副本文件生成标签证据,其计算过程为:其中,是多副本文件第ψs个数据块的标签;6.2云服务方为每个副本文件生成数据块证据ρj(j=1,2,…,t),其计算过程为:其中,e是双线性映射函数;是第j个副本文件的第ψs个数据块;6.3云服务方将证据信息(Θ,Ρ={ρj|1≤j≤t})返回给第三方审计者。7.第三方审计者将云服务方返回的证据信息(Θ,Ρ)代入如下等式进行验证:其中,分别为第ψs个数据块的版本号和时间戳;若等式成立,则说明多副本文件是完整的;否则,说明某些多副本文件中的数据已被损坏。参见图3所示,本发明的数据动态更新的时序图,包括用户发送更新信息、第三方审计者执行更新和云服务方执行更新。8.数据动态更新步骤包括如下过程:8.1当需对数据进行更新(包括修改、插入和删除)时,用户需向第三方审计者发送更新信息UTPA,向云服务方送更新信息UCSP;在收到更新信息后,第三方审计者将随之更新动态哈希表,云服务方将更新相应的数据块和标签。8.2数据块修改:如用户需要将文件F第i个数据块bi修改为bi’,用户首先为bi’生成版本信息(vi’,ti’),然后发送更新信息UTPA=(ID,modify,i,vi’,ti’)给第三方审计者,其中,ID为文件F的标识符;modify代表更新操作为修改。第三方审计者收到更新信息UTPA后,在动态哈希表中找到文件F的第i个数据块的版本信息,将其替换为(vi’,ti’)。此外,用户需为修改后的数据块生成新的签名以及t个数据块副本M’={m’j,i=bi’+H(vi’||ti’||j)|1≤j≤t},然后发送更新信息UCSP=(ID,modify,i,M’,σ’i)给云服务方,其中,ID为文件F的标识符;modify代表更新操作为修改。云服务方收到更新信息UCSP后,对数字签名σ’i再处理得到数据块标签ω’i=e(σ’i,g),随后对第i个数据块标签及多个副本进行更新,即将ωi替换为ω’i,将数据块副本mj,i替换为m’j,i,j=1,2,…,t。8.3数据块插入:如用户需要在文件F第i个数据块后面插入b*,用户首先为b*生成版本信息(v*,t*),然后发送更新信息UTPA=(ID,insert,i,v*,t*)给第三方审计者,其中,ID为文件F的标识符;insert代表更新操作为插入。第三方审计者收到更新信息UTPA后,在动态哈希表中找到文件F的第i个数据块版本信息的位置,并在此位置后插入版本信息(v*,t*)。此外,用户需为插入的数据块生成新的签名σ*=(vH(v*||t*)ub*)x以及t个数据块副本M*={m*j=b*+H(v*||t*||j)|1≤j≤t},然后发送更新信息UCSP=(ID,insert,i,M*,σ*)给云服务方,其中,ID为文件F的标识符;insert代表更新操作为插入。云服务方收到更新信息UCSP后,对数字签名σ*再处理得到数据块标签ω*=e(σ*,g),随后将在第i个数据块标签ωi后插入标签ω*,以及在数据块副本mj,i后插入数据块m*j,j=1,2,…,t。8.4数据块删除:如用户需要把文件F第i个数据块bi删除,用户发送更新信息UTPA=(ID,delete,i)给第三方审计者,其中,ID为文件F的标识符;delete代表更新操作为删除。第三方审计者收到更新信息UTPA后,在动态哈希表中找到文件F的第i个数据块的版本信息,并将其删除。此外,用户发送更新信息UCSP=(ID,delete,i)给云服务方,其中,ID为文件F的标识符;delete代表更新操作为删除。云服务方收到更新信息UCSP后,将在第i个数据块标签ωi删除,并同时删除bi的所有数据块副本,即{mj,i|j=1,2,…,t}。9.批量审计步骤包括如下过程:9.1当有w个不同用户同时发起审计请求时,云服务方为每个用户分别生成标签证据Θk和数据块证据集合Ρk={ρk,j|1≤j≤t};其中,标签证据Θk的计算过程为:其中,是第k个用户的第ψs个标签;rk,s是关于第k个用户的挑战信息中随机数集合的第s个随机数;数据块证据集合中每个元素ρk,j的计算过程为:其中,uk是第k个用户的公钥;Rk是挑战信息中第k个用户的随机掩码;是第k个用户的第j个副本文件中第ψs个数据块;9.2云服务方将所有的标签证据进行再次聚合得到标签批量审计证据ΘB,其计算过程为:并将各用户不同副本文件的数据块证据进行再次聚合得到数据块批量审计证据集合Г={ΡBj|1≤j≤t},其中ΡBj的计算过程为:9.3云服务方将批量审计证据(ΘB,Г)发送给三方审计者。9.4第三方审计者将云服务方返回的批量审计证据(ΘB,Г)代入如下等式进行验证:其中,vk,uk均为第k个用户的公钥;分别为第k个用户的第ψs个数据块的版本号和时间戳;Rk是挑战信息中第k个用户的随机掩码,且其中yk为第k个用户的公钥,a为整数集合Zp中随机数;若等式成立,则说明多副本文件是完整的;否则,说明某些多副本文件中的数据已被损坏。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1