CN111949602B - 一种支持完整性验证的外包数据安全迁移方法与系统 - Google Patents
一种支持完整性验证的外包数据安全迁移方法与系统 Download PDFInfo
- Publication number
- CN111949602B CN111949602B CN202010685925.XA CN202010685925A CN111949602B CN 111949602 B CN111949602 B CN 111949602B CN 202010685925 A CN202010685925 A CN 202010685925A CN 111949602 B CN111949602 B CN 111949602B
- Authority
- CN
- China
- Prior art keywords
- data
- cloud
- outsourced
- user
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013508 migration Methods 0.000 title claims abstract description 89
- 230000005012 migration Effects 0.000 title claims abstract description 89
- 238000012795 verification Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012946 outsourcing Methods 0.000 claims abstract description 66
- 230000006870 function Effects 0.000 claims abstract description 14
- 238000013500 data storage Methods 0.000 claims description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 abstract description 8
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000012550 audit Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于云计算技术领域,公开了一种支持完整性验证的外包数据安全迁移方法与系统,选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;迁移检查,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。本发明提供了一种支持完整性验证的外包数据安全迁移方法,在不依赖任何第三方审计的情况下实现私有验证和公开验证。最后,进行了安全性分析和理论计算复杂度比较,证明了该方案的安全性和高效性。
Description
技术领域
本发明属于云计算技术领域,尤其涉及一种支持完整性验证的外包数据安全迁移方法与系统。
背景技术
目前,云计算是一种新兴的、很有发展前景的计算范式,通过网络将大量分布式的计算资源、网络带宽以及存储磁盘连接起来,构建一个共享计算资源池,并为用户提供大量便捷且优质的服务,如数据共享、数据存储(即云存储)等服务。云存储是云计算提供的最具吸引力的服务之一,它以按需付费的方式为用户提供便捷的数据存储服务,使得用户可以将本地无法存储的数据外包给云服务器,从而大大减轻本地的存储开销和计算开销。因此,越来越多的用户使用云存储服务。进一步地,越来越多的企业,如微软、谷歌、亚马逊等纷纷投资云存储,并为用户提供数据存储服务。然而,不同公司提供的云存储服务在服务价格、访问速度、安全性、可靠性等方面有很大的差异。
由于不同公司云存储服务的不同特性,用户会中途更换云服务提供商,以获得最适合自己的数据存储服务。此外,用户也会因为一些不可控的因素而更换云服务提供商,如职工跳槽到另一个公司,或者病人转到另一个医院。在这些情况下,他们需要将存储在原始云服务器上的外包数据迁移到目标云服务器,这就使得外包数据迁移变得越来越普遍。根据思科的调查报告显示,预计2021年底云数据流量约占总数据流量的95%,而且不同云数据中心间的数据流量将占总云数据流量的14%。因此,如何安全、高效地实现云服务器间的外包数据迁移将会越来越受关注。
为了实现两个不同云服务器之间的外包数据迁移,一个名为Cloudsfer的应用被设计出来,该应用采用加密技术保护外包数据在迁移过程的安全性。然而,Cloudsfer不能保证不完全可信的云服务器诚实迁移外包数据,也不能保证迁移过程中外包数据的完整性。一方面,原始云服务器会恶意删除一些很少被访问的数据以节省开销,或者隐藏一些数据事故。另一方面,外包数据迁移需要占用大量的网络带宽,从而降低其他用户的访问速度。因此,原始云服务器可能只迁移部分数据,甚至将一些不相关的数据发送给目标云服务器。针对上述问题,国内外专家学者已经提出了一些解决方案。
然而,现有的方案在处理外包数据迁移问题上仍存在一些安全问题和技术挑战。首先,为了保证被迁移外包数据的完整性,现有的解决方案中包含了一些复杂的协议,如可证明数据持有(PDP)协议、矢量承诺方案等,导致计算开销和通信开销较大。其次,大多数现有的方案需要引入可信的第三方审计(TPA)来管理密钥或验证迁移结果。然而,在云计算环境中不存在完全可信的TPA。与此同时,TPA会因计算开销的增加而拒绝服务,从而导致服务中断。此外,TPA的硬件/软件故障会导致隐私信息(如密钥)泄露。因此,TPA将成为阻碍外包数据迁移系统发展的瓶颈。区块链是一个无需可信第三方的分布式系统,它为解决外包数据安全迁移提供了潜在的解决方案。目前还没有基于区块链的支持完整性验证的外包数据安全迁移方案。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有技术为了保证被迁移外包数据的完整性,解决方案中包含了一些复杂的协议,导致计算开销和通信开销较大。
(2)大多数现有的方案需要引入可信的第三方审计(TPA)管理密钥或验证迁移结果,然而在云计算环境中不存在完全可信的TPA。此外,TPA会因计算开销的增加而拒绝服务,导致服务中断。最后,TPA的硬件/软件故障会导致隐私信息泄露。
(3)目前还没有基于区块链的支持完整性验证的外包数据安全迁移方案。
解决以上问题及缺陷的难度为:外包数据在不同云服务器间迁移需要消耗原始云服务器大量的网络带宽和计算开销,从而影响其他用户的访问质量。然而在云计算环境中,云服务器不是完全可信的,出于自身利益的驱动,云服务器不会按用户要求诚实地执行外包数据迁移操作。此外,外包数据在迁移过程中可能会被破坏。因此,如何在用户无需下载数据,且不依赖任何TPA的情况下,实现外包数据的安全迁移,并验证被迁移数据的完整性,是本发明需要解决的技术难题。
解决以上问题及缺陷的意义为:实现高效、无需第三方审计的外包数据安全迁移与被迁移数据的完整性验证,用户可以动态地更换云服务提供商,以便获取更优质的数据存储服务,同时保证外包数据的完整性与可用性。此外,还可以大大降低用户端的计算与通信开销,这对于加快云存储的发展及其应用的普及具有很大的推动作用。
发明内容
针对现有技术存在的问题,本发明提供了一种支持完整性验证的外包数据安全迁移方法与系统。
本发明是这样实现的,一种支持完整性验证的外包数据安全迁移方法,所述支持完整性验证的外包数据安全迁移方法包括:
选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
迁移检查,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。
进一步,用户、云A和云B已经分别拥有ECDSA公钥/私钥对(PKX,SKX),其中X∈{U,A,B},与此同时,假设CertX代表参与者X的公钥证书,SignY(M)为利用私钥Y对消息M计算所得到的ECDSA签名,用户选择两个安全的单向抗碰撞哈希函数H1(·)、H2(·),用户为外包文件F选择一个独一无二的文件名nf。
进一步,用户在将文件上传到云服务器前对文件进行加密,用户首先计算一个数据加密密钥K=H1(SKU||nf),并使用它加密外包文件C=EncK(F),其中EncK(F)表示利用IND-CPA安全的对称加密算法Enc在数据加密密钥K的作用下对明文文件F进行加密。然后,用户将所得到的密文C划分成n个数据块C1,C2,……,Cn,并将数据集D=(nf,C1,···,Cn)外包给云A。
进一步,云A为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上,具体步骤如下:
(1)接收到用户发送而来的数据集D后,云A构建一个Merkle哈希树MHTA来维护数据集D,云A将发送给区块链的时间戳服务器,其中RA是Merkle哈希树MHTA的根节点,是云A基于根节点RA所产生的ECDSA签名,即
(2)区块链的时间戳服务器检查公钥证书CertA是否有效、验证Merkle哈希树MHTA是否正确,并验证签名是否有效,当且仅当上述验证都成功时,区块链的时间戳服务器在区块链中增加一个新的区块,该区块维护的是数据集D中所有数据块的摘要信息,并将存储证据返回给用户,其中hk是区块链中当前区块的哈希值;
(3)接收到λ后,用户随机选择一个数据块Cq并从区块链的时间戳服务器处获取对应的辅助验证信息ηq,并通过重构根节点来检查RA的正确性。同时,用户验证签名的有效性与哈希值hk的正确性;只有当所有的验证都成功时,用户才会相信数据集D被诚实地维护,并删除D的本地备份。
进一步,用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移包括:
(1)首先,用户生成一组数据块索引它表示需要迁移到云B的数据块的索引。随后,用户计算签名其中Tt是时间戳,并生成一个数据迁移命令并向云A和云B发送命令TR和公钥证书CertU;
(2)接收到TR和CertU后,云A检查签名Sigt和公钥证书CertU的有效性,并检查时间戳Tt是否过期;如果并非所有的验证都成功,云A终止并返回失败,否则云A向云B发送数据块签名和辅助验证信息
进一步,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移包括:
(1)接收到用户发送过来的TR和CertU,且接收到云A发送过来的与后,云B验证数据迁移结果。具体来说,云B首先验证TR和CertU的有效性,然后利用构造新的根节点R'A并将其与RA进行比较,同时检查签名的有效性和区块链上哈希值hk,hk+1,……,hk+m的正确性,其中hk+m是区块链上最新公布的哈希值。当且仅当上述验证都通过时,即TR、CertU、都是有效的,且等式R'A=RA成立,且hk,hk+1,……,hk+m都是正确的,云B才认为数据块是完好无损的;
(2)云B维护接收到的数据块并计算签名随后,云B将迁移证据τ=(SigB,CertB)返回给用户;用户通过验证SigB和CertB的有效性来检查迁移结果;只有两个验证都成功时,用户才相信数据块已被成功从云A迁移到云B。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
迁移检查,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
迁移检查,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。
本发明的另一目的在于提供一种运行所述支持完整性验证的外包数据安全迁移方法的支持完整性验证的外包数据安全迁移系统,所述支持完整性验证的外包数据安全迁移系统包括:
初始化模块,用于选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
数据外包模块,用于在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
数据存储模块,用于为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
数据迁移模块,用于用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
迁移检查模块,用于检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。
本发明的另一目的在于提供一种云存储系统,所述云存储系统安装有所述的支持完整性验证的外包数据安全迁移系统。
结合上述的所述技术方案,本发明所具备的优点及积极效果为:随着云计算技术的快速发展,越来越多的公司大力投资云存储的研发,为用户提供优质的数据存储服务。然而,不同的公司提供的云存储服务在存储容量、访问速度、安全性、使用价格和可靠性等方面有很大的差别。为了享受最合适的数据存储服务,用户会中途更换云服务提供商,并需要将外包数据从一个云服务器迁移到另一个云服务器。进一步地,如何安全地将外包数据从一个不完全可信的云服务器迁移到另一个云服务器成为用户主要关心的问题。为了解决这个问题,基于区块链技术,本发明设计了一个支持完整性验证的外包数据安全迁移方法,用户可以在不下载外包数据的前提下,将外包数据从原始云服务器迁移到目标云服务器,并在目标云服务器上检查被迁移数据块的完整性,保证外包数据块被完整地迁移到目标云服务器。此外,通过利用区块链的去中心化性质,该方法可以在不需要任何第三方审计的情况下同时实现迁移结果的私有验证和公开验证。最后,通过安全性分析和理论效率评估分别验证了所提出方案的安全性和实用性。
本发明可以同时实现外包数据的安全迁移和被迁移数据的完整性验证。具体来说,用户无需下载外包数据块即可将其从原始云服务器迁移到目标云服务器,并可以在目标云服务器上检查被迁移数据块的完整性,保证外包数据块被完整地迁移。如果原始云服务器没有诚实地迁移外包数据块,或者外包数据块在迁移过程中受到破坏,那么用户和目标云服务器能够以压倒性的概率发现这些恶意行为,并可以在不需要任何可信第三方的情况下同时实现迁移结果的私有验证和公开验证;同时,通过理论计算复杂性分析可以发现本发明所提出的方案不包含任何复杂的计算和协议,在效率上有很大的提升。此外,通过安全性分析验证了该方案的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的支持完整性验证的外包数据安全迁移方法流程图。
图2是本发明实施例提供的支持完整性验证的外包数据安全迁移系统的结构示意图;
图2中:1、初始化模块;2、数据外包模块;3、数据存储模块;4、数据迁移模块;5、迁移检查模块。
图3是本发明实施例提供的区块链结构示意图。
图4是本发明实施例提供的系统模型示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种支持完整性验证的外包数据安全迁移方法与系统,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的支持完整性验证的外包数据安全迁移方法包括以下步骤:
S101:选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
S102:在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
S103:为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
S104:用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
S105:迁移检查,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。
本发明提供的支持完整性验证的外包数据安全迁移方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的支持完整性验证的外包数据安全迁移方法仅仅是一个具体实施例而已。
如图2所示,本发明提供的支持完整性验证的外包数据安全迁移系统包括:
初始化模块1,用于选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
数据外包模块2,用于在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
数据存储模块3,用于为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
数据迁移模块4,用于用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
迁移检查模块5,用于检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。
下面结合附图对本发明的技术方案作进一步的描述。
1、预备知识
区块链网络是一个去中心化的分布式系统,它由Nakamoto在2008年首次提出。区块链网络由分布式数据存储、点对点网络通信、现代密码学等技术组成。一般来说,区块链网络可以分为三类:公有链、私有链和混合链,但是这三类区块链的结构是相同的。区块链网络有许多块组成,如图3所示,每个区块使用一个Merkle哈希树(MHT)来维护大量的数据项,比如交易账单。然后,计算一个哈希链,将每个区块中的根节点连接起来。在哈希链中,计算哈希值时的输入是前一个区块的哈希值、时间戳和当前区块的Merkle哈希树的根节点。也就是说,当哈希链长度增加时,将之前的哈希值送入哈希函数以计算新的哈希值,这就使得当前区块的哈希值和之前的所有区块的哈希值关联起来,从而使得攻击者无法恶意篡改哈希链。
2、问题阐述
首先形描述本发明的系统模型;然后,描述主要的安全威胁;最后,确定所提出方案应该达到的设计目标。
2.1系统模型
在系统模型中,有两个云服务器和一个用户,如图4所示。用户将其个人数据外包给云服务器A(简称云A),从而极大的降低了本地的存储开销。之后,用户可以将外包数据迁移到其他云服务器,并检查数据迁移结果。在该模型中,假设云A是原始云服务器,它根据用户的要求将部分数据块,甚至整个外包文件迁移到另一个云服务器B(简称云B)上。假设云B是目标云服务器,它接收从云A迁移过来的数据块。同时,云B检查接收到的数据块的完整性。然后,云将数据迁移结果告知用户。
注意,由于存在竞争关系,因此可以假设云A和云B不会恶意串通欺骗用户。这意味着,云A和云B都将独立地遵循协议。否则,可以将它们视为一个云服务器,这样外包数据迁移就毫无意义。此外,云B在数据迁移过程中是经济合理的。也就是说,云B试图成功完成数据迁移,而不是恶意破坏数据迁移以诋毁云A。这个假设是合理的,因为云B的目标是为用户提供数据存储服务并从中获益。
2.2安全威胁
在该方案中,应该考虑以下安全威胁。首先,外包文件通常包含一些敏感信息,需要将其保密。然而,攻击者会试图访问该文件并挖掘其中的隐私。因此,外包数据机密性是应该考虑的一个安全挑战。其次,云A可能会删除一些很少被访问的外包数据。此外,外包数据在迁移过程中可能会被破坏。因此,外包数据的完整性是用户关心的问题之一。最后,外包数据迁移会消耗大量的网络带宽,从而会影响其他用户的访问速度,这对于云A来说是不希望看到的。因此,云A可能不会诚实地迁移外包数据。
2.3设计目标
在本发明所提出的方案中,应该达到以下设计目标:
(1)外包数据机密性,即保护外包数据中的隐私信息不被泄露。没有相应的数据解密密钥,任何人都无法从密文中获得任何明文信息。
(2)外包数据完整性,即保护外包数据不被破坏。如果云A没有诚实的迁移数据块,或者被迁移的数据块在迁移过程中受到破坏,用户和云B能够以压倒性的概率发现数据块被破坏。
(3)公开可验证性,即实现迁移结果的公开验证。如果给定迁移证据,任何验证者都可以验证外包数据迁移的结果,而不需要任何关于用户和云服务器的私有信息,同时也不依赖于TPA。
3、详细方案
在这一部分中,详细介绍本发明所提出的方案。用户在享受云存储服务之前必须通过云服务器的身份验证。为了简单起见,假设用户已经通过身份验证且已经成为云A和云B的合法客户。本发明所提出的方案包括如下步骤:
初始化。首先,假设用户、云A和云B已经分别拥有ECDSA公/私钥对(PKX,SKX),其中X∈{U,A,B}。与此同时,假设CertX代表参与者X的公钥证书,SignY(M)为利用私钥Y对消息M计算所得到的ECDSA签名。然后,用户选择两个安全的单向抗碰撞哈希函数H1(·)、H2(·)。此外,用户为外包文件F选择一个独一无二的文件名nf。
数据外包。外包文件中通常包含一些敏感信息,因此,用户在将文件上传到云服务器前需要对文件进行加密,以保护其中的敏感信息。具体来说,用户首先计算一个数据加密密钥K=H1(SKU||nf),并使用它加密外包文件C=EncK(F),其中EncK(F)表示利用IND-CPA安全的对称加密算法Enc在数据加密密钥K的作用下对明文文件F进行加密。随后,将所得到的密文C划分成n个数据块C1,C2,……,Cn,并将数据集D=(nf,C1,···,Cn)外包给云A。
数据存储。云A为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上,具体步骤如下。
(1)接收到用户发送而来的数据集D后,云A构建一个Merkle哈希树MHTA来维护数据集D。然后,云A将发送给区块链的时间戳服务器,其中RA是Merkle哈希树MHTA的根节点,是云A基于根节点RA所产生的ECDSA签名,即
(2)区块链的时间戳服务器检查公钥证书CertA是否有效、验证Merkle哈希树MHTA是否正确,并验证签名是否有效,当且仅当上述验证都成功时,区块链的时间戳服务器在区块链中增加一个新的区块,该区块维护的是数据集D中所有数据块的摘要信息,并将存储证据返回给用户,其中hk是区块链中当前区块的哈希值。
(3)接收到λ后,用户随机选择一个数据块Cq并从区块链的时间戳服务器处获取对应的辅助验证信息ηq,并通过重构根节点来检查RA的正确性。然后,用户验证签名的有效性与哈希值hk的正确性。只有当所有的验证都成功时,用户才会相信数据集D被诚实地维护,并删除D的本地备份。
数据迁移。为了获得更合适的数据存储服务,或者基于一些不可控的因素,用户会更换云服务提供商,并将一些数据块,甚至整个外包文件从云A迁移到云B。
(1)首先,用户生成一组数据块索引它表示需要迁移到云B的数据块的索引。然后,用户计算签名其中Tt是时间戳。随后,用户生成一个数据迁移命令然后向云A和云B发送命令TR和公钥证书CertU。
(2)接收到TR和CertU后,云A检查签名Sigt和公钥证书CertU的有效性,并检查时间戳Tt是否过期。如果并非所有的验证都成功,云A终止并返回失败。否则云A向云B发送数据块签名和辅助验证信息
迁移检查。云B可以检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。具体过程如下:
(1)接收到用户发送过来的TR和CertU,且接收到云A发送过来的与后,云B验证数据迁移结果。具体来说,云B首先验证TR和CertU的有效性,然后利用构造新的根节点R'A并将其与RA进行比较,同时检查签名的有效性和区块链上哈希值hk,hk+1,……,hk+m的正确性,其中hk+m是区块链上最新公布的哈希值。当且仅当上述验证都通过时,即TR、CertU、都是有效的,且等式R'A=RA成立,且hk,hk+1,……,hk+m都是正确的,云B才认为数据块是完好无损的。
(2)云B维护接收到的数据块并计算签名随后,云B将迁移证据τ=(SigB,CertB)返回给用户。因此,用户可以通过验证SigB和CertB的有效性来检查迁移结果。只有两个验证都成功时,用户才相信数据块已被成功从云A迁移到云B。
4、方案分析
4.1、安全性分析
引理1:假设(K,E,D)是一个IND-CPA安全的对称加密方案,f是一个伪随机函数,其中K={0,1}m,E:K×K→y,Kf={0,1}n。那么,则有(K',E')是IND-CPA安全的,其中,
证明:(K',E')是IND-CPA安全的,即意味着是对于任意的x,y和概率多项式时间(TTP)的攻击者A,总是存在一个多项式p(n)和整数n,如果N<n,则有
接下来,首先定义一些Game。
(1)所提出的方案可以保证外包数据机密性
证明:外包数据机密性可以保证只有用户才能够正确地解密密文。即使敌手与云服务器恶意勾结,他们也无法从外包的密文中获取任何明文信息。在所提出的方案中,在上传外包文件前,用户利用安全的对称加密算法对外包文件进行加密。根据引理1,可以发现所选择的安全对称加密算法保证了外包文件的安全性,所以在没有数据解密密钥的情况下,被加密的数据可以达到IND-CPA安全。因此,所提出的方案可以确保只有用户才能够正确解密密文。也就是说,所提出的方案能够保证外包数据保密性。
(2)所提出的方案可以保证被迁移数据的完整性
证明:数据完整性意味着被迁移的数据块不能被破坏。否则,云B可以检测到数据被恶意篡改。在所提出的方案中,云A迁移数据块签名和辅助验证信息到云B。云B利用计算一个新的根节点R'A,并将其与RA进行比较。如果等式R'A=RA不成立,那么云B认为数据块已经被破坏;否则,云B检查签名的有效性,和区块链上哈希值hk,hk+1,……,hk+m的正确性。当且仅当上述验证都通过时,即等式R'A=RA成立、签名有效且哈希值hk,hk+1,……,hk+m均正确,那么云B认为数据块是完整的。区块链具有去中心化、持续性、匿名性和可验证性等特点,一旦某个区块被添加到区块链网络中,任何人都不能篡改它。因此,如果被迁移的数据块被篡改,则被迁移的数据块不能通过验证。也就是说,如果云A没有诚实地迁移数据块,或者数据块在迁移过程中被恶意破坏,那么云B能够以压倒性的概率检测出数据块的恶意篡改。因此,所提出的方案可以保证被迁移数据块的完整性。
4.2、计算复杂性比较
分析所提出方案和现有方案[22]的理论计算复杂性。为了简单起见,忽略了乘法运算和通信开销。[22]Yang C.,Wang J.,Tao X.,Chen X.:Publicly verifiable datatransfer and deletion scheme for cloud storage.In:Naccache D.et al.(eds)ICICS2018.LNCS,vol 11149,pp.445–458.Springer,Cham(2018)。
首先,介绍一些将在比较中使用的符号。使用符号E和Exp分别表示数据加密操作和模指数运算。此外,利用S表示签名生成运算,V表示签名验证运算,H表示哈希运算,P表示双线性对运算,n表示外包数据块的数量,l表示被迁移的外包数据块数量,hk+m表示区块链上最新公布的哈希值,则比较结果如下表1所示。
表1、理论计算复杂度比较
从表1中可以得到以下三个结果。首先,在外包文件加密过程,所提出方案的计算开销随着明文的大小增加而递增,而方案[22]的计算开销则随着明文的大小和外包数据块的数量增加而增加。其次,在数据存储和迁移检查过程中,除了签名生成和签名验证操作外,方案[22]包含了一些复杂的计算,如模指数计算和双线性对运算。第三,在数据迁移方面,两种方案的开销差异较小。因此,就总体方案效率而言,所提出的方案比方案[22]更高效。
本发明研究了外包数据在两个不同云服务器之间的安全迁移问题,这是云计算中一个非常具有挑战性的问题。为了解决这个问题,设计了一个支持完整性验证的外包数据安全迁移方案。在所提出的方案中,用户可以在无需下载外包数据的情况下,将外包数据块从原始云迁移到目标云。同时,目标云可以检查接收到的数据块的完整性。此外,通过利用区块链,本发明所提出的方案在不依赖任何TPA的情况下实现私有验证和公开验证。最后,进行了安全性分析和理论计算复杂度比较,证明了该方案的安全性和高效性。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种支持完整性验证的外包数据安全迁移方法,其特征在于,所述支持完整性验证的外包数据安全迁移方法包括:
选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
迁移检查,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移;
用户、云A、云B已分别拥有ECDSA公/私钥对(PKX,SKX),其中X∈{U,A,B},与此同时,假设CertX代表参与者X的公钥证书,SignY(M)为利用私Y对消息M计算所得到的ECDSA签名,用户选择两个安全的单向抗碰撞哈希函数H1(·)、H2(·),并为外包文件F选择一个独一无二的文件名nf;
云A为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上,具体步骤如下:
(1)接收到用户发送而来的数据集D后,云A构建一个Merkle哈希树MHTA来维护数据集D,云A将发送给区块链的时间戳服务器,其中RA是Merkle哈希树MHTA的根节点,是云A基于根节点RA所产生的ECDSA签名,即
(2)区块链的时间戳服务器检查公钥证书CertA是否有效、验证Merkle哈希树MHTA是否正确,并验证签名是否有效,当且仅当上述验证都成功时,区块链的时间戳服务器在区块链中增加一个新的区块,该区块维护的是数据集D中所有数据块的摘要信息,并将存储证据返回给用户,其中hk是区块链中当前区块的哈希值;
(3)接收到λ后,用户随机选择一个数据块Cq并从区块链的时间戳服务器处获取对应的辅助验证信息ηq,并通过重构根节点来检查RA的正确性;同时,用户验证签名的有效性与哈希值hk的正确性;只有当所有的验证都成功时,用户才会相信数据集D被诚实地维护,并删除D的本地备份。
2.如权利要求1所述的支持完整性验证的外包数据安全迁移方法,其特征在于,用户在将文件上传到云服务器前对文件进行加密,用户首先计算一个数据加密密钥K=H1(SKU||nf),并使用它加密外包文件C=EncK(F),其中EncK(F)表示利用IND-CPA安全的对称加密算法Enc在数据加密密钥K的作用下对明文文件F进行加密,将所得到的密文C划分成n个数据块C1,C2,……,Cn,并将数据集D=(nf,C1,···,Cn)外包给云A。
3.如权利要求1所述的支持完整性验证的外包数据安全迁移方法,其特征在于,用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移包括:
(1)首先,用户生成一组数据块索引它表示需要迁移到云B的数据块的索引,用户计算签名其中Tt是时间戳;随后,用户生成一个外包数据迁移命令并向云A和云B发送命令TR和公钥证书CertU;
(2)接收到TR和CertU后,云A检查签名Sigt和公钥证书CertU的有效性,并检查时间戳Tt是否过期;如果并非所有的验证都成功,云A终止并返回失败,否则云A向云B发送数据块签名和辅助验证信息
4.如权利要求1所述的支持完整性验证的外包数据安全迁移方法,其特征在于,检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移包括:
(1)接收到用户发送过来的TR和CertU,且接收到云A发送过来的与后,云B验证外包数据迁移结果,具体来说,云B首先验证TR和CertU的有效性,然后利用构造新的根节点R'A并将其与RA进行比较,同时检查签名的有效性和区块链上哈希值hk,hk+1,……,hk+m的正确性,其中hk+m是区块链上最新公布的哈希值,当且仅当上述验证都通过时,即TR、CertU、都是有效的,且等式R'A=RA成立,且hk,hk+1,……,hk+m都是正确的,云B才认为数据块是完好无损的;
(2)云B维护接收到的数据块并计算签名随后,云B将迁移证据τ=(SigB,CertB)返回给用户;用户通过验证SigB和CertB的有效性来检查迁移结果;只有两个验证都成功时,用户才相信数据块已被成功从云A迁移到云B。
5.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1~4任意一项所述支持完整性验证的外包数据安全迁移方法的步骤。
6.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1~4任意一项所述支持完整性验证的外包数据安全迁移方法的步骤。
7.一种运行权利要求1~4任意一项所述支持完整性验证的外包数据安全迁移方法的支持完整性验证的外包数据安全迁移系统,其特征在于,所述支持完整性验证的外包数据安全迁移系统包括:
初始化模块,用于选择两个安全的单向抗碰撞哈希函数,为外包文件选择一个独一无二的文件名;
数据外包模块,用于在将文件上传到云服务器前对文件进行加密,将所得到的密文划分成数据块,并将数据集外包;
数据存储模块,用于为用户维护外包数据集,并将外包数据块的摘要信息存储在区块链上;
数据迁移模块,用于用户更换云服务提供商,并将一些数据块甚至整个外包文件迁移;
迁移检查模块,用于检查接收到的被迁移数据块的完整性,保证外包数据块被完整地迁移。
8.一种云存储系统,其特征在于,所述云存储系统安装有权利要求7所述的支持完整性验证的外包数据安全迁移系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010685925.XA CN111949602B (zh) | 2020-07-16 | 2020-07-16 | 一种支持完整性验证的外包数据安全迁移方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010685925.XA CN111949602B (zh) | 2020-07-16 | 2020-07-16 | 一种支持完整性验证的外包数据安全迁移方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949602A CN111949602A (zh) | 2020-11-17 |
CN111949602B true CN111949602B (zh) | 2024-08-06 |
Family
ID=73341742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010685925.XA Active CN111949602B (zh) | 2020-07-16 | 2020-07-16 | 一种支持完整性验证的外包数据安全迁移方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949602B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113014540B (zh) * | 2020-11-24 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112783973A (zh) * | 2020-12-31 | 2021-05-11 | 中国人民银行数字货币研究所 | 确定数据完整性的方法、相关装置和数据完整性保护系统 |
CN112732695B (zh) * | 2021-01-21 | 2022-02-18 | 广东工业大学 | 一种基于区块链的云存储数据安全去重方法 |
CN113312574A (zh) * | 2021-05-21 | 2021-08-27 | 太原科技大学 | 一种基于区块链的云数据完整性审计方法 |
CN113556232A (zh) * | 2021-06-30 | 2021-10-26 | 东风汽车集团股份有限公司 | 用于车云通信及文件传输的验签方法 |
CN113285812A (zh) * | 2021-07-26 | 2021-08-20 | 西南石油大学 | 基于sgx和以太坊区块链的云存储自审计方法 |
CN114153382B (zh) * | 2021-11-04 | 2023-09-26 | 桂林电子科技大学 | 云存储中支持数据可验证删除的高效数据迁移方法、系统 |
CN115226093A (zh) * | 2022-06-28 | 2022-10-21 | 山东新一代信息产业技术研究院有限公司 | 一种机器人ota升级包完整性验证方法及系统 |
CN116776386B (zh) * | 2023-07-05 | 2023-11-17 | 深圳钰丰信息技术有限公司 | 一种云服务数据信息安全管理方法及系统 |
CN116582547B (zh) * | 2023-07-14 | 2023-10-20 | 浪潮通信信息系统有限公司 | 算力网络数据传输方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377225A (zh) * | 2019-05-23 | 2019-10-25 | 杨展鹏 | 一种支持外包数据安全转移与可验证删除的方法 |
CN111355705A (zh) * | 2020-02-08 | 2020-06-30 | 西安电子科技大学 | 一种基于区块链的数据审计与安全去重云存储系统、方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101438432B1 (ko) * | 2013-02-21 | 2014-09-12 | 고려대학교 산학협력단 | 스토리지 서비스 이용에 따른 사용자 부인방지 및 데이터 무결성 검증 방법 |
CN106936566B (zh) * | 2017-03-09 | 2020-03-31 | 江苏省南京市南京公证处 | 一种基于区块链技术的可外包的文书签署方法 |
-
2020
- 2020-07-16 CN CN202010685925.XA patent/CN111949602B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377225A (zh) * | 2019-05-23 | 2019-10-25 | 杨展鹏 | 一种支持外包数据安全转移与可验证删除的方法 |
CN111355705A (zh) * | 2020-02-08 | 2020-06-30 | 西安电子科技大学 | 一种基于区块链的数据审计与安全去重云存储系统、方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111949602A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949602B (zh) | 一种支持完整性验证的外包数据安全迁移方法与系统 | |
Bera et al. | Designing blockchain-based access control protocol in IoT-enabled smart-grid system | |
CN109716375B (zh) | 区块链账户的处理方法、装置和存储介质 | |
CN109829326B (zh) | 基于区块链的跨域认证与公平审计去重云存储系统 | |
Allende et al. | Quantum-resistance in blockchain networks | |
CN105873031B (zh) | 基于可信平台的分布式无人机密钥协商方法 | |
Chikouche et al. | A privacy-preserving code-based authentication protocol for Internet of Things | |
CN111327419B (zh) | 基于秘密共享的抗量子计算区块链的方法及系统 | |
Kumar et al. | TPA auditing to enhance the privacy and security in cloud systems | |
CN113259123A (zh) | 一种区块链数据写入、访问方法及装置 | |
CN101789939B (zh) | 一种有效的可信OpenSSH的实现方法 | |
Abo‐alian et al. | Integrity as a service for replicated data on the cloud | |
CN111737708B (zh) | 一种支持外包数据高效更新的可验证删除方法及系统 | |
CN101834852B (zh) | 一种保护平台信息的可信OpenSSH的实现方法 | |
Yang et al. | Data integrity checking supporting reliable data migration in cloud storage | |
CN111245611A (zh) | 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统 | |
CN114153382B (zh) | 云存储中支持数据可验证删除的高效数据迁移方法、系统 | |
CN113422681B (zh) | 一种基于量子密码的区块链数字签名方法、装置及系统 | |
CN115834149A (zh) | 一种基于国密算法的数控系统安全防护方法及装置 | |
JP5513255B2 (ja) | 代理署名システム、方法 | |
Chen et al. | A New Identity Authentication and Key Agreement Protocol Based on Multi-Layer Blockchain in Edge Computing | |
Yang et al. | New Publicly Verifiable Data Deletion Supporting Efficient Tracking for Cloud Storage. | |
Lyu et al. | JRS: A joint regulating scheme for secretly shared content based on blockchain | |
Lo et al. | Distributed Symmetric Key Exchange: A scalable, quantum-proof key distribution system | |
CN118300902B (zh) | 身份认证方法及装置、计算机程序产品、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |