CN113761585A - 一种数据处理方法、装置和系统 - Google Patents

一种数据处理方法、装置和系统 Download PDF

Info

Publication number
CN113761585A
CN113761585A CN202010553962.5A CN202010553962A CN113761585A CN 113761585 A CN113761585 A CN 113761585A CN 202010553962 A CN202010553962 A CN 202010553962A CN 113761585 A CN113761585 A CN 113761585A
Authority
CN
China
Prior art keywords
data
copy
verification
storage
copies
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.)
Granted
Application number
CN202010553962.5A
Other languages
English (en)
Other versions
CN113761585B (zh
Inventor
栗鸿宇
申作军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Shangke Information Technology Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Shangke Information Technology Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Shangke Information Technology Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Shangke Information Technology Co Ltd
Priority to CN202010553962.5A priority Critical patent/CN113761585B/zh
Publication of CN113761585A publication Critical patent/CN113761585A/zh
Application granted granted Critical
Publication of CN113761585B publication Critical patent/CN113761585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据处理方法、装置和系统,涉及计算机技术领域。该方法的一具体实施方式包括:响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值;根据区块链中的数据标识和响应值对数据副本进行完整性验证;将完整性验证结果发送至数据持有端和区块链。该实施方式能够同时支持对动态数据的多数据副本的公开、无限制次数完整性验证,提高了验证结果的准确率,同时还能确定验证失败的数据副本的存储位置,降低存储成本。

Description

一种数据处理方法、装置和系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置和系统。
背景技术
随着数据存储端的发展,特别是云存储应用的出现,使得用户可以随时访问、处理和共享云端服务器中的数据,为人们的工作和生活带了极大的便利;但同时,用户存储在云中的数据可能遭到其他用户或云计算提供商的篡改或损坏,因此,云存储的安全性和隐私性愈发引起人们的关注。
数据完整性验证(Provable Data Integrity,PDI)方案被认为是解决上述问题的重要手段。该方案主要分为数据持有性证明(Provable Data Possession,PDP)和数据可恢复证明(Proof of Retrievability,POR)。其中,PDP的关注点着重于快速判断远程存储节点上所存储的文件是否遭到损坏,因此更注重检测的效率和成本。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1.现有方法提供的验证过程中依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;
2.对于云端存储中验证失败(数据副本被篡改、损坏或未按用户指示进行云端存储等)的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本。
发明内容
有鉴于此,本发明实施例提供一种数据处理方法、装置和系统,能够在验证过程中避免从数据持有端获取原始数据和相关数据标识,将数据标识存储至区块链中,避免其被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本。
为实现上述目的,根据本发明实施例的第一方面,提供了一种数据处理方法,应用于数据持有端,包括:
为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;
将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据存储端的数据副本进行完整性验证。
进一步地,数据标识指示了数据副本编号和数据副本版本号。
进一步地,在将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储的步骤之前,数据处理方法还包括:将数据副本划分为多个副本数据块,数据标识是分别为每个副本数据块设置的,数据标识还指示了副本数据块编号。
进一步地,数据处理方法还包括:向数据存储端发送数据副本动态操作请求,以使,数据存储端根据数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,操作方式包括下列方式中的一种或多种:修改、添加和删除。
进一步地,在向数据存储端发送数据副本动态操作请求的步骤之后,数据处理方法还包括:根据数据副本动态操作请求指示的操作方式,对数据标识进行对应调整,并将调整后的数据标识发送至区块链中进行存储。
进一步地,数据标识是为各数据副本中的每个副本数据块分别进行设置的,数据处理方法还包括:在数据验证端对数据副本的完整性验证结果为验证失败的情况下,接收数据验证端根据搜索算法和各数据副本对应的数据标识确定的验证失败的数据副本对应的存储位置。
根据本发明实施例的第二方面,提供了一种数据处理方法,应用于数据存储端,包括:
接收数据持有端发送的多个数据副本,对多个数据副本进行存储;
响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值,以使,数据验证端根据区块链中的数据标识和响应值对数据存储端的数据副本进行完整性验证。
进一步地,数据处理方法还包括:接收数据持有端发送数据副本动态操作请求,根据数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,操作方式包括下列方式中的一种或多种:修改、添加和删除。
根据本发明实施例的第三方面,提供了一种数据处理方法,应用于数据验证端,包括:
响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值;
根据区块链中的数据标识和响应值对数据存储端的数据副本进行完整性验证;
将完整性验证结果发送至数据持有端和区块链。
进一步地,数据标识指示了数据副本编号和数据副本版本号。
进一步地,数据标识是为各数据副本中的每个副本数据块分别进行设置的;在数据验证端对数据副本的完整性验证结果为验证失败的情况下,数据处理方法还包括:向数据存储端发起定位验证挑战,并接收数据存储端返回的定位值,根据搜索算法、各数据副本对应的数据标识和定位值确定验证失败的数据副本对应的存储位置,并将存储位置发送至数据持有端。
根据本发明实施例的第四方面,提供了一种数据处理装置,设置于数据持有端,包括:
数据副本生成模块,用于为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;
数据副本存储模块,用于将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据存储端的数据副本进行完整性验证。
根据本发明实施例的第五方面,提供了一种数据处理装置,设置于数据存储端,包括:
数据副本接收模块,用于接收数据持有端发送的多个数据副本,对多个数据副本进行存储;
响应值发送模块,用于响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值,以使,数据验证端根据区块链中的数据标识和响应值对数据存储端的数据副本进行完整性验证。
根据本发明实施例的第六方面,提供了一种数据处理装置,设置于数据验证端,包括:
验证挑战发起模块,用于响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值;
数据副本验证模块,用于根据区块链中的数据标识和响应值对数据存储端的数据副本进行完整性验证;
验证结果发送模块,用于将完整性验证结果发送至数据持有端和区块链。
根据本发明实施例的第七方面,提供了一种数据处理系统,包括:数据持有端、数据存储端、数据验证端和区块链,其中,
数据持有端,用于为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中;
数据存储端,用于接收数据持有端发送的多个数据副本,对多个数据副本进行存储;响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值;
数据验证端,用于响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值;根据区块链中的数据标识和响应值对数据存储端的数据副本进行完整性验证;将完整性验证结果发送至数据持有端和区块链;
区块链,用于接收数据持有端发送的数据标识,接收数据验证端发送的完整性验证结果。
根据本发明实施例的第八方面,提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述任一种数据处理方法。
根据本发明实施例的第九方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一种数据处理方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据存储端的数据副本进行完整性验证的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明第一实施例提供的数据处理方法的主要流程的示意图;
图2a是根据本发明第二实施例提供的数据处理方法的主要流程的示意图;
图2b是根据图2a所述方法中执行动态操作的变化示意图;
图3是根据本发明第三实施例提供的数据处理方法的主要流程的示意图;
图4是根据本发明第四实施例提供的数据处理装置的主要模块的示意图;
图5是根据本发明第五实施例提供的数据处理方法的主要流程的示意图;
图6是根据本发明第六实施例提供的数据处理方法的主要流程的示意图;
图7是根据本发明第七实施例提供的数据处理系统对应的流程示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明第一实施例提供的数据处理方法的主要流程的示意图;如图1所示,本发明实施例提供的数据处理方法应用于数据持有端,主要包括:
步骤S101,为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储。其中,数据副本是指待备份数据备份产生的副本。
根据本发明实施例,在为待备份数据生成多个数据副本的步骤之前,上述数据处理方法还包括:生成密钥。
具体地,可以采用KeyGen(一种注册机生成器,其元素是密钥对生成器)方法生成私钥x∈Zp(p是一个大素数,Zp表示大素数集合),公钥y=gx=G2。其中,
Figure BDA0002543610770000077
G1×G2→GT表示一个双线性映射,g为G2的生成元素,G表示乘法循环群。在实际应用时,用户首先通过数据持有端在大素数集合Zp中随机选择一个p作为私钥x,通过y=gx计算得到公钥y,然后产生一个随机的密钥对,并产生加密密钥和伪随机函数密钥。
进一步地,根据本发明实施例,在将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储的步骤之前,上述数据处理方法还包括:将数据副本划分为多个副本数据块,数据标识是分别为每个副本数据块设置的,数据标识还指示了副本数据块编号。副本数据块是指数据副本对应的多个子数据块,通过将全部子数据块组合可以得到完整的数据副本。
具体地,根据本发明实施例,上述为待备份数据生成多个数据副本的步骤为:通过运行CopyGen方法(指复制方法)生成n份可分层数据副本,即对于待备份数据文件F的一个数据副本表示为:
Figure BDA0002543610770000071
(m为副本数据块的数量),多个数据副本表示为
Figure BDA0002543610770000072
其中,i为数据副本索引,j为分块索引,同时使用加密算法Ek对所有副本数据块进行加密,即
Figure BDA0002543610770000073
因此每个数据副本可表示如下形式:
Figure BDA0002543610770000074
根据本发明实施例的一具体实施方式,还可以继续对副本数据块
Figure BDA0002543610770000075
进行分割为s个分片,即
Figure BDA0002543610770000076
具体地,数据持有端还生成s个随机数{u1,u2,…,us}∈G1,用于后续进行数据标识的设置,当数据持有者需要从数据存储端获取数据副本时,只需要对数据副本对应的副本数据块进行解密,然后将副本数据块对应的副本索引删除后,根据副本数据块编号将多个副本数据块进行组合,即可得到原始数据。
步骤S102,将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据存储端的数据副本进行完整性验证。
通过上述设置,数据持有端将数据副本对应的数据标识(相当于存储证明)发送至区块链中,避免了后续对存储数据端存储的数据副本进行完整性时,需要将原始数据(即上述待备份数据)发送至数据验证端,避免了原始数据被泄露的风险。同时由于区块链内存储数据的不可篡改性,避免了数据标识在数据持有端被篡改,提高了后续进行数据持有性的验证结果的准确率。
具体地,根据本发明实施例,数据标识指示了数据副本编号和数据副本版本号。
在数据标识中设置数据副本版本号,有利于对动态数据(指对数据存储端的数据副本进行动态操作的待备份数据)对应的数据副本的完整性验证。
根据本发明实施例的一具体实施方式,上述数据标识的设置步骤如下:
将上述生成的多个数据副本组成集合,表示为
Figure BDA0002543610770000081
其中
Figure BDA0002543610770000082
(这里指的是副本数据块被进一步分割为s个分片,在实际应用时可以根据实际需要选择要不要对副本数据块进行进一步分割),用户通过数据持有端运行TagGen方法(标签方法)对每个副本数据块
Figure BDA0002543610770000083
计算标签(即上述数据标识):
Figure BDA0002543610770000084
其中,BNj表示在物理位置为j的副本数据块的逻辑编号;VNj表示副本数据块对应的数据副本版本号;IDF表示数据副本编号,是副本数据的唯一标识符,包括副本数据文件名称、划分的副本数据块数量n以及随机数uk,生成方法为IDF=Filename*u1*…*us*n;上述参数范围为1≤i≤n,1≤j≤m,1≤k≤s。上述将数据副本编号IDF作为数据标识的作用是防止数据存储端使用来自其他存储文件对应的副本数据块进行作弊。
然后数据持有端将数据副本集合中所有相同块号(如副本数据块j)的副本数据块进行聚合,生成一组聚合数据标识
Figure BDA0002543610770000091
并将聚合的数据标识表示为Φ={σj}1≤j≤m。数据持有端将多个数据副本及数据标识,形式可以为<F,Φ,IDF>发送至数据存储端(远程存储端,通常为云存储系统),并将上述数据标识发送至区块链中进行存储,以便于后续进行数据副本完整性验证时使用。
优选地,根据本发明实施例的一具体实施方式,上述数据标识可以用版本映射表(Map-Version Table,MVT)表示为<No.,BN,VN>,其中,No.表示数据副本编号(一般均表示为由1到n),也可用IDF表示;BN表示副本数据块的逻辑编号(是一个计数器,用于对副本数据块进行逻辑顺序编号);VN表示数据副本版本号(表示了当前数据副本的版本,初始值为1,一旦数据副本对应的副本数据块发生动态操作则加1)。版本映射表采用哈希结构,利用键值对进行后续搜索索引。此版本映射表是一种小型的数据结构,可以存储在区块链中,用于公开验证存储节点存储的所有数据副本的完整性和一致性。需要注意的是,对于多个数据副本可以通过维护一个版本映射表来降低存储开销,但这并不作为对本发明的限定,下文会介绍每个数据副本分别对应一个版本映射表的情形。
进一步地,根据本发明实施例,上述数据处理方法还包括:向数据存储端发送数据副本动态操作请求,以使,数据存储端根据数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,操作方式包括下列方式中的一种或多种:修改、添加和删除。
根据本发明实施例的一具体实施方式,上述对于数据副本的动态操作是以副本数据块作为执行对象。数据副本动态操作请求的形式可以为<IDF,BlockOp,j,{bi *}1≤i≤nj *>,其中IDF表示数据副本编号;BlockOp是与副本数据块对应的操作指令,包括修改、添加和删除;j为欲执行更新(动态操作)的副本数据块的索引;{bi *}1≤i≤n为所有数据副本中指定副本数据块执行动态操作之后的值;σj *为更新后的聚合的数据标识。
根据本发明实施例,对于数据副本动态操作请求中指示的操作方式为删除的情形,具体执行步骤为:
对于一个待备份数据(即原始数据)的数据副本F={b1,b2,…,bm},数据持有端对应的用户希望将全部副本数据中的副本数据块bj修改为bj′,则运行以下PrepareUpdate(准备更新)方法:
在数据标识中更行版本号,使VNj′=VNj+1;生成n个不同的副本数据块
Figure BDA0002543610770000101
其中,
Figure BDA0002543610770000102
根据本发明实施例的一具体实施方式,对于副本数据块划分为s个分片的,表示为
Figure BDA0002543610770000103
然后对于每个修改后的副本数据块
Figure BDA0002543610770000104
计算新的数据标签:
Figure BDA0002543610770000105
并生成聚合标签(是指将全部块号为j的副本数据块对应的数据标识进行聚合)
Figure BDA0002543610770000106
接着,向数据存储端发送数据副本动态操作请求,形式可以为
Figure BDA0002543610770000107
以使得数据存储端接收到该动态操作请求后对其内存储的数据副本进行对应的修改。
根据本发明实施例,对于数据副本动态操作请求中指示的操作方式为添加的情形,具体地,添加包括插入(数据持有者希望在副本数据块j后插入新的副本数据块
Figure BDA0002543610770000108
最终构成
Figure BDA0002543610770000109
和追加(指数据持有者希望在数据副本对应的末尾添加一个新的副本数据块,该动态操作可以通过在最后一个副本数据块之后通过插入的方式来实现)。对于动态操作指示的为插入的情形,具体执行步骤为:
运行以下PrepareUpdate(准备更新)方法:
在数据标识(如版本映射表)中构造新的一行:
<No.,BN,VN>=<j+1,(Max{BNj}1≤j≤m)+1,1>,并插入到副本数据块j之后;生成n个待插入的副本数据块
Figure BDA0002543610770000111
其中,
Figure BDA0002543610770000112
还可以继续分割为s个分片
Figure BDA0002543610770000113
然后对于每个插入的副本数据块
Figure BDA0002543610770000114
计算新的数据标签
Figure BDA0002543610770000115
并生成聚合标签
Figure BDA0002543610770000116
接着,向数据存储端发送数据副本动态操作请求,形式可以为
Figure BDA0002543610770000117
以使得数据存储端接收到该动态操作请求后对其内存储的数据副本进行对应的插入操作。
根据本发明实施例,对于数据副本动态操作请求中指示的操作方式为删除的情形,具体执行步骤为:
对于一个待备份数据(即原始数据)的数据副本F={b1,b2,…,bm},数据持有端对应的用户希望将全部副本数据中的副本数据块bj进行删除,数据持有端向数据存储端发送<IDF,BlockOp,j,null,null>,以使得数据存储端执行相应的删除操作。根据本发明实施例的一具体实施方式,针对多个数据副本共维护一个MTV(版本映射表)的情形,对于删除操作指示,不涉及MTV的变化。根据另一具体实施方式,若想要删除多个(如h个)数据副本,则通过数据持有端向数据存储端发送<IDF,BlockOp,h,null,null>至数据存储端,以使得数据存储端执行相应的多个数据副本的删除操作。
根据本发明实施例,在向数据存储端发送数据副本动态操作请求的步骤之后,数据处理方法还包括:根据数据副本动态操作请求指示的操作方式,对数据标识进行对应调整,并将调整后的数据标识发送至区块链中进行存储。
通过上述设置,使得区块链中存储的数据标识能够进行同步更新,有利于提高验证结果的准确率。
进一步地,根据本发明实施例,数据标识是为各数据副本中的每个副本数据块分别进行设置的,数据处理方法还包括:在数据验证端对数据副本的完整性验证结果为验证失败的情况下,接收数据验证端根据搜索算法和各数据副本对应的数据标识确定的验证失败的数据副本对应的存储位置。
为了能够实现对验证失败的数据副本的定位,为每个数据副本分配设置一套数据标识(指一个数据副本对应的副本数据块的数据标识集合),而不是采用所有数据副本共用一套数据标识,通过上述设置,对于云端存储中验证失败(数据副本被篡改、损坏或未按用户指示进行云端存储等)的数据副本能够获取对应的存储位置,避免了用户后续计算对应存储位置和进行数据传输所产生的额外存储成本。
根据本发明实施例的技术方案,因为采用为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据副本进行完整性验证的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
图2a是根据本发明第二实施例提供的数据处理方法的主要流程的示意图;如图2a所示,本发明实施例提供的数据处理方法应用于数据存储端,主要包括:
步骤S201,接收数据持有端发送的多个数据副本,对多个数据副本进行存储。
根据本发明实施例,在对多个数据副本进行存储的步骤之后,上述数据处理方法还包括:根据数据副本集合和数据标签集合生成存储证明,并将存储证明发送至数据持有端。该存储证明用于保证数据存储端实际存储了n个数据副本,且全部数据副本对应的存储数据是完整的。
进一步地,根据本发明实施例,上述数据处理方法还包括:接收数据持有端发送数据副本动态操作请求,根据数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,操作方式包括下列方式中的一种或多种:修改、添加和删除。
根据本发明实施例的一具体实施方式,接收到数据持有端发送的指示进行修改操作的数据副本动态操作请求之后,数据存储端通过ExecUpdate(执行更新)方法执行以下操作:
将所有的数据副本中的副本数据块
Figure BDA0002543610770000131
修改为
Figure BDA0002543610770000132
将数据副本集合更新为:
Figure BDA0002543610770000133
接着,将数据标签σj修改为σj',并生成数据标签集合Φ'={σ1,…,σj',…,σm}。
根据本发明实施例的一具体实施方式,接收到数据持有端发送的指示进行添加操作(插入操作)的数据副本动态操作请求之后,数据存储端通过ExecUpdate(执行更新)方法执行以下操作:
将待插入的副本数据块
Figure BDA0002543610770000134
插入所有的数据副本
Figure BDA0002543610770000135
的第j个副本数据块之后,并构建新的数据副本集合
Figure BDA0002543610770000136
然后计算在副本数据块j后新插入的副本数据块对应的新数据标签
Figure BDA0002543610770000137
并聚成数据标签集合
Figure BDA0002543610770000138
进一步地,对于添加操作指示了在数据副本的末尾添加一个新的副本数据块的情形,也采用上述操作。
根据本发明实施例的一具体实施方式,接收到数据持有端发送的指示进行删除操作(此处列举的是删除h个数据副本)的数据副本动态操作请求之后,数据存储端通过ExecUpdate(执行更新)方法执行以下操作:
在所有的数据副本中,删除第n-h+1号到第n号数据副本,并输出新的数据副本集合
Figure BDA0002543610770000139
其中,h<n-1;接着重新对所有数据副本中块号相同的副本数据块对应的数据标识进行乘法聚合,生成聚合数据标识(也可称为标签)
Figure BDA0002543610770000141
并输出数据标识集合Φ'={σ1,…,σm}。
如图2b所示,假设数据持有端要对数据副本F进行动态操作,数据副本F被分为8个副本数据块,即F={bi}1≤i≤8。初始状态下,令No.j=BNj,VNj=1,1≤i≤8。图2b(a)中展示了数据标识(版本映射表,MTV)的初始状态;图2b(b)中展示了6号副本数据块修改时发生的变化;图2b(c)中展示了4号副本数据块后插入新的副本数据块后的状态变化,即在No.4后插入<5,9,1>,其中,5是新的副本数据块的物理位置序号,9是当前最大逻辑编号递增之后的结果,1是指新增的副本数据块的初始版本号;图2b(d)中展示了删除了3号副本数据块,即删除No.3,并将其后续副本数据块全部向上移动一个位置。
步骤S202,响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值,以使,数据验证端根据区块链中的数据标识和响应值对数据存储端的数据副本进行完整性验证。
具体地,根据本发明实施例,数据存储端接收到数据验证端发送的完整性验证挑战(一般地,该完整性挑战中指示了要挑战的副本数据块的数量c)后,生成随机数集合Q={(j,rj)},其中
Figure BDA0002543610770000142
表示数据验证端随机挑选的需要挑战的副本数据块;然后数据存储端运行Prove(证明)方法生成响应值,以用于证明n个数据副本已完成一致性更新并且具备数据完整性。
根据本发明实施例的一具体实施方式,上述数据存储端生成的响应值的证明形式为:P={σ,μ},其中,
Figure BDA0002543610770000143
Figure BDA0002543610770000144
相应地,采用现有的其他形式的应对挑战的响应方式也属于本发明的保护范围。
根据本发明实施例的技术方案,因为采用接收数据持有端发送的多个数据副本,对多个数据副本进行存储;响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值,以使,数据验证端根据区块链中的数据标识和响应值对数据副本进行完整性验证的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
图3是根据本发明第三实施例提供的数据处理方法的主要流程的示意图;如图3所示,本发明实施例提供的数据处理方法应用于数据验证端,主要包括:
步骤S301,响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值。
具体地,根据本发明实施例,为了验证远程存储的所有数据副本的数据完整性,数据验证端需要在每个完整性验证挑战中发送要挑战的副本数据块的数量c以及两个新生成的密钥:采用PRP函数(Pseudo Random Permutation,伪随机置换函数)对应的置换密钥k1以及PRF函数(Pseudo-random Function,伪随机函数)对应的伪随机数生成密钥k2。数据验证端和数据存储端均需要采用k1和k2来生成一对随机指数和随机值,并组成一个集合Q={(j,rj)},其中,
Figure BDA0002543610770000151
表示数据验证端随机挑选的需要挑战的副本数据块。
步骤S302,根据区块链中的数据标识和响应值对数据存储端的数据副本进行完整性验证。
具体地,根据本发明实施例,上述数据标识指示了数据副本编号和数据副本版本号。
根据本发明实施例,数据验证端接收到数据存储端发送的响应值后,执行下述验证方程实现Verify(验证)方法:
Figure BDA0002543610770000152
如果验证通过(验证成功,指全部数据副本都具备完整性和一致性),即Verify方法返回值为1;若验证失败(指至少有一个数据副本发生损坏或丢失),则返回值为0。
通过上述描述可以看出,μik的求和工作是在数据存储端进行的,即数据存储端提前计算出
Figure BDA0002543610770000161
并将
Figure BDA0002543610770000162
发送至数据验证端,证明方式如下:
Figure BDA0002543610770000163
这样设置能够大幅度减少通信开销(对于n个数据副本,减少了n倍开销),但是同样存在数据存储端欺骗数据验证端的风险。因为数据存储端可以提前计算出
Figure BDA0002543610770000164
并将其存储在本地,这样的话,远程存储节点(即数据存储端)即使没有完整地存储用户数据,其提前计算出仍然有效,并可通过数据完整性验证。
为了避免上述情形,进一步提高验证结果的准确率,根据本发明实施例,要求数据存储端发送的响应值必须包括μ={μik}1≤i≤n,1≤k≤s,然后通过数据验证端进行μik的求和工作,以提高完整性验证结果的准确率。
进一步地,根据本发明实施例,数据标识是为各数据副本中的每个副本数据块分别进行设置的;在数据验证端对数据副本的完整性验证结果为验证失败的情况下,数据处理方法还包括:向数据存储端发起定位验证挑战,并接收数据存储端返回的定位值,根据搜索算法、各数据副本对应的数据标识和定位值确定验证失败的数据副本对应的存储位置,并将存储位置发送至数据持有端。
通过上述设置,为每个数据副本分别设置一套数据标识(指一个数据副本对应的副本数据块的数据标识集合),而不是前文中采用的所有数据副本共用一套数据标识。具体处理方法为:数据持有端仍为每个副本数据块设置相应的数据标识,但不在将所以数据副本中相同副本数据块号对应的数据标识进行聚合,而是在集合中直接包含所有副本数据块的数据标识,即Φ={σij}1≤i≤n,1≤j≤m
然后在数据存储端针对数据验证端发起的完整性验证挑战后,数据存储端仍采用原有的响应方案,随机数μ={μik}1≤i≤n,1≤k≤s,但是数据标签σ的生成方法调整为
Figure BDA0002543610770000171
数据验证端接收到数据存储端发送的响应值(证明文件)P={σ,μ}之后,首先通过Verify方法中的公式对响应值P进行数据完整性验证;如果验证失败,则再向数据存储端发送定位验证挑战,接收数据存储端发送的定位值(σ={σi}1≤i≤n,其中,
Figure BDA0002543610770000172
)。此时,经过完整性验证挑战和定位验证挑战后,数据验证端就会拥有两个列表:数据标识列表σList{σi}1≤i≤n和随机数列表μList={μik}1≤i≤n,1≤k≤s,其中,μList为一个二维列表。
接下来,根据本发明实施例,数据验证端根据搜索算法、各数据副本对应的数据标识和定位值确定验证失败的数据副本对应的存储位置。
具体地,根据本发明实施例,可采用二分搜索法,识别出被损坏或丢失的数据副本的索引,从而确定被损坏或丢失的数据副本对应的存储位置。具体操作步骤如下:
每次将σList和μList平均分为两部分:σList→(σLeft:σRight)和μList→μLeft:μRight,接着讲Verify方法中的公式分别递归地应用到σLeft、σRight、μLeft和μRight中,知道定位到无法通过验证的副本数据块。其中Verify方法中的公式使用的数据标识σ是将σLeft和σRight中的数据标识通过乘法运算聚合生成的。二分搜索算法需要有4输入参数:σList、μList、start(当前工作列表的起始搜索索引)、end(当前工作列表的结束搜索索引),递归的初始输入为(σList、μList、1、n),完整性验证失败(损坏或丢失)的数据副本的索引会被存储至全局变量invalidList中。待全部损坏或丢失的数据副本的索引全部确定后,根据相应的索引能够确定其对应存储位置。
步骤S303,将完整性验证结果发送至数据持有端和区块链。
根据本发明实施例的技术方案,因为采用响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值;根据区块链中的数据标识和响应值对数据副本进行完整性验证;将完整性验证结果发送至数据持有端和区块链的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
图4是根据本发明第四实施例提供的数据处理装置的主要模块的示意图;如图4所示,本发明实施例提供的数据处理装置400设置于数据持有端,主要包括:
数据副本生成模块401,用于为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储。
根据本发明实施例,上述数据处理装置400还包括密钥生成模块,在为待备份数据生成多个数据副本的步骤之前,密钥生成模块用于生成密钥。
具体地,可以采用KeyGen(一种注册机生成器,其元素是密钥对生成器)方法生成私钥x∈Zp(p是一个大素数,Zp表示大素数集合),公钥y=gx=G2。其中,
Figure BDA0002543610770000181
G1×G2→GT表示一个双线性映射,g为G2的生成元素,G表示乘法循环群。在实际应用时,用户首先通过数据持有端在大素数集合Zp中随机选择一个p作为私钥x,通过y=gx计算得到公钥y,然后产生一个随机的密钥对,并产生加密密钥和伪随机函数密钥。
进一步地,根据本发明实施例,上述数据处理装置400还包括副本数据块划分模块,在将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储的步骤之前,副本数据块划分模块用于:将数据副本划分为多个副本数据块,数据标识是分别为每个副本数据块设置的,数据标识还指示了副本数据块编号。
具体地,根据本发明实施例,上述为待备份数据生成多个数据副本的步骤为:通过运行CopyGen方法(指复制方法)生成n份可分层数据副本,即对于待备份数据文件F的一个数据副本表示为:
Figure BDA0002543610770000191
(m为副本数据块的数量),多个数据副本表示为为
Figure BDA0002543610770000192
其中,i为数据副本索引,j为分块索引,同时使用加密算法Ek对所有副本数据块进行加密,即
Figure BDA0002543610770000193
因此每个数据副本可表示如下形式:
Figure BDA0002543610770000194
根据本发明实施例的一具体实施方式,还可以继续对副本数据块
Figure BDA0002543610770000195
进行分割为s个分片,即
Figure BDA0002543610770000196
具体地,数据持有端还生成s个随机数{u1,u2,…,us}∈G1,用于后续进行数据标识的设置,当数据持有者需要从数据存储端获取数据副本时,只需要对数据副本对应的副本数据块进行解密,然后将副本数据块对应的副本索引删除后,根据副本数据块编号将多个副本数据块进行组合,即可得到原始数据。
数据副本存储模块402,用于将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据副本进行完整性验证。
通过上述设置,数据持有端将数据副本对应的数据标识(相当于存储证明)发送至区块链中,避免了后续对存储数据端存储的数据副本进行完整性时,需要将原始数据(即上述待备份数据)发送至数据验证端,避免了原始数据被泄露的风险。同时由于区块链内存储数据的不可篡改性,避免了数据标识在数据持有端被篡改,提高了后续进行数据持有性的验证结果的准确率。
具体地,根据本发明实施例,数据标识指示了数据副本编号和数据副本版本号。
在数据标识中设置数据副本版本号,有利于对动态数据(指对数据存储端的数据副本进行动态操作的待备份数据)对应的数据副本的完整性验证。
根据本发明实施例的一具体实施方式,上述数据标识的设置步骤如下:
Figure BDA0002543610770000201
(这里指的是副本数据块被进一步分割为s个分片,在实际应用时可以根据实际需要选择要不要对副本数据块进行进一步分割),用户通过数据持有端运行TagGen方法(标签方法)对每个副本数据块
Figure BDA0002543610770000202
计算标签(即上述数据标识)
Figure BDA0002543610770000203
Figure BDA0002543610770000204
其中,BNj表示在物理位置为j的副本数据块的逻辑编号;VNj表示副本数据块对应的数据副本版本号;IDF表示数据副本编号,是副本数据的唯一标识符,包括副本数据文件名称、划分的副本数据块数量n以及随机数uk,生成方法为IDF=Filename*u1*…*us*n;上述参数范围为1≤i≤n,1≤j≤m,1≤k≤s。上述将数据副本编号IDF作为数据标识的作用是防止数据存储端使用来自其他存储文件对应的副本数据块进行作弊。
然后数据持有端将数据副本集合中所有相同块号(如副本数据块j)的副本数据块进行聚合,生成一组聚合数据标识
Figure BDA0002543610770000205
并将聚合的数据标识表示为Φ={σj}1≤j≤m。数据持有端将多个数据副本及数据标识,形式可以为〈F,Φ,IDF>发送至数据存储端(远程存储端,通常为云存储系统),并将上述数据标识发送至区块链中进行存储,以便于后续进行数据副本完整性验证时使用。
优选地,根据本发明实施例的一具体实施方式,上述数据标识可以用版本映射表(Map-Version Table,MVT)表示为<No.,BN,VN>,其中,No.表示数据副本编号(一般均表示为由1到n),也可用IDF表示;BN表示副本数据块的逻辑编号(是一个计数器,用于对副本数据块进行逻辑顺序编号);VN表示数据副本版本号(表示了当前数据副本的版本,初始值为1,一旦数据副本对应的副本数据块发生动态操作则加1)。版本映射表采用哈希结构,利用键值对进行后续搜索索引。此版本映射表是一种小型的数据结构,可以存储在区块链中,用于公开验证存储节点存储的所有数据副本的完整性和一致性。需要注意的是,对于多个数据副本可以通过维护一个版本映射表来降低存储开销,但这并不作为对本发明的限定,下文会介绍每个数据副本分别对应一个版本映射表的情形。
进一步地,根据本发明实施例,上述数据处理装置400还包括数据副本动态操作请求发送模块,用于向数据存储端发送数据副本动态操作请求,以使,数据存储端根据数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,操作方式包括下列方式中的一种或多种:修改、添加和删除。
根据本发明实施例的一具体实施方式,上述对于数据副本的动态操作是以副本数据块作为执行对象。数据副本动态操作请求的形式可以为<IDF,BlockOp,j,{bi *}1≤i≤nj *>,其中IDF表示数据副本编号;BlockOp是与副本数据块对应的操作指令,包括修改、添加和删除;j为欲执行更新(动态操作)的副本数据块的索引;{bi *}1≤i≤n为所有数据副本中指定副本数据块执行动态操作之后的值;σj *为更新后的聚合的数据标识。
根据本发明实施例,对于数据副本动态操作请求中指示的操作方式为删除的情形,具体执行步骤为:
对于一个待备份数据(即原始数据)的数据副本F={b1,b2,…,bm},数据持有端对应的用户希望将全部副本数据中的副本数据块bj修改为bj′,则运行以下PrepareUpdate(准备更新)方法:
在数据标识中更行版本号,使VNj′=VNj+1;生成n个不同的副本数据块
Figure BDA0002543610770000211
其中,
Figure BDA0002543610770000212
根据本发明实施例的一具体实施方式,对于副本数据块划分为s个分片的,表示为
Figure BDA0002543610770000213
然后对于每个修改后的副本数据块
Figure BDA0002543610770000214
计算新的数据标签:
Figure BDA0002543610770000221
并生成聚合标签:
Figure BDA0002543610770000222
接着,向数据存储端发送数据副本动态操作请求,形式可以为
Figure BDA0002543610770000223
以使得数据存储端接收到该动态操作请求后对其内存储的数据副本进行对应的修改。
根据本发明实施例,对于数据副本动态操作请求中指示的操作方式为添加的情形,具体地,添加包括插入(数据持有者希望在副本数据块j后插入新的副本数据块
Figure BDA0002543610770000224
最终构成
Figure BDA0002543610770000225
)和追加(指数据持有者希望在数据副本对应的末尾添加一个新的副本数据块,该动态操作可以通过在最后一个副本数据块之后通过插入的方式来实现)。对于动态操作指示的为插入的情形,具体执行步骤为:
运行以下PrepareUpdate(准备更新)方法:
在数据标识(如版本映射表)中构造新的一行:
<No.,BN,VN>=<j+1,(Max{BNj}1≤j≤m)+1,1>,并插入到副本数据块j之后;生成n个待插入的副本数据块
Figure BDA0002543610770000226
其中,
Figure BDA0002543610770000227
还可以继续分割为s个分片
Figure BDA0002543610770000228
然后对于每个插入的副本数据块
Figure BDA0002543610770000229
计算新的数据标签
Figure BDA00025436107700002210
并生成聚合标签
Figure BDA00025436107700002211
接着,向数据存储端发送数据副本动态操作请求,形式可以为
Figure BDA00025436107700002212
以使得数据存储端接收到该动态操作请求后对其内存储的数据副本进行对应的插入操作。
根据本发明实施例,对于数据副本动态操作请求中指示的操作方式为删除的情形,具体执行步骤为:
对于一个待备份数据(即原始数据)的数据副本F={b1,b2,…,bm},数据持有端对应的用户希望将全部副本数据中的副本数据块bj进行删除,数据持有端向数据存储端发送<IDF,BlockOp,j,null,null>,以使得数据存储端执行相应的删除操作。根据本发明实施例的一具体实施方式,针对多个数据副本共维护一个MTV(版本映射表)的情形,对于删除操作指示,不涉及MTV的变化。根据另一具体实施方式,若想要删除多个(如h个)数据副本,则通过数据持有端向数据存储端发送<IDF,BlockOp,h,null,null>至数据存储端,以使得数据存储端执行相应的多个数据副本的删除操作。
根据本发明实施例,上述数据处理装置400还包括调整模块,在向数据存储端发送数据副本动态操作请求的步骤之后,上述调整模块用于:根据数据副本动态操作请求指示的操作方式,对数据标识进行对应调整,并将调整后的数据标识发送至区块链中进行存储。
通过上述设置,使得区块链中存储的数据标识能够进行同步更新,有利于提高验证结果的准确率。
进一步地,根据本发明实施例,数据标识是为各数据副本中的每个副本数据块分别进行设置的,数据处理装置400还包括存储位置接收模块,用于在数据验证端对数据副本的完整性验证结果为验证失败的情况下,接收数据验证端根据搜索算法和各数据副本对应的数据标识确定的验证失败的数据副本对应的存储位置。
为了能够实现对验证失败的数据副本的定位,为每个数据副本分配设置一套数据标识(指一个数据副本对应的副本数据块的数据标识集合),而不是采用所有数据副本共用一套数据标识,通过上述设置,对于云端存储中验证失败(数据副本被篡改、损坏或未按用户指示进行云端存储等)的数据副本能够获取对应的存储位置,避免了用户后续计算对应存储位置和进行数据传输所产生的额外存储成本。
根据本发明实施例的技术方案,因为采用为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据副本进行完整性验证的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
图5是根据本发明第五实施例提供的数据处理方法的主要流程的示意图;如图5所示,本发明实施例提供的数据处理装置500设置于数据存储端,主要包括:
数据副本接收模块501,用于接收数据持有端发送的多个数据副本,对多个数据副本进行存储。
根据本发明实施例,上述数据处理装置500还包括存储证明发送模块,在对多个数据副本进行存储的步骤之后,上述存储证明发送模块用于:根据数据副本集合和数据标签集合生成存储证明,并将存储证明发送至数据持有端。该存储证明用于保证数据存储端实际存储了n个数据副本,且全部数据副本对应的存储数据是完整的。
进一步地,根据本发明实施例,上述数据处理装置500还包括数据副本动态操作请求接收模块,用于接收数据持有端发送数据副本动态操作请求,根据数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,操作方式包括下列方式中的一种或多种:修改、添加和删除。
根据本发明实施例的一具体实施方式,接收到数据持有端发送的指示进行修改操作的数据副本动态操作请求之后,数据存储端通过ExecUpdate(执行更新)方法执行以下操作:
将所有的数据副本中的副本数据块
Figure BDA0002543610770000241
修改为
Figure BDA0002543610770000242
将数据副本集合更新为:
Figure BDA0002543610770000243
接着,将数据标签σj修改为σj',并生成数据标签集合Φ'={σ1,…,σj',…,σm}。
根据本发明实施例的一具体实施方式,接收到数据持有端发送的指示进行添加操作(插入操作)的数据副本动态操作请求之后,数据存储端通过ExecUpdate(执行更新)方法执行以下操作:
将待插入的副本数据块
Figure BDA0002543610770000251
插入所有的数据副本
Figure BDA0002543610770000252
的第j个副本数据块之后,并构建新的数据副本集合
Figure BDA0002543610770000253
然后计算在副本数据块j后新插入的副本数据块对应的新数据标签
Figure BDA0002543610770000254
并聚成数据标签集合
Figure BDA0002543610770000255
进一步地,对于添加操作指示了在数据副本的末尾添加一个新的副本数据块的情形,也采用上述操作。
根据本发明实施例的一具体实施方式,接收到数据持有端发送的指示进行删除操作(此处列举的是删除h个数据副本)的数据副本动态操作请求之后,数据存储端通过ExecUpdate(执行更新)方法执行以下操作:
在所有的数据副本中,删除第n-h+1号到第n号数据副本,并输出新的数据副本集合
Figure BDA0002543610770000256
其中,h<n-1;接着重新对所有数据副本中块号相同的副本数据块对应的数据标识进行乘法聚合,生成聚合数据标识(也可称为标签)
Figure BDA0002543610770000257
并输出数据标识集合Φ'={σ1,…,σm}。
响应值发送模块502,用于响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值,以使,数据验证端根据区块链中的数据标识和响应值对数据副本进行完整性验证。
具体地,根据本发明实施例,数据存储端接收到数据验证端发送的完整性验证挑战(一般地,该完整性挑战中指示了要挑战的副本数据块的数量c)后,生成随机数集合Q={(j,rj)},其中{rj}=ψk2(l)1≤l≤c表示数据验证端随机挑选的需要挑战的副本数据块;然后数据存储端运行Prove(证明)方法生成响应值,以用于证明n个数据副本已完成一致性更新并且具备数据完整性。
根据本发明实施例的一具体实施方式,上述数据存储端生成的响应值的证明形式为:P={σ,μ},其中,
Figure BDA0002543610770000258
Figure BDA0002543610770000261
相应地,采用现有的其他形式的应对挑战的响应方式也属于本发明的保护范围。
根据本发明实施例的技术方案,因为采用接收数据持有端发送的多个数据副本,对多个数据副本进行存储;响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值,以使,数据验证端根据区块链中的数据标识和响应值对数据副本进行完整性验证的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
图6是根据本发明第六实施例提供的数据处理方法的主要流程的示意图;如图6所示,本发明实施例提供的数据处理装置600设置于数据验证端,主要包括:
验证挑战发起模块601,用于响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值。
具体地,根据本发明实施例,为了验证远程存储的所有数据副本的数据完整性,数据验证端需要在每个完整性验证挑战中发送要挑战的副本数据块的数量c以及两个新生成的密钥:采用PRP函数(Pseudo Random Permutation,伪随机置换函数)对应的置换密钥k1以及PRF函数(Pseudo-random Function,伪随机函数)对应的伪随机数生成密钥k2。数据验证端和数据存储端均需要采用k1和k2来生成一对随机指数和随机值,并组成一个集合Q={(j,rj)},其中,
Figure BDA0002543610770000262
{rj}=ψk2(l)1≤l≤c表示数据验证端随机挑选的需要挑战的副本数据块。
数据副本验证模块602,根据区块链中的数据标识和响应值对数据副本进行完整性验证。
具体地,根据本发明实施例,上述数据标识指示了数据副本编号和数据副本版本号。
根据本发明实施例,数据副本验证模块602接收到数据存储端发送的响应值后,还用于执行下述验证方程实现Verify(验证)方法:
Figure BDA0002543610770000271
如果验证通过(验证成功,指全部数据副本都具备完整性和一致性),即Verify方法返回值为1;若验证失败(指至少有一个数据副本发生损坏或丢失),则返回值为0。
通过上述描述可以看出,μik的求和工作是在数据存储端进行的,即数据存储端提前计算出
Figure BDA0002543610770000272
并将
Figure BDA0002543610770000273
发送至数据验证端,证明方式如下:
Figure BDA0002543610770000274
这样设置能够大幅度减少通信开销(对于n个数据副本,减少了n倍开销),但是同样存在数据存储端欺骗数据验证端的风险。因为数据存储端可以提前计算出
Figure BDA0002543610770000275
并将其存储在本地,这样的话,远程存储节点(即数据存储端)即使没有完整地存储用户数据,其提前计算出仍然有效,并可通过数据完整性验证。
为了避免上述情形,进一步提高验证结果的准确率,根据本发明实施例,要求数据存储端发送的响应值必须包括μ={μik}1≤i≤n,1≤k≤s,然后通过数据验证端进行μik的求和工作,以提高完整性验证结果的准确率。
进一步地,根据本发明实施例,数据标识是为各数据副本中的每个副本数据块分别进行设置的;上述数据处理装置600还包括定位验证挑战发送模块,在数据验证端对数据副本的完整性验证结果为验证失败的情况下,定位验证挑战发送模块用于:向数据存储端发起定位验证挑战,并接收数据存储端返回的定位值,根据搜索算法、各数据副本对应的数据标识和定位值确定验证失败的数据副本对应的存储位置,并将存储位置发送至数据持有端。
通过上述设置,为每个数据副本分别设置一套数据标识(指一个数据副本对应的副本数据块的数据标识集合),而不是前文中采用的所有数据副本共用一套数据标识。具体处理方法为:数据持有端仍为每个副本数据块设置相应的数据标识,但不在将所以数据副本中相同副本数据块号对应的数据标识进行聚合,而是在集合中直接包含所有副本数据块的数据标识,即Φ={σij}1≤i≤n,1≤j≤m
然后在数据存储端针对数据验证端发起的完整性验证挑战后,数据存储端仍采用原有的响应方案,随机数μ={μik}1≤i≤n,1≤k≤s,但是数据标签σ的生成方法调整为
Figure BDA0002543610770000281
数据验证端接收到数据存储端发送的响应值证明文件P={σ,μ}之后,首先通过Verify方法中的公式对响应值P进行数据完整性验证;如果验证失败,则再向数据存储端发送定位验证挑战,接收数据存储端发送的定位值(σ={σi}1≤i≤n,其中,
Figure BDA0002543610770000282
)。此时,经过完整性验证挑战和定位验证挑战后,数据验证端就会拥有两个列表:数据标识列表σList{σi}1≤i≤n和随机数列表μList={μik}1≤i≤n,1≤k≤s,其中,μList为一个二维列表。
接下来,根据本发明实施例,数据验证端根据搜索算法、各数据副本对应的数据标识和定位值确定验证失败的数据副本对应的存储位置。
具体地,根据本发明实施例,可采用二分搜索法,识别出被损坏或丢失的数据副本的索引,从而确定被损坏或丢失的数据副本对应的存储位置。具体操作步骤如下:
每次将σList和μList平均分为两部分:σList→(σLeft:σRight)和μList→μLeft:μRight,接着讲Verify方法中的公式分别递归地应用到σLeft、σRight、μLeft和μRight中,知道定位到无法通过验证的副本数据块。其中Verify方法中的公式使用的数据标识σ是将σLeft和σRight中的数据标识通过乘法运算聚合生成的。二分搜索算法需要有4输入参数:σList、μList、start(当前工作列表的起始搜索索引)、end(当前工作列表的结束搜索索引),递归的初始输入为(σList、μList、1、n),完整性验证失败(损坏或丢失)的数据副本的索引会被存储至全局变量invalidList中。待全部损坏或丢失的数据副本的索引全部确定后,根据相应的索引能够确定其对应存储位置。
验证结果发送模块603,用于将完整性验证结果发送至数据持有端和区块链。
根据本发明实施例的技术方案,因为采用响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值;根据区块链中的数据标识和响应值对数据副本进行完整性验证;将完整性验证结果发送至数据持有端和区块链的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
图7是根据本发明第七实施例提供的数据处理系统对应的流程示意图;如图7所示,本发明实施例提供的数据处理系统700主要包括:
数据持有端701,用于为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中。
数据存储端702,用于接收数据持有端发送的多个数据副本,对多个数据副本进行存储;响应于数据验证端发起的完整性验证挑战,向数据验证端发送响应值。
数据验证端703,用于响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收数据存储端返回的响应值;根据区块链中的数据标识和响应值对数据副本进行完整性验证;将完整性验证结果发送至数据持有端和区块链。
区块链704,用于接收数据持有端发送的数据标识,接收数据验证端发送的完整性验证结果。
根据本发明实施例,上述数据处理系统700中数据持有端701、数据存储端702、数据验证端703和区块链704之间进行交互的流程主要为:
S1,由数据持有端701生成多个数据副本,根据密钥对多个数据副本进行加密处理;
S2,由数据持有端701发送多个经过加密处理的数据副本至数据存储端702;
S3,由数据持有端701发送多个数据副本对应的数据标识至区块链704;
S4,数据存储端702接收多个数据副本并进行存储;
S5,由数据持有端701向数据验证端703发起数据副本验证请求;
S6,由数据验证端703向数据存储端702发起完整性验证挑战;
S7,数据存储端702向数据验证端发送响应值;
S8,数据验证端703从区块链704中获取数据副本对应的数据标识;
S9,数据验证端703根据响应值和数据标识进行完整性验证;
S10,数据验证端703将完整性验证结果发送至数据持有端701。
根据本发明实施例的技术方案,因为采用为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据副本进行完整性验证的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
图8示出了可以应用本发明实施例的数据处理方法或数据处理装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的数据副本、验证请求等数据进行分析等处理,并将处理结果(例如完整性验证结果、验证失败的数据副本对应的存储位置--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据处理方法一般由服务器805执行,相应地,数据处理装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括数据副本生成模块、和数据副本存储模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,数据副本生成模块还可以被描述为“用于为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据副本进行完整性验证。
根据本发明实施例的技术方案,因为采用为待备份数据生成多个数据副本,根据密钥对多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于数据持有端发起的验证请求向数据存储端发起完整性验证挑战,根据区块链中的数据标识和数据存储端返回的响应值对数据副本进行完整性验证的技术手段,所以克服了现有方法中由于依赖数据持有端提供的原始数据或相关存储证明(数据标识),易导致数据泄露,且由于存储证明易被篡改,导致验证结果准确率较低;同时对于验证失败的数据副本无法提供对应的存储位置,提高了用户后续计算对应存储位置和进行数据传输产生的额外成本的技术问题,进而实现在验证过程中避免从数据持有端获取原始数据和相关数据标识,避免数据标识被篡改的风险,提高了验证结果的准确率;同时对于验证失败的数据副本,还进一步获取其对应的存储位置,降低存储成本的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (17)

1.一种数据处理方法,应用于数据持有端,其特征在于,包括:
为待备份数据生成多个数据副本,根据密钥对所述多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;
将所述多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于所述数据持有端发起的验证请求向所述数据存储端发起完整性验证挑战,根据所述区块链中的数据标识和所述数据存储端返回的响应值对所述数据存储端的数据副本进行完整性验证。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据标识指示了数据副本编号和数据副本版本号。
3.根据权利要求1所述的数据处理方法,其特征在于,在所述将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储的步骤之前,所述数据处理方法还包括:将数据副本划分为多个副本数据块,所述数据标识是分别为每个副本数据块设置的,所述数据标识还指示了副本数据块编号。
4.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:向所述数据存储端发送数据副本动态操作请求,以使,所述数据存储端根据所述数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,所述操作方式包括下列方式中的一种或多种:修改、添加和删除。
5.根据权利要求4所述的数据处理方法,其特征在于,在所述向所述数据存储端发送数据副本动态操作请求的步骤之后,所述数据处理方法还包括:根据所述数据副本动态操作请求指示的操作方式,对所述数据标识进行对应调整,并将调整后的数据标识发送至所述区块链中进行存储。
6.根据权利要求3所述的数据处理方法,其特征在于,所述数据标识是为各数据副本中的每个副本数据块分别进行设置的,所述数据处理方法还包括:在所述数据验证端对数据副本的完整性验证结果为验证失败的情况下,接收所述数据验证端根据搜索算法和各数据副本对应的数据标识确定的验证失败的数据副本对应的存储位置。
7.一种数据处理方法,应用于数据存储端,其特征在于,包括:
接收数据持有端发送的多个数据副本,对所述多个数据副本进行存储;
响应于数据验证端发起的完整性验证挑战,向所述数据验证端发送响应值,以使,所述数据验证端根据区块链中的数据标识和所述响应值对所述数据存储端的数据副本进行完整性验证。
8.根据权利要求7所述的数据处理方法,其特征在于,所述数据处理方法还包括:接收所述数据持有端发送数据副本动态操作请求,根据所述数据副本动态操作请求指示的操作方式对多个数据副本进行相应的操作处理,其中,所述操作方式包括下列方式中的一种或多种:修改、添加和删除。
9.一种数据处理方法,应用于数据验证端,其特征在于,包括:
响应于所述数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收所述数据存储端返回的响应值;
根据所述区块链中的数据标识和所述响应值对所述数据存储端的数据副本进行完整性验证;
将完整性验证结果发送至所述数据持有端和所述区块链。
10.根据权利要求9所述的数据处理方法,其特征在于,所述数据标识指示了数据副本编号和数据副本版本号。
11.根据权利要求9所述的数据处理方法,其特征在于,所述数据标识是为各数据副本中的每个副本数据块分别进行设置的;在所述数据验证端对数据副本的完整性验证结果为验证失败的情况下,所述数据处理方法还包括:向所述数据存储端发起定位验证挑战,并接收所述数据存储端返回的定位值,根据搜索算法、各数据副本对应的数据标识和所述定位值确定验证失败的数据副本对应的存储位置,并将所述存储位置发送至所述数据持有端。
12.一种数据处理装置,设置于数据持有端,其特征在于,包括:
数据副本生成模块,用于为待备份数据生成多个数据副本,根据密钥对所述多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;
数据副本存储模块,用于将所述多个数据副本对应的数据标识存储至区块链中,以使,数据验证端响应于所述数据持有端发起的验证请求向所述数据存储端发起完整性验证挑战,根据所述区块链中的数据标识和所述数据存储端返回的响应值对所述数据存储端的数据副本进行完整性验证。
13.一种数据处理装置,设置于数据存储端,其特征在于,包括:
数据副本接收模块,用于接收数据持有端发送的多个数据副本,对所述多个数据副本进行存储;
响应值发送模块,用于响应于数据验证端发起的完整性验证挑战,向所述数据验证端发送响应值,以使,所述数据验证端根据区块链中的数据标识和所述响应值对所述数据存储端的数据副本进行完整性验证。
14.一种数据处理装置,设置于数据验证端,其特征在于,包括:
验证挑战发起模块,用于响应于所述数据持有端发起的验证请求向数据存储端发起完整性验证挑战,并接收所述数据存储端返回的响应值;
数据副本验证模块,用于根据所述区块链中的数据标识和所述响应值对所述数据存储端的数据副本进行完整性验证;
验证结果发送模块,用于将完整性验证结果发送至所述数据持有端和所述区块链。
15.一种数据处理系统,其特征在于,包括:数据持有端、数据存储端、数据验证端和区块链,其中,
所述数据持有端,用于为待备份数据生成多个数据副本,根据密钥对所述多个数据副本进行加密处理,将多个经过加密处理的数据副本发送至数据存储端进行数据副本存储;将所述多个数据副本对应的数据标识存储至区块链中;
所述数据存储端,用于接收数据持有端发送的多个数据副本,对所述多个数据副本进行存储;响应于数据验证端发起的完整性验证挑战,向所述数据验证端发送响应值;
所述数据验证端,用于响应于所述数据持有端发起的验证请求向所述数据存储端发起完整性验证挑战,并接收所述数据存储端返回的响应值;根据所述区块链中的数据标识和所述响应值对所述数据存储端的数据副本进行完整性验证;将完整性验证结果发送至所述数据持有端和所述区块链;
所述区块链,用于接收所述数据持有端发送的数据标识,接收所述数据验证端发送的完整性验证结果。
16.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6、7-8、9-11中任一所述的方法。
17.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6、7-8、9-11中任一所述的方法。
CN202010553962.5A 2020-06-17 2020-06-17 一种数据处理方法、装置和系统 Active CN113761585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010553962.5A CN113761585B (zh) 2020-06-17 2020-06-17 一种数据处理方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010553962.5A CN113761585B (zh) 2020-06-17 2020-06-17 一种数据处理方法、装置和系统

Publications (2)

Publication Number Publication Date
CN113761585A true CN113761585A (zh) 2021-12-07
CN113761585B CN113761585B (zh) 2024-06-18

Family

ID=78785471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010553962.5A Active CN113761585B (zh) 2020-06-17 2020-06-17 一种数据处理方法、装置和系统

Country Status (1)

Country Link
CN (1) CN113761585B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114362969A (zh) * 2022-03-17 2022-04-15 北京百度网讯科技有限公司 一种基于区块链的数据验证方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187537A (ja) * 2007-12-29 2009-08-20 Nec (China) Co Ltd データ保全性検証方法、装置、およびシステム
US20160078068A1 (en) * 2014-09-16 2016-03-17 Commvault Systems, Inc. Fast deduplication data verification
CN109918925A (zh) * 2019-02-19 2019-06-21 上海泉坤信息科技有限公司 数据存储方法、数据节点及存储介质
CN110020951A (zh) * 2019-04-10 2019-07-16 北京筑龙信息技术有限责任公司 一种基于区块链的交易数据验证方法、装置及存储介质
CN110351089A (zh) * 2019-05-23 2019-10-18 西安电子科技大学 一种数据签名认证方法及装置
CN110740038A (zh) * 2018-07-18 2020-01-31 北京京东尚科信息技术有限公司 区块链及其通信方法、网关、通信系统和存储介质
CN111177257A (zh) * 2019-12-13 2020-05-19 东软集团股份有限公司 一种区块链的数据存储及访问方法、装置以及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187537A (ja) * 2007-12-29 2009-08-20 Nec (China) Co Ltd データ保全性検証方法、装置、およびシステム
US20160078068A1 (en) * 2014-09-16 2016-03-17 Commvault Systems, Inc. Fast deduplication data verification
CN110740038A (zh) * 2018-07-18 2020-01-31 北京京东尚科信息技术有限公司 区块链及其通信方法、网关、通信系统和存储介质
CN109918925A (zh) * 2019-02-19 2019-06-21 上海泉坤信息科技有限公司 数据存储方法、数据节点及存储介质
CN110020951A (zh) * 2019-04-10 2019-07-16 北京筑龙信息技术有限责任公司 一种基于区块链的交易数据验证方法、装置及存储介质
CN110351089A (zh) * 2019-05-23 2019-10-18 西安电子科技大学 一种数据签名认证方法及装置
CN111177257A (zh) * 2019-12-13 2020-05-19 东软集团股份有限公司 一种区块链的数据存储及访问方法、装置以及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
史春红;赖淼麟;李珊;石秀金;徐光伟;李玮;: "云存储中动态多副本数据的完整性验证", 成都大学学报(自然科学版), no. 01, 30 March 2020 (2020-03-30) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114362969A (zh) * 2022-03-17 2022-04-15 北京百度网讯科技有限公司 一种基于区块链的数据验证方法、装置、设备及存储介质
CN114362969B (zh) * 2022-03-17 2022-06-10 北京百度网讯科技有限公司 一种基于区块链的数据验证方法、装置、设备及存储介质
US11755567B1 (en) 2022-03-17 2023-09-12 Beijing Baidu Netcom Science Technology Co., Ltd. Blockchain-based data verification method and apparatus, device, and storage medium

Also Published As

Publication number Publication date
CN113761585B (zh) 2024-06-18

Similar Documents

Publication Publication Date Title
JP6830549B2 (ja) ブロックチェーンのワールドステートマークルパトリシアトライ(world state merkle patricia trie)サブツ
US10911231B2 (en) Method for restoring public key based on SM2 signature
TWI723665B (zh) 基於恢復的公開金鑰進行認證
US10601585B1 (en) Methods and apparatus for blockchain encryption
US10790971B1 (en) Preventing misrepresentation of input data by participants in a secure multi-party computation
CN110264200B (zh) 区块链数据处理方法及装置
US8892866B2 (en) Secure cloud storage and synchronization systems and methods
CA3052348A1 (en) Parallel execution of transactions in a blockchain network
US20120159178A1 (en) Providing security services on the cloud
EP3913891A1 (en) Processing data elements stored in blockchain networks
US11075753B2 (en) System and method for cryptographic key fragments management
CN111786812A (zh) 节点管理方法、装置、计算机设备和存储介质
CN112307504B (zh) 一种安全多方计算方法、装置、电子设备及存储介质
CN114528331A (zh) 基于区块链的数据查询方法及装置、介质、设备
CN112182109A (zh) 基于区块链的分布式数据编码存储方法和电子设备
CN111339206A (zh) 一种基于区块链的数据共享方法和装置
CN113761585B (zh) 一种数据处理方法、装置和系统
CN111931204A (zh) 用于分布式系统的加密去重存储方法、终端设备
CN108768994B (zh) 数据匹配方法、装置及计算机可读存储介质
CN113342802A (zh) 区块链数据存储的方法和装置
CN114095165B (zh) 密钥更新方法、服务端设备、客户端设备及存储介质
Yoosuf et al. FogDedupe: A Fog‐Centric Deduplication Approach Using Multi‐Key Homomorphic Encryption Technique
CN111030930B (zh) 基于去中心化网络数据分片传输方法、装置、设备及介质
CN113626848A (zh) 样本数据生成方法、装置、电子设备及计算机可读介质
CN109639409B (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