CN111104694A - 支持数据持有性证明与数据修复的数据编码方法及系统 - Google Patents

支持数据持有性证明与数据修复的数据编码方法及系统 Download PDF

Info

Publication number
CN111104694A
CN111104694A CN201911211948.0A CN201911211948A CN111104694A CN 111104694 A CN111104694 A CN 111104694A CN 201911211948 A CN201911211948 A CN 201911211948A CN 111104694 A CN111104694 A CN 111104694A
Authority
CN
China
Prior art keywords
data
node
challenge
repair
random function
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
CN201911211948.0A
Other languages
English (en)
Other versions
CN111104694B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201911211948.0A priority Critical patent/CN111104694B/zh
Publication of CN111104694A publication Critical patent/CN111104694A/zh
Application granted granted Critical
Publication of CN111104694B publication Critical patent/CN111104694B/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种支持数据持有性证明与数据修复的数据编码方法,属于信息安全领域,包括:客户端将文件分片后,根据冗余策略R、陷门随机函数T和数据持有性证明方案S生成编码分片及其验证标签,并发送至存储节点,同时将编码分片索引与存储节点的对应关系发送至审计节点;将私有参数保存在客户端本地,公共参数发送至存储节点和审计节点;审计节点随机选取挑战节点和挑战集合后,发起挑战,以使得挑战节点获得相应的编码分片及其验证标签,之后根据S生成数据持有性证明并返回;若审计节点在挑战时间窗口内接收到了数据持有性证明并验证通过,则挑战成功;否则,挑战失败。本发明能够在分布式存储系统中同时保证数据的完整性和可靠性。

Description

支持数据持有性证明与数据修复的数据编码方法及系统
技术领域
本发明属于信息安全领域,更具体地,涉及一种支持数据持有性证明与数据修复的数据编码方法及系统。
背景技术
由于成本和安全的考虑,越来越多的企业及个人将数据存储在云上,此外,随着区块链技术的发展,许多人提出使用区块链技术建立去中心化存储网络,充分利用边缘存储设备,降低成本。然而在云存储、区块链存储等分布式存储场景下,可能会出现存储方作恶以及数据丢失问题,在此基础上,各自出现了数据持有性证明方案和数据冗余存储方案。
数据持有性证明能一定程度上避免存储方作恶,通过数据持有性证明,用户可以确保上传到存储方的数据的完整性,以防止恶意存储方为了节省成本删除某些访问频次很低的冷数据,但通过数据持有性证明并不能保证数据的可靠性和持有性,由于存储节点故障等各种原因,数据可能会损坏丢失,于是需要通过数据冗余存储来保证可靠性,如多副本冗余存储和纠删码冗余存储,在一部分数据丢失损坏后能通过数据冗余来修复丢失的数据,保证可靠性。但是将数据持有性证明与数据修复相结合却存在很多问题。
如果需要将数据持有性证明与冗余数据修复相结合,则方案需要能抵抗以下几种攻击方式:(1)合谋攻击:审计方与存储方合谋,伪造证明欺骗用户;(2)女巫攻击:伪造有多个身份,承诺以冗余度N存储数据,而实际上存储数据小于N冗余度,但是却提供了相应的存储证明;(3)当某存储节点接受挑战时,从其他存储节点获取可恢复冗余数据集生成证明;(4)生成攻击:当有某种方式可以生成数据以及证明时,存储节点在接受挑战时生成存储证明,而不存储数据。由此可知,如果在支持数据持有性证明的同时支持存储端数据修复,那么就相当于给存储方留下了作恶的可能,因此,现有的数据持有性证明方法并不能支持数据修复,无法在分布式存储系统中同时保证数据的完整性和可靠性。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种支持数据持有性证明与数据修复的编码方法与系统,其目的在于,在分布式存储系统中同时保证数据的完整性和可靠性。
为实现上述目的,按照本发明的第一方面,提供了一种支持数据持有性证明与数据修复的数据编码方法,包括:数据编码步骤和数据持有性证明步骤;
数据编码步骤包括:
(a1)客户端将待上传的文件F分片,并利用冗余策略R生成冗余分片;利用陷门随机函数T为各冗余分片的索引计算一个输出值后,与对应的冗余分片异或得到编码分片,并利用数据持有性证明方案S生成各编码分片的验证标签;
(a2)将各编码分片及其验证标签、陷门随机函数T的公共参数以及数据持有性证明方案S的公钥发送至存储节点,将编码分片索引与存储节点的对应关系、陷门随机函数T的难度系数t以及数据持有性证明方案S的公钥发送至审计节点,并将陷门随机函数T的私有参数以及数据持有性证明方案S的私钥保存在客户端本地;
数据持有性证明步骤包括:
(b1)审计节点随机选取一个存储节点作为挑战节点,从挑战节点所对应的索引集合中随机选取一个子集作为挑战集合;
(b2)审计节点根据难度系数t确定挑战时间窗口后,根据挑战集合向挑战节点发起挑战,以使得挑战节点接受挑战后,根据挑战集合获得相应的编码分片及其验证标签,之后根据数据持有性证明方案S生成各编码分片的数据持有性证明,并发送给审计节点;
(b3)若审计节点在挑战时间窗口内接收到了挑战节点发送的数据持有性证明,且根据数据持有性方案S对该数据持有性证明的验证通过,则判定挑战成功;否则,判定挑战失败;
其中,陷门随机函数的私有参数和公共参数均用于计算陷门随机函数值,且利用私有参数计算的速度比利用公共参数计算的速度快,难度系数t用于衡量两个计算速度之间的不对称程度;挑战时间窗口的长度小于存储节点从可恢复冗余数据集中回复数据的时间。
本发明所提供的支持数据持有性证明与数据修复的数据编码方法,会同时利用冗余策略和数据持有性证明方案完成数据编码,并且审计节点在向存储节点发起挑战时,根据陷门随机函数的难度系数确定的挑战时间窗口长度小于存储节点从可恢复冗余数据集中回复数据的时间,使得存储节点一旦将数据分片删除,将无法在挑战时间窗口内通过数据修复完成挑战,从而能够有效防止存储方作恶,因此,本发明能够在分布式存储系统中同时支持数据持有性证明和数据修复,同时保证数据的完整性和可靠性。
本发明在由客户端保存陷门随机函数的私有参数,由于利用私有参数计算较快,客户端能够实现更快的写入和下载,提高服务质量;由存储节点保存陷门随机函数的公共参数,由于利用公共参数计算较慢,能够保证数据的安全性。
进一步地,本发明第一方面提供的支持数据持有性证明与数据修复的数据编码方法,还包括:
(b4)若挑战失败,则审计节点将原挑战节点所对应的索引集合作为修复集合,并重新选取一个存储节点作为修复节点;
(b5)审计节点根据难度系数t确定修复时间窗口后,根据修复集合向修复节点发送修复任务,以使得修复节点接收到修复任务后,根据修复集合确定需要修复的编码分片,并根据冗余策略R进行数据修复,同时存储修复得到的编码分片;
(b6)审计节点在修复时间窗口结束后,对编码分片索引与存储节点之间的对应关系进行更新,并从修复节点所对应的索引集合中随机选取一个子集作为新的挑战集合,将修复节点作为新的挑战节点,之后执行步骤(b2)~(b3),以重新发起挑战;
其中,修复时间窗口的长度大于存储节点从可恢复冗余数据集中回复数据的时间。
本发明在挑战节点挑战失败时,会触发数据修复操作,由新的存储节点修复出该挑战节点上的编码分片,由此能够保证数据的完整性;在数据修复完成后,会对修复节点重新发起挑战,避免了新的存储节点作恶,进一步保证了数据的完整性。
进一步地,本发明第一方面提供的支持数据持有性证明与数据修复的数据编码方法,还包括:
若挑战失败,则对接受挑战的存储节点进行惩罚。
本发明引入惩罚机制,对挑战失败的存储节点进行惩罚,增加了存储节点的作恶成本,从而有效避免存储节点作恶。
进一步地,本发明第一方面提供的支持数据持有性证明与数据修复的数据编码方法,还包括:
若存储节点自检有数据丢失,则从其余存储节点获取可恢复冗余数据集后,根据冗余策略R对丢失的数据进行修复。
本发明在存储节点自检发现数据丢失时,由存储节点主动发起数据修复操作,能够保证数据的可靠性。
进一步地,本发明第一方面提供的支持数据持有性证明与数据修复的数据编码方法,还包括:
利用数据持有性证明方案S生成各编码分片的验证标签之后,利用冗余策略R对验证标签也进行冗余计算,得到的冗余的验证标签也随编码分片一起发送至存储节点。
本发明在对数据进行冗余计算的同时,对用于数据持有性证明的验证标签也进行冗余计算,使得验证标签丢失时,也可以通过数据修复得到。
进一步地,陷门随机函数T的公共参数为:N=pq,私有参数为:Φ(N)=(p-1)(q-1);
利用私有参数φ(N)计算陷门随机函数值的计算式为:
Figure BDA0002298387370000051
利用公共参数N计算陷门随机函数值的计算式为:
Figure BDA0002298387370000052
其中,h表示待转换的信息,e表示陷门随机函数值,mod表示取模运算,p和q均表示素数,且p和q的二进制长度均大于预设的阈值。
进一步地,陷门随机函数T的私有参数为有限域内的随机数x,陷门随机函数T的公共参数为集合
Figure BDA0002298387370000053
利用私有参数x计算陷门随机函数值的方式为:
将编码分片等分为J个子数据块,依次编号为0~J-1;
根据
Figure BDA0002298387370000054
计算哈希值H,并根据e0=yH,
Figure BDA0002298387370000055
计算各子数据块的陷门随机函数值;
根据各子数据块的陷门随机函数值计算编码分片的陷门随机函数值;
利用公共参数{yi}计算陷门随机函数值的方式为:
将编码分片等分为J个子数据块,依次编号为0~J-1;
根据
Figure BDA0002298387370000056
计算各子数据块的陷门随机函数值;
根据各子数据块的陷门随机函数值计算编码分片的陷门随机函数值;
其中,y0为随机选择数字;I为预设的正整数,s+j–1<I;H(·)为哈希函数,h表示待转换的信息,|表示拼接操作;ej表示第j个子数据块的陷门随机函数值,j的取值范围为0~J-1。
进一步地,步骤(a1)包括:
客户端将待上传的文件F等分为多个数据片,并利用冗余策略R进行冗余计算,共得到k个冗余分片m1~mk
获得k个冗余分片m1~mk的索引h1~hk,并利用陷门随机函数的私有参数为索引h1~hk分别计算一个输出信息,得到k个输出信息e1~ek;将k个输出信息e1~ek与k个冗余分片m1~mk进行异或,得到k个编码分片d1~dk
利用数据持有性证明方案S生成编码分片d1~dk的验证标签,得到k个验证标签σ1~σk
按照本发明的第二方面,提供了一种系统,包括计算机可读存储介质和处理器,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行本发明第一方面提供的支持数据持有性证明与数据修复的数据编码方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的支持数据持有性证明与数据修复的数据编码方法及系统,会同时利用冗余策略和数据持有性证明方案完成数据编码,并且审计节点在向存储节点发起挑战时,根据陷门随机函数的难度系数确定的挑战时间窗口长度小于存储节点从可恢复冗余数据集中回复数据的时间,使得存储节点一旦将数据分片删除,将无法在挑战时间窗口内通过数据修复完成挑战,从而能够有效防止存储方作恶,因此,本发明能够在分布式存储系统中同时支持数据持有性证明和数据修复,同时保证数据的完整性和可靠性。
(2)本发明所提供的支持数据持有性证明与数据修复的数据编码方法及系统,由客户端保存陷门随机函数的私有参数,由于利用私有参数计算较快,客户端能够实现更快的写入和下载,提高服务质量;由存储节点保存陷门随机函数的公共参数,由于利用公共参数计算较慢,能够保证数据的安全性。
(3)本发明所提供的支持数据持有性证明与数据修复的数据编码方法及系统,在挑战失败时,会触发数据修复操作,由新的存储节点修复出该挑战节点上的编码分片,由此能够保证数据的完整性;在数据修复完成后,会对修复节点重新发起挑战,避免了新的存储节点作恶,进一步保证了数据的完整性。
(4)本发明所提供的支持数据持有性证明与数据修复的数据编码方法及系统,在存储节点自检发现数据丢失时,由存储节点主动发起数据修复操作,能够保证数据的可靠性。
(5)本发明所提供的支持数据持有性证明与数据修复的数据编码方法及系统,在对数据进行冗余计算的同时,对用于数据持有性证明的验证标签也进行冗余计算,使得验证标签丢失时,也可以通过数据修复得到。
附图说明
图1为本发明实施例提供的支持数据持有性证明与数据修复的数据编码方法示意图;
图2为本发明实施例提供的数据编码示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
再详细解释本发明的技术方案之前,先对本发明中所使用的陷门随机函数作如下简要介绍:
本发明中所使用的陷门随机函数是一类特殊的陷门函数,并且满足:包括公共参数、私有参数和难度系数这三个参数,私有参数和公共参数均用于计算陷门随机函数值,且利用私有参数计算的速度比利用公共参数计算的速度快,难度系数t用于衡量两个计算速度之间的不对称程度;
在一个可选的实施方式中,陷门随机函数的公共参数为:N=pq,私有参数为:Φ(N)=(p-1)(q-1);
利用私有参数φ(N)计算陷门随机函数值的计算式为:
Figure BDA0002298387370000081
利用公共参数N计算陷门随机函数值的计算式为:
Figure BDA0002298387370000082
其中,h表示待转换的信息,e表示陷门随机函数值,mod表示取模运算,p和q均表示素数,且p和q的二进制长度均大于预设的阈值,该阈值可根据实际的安全性要求和分布式存储系统(云存储系统、区块链系统等)的计算能力等确定,例如,可以设置为1024;
在另外一个可选的实施方式中,陷门随机函数的私有参数为有限域内的随机数x,陷门随机函数T的公共参数为集合
Figure BDA0002298387370000083
利用私有参数x计算陷门随机函数值的方式为:
将编码分片等分为J个子数据块,依次编号为0~J-1;
根据
Figure BDA0002298387370000084
计算哈希值H,并根据e0=yH,
Figure BDA0002298387370000085
计算陷门随机函数值;
根据各子数据块的陷门随机函数值计算编码分片的陷门随机函数值;
利用公共参数{yi}计算陷门随机函数值的方式为:
将编码分片等分为J个子数据块,依次编号为0~J-1;
根据
Figure BDA0002298387370000091
计算各子数据块陷门随机函数值;
根据各子数据块的陷门随机函数值计算编码分片的陷门随机函数值;
其中,y0为随机选择数字;I为预设的正整数,s+j–1<I;H(·)为哈希函数,h表示待转换的信息,即编码分片的索引,|表示拼接操作;ej表示第j个子数据块的陷门随机函数值,j的取值范围为0~J-1;针对每一个子数据块分别计算一个输出值ej,之后再利用所有子数据块的输出值ej计算编码分片的陷门随机函数值,具体的计算方式可以是异或,也可以是直接拼接,或者其他计算方式;
在这种实施方式中,参数I用于限定难度t的取值,I的具体取值可根据实际的安全性要求和分布式存储系统(云存储系统、区块链系统等)的计算能力等确定,例如,可设置为1024;
应当理解的是,满足上述性质的陷门函数均可用作本发明中的陷门随机函数,更多的陷门函数实例,在此将不作一一列举。
为了在分布式存储系统中同时保证数据的完整性和可靠性,本发明所提供的支持数据持有性证明与数据修复的数据编码方法,如图1所示,包括:数据编码步骤和数据持有性证明步骤;
数据编码步骤包括:
(a1)客户端将待上传的文件F分片,并利用冗余策略R生成冗余分片;利用陷门随机函数T为各冗余分片的索引计算一个输出值后,与对应的冗余分片异或得到编码分片,并利用数据持有性证明方案S生成各编码分片的验证标签;
在一个可选的实施方式中,如图2所示,步骤(a1)包括:
客户端将待上传的文件F等分为多个数据片,并利用冗余策略R进行冗余计算,共得到k个冗余分片m1~mk;冗余策略R可选择任意一种冗余策略,例如纠删码、多副本等;
获得k个冗余分片m1~mk的索引h1~hk,并利用陷门随机函数的私有参数为索引h1~hk分别计算一个输出信息,得到k个输出信息e1~ek;将k个输出信息e1~ek与k个冗余分片m1~mk进行异或,得到k个编码分片d1~dk,即
Figure BDA0002298387370000101
利用数据持有性证明方案S生成编码分片d1~dk的验证标签,得到k个验证标签σ1~σk;数据持有性证明方案S同样可任意选择,例如,BLS-PDP、MF-PDP等,数据持有性证明方案S的公钥及私钥,根据所选定的具体方案相应生成即可;
在对数据进行冗余的同时,还可在利用数据持有性证明方案S生成各编码分片的验证标签之后,利用冗余策略R对验证标签也进行冗余计算,得到的冗余的验证标签也随编码分片一起发送至存储节点,从而在用于数据持有性证明的验证标签丢失时,也可以通过数据修复得到;
(a2)将各编码分片及其验证标签、陷门随机函数T的公共参数以及数据持有性证明方案S的公钥发送至存储节点,将编码分片索引与存储节点的对应关系、陷门随机函数T的难度系数t以及数据持有性证明方案S的公钥发送至审计节点,并将陷门随机函数T的私有参数以及数据持有性证明方案S的私钥保存在客户端本地;由客户端保存陷门随机函数的私有参数,由于利用私有参数计算较快,客户端能够实现更快的写入和下载,提高服务质量;由存储节点保存陷门随机函数的公共参数,由于利用公共参数计算较慢,能够保证数据的安全性;
数据持有性证明步骤包括:
(b1)审计节点随机选取一个存储节点作为挑战节点,从挑战节点所对应的索引集合中随机选取一个子集作为挑战集合;
(b2)审计节点根据难度系数t确定挑战时间窗口后,根据挑战集合向挑战节点发起挑战,以使得挑战节点接受挑战后,根据挑战集合获得相应的编码分片及其验证标签,之后根据数据持有性证明方案S生成各编码分片的数据持有性证明,并发送给审计节点;
(b3)若审计节点在挑战时间窗口内接收到了挑战节点发送的数据持有性证明,且根据数据持有性方案S对该数据持有性证明的验证通过,则判定挑战成功;否则,判定挑战失败;
其中,挑战时间窗口的长度小于存储节点从可恢复冗余数据集中回复数据的时间,因此,若存储节点作恶,将某个编码分片从本地删除,则审计节点就该编码分片发起挑战时,存储节点无法在挑战时间窗口内通过数据修复重新得到该编码分片,从而挑战失败;
上述支持数据持有性证明与数据修复的数据编码方法,同时利用冗余策略和数据持有性证明方案完成数据编码,并且审计节点在向存储节点发起挑战时,根据陷门随机函数的难度系数确定的挑战时间窗口长度小于存储节点从可恢复冗余数据集中回复数据的时间,使得存储节点一旦将数据分片删除,将无法在挑战时间窗口内通过数据修复完成挑战,从而能够有效防止存储方作恶,因此,能够在分布式存储系统中同时支持数据持有性证明和数据修复,同时保证数据的完整性和可靠性。
为进一步保证数据的完整性,上述支持数据持有性证明与数据修复的数据编码方法,还包括:
(b4)若挑战失败,则审计节点将原挑战节点所对应的索引集合作为修复集合,并重新选取一个存储节点作为修复节点;
(b5)审计节点根据难度系数t确定修复时间窗口后,根据修复集合向修复节点发送修复任务,以使得修复节点接收到修复任务后,根据修复集合确定需要修复的编码分片,并根据冗余策略R进行数据修复,同时存储修复得到的编码分片;
在进行数据修复的过程中,修复节点会从其他存储节点获取数据,从而得到可恢复冗余数据集,然后利用可恢复冗余数据集完成数据修复;进行数据修复的具体方式由具体选用的冗余策略决定,不失一般地,以在多副本场景下修复单个数据片dx为例,首先获取另一数据片副本dy,利用陷门随机函数用hy生成ey以及用hx生成ex,用,根据
Figure BDA0002298387370000121
得到dx,由于验证标签也进行了相应冗余,故标签亦可恢复,对修复集合对应的所有数据片重复进行此操作,即可修复回数据;
(b6)审计节点在修复时间窗口结束后,对编码分片索引与存储节点之间的对应关系进行更新,并从修复节点所对应的索引集合中随机选取一个子集作为新的挑战集合,将修复节点作为新的挑战节点,之后执行步骤(b2)~(b3),以重新发起挑战;
其中,修复时间窗口的长度大于存储节点从可恢复冗余数据集中回复数据的时间,因此,保证原本被挑战节点删除的数据能够在修复时间窗口内由修复节点修复得到,并在修复节点本地进行存储;
在挑战节点挑战失败时,会触发数据修复操作,由新的存储节点修复出该挑战节点上的编码分片,由此能够保证数据的完整性;在数据修复完成后,会对修复节点重新发起挑战,避免了新的存储节点作恶,进一步保证了数据的完整性。
为了有效避免节点作恶,进一步保证数据的完整性,上述支持数据持有性证明与数据修复的数据编码方法,还可包括:
若挑战失败,则对接受挑战的存储节点进行惩罚;
通过引入惩罚机制,对挑战失败的存储节点进行惩罚,增加了存储节点的作恶成本,从而有效避免存储节点作恶;对作恶节点进行惩罚的具体方式,可根据实际的存储系统确定,例如,用于区块链存储领域时,存储节点如果想通过出租存储空间获利,先需要根据自己出租的空间抵押一部分钱,所以惩罚可以扣除抵押的钱,此外,还可以引入声望系统,声望越低获得订单概率越低。
为了保证数据存储的可靠性,上述支持数据持有性证明与数据修复的数据编码方法,还可包括:
若存储节点自检有数据丢失,则从其余存储节点获取可恢复冗余数据集后,根据冗余策略R对丢失的数据进行修复;
在存储节点自检发现数据丢失时,由存储节点主动发起数据修复操作,能够保证数据的可靠性。
本发明还提供了一种系统,包括计算机可读存储介质和处理器,计算机可读存储介质用于存储可执行程序;
处理器用于读取计算机可读存储介质中存储的可执行程序,执行上述支持数据持有性证明与数据修复的数据编码方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种支持数据持有性证明与数据修复的数据编码方法,其特征在于,包括:数据编码步骤和数据持有性证明步骤;
所述数据编码步骤包括:
(a1)客户端将待上传的文件F分片,并利用冗余策略R生成冗余分片;利用陷门随机函数T为各冗余分片的索引计算一个输出值后,与对应的冗余分片异或得到编码分片,并利用数据持有性证明方案S生成各编码分片的验证标签;
(a2)将各编码分片及其验证标签、陷门随机函数T的公共参数以及数据持有性证明方案S的公钥发送至存储节点,将编码分片索引与存储节点的对应关系、陷门随机函数T的难度系数t以及数据持有性证明方案S的公钥发送至审计节点,并将陷门随机函数T的私有参数以及数据持有性证明方案S的私钥保存在客户端本地;
所述数据持有性证明步骤包括:
(b1)审计节点随机选取一个存储节点作为挑战节点,从所述挑战节点所对应的索引集合中随机选取一个子集作为挑战集合;
(b2)审计节点根据难度系数t确定挑战时间窗口后,根据所述挑战集合向所述挑战节点发起挑战,以使得所述挑战节点接受挑战后,根据所述挑战集合获得相应的编码分片及其验证标签,之后根据数据持有性证明方案S生成各编码分片的数据持有性证明,并发送给审计节点;
(b3)若审计节点在所述挑战时间窗口内接收到了所述挑战节点发送的数据持有性证明,且根据数据持有性方案S对该数据持有性证明的验证通过,则判定挑战成功;否则,判定挑战失败;
其中,陷门随机函数的私有参数和公共参数均用于计算陷门随机函数值,且利用私有参数计算的速度比利用公共参数计算的速度快,难度系数t用于衡量两个计算速度之间的不对称程度;所述挑战时间窗口的长度小于存储节点从可恢复冗余数据集中回复数据的时间。
2.如权利要求1所述的支持数据持有性证明与数据修复的数据编码方法,其特征在于,还包括:
(b4)若挑战失败,则审计节点将原挑战节点所对应的索引集合作为修复集合,并重新选取一个存储节点作为修复节点;
(b5)审计节点根据难度系数t确定修复时间窗口后,根据所述修复集合向所述修复节点发送修复任务,以使得所述修复节点接收到修复任务后,根据所述修复集合确定需要修复的编码分片,并根据冗余策略R进行数据修复,同时存储修复得到的编码分片;
(b6)审计节点在所述修复时间窗口结束后,对编码分片索引与存储节点之间的对应关系进行更新,并从所述修复节点所对应的索引集合中随机选取一个子集作为新的挑战集合,将所述修复节点作为新的挑战节点,之后执行步骤(b2)~(b3),以重新发起挑战;
其中,所述修复时间窗口的长度大于存储节点从可恢复冗余数据集中回复数据的时间。
3.如权利要求1所述支持数据持有性证明与数据修复的数据编码方法,其特征在于,还包括:
若挑战失败,则对接受挑战的存储节点进行惩罚。
4.如权利要求1所述的支持数据持有性证明与数据修复的数据编码方法,其特征在于,还包括:
若存储节点自检有数据丢失,则从其余存储节点获取可恢复冗余数据集后,根据冗余策略R对丢失的数据进行修复。
5.如权利要求1所述的支持数据持有性证明与数据修复的数据编码方法,其特征在于,还包括:
利用数据持有性证明方案S生成各编码分片的验证标签之后,利用冗余策略R对验证标签也进行冗余计算,得到的冗余的验证标签也随编码分片一起发送至存储节点。
6.如权利要求1-5任一项所述的支持数据持有性证明与数据修复的数据编码方法,其特征在于,陷门随机函数T的公共参数为:N=pq,私有参数为:Φ(N)=(p-1)(q-1);
利用私有参数φ(N)计算陷门随机函数值的计算式为:
Figure FDA0002298387360000031
利用公共参数N计算陷门随机函数值的计算式为:
Figure FDA0002298387360000032
其中,h表示待转换的信息,e表示陷门随机函数值,mod表示取模运算,p和q均表示素数,且p和q的二进制长度均大于预设的阈值。
7.如权利要求1-5任一项所述的支持数据持有性证明与数据修复的数据编码方法,其特征在于,陷门随机函数T的私有参数为有限域内的随机数x,陷门随机函数T的公共参数为集合
Figure FDA0002298387360000033
利用私有参数x计算陷门随机函数值的方式为:
将编码分片等分为J个子数据块,依次编号为0~J-1;
根据
Figure FDA0002298387360000034
计算哈希值H,并根据e0=yH,
Figure FDA0002298387360000035
计算各子数据块的陷门随机函数值;
根据各子数据块的陷门随机函数值计算编码分片的陷门随机函数值;
利用公共参数{yi}计算陷门随机函数值的方式为:
将编码分片等分为J个子数据块,依次编号为0~J-1;
根据
Figure FDA0002298387360000036
计算各子数据块的陷门随机函数值;
根据各子数据块的陷门随机函数值计算编码分片的陷门随机函数值;
其中,y0为随机选择数字;I为预设的正整数,s+j–1<I;H(·)为哈希函数,h表示待转换的信息,|表示拼接操作;ej表示第j个子数据块的陷门随机函数值,j的取值范围为0~J-1。
8.如权利要求1-5任一项所述的支持数据持有性证明与数据修复法的数据编码方法,其特征在于,所述步骤(a1)包括:
客户端将待上传的文件F等分为多个数据片,并利用冗余策略R进行冗余计算,共得到k个冗余分片m1~mk
获得k个冗余分片m1~mk的索引h1~hk,并利用陷门随机函数的私有参数为索引h1~hk分别计算一个输出信息,得到k个输出信息e1~ek;将k个输出信息e1~ek与k个冗余分片m1~mk进行异或,得到k个编码分片d1~dk
利用数据持有性证明方案S生成编码分片d1~dk的验证标签,得到k个验证标签σ1~σk
9.一种系统,其特征在于,包括计算机可读存储介质和处理器,所述计算机可读存储介质用于存储可执行程序;
所述处理器用于读取所述计算机可读存储介质中存储的可执行程序,执行权利要求1-8任一项所述的支持数据持有性证明与数据修复的数据编码方法。
CN201911211948.0A 2019-12-02 2019-12-02 支持数据持有性证明与数据修复的数据编码方法及系统 Active CN111104694B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911211948.0A CN111104694B (zh) 2019-12-02 2019-12-02 支持数据持有性证明与数据修复的数据编码方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911211948.0A CN111104694B (zh) 2019-12-02 2019-12-02 支持数据持有性证明与数据修复的数据编码方法及系统

Publications (2)

Publication Number Publication Date
CN111104694A true CN111104694A (zh) 2020-05-05
CN111104694B CN111104694B (zh) 2021-12-31

Family

ID=70420778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911211948.0A Active CN111104694B (zh) 2019-12-02 2019-12-02 支持数据持有性证明与数据修复的数据编码方法及系统

Country Status (1)

Country Link
CN (1) CN111104694B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827176A (zh) * 2022-04-08 2022-07-29 华中科技大学 一种分散式存储系统中防御女巫攻击的方法和系统
CN115292752A (zh) * 2022-10-09 2022-11-04 深圳市明源云科技有限公司 文件数据的存储验证方法、存储验证装置、设备及介质
CN115357939A (zh) * 2022-10-19 2022-11-18 北京金睛云华科技有限公司 一种隐私保护数据计算方法和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254572A1 (en) * 2007-01-05 2009-10-08 Redlich Ron M Digital information infrastructure and method
US20100250497A1 (en) * 2007-01-05 2010-09-30 Redlich Ron M Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US20100268692A1 (en) * 2009-04-20 2010-10-21 Cleversafe, Inc. Verifying data security in a dispersed storage network
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法
CN103700059A (zh) * 2013-12-19 2014-04-02 南京信息工程大学 基于多功能数字水印的云存储图像数据持有性证明方法
CN106611128A (zh) * 2016-07-19 2017-05-03 四川用联信息技术有限公司 云存储中基于二次加密的数据验证和数据恢复算法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254572A1 (en) * 2007-01-05 2009-10-08 Redlich Ron M Digital information infrastructure and method
US20100250497A1 (en) * 2007-01-05 2010-09-30 Redlich Ron M Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US20100268692A1 (en) * 2009-04-20 2010-10-21 Cleversafe, Inc. Verifying data security in a dispersed storage network
CN102710757A (zh) * 2012-05-21 2012-10-03 北京航空航天大学 一种分布式云存储数据完整性保护方法
CN103700059A (zh) * 2013-12-19 2014-04-02 南京信息工程大学 基于多功能数字水印的云存储图像数据持有性证明方法
CN106611128A (zh) * 2016-07-19 2017-05-03 四川用联信息技术有限公司 云存储中基于二次加密的数据验证和数据恢复算法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827176A (zh) * 2022-04-08 2022-07-29 华中科技大学 一种分散式存储系统中防御女巫攻击的方法和系统
CN115292752A (zh) * 2022-10-09 2022-11-04 深圳市明源云科技有限公司 文件数据的存储验证方法、存储验证装置、设备及介质
CN115357939A (zh) * 2022-10-19 2022-11-18 北京金睛云华科技有限公司 一种隐私保护数据计算方法和设备
CN115357939B (zh) * 2022-10-19 2022-12-13 北京金睛云华科技有限公司 一种隐私保护数据计算方法和设备

Also Published As

Publication number Publication date
CN111104694B (zh) 2021-12-31

Similar Documents

Publication Publication Date Title
CN111104694B (zh) 支持数据持有性证明与数据修复的数据编码方法及系统
CN107342867B (zh) 签名验签方法和装置
US20200252221A1 (en) Optimizations for verification of interactions system and method
CN104811300B (zh) 云存储的密钥更新方法及云数据审计系统的实现方法
CN106789090A (zh) 基于区块链的公钥基础设施系统及半随机联合证书签名方法
CN105227317B (zh) 一种支持认证器隐私的云数据完整性检测方法和系统
CN108009445B (zh) 一种半中心化的可信数据管理系统
CN110969207B (zh) 电子证据处理方法、装置、设备以及存储介质
CN109379343B (zh) 一种区块链的异构共识方法及终端
CN114372296B (zh) 一种基于区块链的用户行为数据审计方法及系统
CN115208628B (zh) 基于区块链的数据完整性验证方法
CN112565264B (zh) 一种基于区块链的云存储数据完整性检测方法
CN106612272A (zh) 云存储中一种数据篡改的验证和恢复算法
CN112749417A (zh) 基于区块链的电子学位证照数据保护及共享系统
CN111694895B (zh) 区块链远程数据审计方法、系统
CN115552397A (zh) 多方和多用途抗量子签名和密钥建立
CN111475839B (zh) 一种用于不可信环境的冗余数据编码方法、存储介质
CN111865595B (zh) 一种区块链的共识方法及装置
CN108664814A (zh) 一种基于代理的群组数据完整性验证方法
CN109274674B (zh) 一种具有高安全性的区块链异构共识方法及终端
CN109687967B (zh) 电子签名方法和设备
CN111353780A (zh) 授权验证方法、装置及存储介质
CN110912687A (zh) 一种分布式身份验证方法
CN116232600A (zh) 一种基于区块链的数据安全存储方法及系统
KR100642979B1 (ko) 서명속성을 이용한 전자서명 및 그 검증방법과 이를실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체

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