一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

云存储中支持数据可验证删除的高效数据迁移方法、系统与流程

2022-03-09 01:34:34 来源:中国专利 TAG:


1.本发明属于云存储技术领域,尤其涉及一种云存储中支持数据可验证删除的高效数据迁移方法、系统。


背景技术:

2.云存储是云计算提供的最具吸引力的服务之一,它允许租户通过按需付费的方式享受几乎无限的存储容量。通过使用云存储服务,资源受限的数据拥有者,包括个人和企业,都能够将其海量数据上传到远端云服务器,从而有效避免在本地存储和管理海量数据所需的巨大开销。由于其诱人的优势,越来越多的数据拥有者愿意使用云存储服务来存储他们的数据。cisco的调查报告显示,截至2019年底,云存储租户数量已经达到36亿,并且有82%的组织通过使用云存储大幅度节省人力投资和it资源开销。
3.由于巨大的市场潜力,越来越多的企业纷纷投资云存储,如亚马逊、阿里巴巴、dropbox、quidway 等。不同企业提供的云存储服务在存储容量、使用价格、安全性、可靠性、访问速度等方面存在巨大的差异。因此,数据拥有者会动态更换云服务提供商(cloud service provider,csp),并将外包数据从原始云服务器迁移到目标云服务器,以享受更优质的数据存储服务。此外,由于一些客观原因,数据拥有者将不得不更换云服务提供商并迁移外包数据,例如,学生升学到另一所学校。调查报告所示,云服务器之间的数据流量占云数据总流量的9%。同时,数据拥有者也希望在外包数据迁移成功后,将原始云服务器上已被迁移的外包数据永久性删除。
4.为实现外包数据从原始云服务器到目标云服务器的安全迁移,一个名为cloudsfer的软件被设计出来,该软件利用加密技术保护敏感信息在迁移过程不会被泄露。然而,该软件无法保证外包数据在存储和迁移过程中的完整性和可用性,具体原因如下。首先,出于经济利益驱动,自私的云服务器会恶意篡改外包数据,或者故意删除一些很少被访问的外包数据,从而大大降低存储容量消耗。其次,外包数据迁移需要占用大量的通信带宽,这会极大地影响其他客户的访问速度。因此,为了节省通信资源,原始云服务器可能只迁移部分外包数据,或者发送一些随机的数据欺骗数据拥有者。最后,外包数据中通常包含一些有价值的信息,例如数据拥有者的隐私信息。因此,原始云服务器可能会违背数据删除命令,在数据迁移成功后故意保留已被迁移的外包数据,从而从保留的数据备份中挖掘有价值的信息。
5.外包数据删除已经被研究了很长时间,并产生了大量的解决方案。其中,利用密码技术实现外包数据删除备受关注。1996年boneh和lipton[d.boneh,r.j.lipton,a revocable backup system,in:proceedingsof the 6th usenix security symposium,vol.10,1996,pp.91

96]首先采用密码技术设计数据删除方案,他们在存储前对数据进行加密,然后通过销毁相应的解密密钥来实现数据删除。随后,专家学者提出了大量基于密码技术的数据删除方案。hao等人[f.hao,d.clarke,a.f.zorzo,deleting secret data with publicverifiability,ieee transactions on dependable and secure computing 13
standards& interfaces 54(2017)46

54]认为方案[y.yu,j.ni,w.wu,et al.,provable data possession supporting securedatatransfer for cloud storage,in:10th international conference on broadband and wireless computing, communication and applications,2015,pp.38

42]和[j.ni,x.lin,k.zhang,et al.,secure outsourced datatransfer with integrity verification in cloud storage,in:2016ieee/cic international conference oncommunications in china,ieee,2016,pp.1

6]仅适用于密文,无法适用于明文。随后,他们提出了一种新的解决方案,该解决方案对明文和密文均适用。与此同时,他们提出的方案提高了外包数据完整性验证的效率。
[0007]
2018年,liu等人[y.liu,x.a.wang,et al.,improved provable data transfer from provable datapossession and deletion in cloud storage,in:international conference on intelligent networking and collaborativesystems,2018,pp.445

452]研究支持外包数据可验证删除的高效迁移问题,并指出方案[l.xue,j.ni,y.li, et al.,provable data transfer from provable data possession and deletion in cloud storage,computer standards& interfaces 54(2017)46

54]中存在一个安全漏洞:云服务器可以篡改外包数据块并成功伪造相关的块标签,该块标签可以顺利通过验证。为了解决这一安全漏洞,他们设计了一种改进的安全数据迁移方案。yang 等人[c.yang,x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloud storage, international journal of distributed sensor network 15(10)(2019)1

15]基于向量承诺(vector commitment, vc)设计了一个公开可验证的云数据迁移与删除方案,该方案不依赖第三方。wang等人[y.wang,x.tao, j.ni,et al.,data integrity checking with reliable data transfer for secure cloud storage,international journal ofweb and grid services 14(1)(2018)106

121]基于可证明数据拥有、同态加密和同态验证器,提出了一种数据完整性审计方案,该方案可以同时实现外包数据机密性、外包数据高效迁移、外包数据可验证删除。yang 等人[c.yang,x.tao,f.zhao,et al.,secure data transfer and deletion from counting bloom filter in cloudcomputing,chinese journal of electronics 29(2)(2020)273

280]结合哈希函数和可计数布隆过滤器,提出了一种支持外包数据可验证删除的安全迁移方案。该方案在外包数据删除过程的计算开销是恒定的。但是,该方案中的数据拥有者需要在本地维护外包数据块的对应的哈希值。
[0008]
简而言之,虽然雇佣云存储服务来存储和维护大规模数据在经济上极具吸引力,但不可避免地面临一系列严峻的安全问题,例如外包数据完整性、外包数据迁移和外包数据删除。如果这些问题处理不好,将会极大地阻碍大众对云存储服务的接受和使用。因此,如何在外包数据迁移过程中保护外包数据的完整性,并在迁移成功后,将原始云服务器上已被迁移的外包数据永久性删除,已成为学术界和产业界共同关注的研究热点。
[0009]
通过上述分析,现有技术存在的问题及缺陷为:
[0010]
(1)现有的支持外包数据可验证删除的迁移方案依赖可信第三方。然而,可信第三方与其他普通的实体一样,当计算开销不断增加时,可信第三方会因沉重的计算负担而拒绝提供服务,从而导致服务中断。同时,可信第三方容易遭受攻击者的攻击,导致数据拥有者的隐私信息泄露。因此,对可信第三方的依赖会成为阻碍支持外包数据可验证删除的迁
移系统快速发展及其应用广泛普及的技术瓶颈。
[0011]
(2)现有的支持外包数据可验证删除的迁移方案包含一些复杂的协议或运算,例如可证明数据持有协议、双线性对运算等,使得在方案执行过程中,需要消耗大量的计算开销、通信带宽和存储资源,导致方案效率低下。
[0012]
(3)目前对去中心化的支持外包数据可验证删除的高效迁移缺乏系统的解决方案,现在尚未有较为完善的机制保护外包数据在开放信道中迁移时的机密性、完整性和可用性。
[0013]
解决以上问题及缺陷的难度为:在商业模式下,云服务器是不完全可信的。外包数据迁移和删除需要消耗原始云服务器大量的计算开销和通信带宽;出于利益等因素驱动,原始云服务器会违背数据拥有者的数据迁移和删除命令,并返回虚假的结果欺骗数据拥有者。因此,如何不依赖可信第三方实现支持外包数据可验证删除的高效迁移,对外包数据迁移和删除结果进行验证,并有效发现原始云服务器的恶意行为是本发明解决的一个技术难点。此外,随着信息技术的飞速发展,数据量呈指数级增长趋势,如何在大规模数据外包场景中,提高外包数据迁移与删除的效率也是本发明解决的一个技术难点。
[0014]
解决以上问题及缺陷的意义为:实现高效的外包数据迁移,并保护外包数据在迁移过程的机密性、完整性和可用性,可以使得数据拥有者能够动态更换云服务提供商,在无需下载外包数据的情况下,可以将其从一个云服务器安全、完整地迁移到另一个云服务器,从而能够享受更适合自己的数据存储服务;实现原始云服务器上已被迁移外包数据的可验证删除,可以永久性地删除原始云服务器上已被迁移的外包数据,不仅能节省存储费用,还能有效地保护数据拥有者的隐私;此外,可以在防止数据拥有者敏感信息泄露的前提下,降低数据拥有者端和云服务器端的计算开销和存储资源消耗。这对于促进云存储的快速发展及其应用的广泛普及具有很大的推动作用。


技术实现要素:

[0015]
针对现有技术存在的问题,本发明提供了一种云存储中支持数据可验证删除的高效数据迁移方法、系统。
[0016]
本发明是这样实现的,一种云存储中支持数据可验证删除的高效数据迁移方法,所述云存储中支持数据可验证删除的高效数据迁移方法包括:
[0017]
完成数据拥有者在系统中的注册,并生成相关参数和公私钥对。完成系统注册,使数据拥有者成为云 a和云b的合法用户,可直接雇佣云a和云b的数据存储服务;通过参数和公私钥对生成,为后续方案的建立提供必须的参数和公私钥对;
[0018]
实现外包数据加密,防止数据拥有者的隐私信息泄露。外包文件中通常会包含关于数据拥有者的隐私信息。通过对外包数据加密实现机密性,防止敏感信息泄露,保护了数据拥有者的隐私;
[0019]
数据拥有者将外包数据集上传到云a,并删除相应的本地备份。数据拥有者是资源受限的,通过将大规模数据存储在云a并删除本地本分,可以有效减轻数据拥有者本地的存储负担,并避免维护大规模数据所需的计算开销;
[0020]
数据拥有者更换云服务提供商,并安全地将外包数据从云a迁移到云b。不同企业提供的云储存服务在访问速度、使用价格、可靠性、安全性、存储容量等方面有较大的差别,
通过更换云服务提供商并迁移外包数据,数据拥有者能够享受更优质的数据存储服务;
[0021]
外包数据迁移成功后,数据拥有者将云a上已被迁移的外包数据块永久性删除。通过数据删除,数据拥有者将云a上已被迁移的外包数据块永久性删除,不仅能够节省存储费用,还能够有效保护数据拥有者的隐私。
[0022]
进一步,所述云存储中支持数据可验证删除的高效数据迁移方法构建可计数布隆过滤器树(counting bloom filter tree,cbft),该树中每个节点都维护一个长度可变的可计数布隆过滤器(counting bloom filter,cbf);同一层中每个节点维护的元素个数是相等的,且对于第i层,将集合所包含的所有元素按原来的顺序划分成2
i-1
个等份;该层的每个节点按照顺序维护其中的一个等份;
[0023]
当要检查集合d是否包含特定元素a时,验证者首先检查可计数布隆过滤器cbf
1,1
是否包含元素a,其中cbf
1,1
是可计数布隆过滤器树的根节点;如果可计数布隆过滤器cbf
1,1
不包含元素a,则表示集合d 不包含元素a,验证者终止并返回检查结果;否则,如果可计数布隆过滤器cbf
1,1
包含元素a,验证者将进一步检查其两个孩子节点cbf
2,1
和cbf
2,2
是否包含元素a;如果两者都不包含元素a,则表示集合d不包含元素a;否则,如果其中一个节点包含元素a,验证者将进一步检查其两个孩子节点;随后,验证者重复上述验证过程,直至到达叶子节点;当存在从叶子节点到根节点的路径,且该路径上的所有节点都包含元素a,那么表示集合d包含元素a;相反地,如果存在某一层中的所有节点都不包含元素a,那么表示集合d不包含元素a。
[0024]
进一步,所述完成数据拥有者在系统中的注册,并生成相关参数和公私钥对具体包括:
[0025]
(1)系统注册:在使用云a和云b提供的数据存储服务之前,数据拥有者必须成为云a和云b的合法用户。首先,数据拥有者在云a和云b上进行用户注册;随后,云a和云b验证数据拥有者的身份;一旦身份验证成功,数据拥有者将会得到一个独一无二身份标识ido;数据拥有者成为云a和云b的合法用户,能够以按需付费的方式使用云a和云b提供的数据存储服务;
[0026]
(2)参数/公私钥对生成:首先,云a、云b和数据拥有者分别生成椭圆曲线数字签名算法(ecdsa) 的公/私钥对(pka,ska)、(pkb,skb)和(pko,sko);他们各自将自己的私钥保密,同时公开自己的公钥;与此同时,数据拥有者为外包文件f选择一个文件标识nf,其中nf在存储系统中必须是独一无二的。
[0027]
进一步,所述实现外包数据加密,防止数据拥有者的隐私信息泄露的数据预处理具体包括:
[0028]
(1)外包数据加密:外包数据中通常包含一些隐私信息,数据拥有者希望在将外包数据上传到云a 之前对其进行加密;具体地说,数据拥有者首先生成数据加密密钥k=h(ido||sko||nf),其中||表示消息级联,h(
·
)是一个安全的单向抗碰撞哈希函数;随后,数据拥有者利用密钥k加密外包文件 f=enck(f),其中enck(
·
)是选择明文攻击下不可区分(ind-cpa)安全的对称加密算法,同时f是外包文件f加密后所得到的密文;
[0029]
(2)数据分块:数据拥有者将密文f拆分为n’个数据块,同时将n-n’个随机数据块插入到n’个密文块中的随机位置,并将这些随机位置记录在表格tb中;然后,外包数据块表示为f’=(f1,f2,
···
,fn);此外,数据拥有者为每个数据块fi选择一个随机且唯一的索
引ai,其中i=1,2
···
,n,数据块fi必须通过相应的索引ai才能被访问。因此,外包数据集可表示为d={(fi,ai)}
i∈[1,n]

[0030]
进一步,所述数据拥有者将外包数据集上传到云a,并删除相应的本地备份的数据外包的过程具体包括:
[0031]
(1)建立基于编号的merkle哈希树rmht:数据拥有者利用外包数据块f’=(f1,f2,
···
,fn)建立一个基于编号的merkle哈希树rmht,树中每个叶子节点存储一个外包数据块的哈希值和编号。具体地说,叶子节点ni存储外包数据块fi的哈希值和该叶子节点的编号(在所有叶子节点中,编号都为1);随后,数据拥有者得到一个merkle根hr,并对merkle根hr计算签名其中sign表示 ecdsa的签名生成算法;
[0032]
(2)建立可计数布隆过滤器树cbft:同时,数据拥有者建立一个可计数布隆过滤器树cbft来存储外包数据块的索引(a1,a2,
···
,an);具体而言,在可计数布隆过滤器树cbft的第i层中,所有的索引按照初始顺序被平均分为2
i-1
个等份;然后,第i层中的每个节点根据顺序维护一个等份的索引;
[0033]
(3)数据上传:数据拥有者将整棵基于编号的merkle哈希树rmht和整棵可计数布隆过滤器树 cbft上传至云a,并要求云a通过存储基于编号的merkle哈希树rmht和可计数布隆过滤器树cbft 维护外包数据集d;随后,在数据上传成功后,数据拥有者删除外包数据集的本地备份。
[0034]
进一步,所述数据拥有者动态更换云服务提供商,并安全地将外包数据从云a迁移到云b的数据迁移的步骤具体包括:
[0035]
(1)迁移请求生成:首先,数据拥有者生成索引集合ψ,以标识需要迁移到云b的外包数据块;然后,数据拥有者计算签名其中消息“transfer”是请求标识符,p表示需要迁移的外包数据块的数量;进一步地,数据拥有者生成外包数据迁移请求 tr=(transfer,nf,ψ,p,sig
t
);最后,数据拥有者将外包数据迁移请求tr发送至云a,同时将数据迁移请求tr、签名sigr和merkle根hr发送至云b;
[0036]
(2)外包数据迁移:接收到数据迁移请求tr后,云a首先通过签名验证来检查数据迁移请求tr的正确性,即云a验证签名sig
t
的有效性;如果签名sig
t
是无效的,那么云a认为数据迁移请求tr是无效的,并终止操作;否则,云a将外包数据块{fi}
i∈ψ
与相应的辅助验证信息{φi}
i∈ψ
一起迁移到云b;
[0037]
(3)数据完整性验证:云b也通过验证签名sig
t
的有效性来检查数据迁移请求tr的正确性;如果数据迁移请求tr是无效的,那么说明云a在未经数据拥有者许可的情况下迁移外包数据,云b则终止操作;否则,云b验证接收到的外包数据块{fi}
i∈ψ
的完整性;具体地说,云b利用接收到的外包数据块{fi}
i∈ψ
和辅助验证信息{φi}
i∈ψ
重构基于编号的merkle哈希树,获得一个新的merkle根h’r
,并将其与merkle根 hr进行比较;同时,云b验证签名sigr是否是基于merkle根h’r
的有效签名;
[0038]
如果验证失败,那么意味着需要迁移的外包数据块已被污染,云b则拒绝存储接收到的外包数据块 {fi}
i∈ψ
,并要求云a重新执行数据迁移操作;如果验证成功,那么说明云b接收到的外包数据块{fi}
i∈ψ
是完整的,云b将它们存储在其磁盘上;同时,云b计算签名并将其作为云b对外包数据迁移结果的承诺;最后,云b
将签名sigb返回给数据拥有者,以表示外包数据块 {fi}
i∈ψ
已被成功从云a迁移到云b;
[0039]
(4)迁移结果验证:接收到签名sigb后,数据拥有者可以检查外包数据迁移结果;具体来说,数据拥有者验证签名sigb的有效性;如果签名sigb是基于请求标识符“transfer”、文件名nf、数据块索引集合ψ和数量p的级联的有效签名,那么数据拥有者相信外包数据块{fi}
i∈ψ
已被成功从云a迁移到云b。
[0040]
进一步,所述外包数据迁移成功后,数据拥有者将云a上已被迁移的外包数据块永久性删除的过程具体包括:
[0041]
(1)删除命令生成:首先,数据拥有者利用他的私钥sko计算一个签名其中消息“delete”是命令标识符;随后,数据拥有者生成一个数据删除命令dc=(delete,nf,ψ,p,sigd);最后,数据拥有者将数据删除命令dc发送给云a,以要求云a 删除已被迁移到云b的外包数据块{fi}
i∈ψ

[0042]
(2)数据删除:接收到数据删除命令dc后,云a将通过签名验证来检查数据删除命令dc的正确性和有效性;如果签名sigd是无效的,那么云a认为数据删除命令dc不正确,同时终止操作并返回失败;如果签名sigd是有效的,那么云a通过删除基于编号的merkle哈希树rmht中的叶子节点{ni}
i∈ψ
来删除外包数据块{fi}
i∈ψ
,并利用剩余的叶子节点重构基于编号的merkle哈希树;最后,云a获得一个新的merkle根hr,并对其计算签名sigr,其中签名
[0043]
与此同时,云a将外包数据块{fi}
i∈ψ
的访问索引从可计数布隆过滤器树cbft的相关节点中删除;然后,云a可以得到一个新的可计数布隆过滤器树cbft’,并对其计算签名最后,数据拥有者生成外包数据删除证据τ,其中τ=(hr,sigr,cbft’,sig’),并将其返回给数据拥有者;
[0044]
(3)删除结果检查:数据拥有者希望检查数据删除结果,以确保外包数据块{fi}
i∈ψ
已被诚实地删除;首先,数据拥有者从云a中随机取回一个外包数据块fi及其相应的辅助验证信息φi,其中随后,数据拥有者利用fi和φi重新计算merkle根h’r
,并将其与merkle根hr进行比较;同时,数据拥有者检查相关的访问索引{ai}
i∈ψ
是否包含在可计数布隆过滤器树cbft’中;最后,数据拥有者检查签名sigr和签名sig’的有效性;
[0045]
当且仅当同时满足以下四个要求时,数据拥有者才会相信云a上的外包数据块{fi}
i∈ψ
确实已经被删除:(a)等式hr=h’r
成立;(b)签名sigr是基于merkle根h’r
的正确签名;(c)签名sig’是基于可计数布隆过滤器树cbft’的有效签名;(d)可计数布隆过滤器树cbft’不包含访问索引{ai}
i∈ψ

[0046]
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述云存储中支持数据可验证删除的高效数据迁移方法的步骤。
[0047]
本发明的另一目的在于提供一种实施所述云存储中支持数据可验证删除的高效数据迁移方法的云存储中支持数据可验证删除的高效数据迁移系统,所述云存储中支持数据可验证删除的高效数据迁移系统包括:
[0048]
初始化模块,用于完成数据拥有者在系统中的注册,并生成相关参数和公私钥对;
[0049]
数据预处理模块,用于实现外包数据加密,从而防止数据拥有者的隐私信息泄露;
[0050]
数据外包模块,用于实现数据拥有者将外包数据集上传到云a,并删除相应的本地备份;
[0051]
数据迁移模块,用于为了享受更优质的数据存储服务,数据拥有者更换云服务提供商,并安全地将外包数据从云a迁移到云b;
[0052]
数据删除模块,用于实现外包数据迁移成功后,数据拥有者将云a上已被迁移的外包数据块永久性删除。
[0053]
本发明的另一目的在于提供一种所述云存储中支持数据可验证删除的高效数据迁移方法在云存储服务器数据处理中的应用。
[0054]
结合上述的所有技术方案,本发明所具备的优点及积极效果为:
[0055]
(1)本发明设计了一种新的认证数据结构——可计数布隆过滤器树(counting bloom filter tree, cbft);可计数布隆过滤器树可以看作是一种特殊的二叉树,其每个节点都维护一个长度可变的可计数布隆过滤器(counting bloom filter,cbf);可计数布隆过滤器树能够验证元素是否属于集合,且验证过程的计算开销是常数级的,极大地提高了验证效率。与此同时,可计数布隆过滤器树假阳性的概率随树的高度增加呈指数下降趋势,大大地提高了验证的准确性。
[0056]
(2)本发明利用可计数布隆过滤器树和基于编号的默克尔哈希树(rank-based merkle hash tree, rmht)提出一种云存储中支持外包数据可验证删除的高效数据迁移方案,该方案可以同时实现外包数据完整性验证、外包数据高效迁移与已被迁移外包数据的可验证删除。在所提出方案中,数据拥有者不仅能动态更换云服务提供商,在无需取回外包数据的情况下将其从原始云服务器迁移到目标云服务器,还能够在外包数据迁移成功后,将原始云服务器上已被迁移的外包数据永久性删除。同时,数据拥有者能够验证目标云服务器上被迁移外包数据的完整性,以确保外包数据在迁移过程中没有被篡改。
[0057]
(3)本发明无需依赖任何第三方,从而有效地避免了现有解决方案中因第三方单点失效而导致的服务中断、隐私泄露等问题。与此同时,通过形式化的安全性分析,证明了本发明能够满足所有预期的安全需求。最后,实现了本发明所提出方案并对其性能进行测试,实验结果表明本发明在实际应用中具有很高的实用性和普适性。
附图说明
[0058]
图1是本发明实施例提供的云存储中支持数据可验证删除的高效数据迁移方法流程图。
[0059]
图2是本发明实施例提供的云存储中支持数据可验证删除的高效数据迁移系统的结构示意图;
[0060]
图2中:1、初始化模块;2、数据预处理模块;3、数据外包模块;4、数据迁移模块;5、数据删除模块。
[0061]
图3是本发明实施例提供的基于编号的merkle哈希树示意图。
[0062]
图4是本发明实施例提供的可计数布隆过滤器示意图。
[0063]
图5是本发明实施例提供的元素插入示意图。
[0064]
图6是本发明实施例提供的元素删除示意图。
[0065]
图7是本发明实施例提供的系统框架示意图。
[0066]
图8是本发明实施例提供的可计数布隆过滤器树示意图。
[0067]
图9是本发明实施例提供的数据预处理时间开销示意图。
[0068]
图10是本发明实施例提供的数据外包计算时间开销示意图。
[0069]
图11是本发明实施例提供的数据外包通信时间开销示意图。
[0070]
图12是本发明实施例提供的数据迁移计算时间开销示意图。
[0071]
图13是本发明实施例提供的数据迁移通信时间开销示意图。
[0072]
图14是本发明实施例提供的数据删除时间开销示意图。
具体实施方式
[0073]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0074]
针对现有技术存在的问题,本发明提供了一种云存储中支持数据可验证删除的高效数据迁移方法、系统,下面结合附图对本发明作详细的描述。
[0075]
如图1所示,本发明提供的云存储中支持数据可验证删除的高效数据迁移方法包括以下步骤:
[0076]
s101:完成数据拥有者在系统中的注册,并生成相关参数和公私钥对;
[0077]
s102:实现外包数据加密,防止数据拥有者的隐私信息泄露;
[0078]
s103:数据拥有者将外包数据集上传到云a,并删除相应的本地备份;
[0079]
s104:为了享受更优质的数据存储服务,数据拥有者更换云服务提供商,并安全地将外包数据从云a 迁移到云b;
[0080]
s105:外包数据迁移成功后,数据拥有者将云a上已被迁移的外包数据块永久性删除。
[0081]
本发明提供的云存储中支持数据可验证删除的高效数据迁移方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的云存储中支持数据可验证删除的高效数据迁移方法仅仅是一个具体实施例而已。
[0082]
如图2所示,本发明提供的云存储中支持数据可验证删除的高效数据迁移系统包括:
[0083]
初始化模块1,用于完成数据拥有者在系统中的注册,并生成相关参数和公私钥对;
[0084]
数据预处理模块2,用于实现外包数据加密,从而防止数据拥有者的隐私信息泄露;
[0085]
数据外包模块3,用于实现数据拥有者将外包数据集上传到云a,并删除相应的本地备份;
[0086]
数据迁移模块4,用于为了享受更优质的数据存储服务,数据拥有者更换云服务提供商,并安全地将外包数据从云a迁移到云b;
[0087]
数据删除模块5,用于实现外包数据迁移成功后,数据拥有者将云a上已被迁移的外包数据块永久性删除。
[0088]
下面结合附图对本发明的技术方案作进一步的描述。
[0089]
随着云存储服务的广泛普及,越来越多资源受限的数据拥有者愿意将其海量数据上传到云服务器,以有效避免在本地存储海量数据的沉重开销。由于云存储市场潜力巨大,大量企业纷纷投资云存储从而提供数据存储服务,这些数据存储服务具有不同的使用价格、可靠性、安全性、访问速度等。因此,数据拥有者会动态更换云服务提供商,并进行外包数据迁移,从而享受更优质的数据存储服务。然而,当外包数据从一个诚实但好奇的云服务器迁移到另一个云服务器时,如何确保外包数据的可用性和完整性是数据拥有者主要关心的问题。为了解决这一问题,本发明设计了一种新的认证数据结构——可计数布隆过滤器树。然后,本发明提出了一个云储存中支持数据可验证删除的高效数据迁移方案,在该方案中数据拥有者能够动态地更换云服务提供商,并可以在不下载外包数据的情况下,将外包数据从一个云服务器(原始云服务器)迁移到另一个云服务器(目标云服务器)。同时,数据拥有者可以验证目标云服务器上的被迁移外包数据的完整性,并在外包数据迁移成功后将原始云服务器上已被迁移的外包数据永久性删除。此外,形式化的安全性分析表明,本发明提出的解决方案能够满足所有预期的安全需求。最后,通过原型系统实现了本发明并提供了性能分析,证明了本发明的高效性和实用性。
[0090]
1、预备知识
[0091]
1.1基于编号的merkle哈希树
[0092]
merkl哈希树(merkle hash tree,mht)是一种典型的验证数据结构,可用于验证数据的完整性与可用性。基于编号的merkl哈希树(rank-based merkle hash tree,rmht)是一种新的验证数据结构,可看作是传统merkl哈希树的变体。基于编号的merkl哈希树和merkl哈希树之间有两个主要的区别。第一个是计算节点哈希值时的输入不同:对于叶子节点,merkl哈希树中哈希函数的输入是该叶节点维护的数据块,而基于编号的merkl哈希树中哈希函数的输入是叶节点维护的数据块和该节点的编号。对于非叶子节点,merkl哈希树中哈希函数的输入是其两个孩子节点哈希值的级联,而基于编号的merkl哈希树中哈希函数的输入是其两个孩子节点的哈希值和该非叶子节点编号的级联,其中节点的编号表示该节点可以到达的叶子节点的数量。
[0093]
为了更清楚地描述基于编号的merkl哈希树,本发明给出了一个简单的示例,如图3所示, hi=h(1||di),其中i={1,2,3,4},输入1是叶子节点的编号;对于图3中基于编号的merkl哈希树叶子节点的两个父节点,ha=h(2||h1||h2)和hb=h(2||h3||h4),其中2是ha和hb的编号,因为它们均可以到达两个叶子节点。对于根节点,它可以达到4个叶子节点,因此其哈希值是hr=h(4||ha||hb)。最后,通过可证明安全的公钥签名算法对根节点的哈希值计算签名。与merkl哈希树类似,为了检查数据块是否完整,基于编号的merkl哈希树需要相应的辅助验证信息φ,可以将其视为一个集合,该集合包含从需要验证的叶子节点到根节点路径上所有节点的兄弟节点的哈希值及其对应的编号。例如,当想要验证第四个叶子节点维护的数据块d4的完整性时,辅助验证信息为φ4=((h3,1),(ha,2))。
[0094]
1.2可计数布隆过滤器
[0095]
布隆过滤器(bloom filter,bf)是一种常用的验证数据结构,它能够以较小的时间开销和空间消耗验证元素是否属于集合。具体而言,无论集合和布隆过滤器包含多少元素,布隆过滤器都能够以恒定的计算开销实现验证。但是,元素一旦插入到布隆过滤器中,就不能将其从布隆过滤器中删除。为了克服此缺陷,在布隆过滤器的基础上提出了一种新
的验证数据结构——可计数布隆过滤器(counting bloom filter,cbf)。一般来说,可计数布隆过滤器可以看作是一个具有k个安全单向哈希函数的m位数组,即 hi:{0,1}
*

{1,2,
···
,m},其中1≤i≤k。如图4所示,给出了一个可计数布隆过滤器的实例,它维护一个集合s={u,v,w}。可以发现,在可计数布隆过滤器的每个位置上,都维护一个计数器单元count,其表示该位置维护的元素的个数。
[0096]
在初始化过程中,可计数布隆过滤器中的所有位置都设置为零。为了将元素x插入到可计数布隆过滤器中,需要将k个相关的计数器增加1。注意,这k个计数器的位置将由哈希值h1(x),h2(x),
···
,hk(x)决定。具体来说,本发明给出了一个实例,该实例是在图4的基础上向集合s插入元素v,如图5所示。相反,当从可计数布隆过滤器中删除一个元素w时,k个相关的计数器将减1,如图6所示。
[0097]
2、问题声明
[0098]
2.1系统架构
[0099]
本发明旨在研究云存储中支持外包数据可验证删除的高效数据迁移技术。因此,本发明的系统架构涉及三个实体,即两个云服务器和一个数据拥有者。云服务器拥有几乎无限的存储容量和强大的计算能力。因此,云服务器可以通过按需付费的方式为数据拥有者提供高质量的数据存储服务。数据拥有者是一个资源受限的实体,不能在本地维护大规模的数据。因此,数据拥有者倾向于雇佣云存储服务以维护大规模的数据,并会动态更换云服务提供商,以享受更优质的数据存储服务。数据拥有者一旦将数据上传至云服务器,外包数据的管理权、所有权和使用权分离。为此,数据拥有者会担心外包数据在迁移过程的完整性和可用性,以及外包数据迁移成功后,原始云服务器上已被迁移外包数据的可验证删除。
[0100]
如图7所示,数据拥有者选择一个云服务器(即原始云服务器,简称云a)来维护大规模数据,并在将数据上传至云a后,删除外包数据的本地备份,从而有效地避免在本地存储和维护海量数据的沉重开销。同时,数据拥有者定期执行存储正确性检查,以验证外包数据的完整性。之后,如果希望更换云服务提供商,数据拥有者将选择一个新的云服务器(即目标云服务器,简称云b)来维护数据。同时,数据拥有者要求云a将指定的外包数据迁移到云b,并在迁移成功后,删除已被迁移的外包数据。为了保证云b上外包数据的完整性和可用性,数据拥有者对云b上的外包数据进行完整性验证;为了迫使云a诚实地删除已被迁移的外包数据,数据拥有者将检查数据删除结果,确保云a诚实地删除已被迁移的外包数据。
[0101]
在系统架构中,云a和云b属于两个不同的公司。因此,他们把对方当作竞争对手。同时,他们将独立、准确地遵循与数据拥有者商定的协议规范。因此,可以认为云b永远不会故意与云a串通,从而恶意欺骗数据拥有者。与此同时,可以假设云b不会故意中断数据迁移以恶意地诽谤云a。一方面,云b旨在向数据拥有者提供数据存储服务并从中获利。另一方面,数据拥有者已停止雇佣云a的数据存储服务,并开始使用云b的服务。因此,云b无法通过恶意中断数据迁移和诽谤云a获得经济利益。
[0102]
2.2安全挑战
[0103]
本发明将介绍本发明所需要解决的安全挑战,包括云服务器上的数据污染、迁移过程中的数据损坏和恶意的数据保留。
[0104]
云服务器上的数据污染:云服务器上的外包数据会因以下原因被污染:首先,云a会故意删除一些很少被访问的外包数据,然而数据拥有者很难检测到云a的恶意删除。其
次,云管理员的错误操作、云存储系统的软硬件故障,都可能导致外包数据丢失。最后,外部攻击者,如黑客会非法访问并恶意破坏外包数据。因此,云服务器上的数据污染是需要解决的一个安全挑战。
[0105]
迁移过程中的数据损坏:外包数据在开放信道上迁移也可能会受到污染。具体地说,云a可能仅仅发送部分外包数据以减轻通信负担,或者发送一些随机数据以欺骗数据拥有者。同时,黑客等外部攻击者会恶意修改在信道上传输的外包数据或恶意删除部分数据,从而导致外包数据在迁移过程中被破坏。
[0106]
恶意的数据保留:在外包数据迁移成功后,数据拥有者希望将云a上已被迁移的外包数据永久性删除。然而,已被迁移的外包数据可能包括一些有价值的信息,例如数据拥有者的隐私信息。因此,云a可能会违背数据拥有者的删除命令,并恶意地保留已被迁移的外包数据,从而能够从保留的外包数据备份中挖掘有价值的信息。
[0107]
2.3安全需求
[0108]
本发明所提出的方案必须满足以下三个预期的安全需求。
[0109]
数据完整性验证:数据完整性验证旨在确保云服务器诚实地维护外包数据,并保护其完整性与可用性。如果外包数据被污染,数据拥有者可以通过数据完整性验证发现外包数据已被篡改,这就意味着云服务器无法恶意污染外包数据并成功欺骗数据拥有者。
[0110]
外包数据安全迁移:外包数据安全迁移旨在保证外包数据被完整地迁移。一旦被迁移的外包数据被污染,云b能够检测到被迁移的外包数据已受到破坏,并且拒绝存储和维护接收到的外包数据。与此同时,云b将告知数据拥有者数据迁移失败。
[0111]
外包数据可验证删除:外包可验证数据删除保证云a永久删除已被迁移的外包数据。如果云a恶意地违背数据删除命令并保留数据备份,则它无法高效地计算数据删除证据,以证明其已经删除已被迁移的外包数据。
[0112]
3、本发明的结构
[0113]
3.1计数布隆过滤器树
[0114]
可计数布隆过滤器树(counting bloom filter,cbft)可以看作是一个特殊的二叉树,如图8所示。在可计数布隆过滤器树中,每个节点都维护一个长度可变的可计数布隆过滤器。同一层中每个节点维护的元素个数是相等的,即对于第i层,将集合所包含的所有元素按原来的顺序划分成2
i-1
个等份,然后该层的每个节点按照顺序维护其中的一个等份。举例来说,假设可计数布隆过滤器树维护一个给定的集合d。然后,在第一层(即level 1)的可计数布隆过滤器被命名为cbf
1,1
,它包含集合d中的所有元素。作为可计数布隆过滤器cbf
1,1
的两个孩子节点,可计数布隆过滤器cbf
2,1
和可计数布隆过滤器cbf
2,2
分别包含集合d中所有元素的一半。通过这种方法,可计数布隆过滤器树被构造成为一棵二叉树。可以发现,随着每个节点维护元素的减少,可计数布隆过滤器cbf
i,j
的长度逐渐变短。大致来说,每一层所需的存储容量和计算开销几乎是相等的。
[0115]
当要检查集合d是否包含特定元素a时,验证者首先检查可计数布隆过滤器cbf
1,1
是否包含元素a,其中cbf
1,1
是可计数布隆过滤器树的根节点;如果可计数布隆过滤器cbf
1,1
不包含元素a,则表示集合d 不包含元素a,验证者终止并返回检查结果;否则,如果可计数布隆过滤器cbf
1,1
包含元素a,验证者将进一步检查其两个孩子节点cbf
2,1
和cbf
2,2
是否包含元素a;如果两者都不包含元素a,则表示集合d不包含元素a;否则,如果其中一个节点包含
元素a,验证者将进一步检查其两个孩子节点;随后,验证者重复上述验证过程,直至到达叶子节点;当存在从叶子节点到根节点的路径,且该路径上的所有节点都包含元素a,那么表示集合d包含元素a;相反地,如果存在某一层中的所有节点都不包含元素a,那么表示集合d不包含元素a。
[0116]
3.2详细方案
[0117]
本发明将介绍一种云存储中支持外包数据可验证删除的高效数据迁移方案。总体而言,所提出的方案包括五个主要步骤。
[0118]
初始化:该步骤的目标是完成数据拥有者在系统中的注册,并生成一些相关参数和公私钥对。
[0119]
(1)系统注册:在使用云a和云b提供的数据存储服务之前,数据拥有者必须成为云a和云b的合法用户。首先,数据拥有者在云a和云b上进行用户注册;随后,云a和云b验证数据拥有者的身份;一旦身份验证成功,数据拥有者将会得到一个独一无二身份标识ido;数据拥有者成为云a和云b的合法用户,能够以按需付费的方式使用云a和云b提供的数据存储服务。
[0120]
(2)参数/公私钥对生成:首先,云a、云b和数据拥有者分别生成椭圆曲线数字签名算法(ecdsa) 的公/私钥对(pka,ska)、(pkb,skb)和(pko,sko)。随后,他们各自将自己的私钥保密,而公开自己的公钥。与此同时,数据拥有者为外包文件f选择一个文件标识nf,其中nf在存储系统中必须是独一无二的。
[0121]
数据预处理:该步骤旨在实现外包数据加密,从而防止数据拥有者的隐私信息泄露。具体而言,数据预处理的细节如下。
[0122]
(1)外包数据加密:外包数据中通常包含一些隐私信息,因此数据拥有者希望在将外包数据上传到云a之前对其进行加密。具体地说,数据拥有者首先生成数据加密密钥k=h(ido||sko||nf),其中h(
·
) 是一个安全的单向抗碰撞哈希函数。随后,数据拥有者利用密钥k加密外包文件f=enck(f),其中 enck(
·
)是选择明文攻击下不可区分(ind-cpa)安全的对称加密算法(例如aes),同时f是外包文件f 加密后所得到的密文。
[0123]
(2)数据分块:数据拥有者将密文f拆分为n’个数据块,同时将n-n’个随机数据块插入到n’个密文块中的随机位置,并将这些随机位置记录在表格tb中。然后,外包数据块可以表示为 f’=(f1,f2,
···
,fn)。此外,数据拥有者为每个数据块fi选择一个随机且唯一的索引ai,其中i=1,2
···
,n,数据块fi必须通过相应的索引ai才能被访问。因此,外包数据集可以表示为d={(fi,ai)}
i∈[1,n]

[0124]
数据外包:数据拥有者将外包数据集上传到云a,并删除相应的本地备份,从而极大地节省了本地的存储开销和计算成本。数据外包的具体过程如下。
[0125]
(1)建立基于编号的merkle哈希树rmht:首先,数据拥有者利用外包数据块f’=(f1,f2,
···
,fn) 建立一个建立基于编号的merkle哈希树rmht,它的每个叶子节点存储一个外包数据块的哈希值和编号。具体地说,叶子节点ni存储外包数据块fi的哈希值和编号(在所有叶子节点中,编号都为1)。随后,数据拥有者能够得到一个merkle根hr,并对merkle根hr计算签名其中sign表示 ecdsa的签名生成算法。
[0126]
(2)建立可计数布隆过滤器树cbft:同时,数据拥有者建立一个建立可计数布隆过滤器树cbft 来存储外包数据块的索引(a1,a2,
···
,an)。具体而言,在建立可计数布隆过
滤器树cbft的第i层中,所有的索引按照初始顺序被平均分为2
i-1
个等份。然后,第i层中的每个节点根据顺序维护一个等份的索引。例如,在第1层中,可计数布隆过滤器cbf
1,1
包含所有的索引a1,a2,
···
,an。然后,可计数布隆过滤器cbf
1,1
的两个子节点分别维护其一半的索引:左孩子(即可计数布隆过滤器cbf
2,1
)维护索引a1,a2,
···
,a
n/2
,右孩子(即可计数布隆过滤器cbf
2,2
)维护索引a
n/2 1
,a
n/2 2
,
···
,an。相当于每个节点的两个孩子节点各维护该节点索引的一半。通过重复上述构建步骤,可建立一个可计数布隆过滤器树cbft,并对其计算签名
[0127]
(3)数据上传:数据拥有者将整棵基于编号的merkle哈希树rmht和整棵可计数布隆过滤器树 cbft上传至云a,并要求云a通过存储基于编号的merkle哈希树rmht和可计数布隆过滤器树cbft 来维护外包数据集d。在数据上传成功后,数据拥有者删除外包数据集的本地备份,以大大降低本地的存储开销和计算成本。
[0128]
数据迁移:为了享受更优质的数据存储服务,数据拥有者更换云服务提供商,并安全地将外包数据从云a迁移到云b。数据迁移的详细步骤如下。
[0129]
(1)迁移请求生成:首先,数据拥有者生成索引集合ψ,以标识需要迁移到云b的外包数据块;然后,数据拥有者计算签名其中消息“transfer”是请求标识符,p表示需要迁移的外包数据块的数量;进一步地,数据拥有者生成外包数据迁移请求 tr=(transfer,nf,ψ,p,sig
t
);最后,数据拥有者将外包数据迁移请求tr发送至云a,同时将数据迁移请求tr、签名sigr和merkle根hr发送至云b;
[0130]
(2)外包数据迁移:接收到数据迁移请求tr后,云a首先通过签名验证来检查迁移请求tr的正确性,即云a验证签名sig
t
的有效性。如果签名sig
t
是无效的,那么云a认为数据迁移请求tr是无效的,并终止操作;否则,云a将外包数据块{fi}
i∈ψ
与相应的辅助验证信息{φi}
i∈ψ
一起迁移到云b。
[0131]
(3)数据完整性验证:云b也通过验证签名sig
t
的有效性来检查数据迁移请求tr的正确性。如果数据迁移请求tr是无效的,那么说明云a在未经数据拥有者许可的情况下迁移外包数据,云b则终止操作;否则,云b验证接收到的外包数据块{fi}
i∈ψ
的完整性。具体地说,云b利用接收到的外包数据块{fi}
i∈ψ
和辅助验证信息{φi}
i∈ψ
重构基于编号的merkle哈希树,获得一个新的merkle根h’r
,并将其与merkle根hr进行比较。同时,云b验证签名sigr是否是基于merkle根h’r
的有效签名。
[0132]
如果验证失败,那么意味着需要迁移的外包数据块已被污染,云b将拒绝存储接收到的外包数据块 {fi}
i∈ψ
,并要求云a重新执行数据迁移操作;如果验证成功,那么说明云b接收到的外包数据块{fi}
i∈ψ
是完整的,云b将它们存储在其磁盘上。同时,云b计算签名其中 sigb作为云b对外包数据迁移结果的承诺。最后,云b将签名sigb返回给数据拥有者,以表示外包数据块{fi}
i∈ψ
已被成功从云a迁移到云b。
[0133]
(4)迁移结果验证:接收到签名sigb后,数据拥有者可以检查外包数据迁移结果。具体来说,数据拥有者验证签名sigb的有效性。如果签名sigb是基于请求标识符“transfer”、文件名nf、数据块索引集合ψ和数量p级联的有效签名,那么数据拥有者详细外包数据块{fi}
i∈ψ
已被成功从云a迁移到云b。
[0134]
需要注意的是,云b最重要的一个目标就是为数据拥有者提供优质的数据存储服
务并从中获利。同时,注意到数据拥有者已停止使用云a的数据存储服务,并开始使用云b的提供的数据存储服务。因此,云b 不会故意破坏外包数据迁移以诽谤云a。而且,云a和云b属于两个不同的公司,它们将彼此视为竞争对手。因此,云b不会与云a串通来故意欺骗数据拥有者。因此,云b返回的外包数据迁移结果是可信的。也就是说,如果签名sigb是有效的,那么表示外包数据迁移成功。
[0135]
数据删除:外包数据迁移成功后,数据拥有者将云a上已被迁移的外包数据块永久性删除,具体过程如下。
[0136]
(1)删除命令生成:首先,数据拥有者利用他的私钥sko计算一个签名其中消息“delete”是命令标识符。随后,数据拥有者生成一个数据删除命令dc=(delete,nf,ψ,p,sigd)。最后,数据拥有者将数据删除命令dc发送给云a,以要求云a 删除已被迁移到云b的外包数据块{fi}
i∈ψ

[0137]
(2)数据删除:接收到数据删除命令dc后,云a将通过签名验证来检查数据删除命令dc的正确性和有效性。如果签名sigd是无效的,那么云a认为数据删除命令dc不正确,同时终止操作并返回失败;如果签名sigd是有效的,那么云a通过删除基于编号的merkle哈希树rmht中的叶子节点{ni}
i∈ψ
来删除外包数据块{fi}
i∈ψ
,并利用剩余的叶子节点重构基于编号的merkle哈希树。最后,云a可以获得一个新的merkle根hr,并对其计算签名sigr,其中
[0138]
与此同时,云a将外包数据块{fi}
i∈ψ
的访问索引从可计数布隆过滤器树cbft的相关节点中删除。然后,云a可以得到一个新的可计数布隆过滤器树cbft’,并对其计算签名最后,数据拥有者生成外包数据删除证据τ,其中τ=(hr,sigr,cbft’,sig’),并将其返回给数据拥有者。
[0139]
(3)删除结果检查:由于对云a缺乏信任,因此数据拥有者希望检查数据删除结果,以确保外包数据块{fi}
i∈ψ
已被诚实地删除。首先,数据拥有者从云a中随机取回一个外包数据块fi及其相应的辅助验证信息φi,其中随后,数据拥有者利用fi和φi重新计算merkle根h’r
,并将其与merkle 根hr进行比较;同时,数据拥有者检查相关的访问索引{ai}
i∈ψ
是否包含在可计数布隆过滤器树cbft’中;最后,数据拥有者检查签名sigr和签名sig’的有效性;
[0140]
当且仅当同时满足以下四个要求时,数据拥有者才会相信云a上的外包数据块{fi}
i∈ψ
确实已经被删除:(a)等式hr=h’r
成立;(b)签名sigr是基于merkle根h’r
的正确签名;(c)签名sig’是基于可计数布隆过滤器树cbft’的有效签名;(d)可计数布隆过滤器树cbft’不包含访问索引{ai}
i∈ψ

[0141]
下面结合安全性证明对本发明的技术效果作详细的描述。
[0142]
1、数据完整性验证
[0143]
数据完整性保证云a诚实地存储/迁移外包数据,且外包数据在存储/迁移过程中没有受到污染。为了确保外包数据的完整性和可用性,云b在存储接收到的外包数据之前会对其完整性进行验证。也就是说,云b首先检查签名sigr的有效性。注意到签名sigr是由数据拥有者使用私钥sko对merkle根hr生成的。本发明使用的签名方案是可证明安全且不可伪造的。因此,如果签名sigr是有效的,那么可以保证 merkle根hr是可信的。然后,云b利用接收
到的外包数据块{fi}
i∈ψ
和相应的辅助验证信息{φi}
i∈ψ
重构基于编号的merkle哈希树rmht,生成一个新的merkle根h’r
,并将其与merkle根hr进行比较。因为哈希函数满足单向性、抗碰撞性。因此,如果外包数据在迁移过程被篡改,那么任何人都无法在多项式时间内伪造新的数据块,使得等式h’r
=hr以不可忽略的概率成立。所以,如果签名sigr是有效的且等式 h’r
=hr成立,那么云b相信接收到的外包数据块{fi}
i∈ψ
是完整的。也就是说,本发明能够实现数据完整性验证。
[0144]
2、外包数据安全迁移
[0145]
外包数据安全迁移保证云a是在数据拥有者的许可下对外包数据进行迁移。为确保外包数据是在数据拥有者的许可下进行的迁移,云b首先通过签名验证来检查数据迁移请求tr的正确性。因为数据迁移请求tr包含由数据拥有者使用私钥sko生成的签名sig
t
,所以任何敌手都不能在多项式时间内成功地伪造签名sig
t
。因此,如果数据迁移请求tr是正确的,那么可以说明云a是在数据拥有者的许可下执行外包数据迁移操作。随后,为了防止外包数据在迁移过程中被污染,云b利用接收到的外包数据块{fi}
i∈ψ
和相应的辅助验证信息{φi}
i∈ψ
重构基于编号的merkle哈希树rmht,以验证接收到的外包数据块的完整性。如(1、数据完整性验证)所述,如果数据完整性验证成功,那么表示外包数据块被完整地迁移。如果仅接收到部分外包数据,或者外包数据已被破坏,那么云b将拒绝接受外包数据并要求云a重新发送它们。一旦外包数据被完整地迁移,云b将向数据拥有者返回信息以表明外包数据迁移成功。同时,云b返回签名sigb作为对数据迁移结果的承诺。由于云a与云b是竞争对手,如果数据完整性验证失败,那么云b 不会与云a串通欺骗数据拥有者。因此,云b返回的数据迁移结果是可信的。也就是说,如果签名sigb是有效的,那么数据拥有者可以相信数据迁移是成功的。
[0146]
3、外包数据可验证删除
[0147]
外包数据可验证删除能够保证云a诚实地删除已经被迁移到云b的外包数据。为了在删除部分外包数据,甚至删除整个外包文件之后,仍能顺利生成删除证件,数据拥有者将一些随机的数据块插入到外包文件中。在随后的数据删除过程中,被插入的随机数据块不会被删除,因此它们可以帮助云a生成数据删除证据。利用外包数据块及其相应的辅助验证信息φi,数据拥有者可以获得一个新的merkle根h’r
,并将其与从云a返回的merkle根hr进行比较。如果云a没有诚实地执行数据删除命令,由于数据拥有者之前可能已经删除了一些外包数据块,那么从剩余的外包数据块到merkle根的路径已经改变,而且从剩余节点到达merkle根的路径有很多。假设云a上还有m个外包数据块,那么存在个能够生成 merkle根的路径。因此,如果没有诚实执行数据删除命令,那么云a无法以不可忽略的概率猜测从剩余节点到merkle根的正确路径。所以,如果merkle根hr能够通过验证,那么可以说明云a已经诚实地删除了已被迁移到云b的外包数据块。
[0148]
同时,为了保证云a诚实地将索引{ai}
i∈ψ
从可计数布隆过滤器树cbft中删除,数据拥有者检查可计数布隆过滤器树cbft’的正确性。也就是说,数据拥有者首先验证签名sig’的有效性。因为签名sig’是由云a使用私钥ska计算的,因此如果没有私钥ska,任何人都无法成功地伪造签名sig’。因此,如果签名sig’是有效的,那么它可以保证可计数布隆过滤器树
cbft’是由云a返回的,而且没有被篡改。然后,数据拥有者检查索引{ai}
i∈ψ
是否包含在可计数布隆过滤器树cbft’中。对于所有i∈ψ,数据拥有者首先检查等式cbf’1,1
(ai)=0是否成立。如果等式cbf’1,1
(ai)=0成立,那么说明可计数布隆过滤器树 cbft’不包含索引ai;否则,如果等式cbf’1,1
(ai)=0不成立,数据拥有者将会进一步检查等式 cbf’2,1
(ai)=0和cbf’2,2
(ai)=0是否成立。依次类推,重复上述验证操作,直止到达叶子节点。总的来说,对于任意一个节点cbf’q,j
,如果等式cbf’q,j
≠0成立,那么数据拥有者将进一步检查它的两个孩子节点。如果某一层x的所有节点都满足cbf’x,j
(ai)=0,说明索引ai不包含在可计数布隆过滤器树cbft’中。否则,如果存在一个从叶子到根的路径,该路径上所有的节点都包含索引ai,那么数据拥有者能够认为索引ai包含在可计数布隆过滤器树cbft’中。
[0149]
注意到上述验证过程会因为可计数布隆过滤器的误判而得出错误的结论。也就说是当索引ai不属于可计数布隆过滤器树cbft’时,等式cbft’(ai)≠0仍然会以微小的概率(false positive)成立。对于可计数布隆过滤器而言,误判率为pf(1-e-kn/m
)k,其中m表示可计数布隆过滤器的长度,n表示可计数布隆过滤器包含的索引个数,k表示可计数布隆过滤器包含的哈希函数的数量。因此,对于可计数布隆过滤器树cbft’,验证失败的概率为p=(pf)h,其中h是可计数布隆过滤器树cbft’的高度。当 k=ln2
·
(m/n)时,pf达到最小值,即pf=(0.6185)
m/n
。在本发明中,设置h=10,k=20,m/n=29,因此验证失败的概率为p=(pf)h=(2-20
)
10
,可以发现此概率足够小以至于可以忽略不计。
[0150]
下面结合效率分析对本发明的技术效果作详细的描述。
[0151]
1、数值分析
[0152]
计算开销。为了简单起见,需要首先定义一些符号以方便后续的比较。具体来说,利用符号h、s、 v和e分别表示哈希运算、签名生成操作、签名验证操作和加密运算。同时,用符号exp表示模指数运算,用符号p表示双线性配对运算。用符号n表示外包数据块的总数量,用符号l表示被迁移的外包数据块的数量,用符号h表示可计数布隆过滤器树的高度,用符号k表示可计数布隆过滤器中哈希函数的数量。为了简便,本发明忽略一些简单的计算,例如乘法计算、加法运算。因此,理论计算开销比较如表1所示。
[0153]
表1理论计算开销对比表
[0154] 文献[30]提出方案本发明提出方案数据预处理e (2n 1)he 1h数据外包n(n 1)exp2s n(2 kh)h数据迁移2(s v) (l n)exp lp2s 3v llog2nh数据删除(l n)(s v) (l n)exp3(s v) 2l(log2n hk)h
[0155]
注:文献[30]为c.yang,x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloud storage, international journal of distributed sensor network 15(10)(2019)1

15.
[0156]
从表1中可以直观地发现,本发明只需要执行一些简单的哈希计算、签名生成操作和签名验证操作。此外,本发明不需要执行复杂的运算和协议。然而,现有方案[c.yang,x.tao,f.zhao,publicly verifiabledata transfer and deletion scheme for cloud storage,international journal of distributed sensor network 15(10) (2019)1

15]需要执行大量的模指数运算和双线性配对计算,其运算的效率远比哈希运算低。因此,
从理论计算复杂度的角度来看,可以认为本发明比现有方案方案[c.yang,x.tao,f.zhao,publicly verifiable datatransfer and deletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019) 1

15]更高效。
[0157]
通信开销:主要的通信开销包含在数据外包和数据迁移步骤。因此,分析这两个步骤所需要的通信开销。在数据外包步骤,本发明需要将基于编号的merkle哈希树和可计数布隆过滤器树上传至云a,这两棵树分别维护外包数据块f’=(f1,f2,
···
,fn)及其访问索引(a1,a2,
···
,an);然而,现有方案[c.yang,x.tao,f. zhao,publicly verifiable data transfer and deletion scheme for cloud storage,international journal of distributedsensor network 15(10)(2019)1

15]需要将外包数据块(a1,a2,
···
,an)及其哈希值上传至云a,同时数据拥有者需要从云a取回存储证据,以检查存储结果。
[0158]
在数据迁移步骤,本发明的数据拥有者需要向云a和云b发送外包数据迁移请求,并向云b发送merkle根hr和签名sigr。随后,云a将外包数据块{fi}
i∈ψ
及其辅助验证信息{φi}
i∈ψ
发送给云b。最后,云b将签名sigb返回给数据拥有者;然而,在现有方案[c.yang, x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloud storage,international journal ofdistributed sensor network 15(10)(2019)1

15]中,数据拥有者需要将外包数据迁移请求 tr=(transfer,sig
t
,tag,t
t
,ψ)发送给云a,同时将承诺值π发送给云b。之后,云a将外包数据块{fi}
i∈ψ
、相关的证据{λi}
i∈ψ
和签名sig
ts
发送给云b。最后,云b返回承诺π
s2
和签名sig
ts
给数据拥有者。
[0159]
2、实验结果
[0160]
对本发明进行仿真实现,并给出了每个步骤时间开销。具体地说,所有的仿真实验在配备unix操作系统、8gb ram和intel(r)core(tm)i7-7700 cpu、运行频率为3.60ghz的台式机上进行。同时,通过开放安全套接字层库(open secure sockets layer library,openssl)和基于配对密码库(pairing-basedcryptography library,pbc)对相关密码算法进行了仿真。此外,假设可计数布隆过滤器包含10个哈希函数,而且可计数布隆过滤器树cbft和可计数布隆过滤器树cbft’的高度都是10。
[0161]
数据预处理时间开销:在数据预处理过程,计算开销主要来自于数据加密密钥生成和数据加密。因此,计算开销与外包文件的大小密切有关。在仿真实验中,将外包文件的大小从0.5mb增加到5mb,每次增长间隔为0.5mb。为简单起见,将外包数据块总数量固定在2000,并测量执行主要运算的时间开销,如图9所示。
[0162]
从图9中可以清楚地发现,本发明和现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transferand deletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15] 的时间开销都随被加密文件大小增加呈线性增长趋势,且增长速率非常接近。然而,本发明需要的时间开销更少,因为现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloudstorage,international journal of distributed sensor network 15(10)(2019)1

15]需要计算更多的哈希值。例如,当被加密文件大小达到5mb时,本发明的时间开销为13.8毫秒,而现有方案[c.yang,x.tao,f.zhao, publicly verifiable data transfer and deletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15]的时间开销为15.2毫秒。
可以预见,相较于本发明,现有方案[c.yang,x.tao, f.zhao,publicly verifiable data transfer and deletion scheme for cloud storage,international journal ofdistributed sensor network 15(10)(2019)1

15]需要消耗更多的时间开销来处理相同大小的外包文件。因此,可以认为本发明在数据预处理步骤比现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer anddeletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15]更加高效。
[0163]
数据外包时间开销:数据外包时间开销主要包括计算时间开销和通信时间开销。因此,通过仿真实验,分别测试数据外包步骤所消耗的计算时间开销和通信时间开销。
[0164]
(1)计算时间开销:计算时间开销与外包数据块的总数有关。为了简单起见,让外包数据块总数从 100个增加到1000个,每次增长间隔为100个,并测量执行主要运算的时间开销,如图10所示。
[0165]
从图10中可以清晰地发现,本发明的计算时间开销随外包数据块总数增加呈线性增长趋势,而现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloud storage, international journal of distributed sensor network 15(10)(2019)1

15]的计算时间开销随外包数据块总数增加呈指数增长趋势。同时,尽管本发明在外包数据块总数小于700时需要更多的计算时间开销,但当外包数据块总数不断增加(外包数据块总数大于700)时,现有方案[c.yang,x.tao,f.zhao,publicly verifiabledata transfer and deletion scheme for cloud storage,international journal of distributed sensor network 15(10) (2019)1

15]需要的计算时间开销远多于本发明。例如,当外包数据块总数达到2000个时,本发明的计算时间开销约为68毫秒,而现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer and deletionscheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15]的计算时间开销约为192毫秒。
[0166]
(2)通信开销:通信时间开销与外包文件的大小、外包数据块总数有关。为简单起见,假设每个外包数据块的大小都是1kb,外包数据块总数从100个增加到1000个,每次增长间隔为100个,并测量通信时间开销,如图11所示。
[0167]
从图11中可以直观地发现本发明的通信时间开销比现有方案[c.yang,x.tao,f.zhao,publiclyverifiable data transfer and deletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15]的略多。例如,当外包数据块总数达到1000个时,本发明的通信时间开销为12.8秒,而现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloud storage, international journal of distributed sensor network 15(10)(2019)1

15]的通信时间开销为12.3秒。可以发现,本发明和现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloudstorage,international journal of distributed sensor network 15(10)(2019)1

15]的通信时间开销相差非常小。同时,对于每一个给定的外包文件,通信时间开销是一次性的。因此,虽然本发明需要略多的通信时间开销,但不会严重影响本发明的整体效率。
[0168]
在数据外包步骤,虽然本发明需要更多的通信时间开销,但现有方案[c.yang,
verifiable data transfer anddeletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15]消耗的通信时间开销较小,但本发明的计算时间开销远比现有方案[c.yang,x.tao,f.zhao,publicly verifiabledata transfer and deletion scheme for cloud storage,international journal of distributed sensor network 15(10) (2019)1

15]的小。总的来说,仍然可以认为本发明在数据迁移步骤是高效的。
[0175]
数据删除时间开销:在数据删除步骤,主要的计算时间开销与外包数据块总数、被删除外包数据块数量密切相关。因此,将被删除外包数据块的数量从10个增加到100个,并将外包数据块总数固定在1000 个。随后测量执行主要运算所消耗的时间开销,如图14所示。
[0176]
从图14可以直观地发现,本发明和现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer anddeletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15]的计算时间开销都随被删除外包数据块的数量增加而呈线性增长趋势。然而,现有方案[c.yang,x.tao,f.zhao, publicly verifiable data transfer and deletion scheme for cloud storage,international journal of distributed sensornetwork 15(10)(2019)1

15]的计算时间开销远大于本发明的,这是因为现有方案[c.yang,x.tao,f.zhao, publicly verifiable data transfer and deletion scheme for cloud storage,international journal of distributed sensornetwork 15(10)(2019)1

15]需要执行大量的模指数运算,本发明仅需要执行简单的哈希运算。此外,对于给定的一个外包数据块,数据删除操作是一次性的。因此,可以认为本发明在数据删除步骤比现有方案[c. yang,x.tao,f.zhao,publicly verifiable data transfer and deletion scheme for cloud storage,internationaljournal of distributed sensor network 15(10)(2019)1

15]更加高效。
[0177]
本发明研究云存储中支持外包数据可验证删除的高效数据迁移技术。随后设计一种新的验证数据结构——可计数布隆过滤器树。与传统的可计数布隆过滤器相比,可计数布隆过滤器树可以大大降低误判率。同时,提出了一种支持外包数据可验证删除的高效数据迁移方案。在该方案中,数据拥有者能够动态更换云服务提供商,并在无需下载外包数据的情况下将其安全地从云a迁移到云b。同时,数据拥有者可以在云b上验证被迁移外包数据的完整性。在外包数据被成功迁移后,云a执行数据拥有者的数据删除命令,使得云a上已被迁移到云b的外包数据无法被恢复。此外,云a可以生成数据删除证据,使数据拥有者相信云a上已被迁移的外包数据确实已经被永久性删除。最后,通过仿真实验实现了本发明,并对方案进行效率评估。实验结果表明,相较于现有方案[c.yang,x.tao,f.zhao,publicly verifiable data transfer anddeletion scheme for cloud storage,international journal of distributed sensor network 15(10)(2019)1

15],本发明更加高效、实用。
[0178]
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁
盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0179]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献