CN113553626A - 一种数据完整性检测方法、装置、设备及存储介质 - Google Patents
一种数据完整性检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113553626A CN113553626A CN202110889995.1A CN202110889995A CN113553626A CN 113553626 A CN113553626 A CN 113553626A CN 202110889995 A CN202110889995 A CN 202110889995A CN 113553626 A CN113553626 A CN 113553626A
- Authority
- CN
- China
- Prior art keywords
- file
- matrix
- target
- data
- decoding
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种数据完整性检测方法、装置、设备及存储介质。该方法包括:对原始文件进行编码,形成目标文件矩阵;将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件;将所述编码后文件存储至数据库中;对所述数据库中的编码后文件进行解码,得到解码后的检验元信息;若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。通过本发明实施例的技术方案,能够快速、准确的判断文件的完整性破坏,提高了数据完整性的检测效率。
Description
技术领域
本发明实施例涉及信息处理技术领域,尤其涉及一种数据完整性检测方法、装置、设备及存储介质。
背景技术
为了方便用户下载及使用文件,通常以按照特定格式将关联性文件制作成单一文件的形式存储文件。然而上述存储方式在给用户提供方便的同时,也带来了一些安全问题,例如,在存储的过程中用户存储的文件可能会被破坏。因此,对文件中文本数据的完整性进行检测具有重要意义。
然而,由于存储数据的冗余空间较小,现有技术中检测文本数据完整性时需要对整个文件进行检测,方法相对较慢,效率较低,影响用户的使用。
发明内容
本发明提供一种数据完整性检测方法、装置、设备及存储介质,可以实现快速、准确地检测文件的完整性,提高数据完整性的检测效率。
第一方面,本发明实施例提供了一种数据完整性检测方法,包括:
对原始文件进行编码,形成目标文件矩阵;
将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件;
将所述编码后文件存储至数据库中;
对所述数据库中的编码后文件进行解码,得到解码后的检验元信息;
若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。
可选的,所述对原始文件进行编码,形成目标文件矩阵,包括:
将所述原始文件等分成若干数据片段,每个所述数据片段形成向量组;
将所述向量组划分成若干个数据块,所述数据块形成初始文件矩阵;
对所述初始文件矩阵的每一列进行编码得到中间文件矩阵;
对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵。
上述技术方案通过将原始文件等分成若干数据片段,再将每个数据片段形成的向量组分成若干个数据块;对由数据块形成的初始文件矩阵的每一列进行编码得到中间文件矩阵;再将中间文件矩阵进行编码以将中间文件矩阵扩充冗余列,形成目标文件矩阵,有利于后续对文件完整性的检测。
可选的,所述对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵,包括:
将RS码的预编码矩阵中的数据块绑定随机值,得到目标编码矩阵;
将所述中间文件矩阵与所述目标编码矩阵进行相乘操作,得到所述目标文件矩阵。
上述技术方案通过使用RS码对中间文件进行再次编码,为原始文件中的数据提供了较强的抗损坏能力,使得目标文件矩阵有更高的数据可用性,并且通过将预编码矩阵中的数据块绑定随机值,有效防止了逆解目标编码矩阵的情况发生,保护了数据的安全。
可选的,所述将所述原始文件等分成若干数据片段,包括:
若所述原始文件不是m的整数倍,将所述原始文件填充至m的整数倍;
将填充后的文件等分成m个数据片段;其中,m大于0。
上述技术方案通过将原始文件进行填充后再等分的方式,使得原始文件中的数据均能被检测,提高了原始文件中数据完整性的检测效率。
可选的,所述对所述数据库中的编码后文件进行解码,得到解码后的检验元信息,包括:
确定多个互异的索引值;其中,所述索引值为需要检测的编码后文件的列号;
当接收到完整性检测的请求,基于所述索引值的权重值确定所述索引值对应的列号的检测值;
基于所述检测值对所述编码后文件对应的每列数据块进行解码,得到每列数据块对应的检验元信息。
上述技术方案通过对需要检测的编码后文件确定索引值,当接收到完整性检测的请求时,根据发送的索引值和权重值即可返回指定数据块上的检验元信息,能够实现在高检测效率的基础上无限次的对数据完整性进行检测。
可选的,还包括:
若解码得到的检验元信息与对应的目标检验元信息不相同,判断所述数据库中的编码后文件的完整性被破坏;
将所述编码后文件中被破坏的错误数据进行定位,并对完整性被破坏的编码后文件进行解码恢复。
上述技术方案通过对完整性被破坏的错误数据进行快速、准确的定位,能够准确的检测出编码后文件中被破坏的错误数据,随着检测列数的增加,即使损坏部分的数据小于1比特,也能准确有效的定位出错误数据,并且成功对完整性被破坏的编码后文件进行解码恢复;并且,通过对原始文件进行两次编码,使得编码后文件中的数据具有很强的抗损坏能力,在面对大面积、高频率的文件损坏时,也可以以高恢复率对完整性被破坏的编码后文件进行解码恢复,提高了数据的可用性。
可选的,在所述对原始文件进行编码,形成目标文件矩阵之前,还包括:
为所述原始文件生成多个密钥;
基于所述多个密钥中的一个密钥生成所述预编码矩阵绑定的随机值,基于剩余密钥生成目标检验元信息。
上述技术方案通过为原始文件生成多个密钥,保证了目标文件矩阵及目标检验元信息的可靠性,提高了数据完整性的检测效率。
第二方面,本发明实施例还提供了一种数据完整性检测装置,该装置包括:
第一形成模块,用于对原始文件进行编码,形成目标文件矩阵;
第二形成模块,用于将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件;
存储模块,用于将所述编码后文件存储至数据库中;
解码模块,用于对所述数据库中的编码后文件进行解码,得到解码后的检验元信息;
判断模块,用于若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明任一实施例所述的方法。
本发明实施例的技术方案将编码后的原始文件所形成的目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件,并将编码后文件存储至数据库中,对数据库中的编码后文件进行解码,通过将编码后文件解码得到的检验元信息与目标检验元信息进行比较,可以快速、准确地对文件的完整性进行检测,提高了数据完整性的检测效率。
附图说明
图1是本发明实施例提供的一种数据完整性检测方法的流程图;
图2a是本发明实施例提供的一种数据完整性检测方法的流程图;
图2b是本发明实施例所适用的一种对原始文件的划分过程的示意图;
图2c是本发明实施例所适用的一种初始文件矩阵形成过程的示意图;
图2d是本发明实施例所适用的一种中间文件矩阵形成过程的示意图;
图2e为本发明实施例所适用的一种目标文件矩阵形成过程的示意图;
图2f为本发明实施例所适用的一种检测阶段与解码恢复阶段的流程示意图;
图3是本发明实施例提供的一种数据完整性检测装置的结构示意图;
图4是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明实施例提供的一种数据完整性检测方法的流程图,本实施例可适用于对数据完整性是否被破坏进行检测的情况,该方法可以由数据完整性检测装置来执行,该装置可采用硬件和/或软件的方式实现,并一般可集成在电子设备中。
如图1所示,本发明实施例提供的一种数据完整性检测方法具体包括如下步骤:
S110:对原始文件进行编码,形成目标文件矩阵。
其中,原始文件可以是以镜像形式进行存储的镜像文件,还可以是其他形式的文件。其中,镜像文件中通常包含引导文件、系统文件或分区表信息等文件内容,本实施例对此不进行限制。
在本发明实施例中,可以对原始文件进行划分处理,并采用系统线性分组码以及系统里德-所罗门编码(Reed-solomon codes,RS)进行编码,并进行扩充处理,得到目标文件矩阵。具体的,可以将原始文件等分成数据片段,并将数据片段划分成若干数据块,各个数据块形成初始文件矩阵,然后通过系统线性分组码对初始文件矩阵进行编码得到中间文件矩阵,通过系统RS码对中间文件矩阵进行编码,再进行列的扩充,从而得到目标文件矩阵。具体介绍可以参考下述实施例的介绍。
S120:将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件。
其中,检验元信息可以是为了保证数据的安全性在各数据块中绑定的一个随机值,一个原始文件通常需要若干个检验元信息,生成检验元信息时通常需要利用由密码散列函数生成的消息认证码。目标检验元信息可以是为目标文件矩阵中的数据块所绑定的随机值,为了保证目标文件矩阵中的数据块的安全性,防止被篡改,需要给目标文件矩阵中的所有数据块均绑定一个目标检验元信息,为加强目标文件矩阵中数据块的抗篡改能力,同一目标文件矩阵中的数据块所绑定的目标检验元信息可以不相同,本实施例对此不进行限制。
S130:将所述编码后文件存储至数据库中。
在本发明实施例中,将目标文件矩阵中的数据块绑定目标检验元信息后,形成编码后文件,并存储至数据库中。
S140:对所述数据库中的编码后文件进行解码,得到解码后的检验元信息。
其中,解码是与编码相对应的,是编码的逆过程。对数据库中存储的编码后文件进行解码,则可得到解码后的检验元信息,通过将解码得到的检验元信息与对应的目标检验元信息进行对比,即可判断出数据库中的编码后文件的完整性是否被破坏。
S150:若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。
具体的,将对编码后文件进行解码后得到的检验元信息与目标文件矩阵中的数据块所绑定的目标检验元信息进行对比,如果绑定的目标检验元信息与解码后得到的检验元信息相同,则证明检验元信息未被篡改,从而表明编码后的文件未被篡改。
在本发明实施例中,可选的,原始文件可以是镜像文件,镜像(Mirroring)是文件存储的一种形式,一般的镜像文件和ZIP压缩包比较类似,都是按照特定的格式把一些关联性的文件制作成单一的文件,可以为用户的下载及使用提供了方便。通常把镜像文件进行扩展,例如常见的引导文件、系统文件、分区表信息等,都属于镜像文件中的一部分内容。由此,镜像文件可能包含了一个分区甚至一块硬盘的全部信息。但是,镜像文件在提供方便的同时,镜像文件的安全问题也变的较为突出,其中包括镜像文件的数据完整性问题。
相关技术中,用来检测数据完整性的方法主要有消息认证码(MessageAuthentication Code,MAC)、数字签名和数字水印三种。在密码学中,MAC主要用于通过消息的来源完成消息真实性的认证以及保护消息数据的完整性;数字签名又称公钥数字签名,只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明;数字水印是一种将特定的数字信号嵌入数字产品中保护数字产品版权或完整性的技术。
上述三种方法应用在镜像文件中时存在以下不足:数字签名的计算速度一般相对较慢;MAC的计算速度相对数字签名虽然要快一些,但在计算过程中须使用共享密钥,导致数据的安全性不能得到保障;由于镜像文件中数据的冗余空间小,数字水印很难应用在镜像文件中。本发明实施例提供的技术方案,通过将原始文件编码成为文件矩阵,并为文件矩阵的数据块绑定检验元信息,在解码后通过检验元信息的比对,判断文件是否被破坏,可以提高完整性检测的效率,并且可以保证数据的安全性。
本发明实施例的技术方案将编码后的原始文件所形成的目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件,并将编码后文件存储至数据库中,对数据库中的编码后文件进行解码,通过将编码后文件解码得到的检验元信息与目标检验元信息进行比较,可以快速、准确地对文件的完整性进行检测,提高了数据完整性的检测效率。
图2a为本发明实施例提供的一种数据完整性检测方法的流程图。在本实施例中,可选的,所述对原始文件进行编码,形成目标文件矩阵,包括:将所述原始文件等分成若干数据片段,每个所述数据片段形成向量组;将所述向量组划分成若干个数据块,所述数据块形成初始文件矩阵;对所述初始文件矩阵的每一列进行编码得到中间文件矩阵;对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵。
可选的,所述对所述数据库中的编码后文件进行解码,得到解码后的检验元信息,包括:确定多个互异的索引值;其中,所述索引值为需要检测的编码后文件的列号;当接收到完整性检测的请求,基于所述索引值的权重值确定所述索引值对应的列号的检测值;基于所述检测值对所述编码后文件对应的每列数据块进行解码,得到每列数据块对应的检验元信息。
可选的,所述方法还包括:若解码得到的检验元信息与对应的目标检验元信息不相同,判断所述数据库中的编码后文件的完整性被破坏;将所述编码后文件中被破坏的错误数据进行定位,并对完整性被破坏的编码后文件进行解码恢复。
可选的,在所述对原始文件进行编码,形成目标文件矩阵之前,所述方法还包括:为所述原始文件生成多个密钥;基于所述多个密钥中的一个密钥生成所述预编码矩阵绑定的随机值,基于剩余密钥生成目标检验元信息。
如图2a所示,本发明实施例提供的一种数据完整性检测方法包括以下具体步骤:
S210:为所述原始文件生成多个密钥;基于所述多个密钥中的一个密钥生成所述预编码矩阵绑定的随机值,基于剩余密钥生成目标检验元信息。
其中,生成密钥的阶段也可以称为准备阶段,为数据完整性检测方法中的第一阶段,通过该阶段可以为编码阶段准备各种密钥。密钥是通过密钥生成算法KeyGen(λ)生成的,其中λ为安全参数。该算法可为每个原始文件随机产生n+1个密钥。该密钥可以以函数乘随机值的形式出现,故一个密钥可能会产生不同的随机值。
具体的,基于密钥生成算法为每个原始文件随机产生的n+1个密钥。其中一个密钥用于在文件编码时为隐藏RS码的预编码矩阵而在预编码矩阵中的数据块中绑定的随机值;剩余的密钥用于生成目标文件矩阵中的数据块绑定的目标检验元信息。
由此,通过为编码阶段生成密钥。保证了目标文件矩阵及目标检验元信息的可靠性。
在本发明实施例中,编码阶段为数据完整性检测方法中的第二阶段,可以实现对原始文件的编码以及相关目标检验元信息的计算,具体编码过程可如下所示。
S220:将所述原始文件等分成若干数据片段,每个所述数据片段形成向量组。
在本发明实施例的一个实施方式中,可选的,所述将所述原始文件等分成若干数据片段,包括:若所述原始文件不是m的整数倍,将所述原始文件填充至m的整数倍;将填充后的文件等分成m个数据片段;其中,m大于0,m指的是数据片段的个数。若原始文件是m的整数倍,则不需要对原始文件填充,直接将原始文件进行等分。其中,若原始文件不是m的整数倍,则可先用指定的比特流将原始文件填充至m的整数倍后,再将原始文件等分成m个数据片段。
由此,通过将原始文件进行填充后再等分的方式,使得原始文件中的数据均能被检测,提高了原始文件中数据完整性的检测效率。
在本发明实施例中,每个数据片段形成一个向量组,例如,若存在4个数据片段,则形成4个向量组,其中,每个向量组可以是列向量组。
对于原始文件的划分进行举例说明,例如,如图2b所示,空白框即为数据片段。示例性的,将数据片段的个数m设定为m=4,可以将原始文件划分成了4个数据片段,其中,每个数据片段均可形成一个向量组,其中,向量组可以分别是F1,F2,F3和F4。
S230:将所述向量组划分成若干个数据块,所述数据块形成初始文件矩阵。
在本发明实施例中,初始文件矩阵可以由将向量组划分后得到的若干个数据块所组成。例如,如图2c所示,将每个向量组划分成了4个数据块,其中,向量组F1划分为F1,1、F1,2、F1,3及F1,44个数据块,F2划分为F2,1、F2,2、F2,3及F2,44个数据块,F3划分为F3,1、F3,2、F3,3及F3,44个数据块,F4划分为F4,1、F4,2、F4,3及F4,44个数据块,数据块F1,1至F4,4形成初始文件矩阵。
S240:对所述初始文件矩阵的每一列进行编码得到中间文件矩阵。
在本发明实施例中,对初始文件矩阵的每一列采用系统线性分组码编码得到中间文件矩阵,即通过在初始文件矩阵每一列的第k个数据块后附加r=(n-k)分组码校验块得到中间文件矩阵。例如,如图2d所示,左斜均匀点线表示加入系统线性分组码的分组码校验块。对向量组F1-F4的每一列分别用系统线性分组码进行编码,在每一列的第4个数据块后附加r=2个分组码校验块,即可形成由S1-S4组成的中间文件矩阵G1。
S250:对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵。
在本发明实施例中,可以以增加冗余列的方式将中间文件矩阵的列进行扩充,得到目标文件矩阵,其中,扩充前已存在的列特性不变。示例性的,可以在目标文件矩阵末尾列之后进行扩充冗余列。
在本发明实施例的一个实施方式中,可选的,所述对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵,包括:将RS码的预编码矩阵中的数据块绑定随机值,得到目标编码矩阵;将所述中间文件矩阵与所述目标编码矩阵进行相乘操作,得到所述目标文件矩阵。其中,预编码矩阵中每个数据块绑定的随机值可以是相同的,为了防止逆解出目标编码矩阵,故需要将预编码矩阵的数据块绑定随机值,保证数据安全。
由此,通过使用RS码对中间文件进行再次编码,为原始文件中的数据提供了较强的抗损坏能力,使得目标文件矩阵有更高的数据可用性,并且通过将预编码矩阵中的数据块绑定随机值,有效防止了逆解目标编码矩阵的情况发生,保护了数据的安全。
具体的,对形成目标文件矩阵的方法进行举例说明,如图2e所示,左斜非均匀点线表示RS码校验块,所示右斜非均匀点线表示分组码校验块上的RS码校验块。中间文件矩阵G1由S1-S4组成,可以用一个(n,m)的系统RS码对中间文件矩阵G1进行编码,则可将G1从4列扩充至6列,得到由S1-S6组成的目标文件矩阵G2,G2保证了前4列数据的特性不变,其中,G2=G1×A,A可以是预编码矩阵。
S260:将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件。
S270:将所述编码后文件存储至数据库中。
在本发明实施例中,将编码后文件存储至数据库中,为数据完整性检测方法中的第三个阶段-存储阶段。
S280:确定多个互异的索引值。
其中,所述索引值为需要检测的编码后文件的列号;编码后文件的各个列号之间是互不相同的。在一个具体的例子中,可采用随机抽样的方式为需要检测的编码后文件随机生成p个互异的索引值,用来表明用户需要检测数据库中的哪些列。
S290:当接收到完整性检测的请求,基于所述索引值的权重值确定所述索引值对应的列号的检测值。
在本发明实施例中,不同索引值对应的权重值不同,可根据与检索值对应的权重值确定出索引值对应列号的检测值。其中,检测阶段也可叫做挑战-应答阶段,为数据完整性检测方法中的第四阶段,在检测阶段中,用户可以定期向数据库发起数据完整性检测的请求,基于该请求确定索引值对应每列的检测值,从而确定对哪些列号的数据块进行检测。
S2100:基于所述检测值对所述编码后文件对应的每列数据块进行解码,得到每列数据块对应的检验元信息。
在本发明实施例中,可以基于检测值的大小对每列数据块解码,例如,当检测大于设定值,则对检测值对应的目标列数据块进行解码,得到每列数据块对应的检验元信息,从而可以将每列数据块解码得到的检验元信息与对应的目标检测元信息进行比对,从而判断文件的完整性。
S2110:判断解码得到的检验元信息与对应的目标检验元信息是否相同。若是,执行S2120;若否,执行S2130。
S2120:判断所述数据库中的编码后文件的完整性未被破坏。
S2130:判断所述数据库中的编码后文件的完整性被破坏。
由此,通过将原始文件编码成目标文件矩阵,并将目标文件矩阵中的数据块绑定目标检测元信息,当接收到完整性检测的请求时,基于检测值对编码后文件对应的每列数据块进行解码,得到每列数据块对应检验元信息,通过将每列数据块对应的检测元信息和对应的目标检验元信息进行比对,从而判断编码后的文件是否被破坏,即可以通过对每一列数据块对应的检测元信息进行分析,从而判断编码后文件是否被破坏,从而可以将相关技术中多个响应值压缩至一个响应值的方式(即检测所有数据块产生的多个响应值压缩成检测每列数据块产生的一个响应值的方式),可以降低通信开销,提高检测速度。
S2140:将所述编码后文件中被破坏的错误数据进行定位,并对完整性被破坏的编码后文件进行解码恢复。
在本发明实施例中,将编码后文件中被破坏的错误数据进行定位,对完整性被破坏的编码后文件进行解码恢复也可以称为解码恢复阶段,为数据完整性检测方法中的第五阶段。可选的,定位可以是对编码后文件中被破坏的错误数据的位置进行确定。
示例性的,检测阶段与解码恢复阶段的流程示意图可以如图2f所示。当用户发起挑战-应答之后,如果检测到数据的完整性被破坏,则需要将编码后文件中被破坏的错误数据进行定位,并对完整性被破坏的编码后文件进行解码恢复。
在一个可选的实施例中,由于RS码具有一定的纠错能力,使用RS码对中间文件矩阵进行编码后,RS码能在未对错误数据进行定位的情况下对设定数量的错误进行纠正。因此,当出现编码后文件的完整性被破坏时,可以先让服务器自行解码恢复存储在服务器上的数据库数据。完成上述操作后,服务器将返回一个解码是否成功的结果。此时,若出现某些编码后文件解码恢复失败,再从数据库中的n个原始文件中随机抽查出p列数据块,并用RS码对其进行解码恢复。
本发明实施例提供的通过将原始文件编码成目标文件矩阵,通过将目标文件矩阵绑定目标检验元信息,形成编码后文件,并通过对编码后文件进行解码,通过解密解码后的检验元信息和目标检验元信息的对比,从而判断编码后文件是否被破坏,可以准确的检测出编码后文件中被破坏的错误数据,随着检测列数的增加,即使损坏部分的数据小于1比特,也能准确有效的定位出错误数据,并且成功对完整性被破坏的编码后文件进行解码恢复;并且,通过对原始文件进行两次编码,使得编码后文件中的数据具有很强的抗损坏能力,在面对大面积、高频率的文件损坏时,也可以以高恢复率对完整性被破坏的编码后文件进行解码恢复,提高了数据的可用性。
图3为本发明实施例提供的一种数据完整性检测装置的结构示意图,该装置可以执行上述各实施例中涉及到的数据完整性检测方法。该装置可采用软件和/或硬件的方式实现,如图3所示,所述数据完整性检测装置具体包括:第一形成模块310、第二形成模块320、存储模块330、解码模块340、判断模块350。
其中,第一形成模块310,用于对原始文件进行编码,形成目标文件矩阵;
第二形成模块320,用于将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件;
存储模块330,用于将所述编码后文件存储至数据库中;
解码模块340,用于对所述数据库中的编码后文件进行解码,得到解码后的检验元信息;
判断模块350,用于若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。
本发明实施例的技术方案将编码后的原始文件所形成的目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件,并将编码后文件存储至数据库中,对数据库中的编码后文件进行解码,通过将编码后文件解码得到的检验元信息与目标检验元信息进行比较,可以快速、准确地对文件的完整性进行检测,提高了数据完整性的检测效率。
可选的,所述第一形成模块310包括向量组形成单元、初始文件矩阵形成单元、中间文件矩阵形成单元和目标文件矩阵形成单元;
其中,向量组形成单元,用于将所述原始文件等分成若干数据片段,每个所述数据片段形成向量组;
初始文件矩阵形成单元,用于将所述向量组划分成若干个数据块,所述数据块形成初始文件矩阵;
中间文件矩阵形成单元,用于对所述初始文件矩阵的每一列进行编码得到中间文件矩阵;
目标文件矩阵形成单元,用于对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵。
可选的,所述目标文件矩阵形成单元具体可以用于,将RS码的预编码矩阵中的数据块绑定随机值,得到目标编码矩阵;将所述中间文件矩阵与所述目标编码矩阵进行相乘操作,得到所述目标文件矩阵。
可选的,所述向量组形成单元具体可以用于,若所述原始文件不是m的整数倍,将所述原始文件填充至m的整数倍;将填充后的文件等分成m个数据片段;其中,m大于0。
可选的,所述解码模块340可以包括索引值确定单元、检测值确定单元和检验元信息获取单元;
其中,索引值确定单元,用于确定多个互异的索引值;其中,所述索引值为需要检测的编码后文件的列号;
检测值确定单元,用于当接收到完整性检测的请求,基于所述索引值的权重值确定所述索引值对应的列号的检测值;
检验元信息获取单元,用于基于所述检测值对所述编码后文件对应的每列数据块进行解码,得到每列数据块对应的检验元信息。
可选的,所述数据完整性检测装置还包括错误数据定位回复模块,具体可以用于若解码得到的检验元信息与对应的目标检验元信息不相同,判断所述数据库中的编码后文件的完整性被破坏;将所述编码后文件中被破坏的错误数据进行定位,并对完整性被破坏的编码后文件进行解码恢复。
可选的,所述数据完整性检测装置还包括密钥生成模块,具体可以用于在所述对原始文件进行编码,形成目标文件矩阵之前,为所述原始文件生成多个密钥;基于所述多个密钥中的一个密钥生成所述预编码矩阵绑定的随机值,基于剩余密钥生成目标检验元信息。
本发明实施例所提供的数据完整性检测装置可执行本发明任意实施例所提供的数据完整性检测方法,具备执行方法相应的功能模块和有益效果。
图4为本发明实施例提供的一种电子设备的结构示意图,如图4所示,该电子设备包括处理器410、存储器420、输入装置430和输出装置440;电子设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;电子设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据完整性检测方法对应的程序指令/模块(例如,数据完整性检测装置中的第一形成模块310、第二形成模块320、存储模块330、解码模块340和判断模块350)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的数据完整性检测方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据完整性检测方法,该方法包括:
对原始文件进行编码,形成目标文件矩阵;
将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件;
将所述编码后文件存储至数据库中;
对所述数据库中的编码后文件进行解码,得到解码后的检验元信息;
若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据完整性检测方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据完整性检测装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据完整性检测方法,其特征在于,包括:
对原始文件进行编码,形成目标文件矩阵;
将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件;
将所述编码后文件存储至数据库中;
对所述数据库中的编码后文件进行解码,得到解码后的检验元信息;
若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。
2.根据权利要求1所述的方法,其特征在于,所述对原始文件进行编码,形成目标文件矩阵,包括:
将所述原始文件等分成若干数据片段,每个所述数据片段形成向量组;
将所述向量组划分成若干个数据块,所述数据块形成初始文件矩阵;
对所述初始文件矩阵的每一列进行编码得到中间文件矩阵;
对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵。
3.根据权利要求2所述的方法,其特征在于,所述对所述中间文件矩阵进行编码以将所述中间文件矩阵扩充冗余列,形成目标文件矩阵,包括:
将RS码的预编码矩阵中的数据块绑定随机值,得到目标编码矩阵;
将所述中间文件矩阵与所述目标编码矩阵进行相乘操作,得到所述目标文件矩阵。
4.根据权利要求2所述的方法,其特征在于,所述将所述原始文件等分成若干数据片段,包括:
若所述原始文件不是m的整数倍,将所述原始文件填充至m的整数倍;
将填充后的文件等分成m个数据片段;其中,m大于0。
5.根据权利要求1所述的方法,其特征在于,所述对所述数据库中的编码后文件进行解码,得到解码后的检验元信息,包括:
确定多个互异的索引值;其中,所述索引值为需要检测的编码后文件的列号;
当接收到完整性检测的请求,基于所述索引值的权重值确定所述索引值对应的列号的检测值;
基于所述检测值对所述编码后文件对应的每列数据块进行解码,得到每列数据块对应的检验元信息。
6.根据权利要求1所述的方法,其特征在于,还包括:
若解码得到的检验元信息与对应的目标检验元信息不相同,判断所述数据库中的编码后文件的完整性被破坏;
将所述编码后文件中被破坏的错误数据进行定位,并对完整性被破坏的编码后文件进行解码恢复。
7.根据权利要求3所述的方法,其特征在于,在所述对原始文件进行编码,形成目标文件矩阵之前,还包括:
为所述原始文件生成多个密钥;
基于所述多个密钥中的一个密钥生成所述预编码矩阵绑定的随机值,基于剩余密钥生成目标检验元信息。
8.一种数据完整性检测装置,其特征在于,包括:
第一形成模块,用于对原始文件进行编码,形成目标文件矩阵;
第二形成模块,用于将所述目标文件矩阵中的数据块绑定目标检验元信息,形成编码后文件;
存储模块,用于将所述编码后文件存储至数据库中;
解码模块,用于对所述数据库中的编码后文件进行解码,得到解码后的检验元信息;
判断模块,用于若解码得到的检验元信息与对应的目标检验元信息相同,判断所述数据库中的编码后文件的完整性未被破坏。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110889995.1A CN113553626A (zh) | 2021-08-04 | 2021-08-04 | 一种数据完整性检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110889995.1A CN113553626A (zh) | 2021-08-04 | 2021-08-04 | 一种数据完整性检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113553626A true CN113553626A (zh) | 2021-10-26 |
Family
ID=78105223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110889995.1A Pending CN113553626A (zh) | 2021-08-04 | 2021-08-04 | 一种数据完整性检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553626A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114520788A (zh) * | 2022-04-20 | 2022-05-20 | 创思(广州)电子科技有限公司 | 一种带有存储节点的自检式信息传输控制算法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834899A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种分布式自适应编码存储方法 |
CN105320899A (zh) * | 2014-07-22 | 2016-02-10 | 北京大学 | 一种面向用户的云存储数据完整性保护方法 |
CN106612172A (zh) * | 2016-07-15 | 2017-05-03 | 四川用联信息技术有限公司 | 云存储中一种可验证还原数据真实性的数据篡改恢复算法 |
CN111431721A (zh) * | 2020-04-07 | 2020-07-17 | 中科曙光(南京)计算技术有限公司 | 一种智能医疗环境下基于ibe的物联网设备加密方法 |
-
2021
- 2021-08-04 CN CN202110889995.1A patent/CN113553626A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834899A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种分布式自适应编码存储方法 |
WO2011134285A1 (zh) * | 2010-04-29 | 2011-11-03 | 中科院成都计算机应用研究所 | 一种分布式自适应编码存储方法 |
CN105320899A (zh) * | 2014-07-22 | 2016-02-10 | 北京大学 | 一种面向用户的云存储数据完整性保护方法 |
CN106612172A (zh) * | 2016-07-15 | 2017-05-03 | 四川用联信息技术有限公司 | 云存储中一种可验证还原数据真实性的数据篡改恢复算法 |
CN111431721A (zh) * | 2020-04-07 | 2020-07-17 | 中科曙光(南京)计算技术有限公司 | 一种智能医疗环境下基于ibe的物联网设备加密方法 |
Non-Patent Citations (1)
Title |
---|
樊欲文: "云存储数据完整性检测与数据恢复研究", 《中国优秀硕士学位论文全文数据库_信息科技辑》, pages 137 - 316 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114520788A (zh) * | 2022-04-20 | 2022-05-20 | 创思(广州)电子科技有限公司 | 一种带有存储节点的自检式信息传输控制算法 |
CN114520788B (zh) * | 2022-04-20 | 2022-07-15 | 创思(广州)电子科技有限公司 | 一种带有存储节点的自检式信息传输控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108664223B (zh) | 一种分布式存储方法、装置、计算机设备及存储介质 | |
CN109194466B (zh) | 一种基于区块链的云端数据完整性检测方法及系统 | |
EP2885737B1 (en) | Storing and accessing data | |
CN110457873B (zh) | 一种水印嵌入与检测方法及装置 | |
US20200344043A1 (en) | Bidirectionally linked blockchain structure | |
KR101942030B1 (ko) | 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법 | |
CN113065169A (zh) | 一种文件存证方法、装置及设备 | |
CN113553626A (zh) | 一种数据完整性检测方法、装置、设备及存储介质 | |
CN112149068A (zh) | 基于访问的授权校验方法、信息的生成方法及装置、服务器 | |
CN109145639B (zh) | 文件加密方法、解密方法及装置 | |
JP6273226B2 (ja) | 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 | |
CN106658034A (zh) | 文件存储和读取的方法及装置 | |
KR102211648B1 (ko) | 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법 | |
KR102231257B1 (ko) | 채굴 장치, 및 채굴 장치 동작 방법 | |
CN114422209B (zh) | 一种数据处理的方法、装置及存储介质 | |
CN110287716B (zh) | 数据存储方法及装置 | |
JP6273224B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法 | |
CN107292172B (zh) | 用于相对于参考计算机文件自动验证目标计算机文件的方法 | |
CN115935299A (zh) | 授权控制方法、装置、计算机设备和存储介质 | |
CN111740817A (zh) | 电力数据采集系统中集中器的代码篡改检测方法及系统 | |
CN106921644B (zh) | 客户端数据文件的验证方法及装置 | |
CN110995734A (zh) | 基于纠错码的云存储审计方法、系统及计算机设备 | |
CN109347639B (zh) | 一种序列号的生成方法及装置 | |
CN115150164B (zh) | 请求验证方法、装置、电子设备和计算机可读存储介质 | |
CN111325545B (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 |