CN112311548A - 数据持有性验证方法、系统、装置及计算机可读存储介质 - Google Patents
数据持有性验证方法、系统、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112311548A CN112311548A CN202010220307.8A CN202010220307A CN112311548A CN 112311548 A CN112311548 A CN 112311548A CN 202010220307 A CN202010220307 A CN 202010220307A CN 112311548 A CN112311548 A CN 112311548A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- copy
- target
- random
- 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
Links
- 238000012795 verification Methods 0.000 title claims abstract description 93
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000003860 storage Methods 0.000 title claims abstract description 40
- 230000002776 aggregation Effects 0.000 claims abstract description 93
- 238000004220 aggregation Methods 0.000 claims abstract description 93
- 238000013500 data storage Methods 0.000 claims abstract description 74
- 238000013467 fragmentation Methods 0.000 claims description 28
- 238000006062 fragmentation reaction Methods 0.000 claims description 28
- 239000012634 fragment Substances 0.000 claims description 19
- 230000037431 insertion Effects 0.000 claims description 14
- 238000003780 insertion Methods 0.000 claims description 14
- 230000004048 modification Effects 0.000 claims description 14
- 238000012986 modification Methods 0.000 claims description 14
- 230000037430 deletion Effects 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000013496 data integrity verification Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 235000006629 Prosopis spicigera Nutrition 0.000 description 1
- 240000000037 Prosopis spicigera Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据持有性验证方法、系统、装置及计算机可读存储介质,涉及信息技术领域。其中的数据持有性验证方法包括:数据拥有者及数据存储者为目标文件的不同副本分别生成副本默克尔树;数据拥有者生成副本聚集默克尔树;数据拥有者通过随机数据块标识向数据存储者发起挑战;数据存储者根据随机数据块标识,确定各个副本默克尔树的认证路径,并将认证路径发送至数据拥有者;数据拥有者利用随机数据块标识在不同副本中对应的数据块以及副本聚集默克尔树的根节点,对认证路径进行验证,并在认证路径验证失败的情况下,确定数据存储者未完整存储目标文件的不同副本。本公开能够更加高效的验证出数据存储者未完整存储目标文件的不同副本。
Description
技术领域
本公开涉及信息技术领域,特别涉及一种数据持有性验证方法、 系统装置及计算机可读存储介质。
背景技术
在云存储应用中,用户需要检测存储在云中的数据是否完整。 PDI(ProvableData Integrity,数据完整性验证)是解决此类问题的 重要手段。数据完整性验证机制依据是否可取回存储的原始数据,被 分为PDP(Provable Data Possession,数据持有性证明)方案和POR (Proof of Retrievability,数据可恢复证明)方案。PDP的关注点着 重于快速判断远程存储节点(也称为数据存储者)上所存储的文件是 否遭到损坏,因此更注重检测的效率和成本;POR不仅可以检测文 件是否被损坏,还能恢复文件被损坏的部分,因此更注重如何让远程 存储节点拥有数据恢复的能力。
发明内容
本公开解决的一个技术问题是,如何简单高效的验证出数据存储 者未完整存储目标文件的不同副本。
根据本公开实施例的一个方面,提供了一种数据持有性验证方法, 包括:数据拥有者及数据存储者为目标文件的不同副本分别生成副本 默克尔树,每个副本默克尔树的叶子节点为所对应副本的各个数据块 散列的有序集合;数据拥有者生成副本聚集默克尔树,副本聚集默克 尔树的叶子节点为各个副本默克尔树的根节点的有序集合;数据拥有者通过随机数据块标识向数据存储者发起挑战;数据存储者根据随机 数据块标识,确定各个副本默克尔树的认证路径,并将认证路径发送 至数据拥有者;数据拥有者利用随机数据块标识在不同副本中对应的 数据块以及副本聚集默克尔树的根节点,对认证路径进行验证,并在 认证路径验证失败的情况下,确定数据存储者未完整存储目标文件的 不同副本。
在一些实施例中,还包括:数据拥有者在认证路径验证成功的情 况下,利用私钥为不同副本中的各个数据块分别生成数据块标签,并 利用各个数据块标签分别生成各个数据块标识对应的数据块聚合标 签;数据拥有者将数据块聚合标签发送至数据存储者;数据存储者根 据随机数据块标识及数据块聚合标签,生成待验证信息,并将待验证 信息发送至数据拥有者;数据拥有者利用公钥对待验证信息进行验证; 数据拥有者在验证失败的情况下,确定数据存储者未完整存储目标文 件的不同副本;在验证成功的情况下,确定数据存储者完整存储目标 文件的不同副本。
在一些实施例中,待验证信息包括:待验证标签信息、待验证数 据分片信息以及待验证数据块信息;根据随机数据块标识及数据块聚 合标签,生成待验证信息包括:根据随机数据块标识对应的数据块聚 合标签,生成待验证标签信息;根据随机数据块标识对应的不同副本 中的各个数据块中包含的各个数据分片,生成待验证数据分片信息; 根据随机数据块标识在不同副本中对应的数据块,生成待验证数据块 信息。
在一些实施例中,还包括:数据拥有者将随机数据块标识对应的 随机数发送至数据存储者;根据随机数据块标识对应的数据块聚合标 签,生成待验证标签信息包括:根据随机数据块标识对应的数据块聚 合标签和随机数,生成待验证标签信息;根据随机数据块标识对应的 不同副本中的各个数据块中包含的各个数据分片,生成待验证数据分 片信息包括:根据随机数据块标识对应的不同副本中的各个数据块中 包含的各个数据分片和随机数,生成待验证数据分片信息。
在一些实施例中,数据拥有者利用公钥对待验证信息进行验证包 括:验证与是否相等;其中,表 示双线性映射G1×G2→GT,G1和G2表示GDH群,GT表示阶为素数p 的乘法循环群;i为副本标识,n为副本总数;j为随机数据块标识, rj为与随机数据块标识j对应的随机数;Q为随机数据块标识与随机 数构成的集合,H表示BLS签名算法,为目标文件的第i个副本 的第j个数据块;k为数据分片标识,s为数据分片总数;uk为与分 片标识k对应的随机数,g为G2的生成元,y为公钥,为目标文件的第i个副本的第j个数据块的 第k个数据分片,Zp表示整数群;x为私钥,x∈Zp,y=gx∈G2;
在一些实施例中,还包括:将标注了文件标识符的目标文件的不 同副本发送至数据存储者;通过随机数据块标识向数据存储者发起挑 战包括:通过文件标识符和随机数据块标识,向数据存储者发起挑战; 根据随机数据块标识,确定各个副本默克尔树的认证路径包括:根据 文件标识符确定目标文件,根据随机数据块标识确定目标文件的各个 副本默克尔树的认证路径;利用随机数据块标识在不同副本中对应的 数据块以及副本聚集默克尔树的根节点,对认证路径进行验证包括: 根据文件标识符确定不同副本;利用随机数据块标识在不同副本中对 应的数据块、副本聚集默克尔树的根节点以及文件标识符,对认证路 径进行验证。
在一些实施例中,还包括:数据拥有者将文件标识符、数据块操 作类型、目标数据块的数据块标识、目标数据块的更新值、目标数据 块的数据块标识对应的数据块聚集标签的更新值发送至数据存储者; 数据存储者根据文件标识符、数据块操作类型、目标数据块的数据块 标识、目标数据块的更新值,对目标文件的不同副本进行更新;数据 存储者对各个副本默克尔树进行更新;数据存储者根据目标数据块的 数据块标识,确定各个副本默克尔树更新后的认证路径,并将更新后 的认证路径发送至数据拥有者;数据存储者根据目标数据块的数据块 标识对应的数据块聚集标签的更新值,对目标数据块的数据块标识对 应的数据块聚集标签进行更新;数据拥有者根据更新后的认证路径以 及目标数据块的更新值,对副本聚集默克尔树的根节点进行更新。
在一些实施例中,数据块操作类型为数据块修改;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块修改为更新值;对各个副本默克尔树进行更新包括:在各 个副本默克尔树中,用更新值的散列替代目标数据块的散列,作为各 个副本默克尔树的叶子节点,以重新生成各个副本默克尔树。
在一些实施例中,数据块操作类型为数据块插入;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块之后插入更新值;对各个副本默克尔树进行更新包括:在 各个副本默克尔树中,用目标数据块及更新值的散列替代目标数据块 的散列,并将目标数据块的更新值的散列以及目标数据块的散列作为 各个副本默克尔树的叶子节点,以重新生成各个副本默克尔树。
在一些实施例中,数据块操作类型为数据块删除;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块删除;对各个副本默克尔树进行更新包括:在各个副本默 克尔树中,删除目标数据块的散列所在的叶子节点,并用目标数据块 的散列的兄弟叶子节点代替父节点,以重新生成各个副本默克尔树。
根据本公开实施例的另一个方面,提供了一种数据持有性验证系 统,包括数据拥有者和数据存储者;其中,数据拥有者及数据存储者 被配置为:为目标文件的不同副本分别生成副本默克尔树,每个副本 默克尔树的叶子节点为所对应副本的各个数据块散列的有序集合;数 据拥有者还被配置为:生成副本聚集默克尔树,副本聚集默克尔树的 叶子节点为各个副本默克尔树的根节点的有序集合;数据拥有者通过 随机数据块标识向数据存储者发起挑战;数据存储者还被配置为:根 据随机数据块标识,确定各个副本默克尔树的认证路径,并将认证路 径发送至数据拥有者;数据拥有者进一步被配置为:利用随机数据块 标识在不同副本中对应的数据块以及副本聚集默克尔树的根节点,对 认证路径进行验证,并在认证路径验证失败的情况下,确定数据存储 者未完整存储目标文件的不同副本。
在一些实施例中,数据拥有者还被配置为:在认证路径验证成 功的情况下,利用私钥为不同副本中的各个数据块分别生成数据块标 签,并利用各个数据块标签分别生成各个数据块标识对应的数据块聚 合标签;将数据块聚合标签发送至数据存储者;数据存储者还被配置 为:根据随机数据块标识及数据块聚合标签,生成待验证信息,并将 待验证信息发送至数据拥有者;数据拥有者还被配置为:利用公钥对 待验证信息进行验证;在验证失败的情况下,确定数据存储者未完整 存储目标文件的不同副本;在验证成功的情况下,确定数据存储者完 整存储目标文件的不同副本。
在一些实施例中,待验证信息包括:待验证标签信息、待验证数 据分片信息以及待验证数据块信息;根据随机数据块标识及数据块聚 合标签,生成待验证信息包括:根据随机数据块标识对应的数据块聚 合标签,生成待验证标签信息;根据随机数据块标识对应的不同副本 中的各个数据块中包含的各个数据分片,生成待验证数据分片信息; 根据随机数据块标识在不同副本中对应的数据块,生成待验证数据块 信息。
在一些实施例中,数据拥有者还被配置为:将随机数据块标识对 应的随机数发送至数据存储者;根据随机数据块标识对应的数据块聚 合标签,生成待验证标签信息包括:根据随机数据块标识对应的数据 块聚合标签和随机数,生成待验证标签信息;根据随机数据块标识对 应的不同副本中的各个数据块中包含的各个数据分片,生成待验证数 据分片信息包括:根据随机数据块标识对应的不同副本中的各个数据 块中包含的各个数据分片和随机数,生成待验证数据分片信息。
在一些实施例中,数据拥有者利用公钥对待验证信息进行验证包 括:
验证与是否相等;其中,表 示双线性映射G1×G2→GT,G1和G2表示GDH群,GT表示阶为素数p 的乘法循环群;i为副本标识,n为副本总数;j为随机数据块标识, rj为与随机数据块标识j对应的随机数;Q为随机数据块标识与随机 数构成的集合,H表示BLS签名算法,为目标文件的第i个副本 的第j个数据块;k为数据分片标识,s为数据分片总数;uk为与分 片标识k对应的随机数,g为G2的生成元,y为公钥, 为目标文件的第i个副本的第j个数据块 的第k个数据分片,Zp表示整数群;x为私钥,x∈Zp,y=gx∈G2;
在一些实施例中,数据拥有者还被配置为:将标注了文件标识符 的目标文件的不同副本发送至数据存储者;通过随机数据块标识向数 据存储者发起挑战包括:通过文件标识符和随机数据块标识,向数据 存储者发起挑战;根据随机数据块标识,确定各个副本默克尔树的认 证路径包括:根据文件标识符确定目标文件,根据随机数据块标识确 定目标文件的各个副本默克尔树的认证路径;利用随机数据块标识在 不同副本中对应的数据块以及副本聚集默克尔树的根节点,对认证路 径进行验证包括:根据文件标识符确定不同副本;利用随机数据块标 识在不同副本中对应的数据块、副本聚集默克尔树的根节点以及文件 标识符,对认证路径进行验证。
在一些实施例中,数据拥有者还被配置为:将文件标识符、数据 块操作类型、目标数据块的数据块标识、目标数据块的更新值、目标 数据块的数据块标识对应的数据块聚集标签的更新值发送至数据存 储者;数据存储者还被配置为:根据文件标识符、数据块操作类型、 目标数据块的数据块标识、目标数据块的更新值,对目标文件的不同 副本进行更新;对各个副本默克尔树进行更新;根据目标数据块的数 据块标识,确定各个副本默克尔树更新后的认证路径,并将更新后的 认证路径发送至数据拥有者;数据存储者还被配置为:根据目标数据 块的数据块标识对应的数据块聚集标签的更新值,对目标数据块的数据块标识对应的数据块聚集标签进行更新;根据更新后的认证路径以 及目标数据块的更新值,对副本聚集默克尔树的根节点进行更新。
在一些实施例中,数据块操作类型为数据块修改;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块修改为更新值;对各个副本默克尔树进行更新包括:在各 个副本默克尔树中,用更新值的散列替代目标数据块的散列,作为各 个副本默克尔树的叶子节点,以重新生成各个副本默克尔树。
在一些实施例中,数据块操作类型为数据块插入;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块之后插入更新值;对各个副本默克尔树进行更新包括:在 各个副本默克尔树中,用目标数据块及更新值的散列替代目标数据块 的散列,并将目标数据块的更新值的散列以及目标数据块的散列作为 各个副本默克尔树的叶子节点,以重新生成各个副本默克尔树。
在一些实施例中,数据块操作类型为数据块删除;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块删除;对各个副本默克尔树进行更新包括:在各个副本默 克尔树中,删除目标数据块的散列所在的叶子节点,并用目标数据块 的散列的兄弟叶子节点代替父节点,以重新生成各个副本默克尔树。
根据本公开实施例的又一个方面,提供了一种数据持有性验证装 置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基 于存储在存储器中的指令,执行前述的数据持有性验证方法。
根据本公开实施例的再一个方面,提供了一种计算机可读存储介 质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执 行时实现前述的数据持有性验证方法。
本公开能够更加高效的验证出数据存储者未完整存储目标文件的 不同副本。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的 其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而 易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这 些附图获得其他的附图。
图1示出了本公开数据持有性验证方法的应用场景的示意图。
图2示出了本公开一些实施例的数据持有性验证方法的流程示意 图。
图3示出了副本聚集默克尔树的结构示意图。
图4示出了本公开另一些实施例的数据持有性验证方法的流程示 意图。
图5示出了本公开又一些实施例的数据持有性验证方法的流程示 意图。
图6示出了对存储在数据存储者中的目标文件的不同副本进行动 态操作的流程示意图。
图7示出了进行数据块修改时副本默克尔树的示意图。
图8示出了进行数据块插入时副本默克尔树的示意图。
图9示出了进行数据块删除时副本默克尔树的示意图。
图10示出了本公开一些实施例的数据持有性验证系统的结构示 意图。
图11示出了本公开一些实施例的数据持有性验证装置的结构示 意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方 案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部 分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描 述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何 限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
首先结合图1描述本公开数据持有性验证方法的应用场景。
图1示出了本公开数据持有性验证方法的应用场景的示意图。如 图1所示,应用场景主要三个主要角色构成:数据所有者、远程存储 节点、验证节点。下面对这三个主要角色的功能进行解释。
数据所有者:希望将敏感数据由本地存储转移到外部存储的组织 或个人,需要保证文件及其副本能完整地存储在远程存储节点,为远 程存储节点和验证节点提供报酬。
远程存储节点:拥有一定基础设施,并愿意提供付费存储空间的 节点,如云服务提供商等,需要向用户承诺可以完整地存储数据及其 副本,并响应数据所有者或验证节点的挑战,根据存储情况获取收益;
验证节点:定期向远程存储节点发出数据持有性验证挑战,并对 其响应进行验证,当验证失败时向全网进行广播,验证结果可以写入 区块链中,具有不可抵赖、行为可追溯的特性。
本领域技术人员应理解,数据所有者本身也可以具有验证节点的 功能。为了简化描述并便于读者理解,本公开将数据所有者和验证节 点都称为数据拥有者,并将远程存储节点称为数据存储者。
下面结合图2描述本公开数据持有性验证方法的一些实施例。
图2示出了本公开一些实施例的数据持有性验证方法的流程示意图。 如图2所示,本实施例包括步骤S201~步骤S205。
在步骤S201中,数据拥有者及数据存储者为目标文件的不同副本 分别生成副本默克尔树。
假设F是数据拥有者需要存储的目标文件,以一系列分块的形式进 行存储,具体表示为F={b1,b2,…,bm},其中m为分块总数。每一个副本都是由m个分块组成的有序集合,每一个分块还可继续被分割为s个分片,即数据所有者为每一个不同 的文件副本生成一棵副本默克尔Merkel树,i为副本标识。每个文 件副本的副本默克尔树MHT的叶子节点都是该副本的各个数据块 bij的散列的有序集合,h表示哈希函数(例如SHA-2),j为数据 块标识。文件副本的副本默克尔树的树根表示为hRi。需要注意的是, 所有副本默克尔树的都是按照预设顺序构造的,在本实施例中可以使用 有左到右的顺序依次排列文件副本中的各个数据块作为叶子节点。
在步骤S202中,数据拥有者生成副本聚集默克尔树,副本聚集默 克尔树的叶子节点为各个副本默克尔树的根节点的有序集合。
按照Merkel树的生成原理,让每个副本默克尔树的根节点作为副本 聚集默克尔树的叶子节点,再将各个副本默克尔树的根节点逐层汇聚成 一个副本聚集默克尔树的根节点hDR,得到副本聚集默克尔树。图3示出 了副本聚集默克尔树的结构示意图。这样就可以用分层的方式验证所有 副本的完整性。
在步骤S203中,数据拥有者通过随机数据块标识向数据存储者发 起挑战。
例如,数据拥有者可以直接向数据存储者发送要挑战的随机数据 块标识,也可以向数据存储者发送伪随机数生成密钥,由数据拥有者 和数据存储者使用随机数生成密钥生成随机值作为随机数据块标识。
在步骤S204中,数据存储者根据随机数据块标识,确定各个副本 默克尔树的认证路径,并将认证路径发送至数据拥有者。
假设随机数据块标识为j,标明需要对各个副本中的第j个数据块 进行验证,那么从各个副本默克尔树的第j个叶子节点出发分别到达 各个副本默克尔树的根节点所途径的所有节点的兄弟节点,被本领域 技术人员简称为认证路径。
在步骤S205中,数据拥有者利用随机数据块标识在不同副本中对 应的数据块以及副本聚集默克尔树的根节点,对认证路径进行验证。
本领域技术人员应理解,数据拥有者可以利用随机数据块标识在 不同副本中对应的数据块取散列,然后根据副本默克尔树的生成规则, 对认证路径上的节点及该随机数据块标识对应的数据块散列进行计算, 并验证计算结果是否与副本聚集默克尔树的根节点相同。如果不同, 则认证路径验证失败;如果相同,则认证路径验证成功。在认证路径 验证失败的情况下,数据拥有者能够确定数据存储者未完整存储目标 文件的不同副本。在认证路径验证成功的情况下,数据拥有者可以对 数据存储者是否完整存储目标文件的不同副本进行进一步验证。
本实施例能够更加高效的验证出数据存储者未完整存储目标文件 的不同副本,防止数据存储者为节省存储空间而不存储目标文件的副 本的作弊行为,满足用户多副本存储的需求。同时,本实施例支持公 开验证,且没有验证次数限制,数据拥有者即使不从数据存储者获取 所存储的目标文件或目标文件的副本,也可以验证出数据存储者未完 整存储目标文件的不同副本。
下面结合图4描述如何对数据存储者是否完整存储目标文件的不 同副本进行进一步验证。
图4示出了本公开另一些实施例的数据持有性验证方法的流程示意 图。如图4所示,在图2对应的实施例基础上,本实施例还包括步骤S407~ 步骤S410。
在步骤S407中,数据拥有者在认证路径验证成功的情况下,利 用私钥为不同副本中的各个数据块分别生成数据块标签,并利用各个 数据块标签分别生成各个数据块标识对应的数据块聚合标签。
首先介绍双线性映射的概念。假设G为GDH群,GT为阶为素数p 的乘法循环群,定义映射e:G×G→GT为双线性映射,令g为群G的一个 生成元,则双线性映射有以下特性:
使用表示一个双线性映射,G1和G2表示GDH群,GT表示阶为素数p的乘法循环群,g为G2的生成元,y为私钥,x为公钥, x∈Zp,Zp表示整数群,y=gx∈G2。数据所有者对文件副本中的每一 个数据块计算标签其中1≤i≤n,1≤j≤m,1≤k≤s,n 为副本总数,s为数据分片总数,H表示BLS签名算法,uk为副本生 成方法中生成随机数。接下来,数据所有者将各个不同副本中块号为j的 数据块的标签进行乘法聚合,生成一组聚合标签并将聚 合标签的集合表示为Φ={σj}1≤j≤m。
在步骤S408中,数据拥有者将数据块聚合标签发送至数据存储 者。
在步骤S409中,数据存储者根据随机数据块标识及数据块聚合 标签,生成待验证信息,并将待验证信息发送至数据拥有者。
其中,待验证信息包括:待验证标签信息、待验证数据分片信息 以及待验证数据块信息。生成待验证信息的过程中,可以根据随机数 据块标识对应的数据块聚合标签,生成待验证标签信息;根据随机数 据块标识对应的不同副本中的各个数据块中包含的各个数据分片,生 成待验证数据分片信息;根据随机数据块标识在不同副本中对应的数 据块,生成待验证数据块信息。
在一些实施例中,在步骤S408中,数据拥有者还将随机数据块 标识对应的随机数发送至数据存储者。在步骤S409中,数据存储者 根据随机数据块标识对应的数据块聚合标签和随机数,生成待验证标 签信息;根据随机数据块标识对应的不同副本中的各个数据块中包含 的各个数据分片和随机数,生成待验证数据分片信息。
例如,数据拥有者在每个挑战中发送要挑战的数据块数量c以及两 个新生成的秘钥:伪随机置换函数PRP对应的置换秘钥k1以及伪随机 函数PRF对应的伪随机数生成秘钥k2。验证节点和远程存储节点都需 要使用k1和k2来生成一对随机指数和随机值,并组合成一个集合 Q={(j,rj)},其中用于随机挑选需要挑战的数据块,πkey(·)表示PRP函数;ψkey(·)表示PRF函数,用于响应及验证的计算过程, 在接收到挑战数量,并生成随机数集合Q={(j,rj)}后,为 了证明实际存储了n个副本并且具备数据完整性,远程存储节点给出的 证明形式为其中,μ={μik}1≤i≤n,1≤k≤s,Aij1≤i≤n是的认证路径。
在步骤S410中,数据拥有者利用公钥对待验证信息进行验证。
验证与是否相等,即其中,表示双线性映射G1×G2→GT, rj为与随机数据块标识j对应的随机数;Q为随机数据块标识与随机 数构成的集合,为目标文件的第i个副本的第j个数据块;k为数 据分片标识;uk为与分片标识k对应的随机数, 为目标文件的第i个副本的第j个数据块的第k个数据分片;
数据拥有者在验证失败的情况下,确定数据存储者未完整存储目 标文件的不同副本;在验证成功的情况下,确定数据存储者完整存储 目标文件的不同副本。
通过上述公式可以发现,如果由远程存储节点在响应阶段进行 μik的求和工作,即提前计算出并发送则可将通 信开销减少n倍。然而,这样修改可以使远程存储节点欺骗验证节点, 证明公式如下:通过公式我们可以得 知,恶意的远程存储节点可以提前计算出并将其存储在本地。这样的话,远程存储节点即使没有完整地存储用户数据,其提前计算 出的值仍然有效,并可通过数据完整性验证。因此,我们要求远程存 储节点必须发送μ={μik}1≤i≤n,1≤k≤s,而求和运算由验证节点进行。
本实施例中,首先采用步骤S101~步骤S105进行初步的数据持 有性验证,在初步验证失败的情况下高效验证出数据存储者未完整存 储目标文件的不同副本。在初步验证成功的情况下,采用步骤S407~ 步骤S410基于Merkle树及双线性映射计算完成进一步的数据持有 性验证,确定数据存储者是否完整存储了目标文件的不同副本,使得 数据持有性验证过程更加准确和高效。
发明人研究发现,PDP方案包括基于RSA(Ron Rivest、Adi Shamir、LeonardAdleman)标签的PDP模型、基于散列的动态PDP 模型、基于验证数据结构的动态PDP模型、基于RSA的动态PDP模 型等等。在现有的数据持有性证明方法中,基于RSA标签的PDP模 型存在安全风险,同时没有考虑到动态数据的存储情况,如果将这些 方案从静态数据存储直接扩展到动态数据存储,会带来很多设计和安 全问题。基于散列的动态PDP模型只关注于单一副本的动态数据,只 允许一定数量的挑战,同时不支持完全的动态操作(无法插入数据)。 基于RSA的动态PDP模型引入第三方进行数据完整性验证,没有考 虑第三方与云服务提供商合谋的风险,存在安全隐患,同时只考虑了 单一副本的动态数据的情况。由此可见,大部分数据持有性验证方案 都关注于单一副本的动态数据持有性,少部分关注多副本的方案不支 持数据的动态操作,而缺少验证远程存储节点上的多副本且动态数据 的数据持有性的方法。有鉴于此,本公开进一步提供了数据持有性验 证方法的又一些实施例,支持数据的动态操作.
图5示出了本公开又一些实施例的数据持有性验证方法的流程示意 图。如图5所示,本实施例包括步骤S500~步骤S510。
在步骤S500中,数据拥有者将标注了文件标识符的目标文件的不 同副本发送至数据存储者。
数据拥有者计算元数据M=h(IDF//hDR),其中,符号//表示对变量进 行级联拼接,IDF是每个文件的唯一的文件标识符,包括文件名、副本数 量n以及随机数uk,表示为IDF=文件名//u1//u2//……//us//n。数据拥有者还 可以将元数据M存储在区块链网络中,以供验证时使用。在进行验证时, 数据拥有者可以使用元数据M进行验证,hDR是副本聚集默克尔树的根 节点,可快速验证所有副本的完整性。其中,将IDF嵌入元数据M后,可 以防止存储节点使用其他文件的数据块蒙混过关。除非用户希望删除某 些副本,副本聚集树的结构一般不会发生变化,仅会由于部分数据修改 而重新计算根节点的值。
在步骤S501中,数据拥有者及数据存储者为目标文件的不同副本 分别生成副本默克尔树,具体过程可以参照步骤S201。
在步骤S502中,数据拥有者生成副本聚集默克尔树,具体过程可 以参照步骤S202。
在步骤S503中,数据拥有者对存储在数据存储者中的目标文件的 不同副本进行动态操作。
其中,动态操作包括数据块修改、数据块插入、数据块删除等等。 具体的动态操作过程在后续实施例中具体距离描述。
在步骤S504中,数据拥有者通过文件标识符和随机数据块标识, 向数据存储者发起挑战。
在步骤S505中,数据存储者根据文件标识符确定目标文件,根据 随机数据块标识确定目标文件的各个副本默克尔树的认证路径,并将 认证路径发送至数据拥有者。
在步骤S506中,数据拥有者根据文件标识符确定不同副本;利用 随机数据块标识在不同副本中对应的数据块、副本聚集默克尔树的根 节点以及文件标识符,对认证路径进行验证。
在认证路径验证失败的情况下,数据拥有者能够确定数据存储者 未完整存储目标文件的不同副本。在认证路径验证成功的情况下,执 行步骤S507。
在步骤S507中,数据拥有者在认证路径验证成功的情况下,利 用私钥为不同副本中的各个数据块分别生成数据块标签,并利用各个 数据块标签分别生成各个数据块标识对应的数据块聚合标签,具体过 程可以参照步骤S407。
在步骤S508中,数据拥有者将数据块聚合标签发送至数据存储 者,具体过程可以参照步骤S408。
在步骤S509中,数据存储者根据随机数据块标识及数据块聚合 标签,生成待验证信息,并将待验证信息发送至数据拥有者,具体过 程可以参照步骤S409。
在步骤S510中,数据拥有者利用公钥对待验证信息进行验证, 具体过程可以参照步骤S410。
在验证失败的情况下,确定数据存储者未完整存储目标文件的不 同副本;在验证成功的情况下,确定数据存储者完整存储目标文件的 不同副本。
本实施例既支持用户多副本存储的需求,避免出现为节省存储空 间而不存储副本的欺骗行为,又支持数据的动态操作行为,包括修改、 插入、删除和追加操作。
同时,数据拥有者还可以采用文件标识符对目标文件进行标识, 并将文件标识符应用在挑战及验证过程中,以提高数据持有性验证方 法的准确性。
下面结合图6描述如何对存储在数据存储者中的目标文件的不同 副本进行动态操作。
图6示出了对存储在数据存储者中的目标文件的不同副本进行动 态操作的流程示意图。如图6所示,本实施例包括步骤S601~步骤S606。
在步骤S6031中,数据拥有者将文件标识符、数据块操作类型、 目标数据块的数据块标识、目标数据块的更新值、目标数据块的数据 块标识对应的数据块聚集标签的更新值发送至数据存储者。
在步骤S6032中,数据存储者根据文件标识符、数据块操作类型、 目标数据块的数据块标识、目标数据块的更新值,对目标文件的不同 副本进行更新。
在步骤S6033中,数据存储者对各个副本默克尔树进行更新。
在步骤S6034中,数据存储者根据目标数据块的数据块标识,确 定各个副本默克尔树更新后的认证路径,并将更新后的认证路径发送 至数据拥有者。
在步骤S6035中,数据存储者根据目标数据块的数据块标识对应 的数据块聚集标签的更新值,对目标数据块的数据块标识对应的数据 块聚集标签进行更新。
在步骤S6036中,数据拥有者根据更新后的认证路径以及目标数 据块的更新值,对副本聚集默克尔树的根节点进行更新。
下面举一个具体的应用例进行详细介绍。
假设副本的动态操作是以形如的请求在数 据块的级别上执行。其中IDF是文件标识符,BlockOp是数据块操作类 型,包括修改、删除或插入,j为目标数据块的数据块标识,为 所有副本中目标数据块的更新值,为目标数据块的数据块标识对应 的数据块聚集标签的更新值。
(一)数据块操作类型为数据块修改。
数据修改是最常见的数据动态操作之一。对于一个文件 F={b1,b2,…,bm},假设数据所有者希望将所有副本中的数据块bj修改为b'j。
(7)数据存储者将标签σj修改为σ'j,并生成标签集合 Φ'={σ1,…,σ'j,…,σm}。
(8)数据存储者发送认证路径<Aij>1≤i≤n给数据所有者。
(9)数据拥有者收到认证路径后,生成新的副本聚集树根h'DR,并 更新元数据为M'=h(IDF//hDR')。
图7示出了进行数据块修改时副本默克尔树的示意图。数据存储者 将目标文件的不同副本中的目标数据块修改为更新值;在各个副本默 克尔树中,用更新值的散列替代目标数据块的散列,作为各个副本默 克尔树的叶子节点,以重新生成各个副本默克尔树。如图7所示,假 设当前要修改所有副本中的第1个数据块,斜线树节点表示被修改的节 点,被修改的叶子节点包括{h11,h21,…,hn1},并全部被修改为灰 色节点表示被修改数据块的认证路径,如b1'1的认证路径包括{h12,h1B}。在 数据拥有者端,使用认证路径<{h12,h1B},…,{hn2,hnB}>和被修改数据块 可以构造新的目录树根h'DR,并生成元数据M'=h(IDF//hDR')。
(二)数据块操作类型为数据块插入
数据拥有者希望在文件F={b1,b2,…,bm}中的位置j后插入新数据块最终构成新数据块的插入改变了文件副本整体的结 构,但由于将块索引放入标签中,因此无需重新计算插入块后产生移位 的块标签,避免了额外的计算开销。此外,可以使用副本聚集默克尔树 验证插入新数据块之后的数据完整性。
(7)数据存储者发送<Aij>1≤i≤n给数据拥有者。
(8)数据拥有者收到认证路径后,生成新的副本聚集树根h'DR,并 更新元数据为M'=h(IDF//hDR')。
图8示出了进行数据块插入时副本默克尔树的示意图。数据存储者 将目标文件的不同副本中的目标数据块之后插入更新值;在各个副本 默克尔树中,用目标数据块及更新值的散列替代目标数据块的散列, 并将目标数据块的更新值的散列以及目标数据块的散列作为各个副 本默克尔树的叶子节点,以重新生成各个副本默克尔树。假设我们当 前要在所有副本的第3个数据块后进行插入操作,在数据存储者端,十 字线树节点表示被插入的新叶子节点,其中斜线树节点表示 由于新块插入而更新的节点,新生成的节点用于重新构造副本默 克尔树。灰色节点表示新插入块的认证路径,如的认证路径包括 {h13,h14,h1A}。在数据拥有者端,使用认证路径<{h1A,h13,h14},…,{hnA,hn3,hn4}>和被 插入的块构造新的副本聚集树根h'DR,并生成元数据 M'=h(IDF//hDR')。
如果用户进行大量的插入行为,有可能导致树的不平衡,增加计算 的时间复杂度。针对这种情况,可以采取节点旋转的方式进行调整,具 体的旋转策略可参考自平衡二叉查找树的实现方法,有效减少单侧子树 过长带来的计算资源浪费。下述情况中的删除数据块也适用该策略进行 优化。本领域技术人员应理解,由于块追加操作是指在存储数据的末尾 添加一个新的块,可以通过在最后一个块之后进行插入数据块操作简单 实现。
(三)数据块操作类型为数据块删除
数据块删除操作与插入操作相反。当删除一个数据块时,所有后续 数据块向前移动一位。为实现删除第j个数据块的操作,数据拥有者发 送<IDF,BlockOp,j,null,null>请求到数据存储者。
(3)数据存储者从标签集中删除σj,并输出Φ'={σ1,…,σj-1,σj+1,…,σm-1}。
(4)数据存储者发送<Aij>1≤i≤n给数据拥有者。
图9示出了进行数据块删除时副本默克尔树的示意图。数据存储者 将目标文件的不同副本中的目标数据块删除;在各个副本默克尔树中, 删除目标数据块的散列所在的叶子节点,并用目标数据块的散列的兄 弟叶子节点代替父节点,以重新生成各个副本默克尔树。假设我们当 前要在所有副本中删除第4个数据块,在数据存储者端,被叉划去的叶 子节点表示要删除的节点,曲线箭头表示用节点{hi3}1≤i≤n替换{hiB}1≤i≤n,斜 线节点表示由于删除而更新的节点,灰色节点表示删除数据块后的认证 路径,如被删除后,认证路径包括{h13,h1A}。在数据拥有者端,使用认 证路径<{h13,h1A},L,{hn3,hnA}>构造新的副本聚集树根h'DR,并生成元数据 M'=h(IDF//hDR')。
下面结合图10描述本公开数据持有性验证系统的一些实施例。
图10示出了本公开一些实施例的数据持有性验证系统的结构示 意图。如图10所示,本实施例中的数据持有性验证系统100包括数 据拥有者1001和数据存储者1002。其中,数据拥有者1001及数据 存储者1002被配置为:为目标文件的不同副本分别生成副本默克尔 树,每个副本默克尔树的叶子节点为所对应副本的各个数据块散列的 有序集合;数据拥有者1001还被配置为:生成副本聚集默克尔树, 副本聚集默克尔树的叶子节点为各个副本默克尔树的根节点的有序 集合;数据拥有者通过随机数据块标识向数据存储者发起挑战;数据 存储者1002还被配置为:根据随机数据块标识,确定各个所述副本 默克尔树的认证路径,并将所述认证路径发送至数据拥有者;数据拥 有者1001进一步被配置为:利用随机数据块标识在所述不同副本中 对应的数据块以及副本聚集默克尔树的根节点,对所述认证路径进行 验证,并在认证路径验证失败的情况下,确定数据存储者未完整存储 目标文件的不同副本。
在一些实施例中,数据拥有者1001还被配置为:在认证路径验 证成功的情况下,利用私钥为不同副本中的各个数据块分别生成数据 块标签,并利用各个数据块标签分别生成各个数据块标识对应的数据 块聚合标签;将数据块聚合标签发送至数据存储者1002;数据存储 者1002还被配置为:根据随机数据块标识及数据块聚合标签,生成 待验证信息,并将待验证信息发送至数据拥有者1001;数据拥有者 1001还被配置为:利用公钥对待验证信息进行验证;在验证失败的 情况下,确定数据存储者1002未完整存储目标文件的不同副本;在 验证成功的情况下,确定数据存储者1002完整存储目标文件的不同 副本。
在一些实施例中,待验证信息包括:待验证标签信息、待验证数 据分片信息以及待验证数据块信息;根据随机数据块标识及数据块聚 合标签,生成待验证信息包括:根据随机数据块标识对应的数据块聚 合标签,生成待验证标签信息;根据随机数据块标识对应的不同副本 中的各个数据块中包含的各个数据分片,生成待验证数据分片信息; 根据随机数据块标识在不同副本中对应的数据块,生成待验证数据块 信息。
在一些实施例中,数据拥有者1001还被配置为:将随机数据块标 识对应的随机数发送至数据存储者1002;根据随机数据块标识对应的 数据块聚合标签,生成待验证标签信息包括:根据随机数据块标识对 应的数据块聚合标签和随机数,生成待验证标签信息;根据随机数据 块标识对应的不同副本中的各个数据块中包含的各个数据分片,生成 待验证数据分片信息包括:根据随机数据块标识对应的不同副本中的 各个数据块中包含的各个数据分片和随机数,生成待验证数据分片信 息。
在一些实施例中,数据拥有者1001利用公钥对待验证信息进行 验证包括:
验证与是否相等;其中,表 示双线性映射G1×G2→GT,G1和G2表示GDH群,GT表示阶为素数p 的乘法循环群;i为副本标识,n为副本总数;j为随机数据块标识, rj为与随机数据块标识j对应的随机数;Q为随机数据块标识与随机 数构成的集合,H表示BLS签名算法,为目标文件的第i个副本 的第j个数据块;k为数据分片标识,s为数据分片总数;uk为与分 片标识k对应的随机数,g为G2的生成元,y为公钥, 为目标文件的第i个副本的第j个数据块 的第k个数据分片,Zp表示整数群;x为私钥,x∈Zp,y=gx∈G2;
在一些实施例中,数据拥有者1001还被配置为:将标注了文件 标识符的目标文件的不同副本发送至数据存储者1002;通过随机数 据块标识向数据存储者1002发起挑战包括:通过文件标识符和随机 数据块标识,向数据存储者1002发起挑战;根据随机数据块标识, 确定各个副本默克尔树的认证路径包括:根据文件标识符确定目标文 件,根据随机数据块标识确定目标文件的各个副本默克尔树的认证路 径;利用随机数据块标识在不同副本中对应的数据块以及副本聚集默 克尔树的根节点,对认证路径进行验证包括:根据文件标识符确定不 同副本;利用随机数据块标识在不同副本中对应的数据块、副本聚集 默克尔树的根节点以及文件标识符,对认证路径进行验证。
在一些实施例中,数据拥有者1001还被配置为:将文件标识符、 数据块操作类型、目标数据块的数据块标识、目标数据块的更新值、 目标数据块的数据块标识对应的数据块聚集标签的更新值发送至数 据存储者1002;数据存储者1002还被配置为:根据文件标识符、数 据块操作类型、目标数据块的数据块标识、目标数据块的更新值,对 目标文件的不同副本进行更新;对各个副本默克尔树进行更新;根据 目标数据块的数据块标识,确定各个副本默克尔树更新后的认证路径, 并将更新后的认证路径发送至数据拥有者1001;数据存储者1002还 被配置为:根据目标数据块的数据块标识对应的数据块聚集标签的更 新值,对目标数据块的数据块标识对应的数据块聚集标签进行更新; 根据更新后的认证路径以及目标数据块的更新值,对副本聚集默克尔 树的根节点进行更新。
在一些实施例中,数据块操作类型为数据块修改;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块修改为更新值;对各个副本默克尔树进行更新包括:在各 个副本默克尔树中,用更新值的散列替代目标数据块的散列,作为各 个副本默克尔树的叶子节点,以重新生成各个副本默克尔树。
在一些实施例中,数据块操作类型为数据块插入;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块之后插入更新值;对各个副本默克尔树进行更新包括:在 各个副本默克尔树中,用目标数据块及更新值的散列替代目标数据块 的散列,并将目标数据块的更新值的散列以及目标数据块的散列作为 各个副本默克尔树的叶子节点,以重新生成各个副本默克尔树。
在一些实施例中,数据块操作类型为数据块删除;对目标文件的 不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的 目标数据块删除;对各个副本默克尔树进行更新包括:在各个副本默 克尔树中,删除目标数据块的散列所在的叶子节点,并用目标数据块 的散列的兄弟叶子节点代替父节点,以重新生成各个副本默克尔树。
下面结合图11描述本公开数据持有性验证装置的一些实施例。
图11示出了本公开一些实施例的数据持有性验证装置的结构示 意图。如图11所示,该实施例的数据持有性验证装置110包括:存储 器1110以及耦接至该存储器1110的处理器1120,处理器1120被配 置为基于存储在存储器1110中的指令,执行前述任意一些实施例中的 数据持有性验证方法。
其中,存储器1110例如可以包括系统存储器、固定非易失性存储 介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序 (Boot Loader)以及其他程序等。
数据持有性验证装置110还可以包括输入输出接口1130、网络接 口1140、存储接口1150等。这些接口1130、1140、1150以及存储器 1110和处理器1120之间例如可以通过总线1160连接。其中,输入输 出接口1130为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接 接口。网络接口1140为各种联网设备提供连接接口。存储接口1150 为SD卡、U盘等外置存储设备提供连接接口。
本公开还包括一种计算机可读存储介质,其上存储有计算机指令, 该指令被处理器执行时实现前述任意一些实施例中的数据持有性验证 方法。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算 机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序 指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图 和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指 令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理 设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处 理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流 程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处 理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可 读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程 图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备 上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算 机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于 实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中 指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本 公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包 含在本公开的保护范围之内。
Claims (13)
1.一种数据持有性验证方法,包括:
数据拥有者及数据存储者为目标文件的不同副本分别生成副本默克尔树,每个副本默克尔树的叶子节点为所对应副本的各个数据块散列的有序集合;
数据拥有者生成副本聚集默克尔树,副本聚集默克尔树的叶子节点为各个副本默克尔树的根节点的有序集合;
数据拥有者通过随机数据块标识向数据存储者发起挑战;
数据存储者根据随机数据块标识,确定各个所述副本默克尔树的认证路径,并将所述认证路径发送至数据拥有者;
数据拥有者利用随机数据块标识在所述不同副本中对应的数据块以及副本聚集默克尔树的根节点,对所述认证路径进行验证,并在认证路径验证失败的情况下,确定数据存储者未完整存储目标文件的不同副本。
2.根据权利要求1所述的数据持有性验证方法,还包括:
数据拥有者在认证路径验证成功的情况下,利用私钥为所述不同副本中的各个数据块分别生成数据块标签,并利用各个数据块标签分别生成各个数据块标识对应的数据块聚合标签;
数据拥有者将所述数据块聚合标签发送至数据存储者;
数据存储者根据随机数据块标识及所述数据块聚合标签,生成待验证信息,并将所述待验证信息发送至数据拥有者;
数据拥有者利用公钥对所述待验证信息进行验证;
数据拥有者在验证失败的情况下,确定数据存储者未完整存储目标文件的不同副本;在验证成功的情况下,确定数据存储者完整存储目标文件的不同副本。
3.根据权利要求2所述的数据持有性验证方法,其中,
所述待验证信息包括:待验证标签信息、待验证数据分片信息以及待验证数据块信息;
所述根据随机数据块标识及所述数据块聚合标签,生成待验证信息包括:根据随机数据块标识对应的数据块聚合标签,生成待验证标签信息;根据随机数据块标识对应的所述不同副本中的各个数据块中包含的各个数据分片,生成待验证数据分片信息;根据随机数据块标识在所述不同副本中对应的数据块,生成待验证数据块信息。
4.根据权利要求3所述的数据持有性验证方法,还包括:数据拥有者将随机数据块标识对应的随机数发送至数据存储者;
所述根据随机数据块标识对应的数据块聚合标签,生成待验证标签信息包括:根据随机数据块标识对应的数据块聚合标签和所述随机数,生成待验证标签信息;
所述根据随机数据块标识对应的所述不同副本中的各个数据块中包含的各个数据分片,生成待验证数据分片信息包括:根据随机数据块标识对应的所述不同副本中的各个数据块中包含的各个数据分片和所述随机数,生成待验证数据分片信息。
5.根据权利要求4所述的数据持有性验证方法,其中,所述数据拥有者利用公钥对所述待验证信息进行验证包括:
验证与是否相等;其中,表示双线性映射G1×G2→GT,G1和G2表示GDH群,GT表示阶为素数p的乘法循环群;i为副本标识,n为副本总数;j为随机数据块标识,rj为与随机数据块标识j对应的随机数;Q为随机数据块标识与所述随机数构成的集合,H表示BLS签名算法,为目标文件的第i个副本的第j个数据块;k为数据分片标识,s为数据分片总数;uk为与分片标识k对应的随机数,g为G2的生成元,y为公钥, 为目标文件的第i个副本的第j个数据块的第k个数据分片,Zp表示整数群;x为私钥,x∈Zp,y=gx∈G2;
6.根据权利要求2所述的数据持有性验证方法,还包括:数据拥有者将标注了文件标识符的目标文件的不同副本发送至数据存储者;
所述通过随机数据块标识向数据存储者发起挑战包括:通过文件标识符和随机数据块标识,向数据存储者发起挑战;
所述根据随机数据块标识,确定各个所述副本默克尔树的认证路径包括:根据文件标识符确定目标文件,根据随机数据块标识确定目标文件的各个所述副本默克尔树的认证路径;
所述利用随机数据块标识在所述不同副本中对应的数据块以及副本聚集默克尔树的根节点,对所述认证路径进行验证包括:根据文件标识符确定所述不同副本;利用随机数据块标识在所述不同副本中对应的数据块、副本聚集默克尔树的根节点以及所述文件标识符,对所述认证路径进行验证。
7.根据权利要求6所述的数据持有性验证方法,还包括:
数据拥有者将文件标识符、数据块操作类型、目标数据块的数据块标识、目标数据块的更新值、目标数据块的数据块标识对应的数据块聚集标签的更新值发送至数据存储者;
数据存储者根据文件标识符、数据块操作类型、目标数据块的数据块标识、目标数据块的更新值,对目标文件的不同副本进行更新;
数据存储者对各个所述副本默克尔树进行更新;
数据存储者根据目标数据块的数据块标识,确定各个所述副本默克尔树更新后的认证路径,并将更新后的认证路径发送至数据拥有者;
数据存储者根据目标数据块的数据块标识对应的数据块聚集标签的更新值,对目标数据块的数据块标识对应的数据块聚集标签进行更新;
数据拥有者根据更新后的认证路径以及目标数据块的更新值,对副本聚集默克尔树的根节点进行更新。
8.根据权利要求7所述的数据持有性验证方法,其中,所述数据块操作类型为数据块修改;
所述对目标文件的不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的目标数据块修改为所述更新值;
所述对各个所述副本默克尔树进行更新包括:在各个所述副本默克尔树中,用所述更新值的散列替代目标数据块的散列,作为各个所述副本默克尔树的叶子节点,以重新生成各个所述副本默克尔树。
9.根据权利要求7所述的数据持有性验证方法,其中,所述数据块操作类型为数据块插入;
所述对目标文件的不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的目标数据块之后插入所述更新值;
所述对各个所述副本默克尔树进行更新包括:在各个所述副本默克尔树中,用目标数据块及所述更新值的散列替代目标数据块的散列,并将目标数据块的更新值的散列以及目标数据块的散列作为各个所述副本默克尔树的叶子节点,以重新生成各个所述副本默克尔树。
10.根据权利要求7所述的数据持有性验证方法,其中,所述数据块操作类型为数据块删除;
所述对目标文件的不同副本中的目标数据块进行更新包括:将目标文件的不同副本中的目标数据块删除;
所述对各个所述副本默克尔树进行更新包括:在各个所述副本默克尔树中,删除目标数据块的散列所在的叶子节点,并用目标数据块的散列的兄弟叶子节点代替父节点,以重新生成各个所述副本默克尔树。
11.一种数据持有性验证系统,包括数据拥有者和数据存储者;其中,
数据拥有者及数据存储者被配置为:为目标文件的不同副本分别生成副本默克尔树,每个副本默克尔树的叶子节点为所对应副本的各个数据块散列的有序集合;
数据拥有者还被配置为:生成副本聚集默克尔树,副本聚集默克尔树的叶子节点为各个副本默克尔树的根节点的有序集合;数据拥有者通过随机数据块标识向数据存储者发起挑战;
数据存储者还被配置为:根据随机数据块标识,确定各个所述副本默克尔树的认证路径,并将所述认证路径发送至数据拥有者;
数据拥有者进一步被配置为:利用随机数据块标识在所述不同副本中对应的数据块以及副本聚集默克尔树的根节点,对所述认证路径进行验证,并在认证路径验证失败的情况下,确定数据存储者未完整存储目标文件的不同副本。
12.一种数据持有性验证装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1至10中任一项所述的数据持有性验证方法。
13.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如权利要求1至10中任一项所述的数据持有性验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010220307.8A CN112311548B (zh) | 2020-03-25 | 数据持有性验证方法、系统、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010220307.8A CN112311548B (zh) | 2020-03-25 | 数据持有性验证方法、系统、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112311548A true CN112311548A (zh) | 2021-02-02 |
CN112311548B CN112311548B (zh) | 2024-10-22 |
Family
ID=
Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647433A (zh) * | 2012-05-21 | 2012-08-22 | 北京航空航天大学 | 一种高效的云存储数据持有性验证方法 |
US8706701B1 (en) * | 2010-11-18 | 2014-04-22 | Emc Corporation | Scalable cloud file system with efficient integrity checks |
CN104506558A (zh) * | 2015-01-09 | 2015-04-08 | 黑龙江科技大学 | 层次式数据拥有证明方法 |
CN104717217A (zh) * | 2015-03-18 | 2015-06-17 | 电子科技大学 | 一种云存储中基于部分授权的可证明安全数据持有性验证方法 |
CN105227549A (zh) * | 2015-09-15 | 2016-01-06 | 淮阴工学院 | 一种数据持有性证明方案 |
CN106301789A (zh) * | 2016-08-16 | 2017-01-04 | 电子科技大学 | 应用基于格的线性同态签名的云存储数据的动态验证方法 |
CN106845280A (zh) * | 2017-03-14 | 2017-06-13 | 广东工业大学 | 一种Merkle哈希树云数据完整性审计方法及系统 |
CN106936818A (zh) * | 2017-02-24 | 2017-07-07 | 中国科学院软件研究所 | 基于区块链技术的数据审计方法、客户端及区块链云端设备 |
KR20170091248A (ko) * | 2016-01-29 | 2017-08-09 | 한국과학기술원 | 머클 트리 기반 메모리 무결성 검증 방법 및 장치 |
KR101841929B1 (ko) * | 2016-11-02 | 2018-03-27 | 주식회사 코인플러그 | 머클트리 구조를 사용하여, 문서를 오프라인으로 발행하며 발행된 오프라인 문서에 대한 인증을 수행하는 방법 및 이를 이용한 서버 |
WO2018070783A2 (ko) * | 2016-10-11 | 2018-04-19 | 주식회사 코인플러그 | Utxo 기반으로 머클트리 구조를 사용하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버 |
CN108229208A (zh) * | 2018-01-08 | 2018-06-29 | 华侨大学 | 一种云存储服务中多副本数据的公开审计方法 |
CN108664221A (zh) * | 2018-05-11 | 2018-10-16 | 北京奇虎科技有限公司 | 一种数据持有证明方法、装置及可读存储介质 |
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
CN108737109A (zh) * | 2018-05-11 | 2018-11-02 | 北京奇虎科技有限公司 | 数据持有证明方法、装置及系统 |
US20180329785A1 (en) * | 2017-05-10 | 2018-11-15 | Elastifile Ltd. | File system storage in cloud using data and metadata merkle trees |
CN109104449A (zh) * | 2017-06-21 | 2018-12-28 | 北京大学 | 一种云存储环境下的多备份数据持有性证明方法 |
CN109165221A (zh) * | 2018-08-16 | 2019-01-08 | 北京京东尚科信息技术有限公司 | 区块链的数据存储方法、装置、区块链节点及存储介质 |
CN109525403A (zh) * | 2018-12-29 | 2019-03-26 | 陕西师范大学 | 一种支持用户全动态并行操作的抗泄露公开云审计方法 |
CN109635593A (zh) * | 2018-12-04 | 2019-04-16 | 国网重庆市电力公司客户服务中心 | 电力系统中基于电力缴费终端的数据完整性存储保护方法 |
CN109657499A (zh) * | 2018-10-31 | 2019-04-19 | 深圳市网心科技有限公司 | 元数据验证方法、系统服务器和计算机可读存储介质 |
CN109889505A (zh) * | 2019-01-23 | 2019-06-14 | 平安科技(深圳)有限公司 | 数据持有性验证方法及终端设备 |
CN110011998A (zh) * | 2019-03-29 | 2019-07-12 | 福建师范大学 | 一种基于身份的多备份远程数据持有验证方法 |
CN110119763A (zh) * | 2019-04-16 | 2019-08-13 | 福建天晴数码有限公司 | 基于默克尔树思想的逻辑回归数据优化方法、存储介质 |
KR20190095067A (ko) * | 2018-06-22 | 2019-08-14 | 주식회사 코인플러그 | 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말 |
CN110263584A (zh) * | 2019-06-19 | 2019-09-20 | 华中科技大学 | 一种基于区块链的数据完整性审计方法和系统 |
CN110321074A (zh) * | 2019-05-20 | 2019-10-11 | 西安电子科技大学 | 基于区块链和分布式存储系统的安全存储证明的共识方法 |
CN110602239A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息存储方法及相关设备 |
Patent Citations (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706701B1 (en) * | 2010-11-18 | 2014-04-22 | Emc Corporation | Scalable cloud file system with efficient integrity checks |
CN102647433A (zh) * | 2012-05-21 | 2012-08-22 | 北京航空航天大学 | 一种高效的云存储数据持有性验证方法 |
CN104506558A (zh) * | 2015-01-09 | 2015-04-08 | 黑龙江科技大学 | 层次式数据拥有证明方法 |
CN104717217A (zh) * | 2015-03-18 | 2015-06-17 | 电子科技大学 | 一种云存储中基于部分授权的可证明安全数据持有性验证方法 |
CN105227549A (zh) * | 2015-09-15 | 2016-01-06 | 淮阴工学院 | 一种数据持有性证明方案 |
KR20170091248A (ko) * | 2016-01-29 | 2017-08-09 | 한국과학기술원 | 머클 트리 기반 메모리 무결성 검증 방법 및 장치 |
CN106301789A (zh) * | 2016-08-16 | 2017-01-04 | 电子科技大学 | 应用基于格的线性同态签名的云存储数据的动态验证方法 |
WO2018070783A2 (ko) * | 2016-10-11 | 2018-04-19 | 주식회사 코인플러그 | Utxo 기반으로 머클트리 구조를 사용하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버 |
KR101841929B1 (ko) * | 2016-11-02 | 2018-03-27 | 주식회사 코인플러그 | 머클트리 구조를 사용하여, 문서를 오프라인으로 발행하며 발행된 오프라인 문서에 대한 인증을 수행하는 방법 및 이를 이용한 서버 |
CN106936818A (zh) * | 2017-02-24 | 2017-07-07 | 中国科学院软件研究所 | 基于区块链技术的数据审计方法、客户端及区块链云端设备 |
CN106845280A (zh) * | 2017-03-14 | 2017-06-13 | 广东工业大学 | 一种Merkle哈希树云数据完整性审计方法及系统 |
US20180329785A1 (en) * | 2017-05-10 | 2018-11-15 | Elastifile Ltd. | File system storage in cloud using data and metadata merkle trees |
CN109104449A (zh) * | 2017-06-21 | 2018-12-28 | 北京大学 | 一种云存储环境下的多备份数据持有性证明方法 |
CN108229208A (zh) * | 2018-01-08 | 2018-06-29 | 华侨大学 | 一种云存储服务中多副本数据的公开审计方法 |
CN108737109A (zh) * | 2018-05-11 | 2018-11-02 | 北京奇虎科技有限公司 | 数据持有证明方法、装置及系统 |
CN108664221A (zh) * | 2018-05-11 | 2018-10-16 | 北京奇虎科技有限公司 | 一种数据持有证明方法、装置及可读存储介质 |
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
KR20190095067A (ko) * | 2018-06-22 | 2019-08-14 | 주식회사 코인플러그 | 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말 |
CN109165221A (zh) * | 2018-08-16 | 2019-01-08 | 北京京东尚科信息技术有限公司 | 区块链的数据存储方法、装置、区块链节点及存储介质 |
CN109657499A (zh) * | 2018-10-31 | 2019-04-19 | 深圳市网心科技有限公司 | 元数据验证方法、系统服务器和计算机可读存储介质 |
CN109635593A (zh) * | 2018-12-04 | 2019-04-16 | 国网重庆市电力公司客户服务中心 | 电力系统中基于电力缴费终端的数据完整性存储保护方法 |
CN109525403A (zh) * | 2018-12-29 | 2019-03-26 | 陕西师范大学 | 一种支持用户全动态并行操作的抗泄露公开云审计方法 |
CN109889505A (zh) * | 2019-01-23 | 2019-06-14 | 平安科技(深圳)有限公司 | 数据持有性验证方法及终端设备 |
CN110011998A (zh) * | 2019-03-29 | 2019-07-12 | 福建师范大学 | 一种基于身份的多备份远程数据持有验证方法 |
CN110119763A (zh) * | 2019-04-16 | 2019-08-13 | 福建天晴数码有限公司 | 基于默克尔树思想的逻辑回归数据优化方法、存储介质 |
CN110321074A (zh) * | 2019-05-20 | 2019-10-11 | 西安电子科技大学 | 基于区块链和分布式存储系统的安全存储证明的共识方法 |
CN110263584A (zh) * | 2019-06-19 | 2019-09-20 | 华中科技大学 | 一种基于区块链的数据完整性审计方法和系统 |
CN110602239A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链信息存储方法及相关设备 |
Non-Patent Citations (5)
Title |
---|
JING ZOU; YUNCHUAN SUN; SHIXIAN LI;: "Dynamic Provable Data Possession Based on Ranked Merkle Hash Tree", 2016 INTERNATIONAL CONFERENCE ON IDENTIFICATION,IEEE, 5 February 2018 (2018-02-05) * |
孟浩华;曹波;袁慧;董亮;: "一种基于Merkle-Tree的云存储数据持有性检查方案", 计算机与数字工程, no. 07, 20 July 2017 (2017-07-20), pages 150 - 153 * |
李超零;陈越;谭鹏许;杨刚;: "基于同态hash的数据多副本持有性证明方案", 计算机应用研究, no. 01, 15 January 2013 (2013-01-15), pages 271 - 275 * |
苏迪;刘竹松;: "一种新型的Merkle哈希树云数据完整性审计方案", 计算机工程与应用, no. 01, 29 September 2017 (2017-09-29), pages 75 - 81 * |
邱罡;刘志都;周利华;: "基于Merkle树的远程证明机制", 华中科技大学学报(自然科学版), no. 04, 15 April 2010 (2010-04-15), pages 55 - 58 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102627000B1 (ko) | 스크립트 기반 블록체인 상호작용 | |
EP3837652B1 (en) | Distributed blockchain data storage under account model | |
JP6955026B2 (ja) | 並列処理ブロックチェーントランザクションのためのシステムおよび方法 | |
JP6690066B2 (ja) | パブリックサイドチェーンを使用してコンソーシアムブロックチェーンに記憶されたデータの完全性を検証すること | |
KR102247658B1 (ko) | 신뢰 실행 환경에서 실행되는 스마트 계약 동작에 기초한 블록체인 데이터의 프로세싱 | |
US11853437B2 (en) | Method for storing data on a storage entity | |
US11556516B2 (en) | Distributed blockchain data storage under account model | |
CN109472696B (zh) | 资产交易方法、装置、存储介质及计算机设备 | |
CN111226206B (zh) | 拍摄区块链数据的快照 | |
EP3923546A1 (en) | Shared blockchain data storage based on error correction code | |
CN111295650A (zh) | 在基于区块链的系统中执行映射迭代 | |
US20200084041A1 (en) | Automated Blockchain Protocol Update | |
CN103605784A (zh) | 一种多重云环境下数据完整性验证方法 | |
CN110011998B (zh) | 一种基于身份的多备份远程数据持有验证方法 | |
CN114127724A (zh) | 针对多副本存储的完整性审计 | |
CN111565234A (zh) | 一种副本文件的云安全存储方法、介质及设备 | |
CN111316256A (zh) | 拍摄区块链数据的快照 | |
CN115244894A (zh) | 散列消息认证码生成方法 | |
CN112671712A (zh) | 一种支持高效动态更新的云数据完整性验证方法及系统 | |
CN112311548A (zh) | 数据持有性验证方法、系统、装置及计算机可读存储介质 | |
CN112311548B (zh) | 数据持有性验证方法、系统、装置及计算机可读存储介质 | |
CN113810185B (zh) | 一种抗陷门泄露的链上数据修复系统及方法 | |
Sardar et al. | Verifiable and forward private conjunctive keyword search from DIA tree | |
WO2024207404A1 (en) | Multi-signature documents | |
CN111966638B (zh) | 一种适用于工业云上的ida数据恢复的动态更新方法 |
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 |