CN103488952B - 文件完整性验证方法及文件处理器 - Google Patents
文件完整性验证方法及文件处理器 Download PDFInfo
- Publication number
- CN103488952B CN103488952B CN201310461083.XA CN201310461083A CN103488952B CN 103488952 B CN103488952 B CN 103488952B CN 201310461083 A CN201310461083 A CN 201310461083A CN 103488952 B CN103488952 B CN 103488952B
- Authority
- CN
- China
- Prior art keywords
- file
- data block
- check value
- grand
- cloth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种文件完整性验证方法及文件处理器,其中,该文件完整性验证方法包括:按预定的分块策略将文件切分成至少两个数据块;以及基于所述文件的校验值文件验证所述数据块的完整性,其中,所述校验值文件包括所述至少两个数据块各自的校验值,若任一所述数据块被认定为不完整,则判定所述文件不完整并停止所述验证。本发明实施例提供的文件完整性验证方法及文件处理器,能够缩短文件校验值提取和文件完整性验证的时间以及避免此前的文件完整性验证方法固有的可伪造特性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种文件完整性验证方法及文件处理器。
背景技术
由于文件在存储和传输过程中可能被破坏,所以要对文件进行完整性验证。通常情况下,文件完整性验证主要分为校验值文件生成和完整性检测两个阶段。例如,在校验值文件生成阶段,首先把文件切成多个数据块,然后利用多线程并行地对数据块执行HASH(哈希)算法例如MD5(Message Digest Algorithm MD5,消息摘要算法第五版)算法,分别得到各数据块的校验值,通过将各个数据块的校验值相加得到整个文件的校验值,并将所得到的整个文件的校验值保存在随文件一起分发的校验值文件中。在完整性检测阶段,首先利用与校验值文件生成阶段相同的步骤对接收到的文件提取校验值,并将所提取到的校验值与保存在校验值文件中的校验值进行比较,如果二者相同则认为文件完整、即文件没有被篡改或破坏,否则认为文件的完整性被破坏了。
在上述技术中,即使在只有一个数据块被破坏或篡改的情况下,也要在对整个文件的所有数据块进行校验值提取之后,通过完整性检测才能判定文件是否完整。这明显耗时较长,尤其对于数据量较大、例如达到10GB的文件来说,可能不太适用。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是如何尽量缩短文件完整性验证的时间。
解决方案
为了解决上述问题,根据本发明一实施例,提供了一种文件完整性验证方法,包括:
按预定的分块策略将文件切分成至少两个数据块;以及
基于所述文件的校验值文件验证所述数据块的完整性,其中,所述校验值文件包括所述至少两个数据块各自的校验值,若任一所述数据块被认定为不完整,则判定所述文件不完整并停止所述验证。
对于上述文件完整性验证方法,在一种可能的实现方式中,基于所述文件的校验值文件验证所述数据块的完整性,包括:
计算所述数据块的校验值;
将所计算出的所述数据块的校验值与所述校验值文件中的所述数据块的校验值进行比较;以及
若上述比较的结果为相同,则认定所述数据块完整,否则认定所述数据块不完整。
对于上述文件完整性验证方法,在一种可能的实现方式中,所述校验值文件为布隆向量库,
所述布隆向量库包括各所述数据块的布隆向量,
各所述数据块的布隆向量是在生成所述校验值文件时,使各所述数据块的校验值通过布隆过滤器而得到的。
对于上述文件完整性验证方法,在一种可能的实现方式中,基于所述文件的校验值文件验证所述数据块的完整性,包括:
计算所述数据块的校验值;
将所计算出的所述数据块的校验值通过所述布隆过滤器转换为布隆向量;
将所转换得到的布隆向量与所述布隆向量库中的所述数据块的布隆向量进行比较;以及
若上述比较的结果为相同,则认定所述数据块完整,否则认定所述数据块不完整。
对于上述文件完整性验证方法,在一种可能的实现方式中,所述校验值是通过对所述数据块进行HASH运算提取到的。
对于上述文件完整性验证方法,在一种可能的实现方式中,所述分块策略包括按预定长度进行所述切分,所述预定长度为页面大小的整数倍。
为了解决上述技术问题,根据本发明另一实施例,提供了一种文件处理器,包括:
切分模块,用于按预定的分块策略将文件切分成至少两个数据块;以及
验证模块,与所述切分模块连接,用于基于所述文件的校验值文件验证所述数据块的完整性,并且若任一所述数据块被认定为不完整,则判定所述文件不完整并停止操作,其中,所述校验值文件包括所述至少两个数据块各自的校验值。
对于上述文件处理器,在一种可能的实现方式中,还包括:
计算模块,与所述切分模块连接,用于计算由所述切分模块切分出的数据块的校验值;以及
生成模块,与所述计算模块连接,用于将从待分发文件切分出的数据块的校验值保存于所述待分发文件的校验值文件中。
对于上述文件处理器,在一种可能的实现方式中,所述验证模块包括:
第一提取单元,与所述计算模块连接,用于将从待验证文件切分出的数据块作为关注数据块,并提取所述计算模块针对所述关注数据块计算出的校验值;
第一比较单元,与所述第一提取单元连接,用于将所述第一提取单元所提取到的所述关注数据块的校验值与所述待验证文件的校验值文件中的所述关注数据块的校验值进行比较;以及
第一停止单元,与所述第一比较单元连接,用于在所述第一比较单元输出的比较结果为不相同的情况下,认定所述关注数据块以及所述待验证文件不完整,并使所述验证模块停止操作。
对于上述文件处理器,在一种可能的实现方式中,还包括布隆过滤器,
所述布隆过滤器与所述计算模块连接,用于将所述计算模块计算出的校验值转换为相应的布隆向量;以及
所述生成模块还与所述布隆过滤器连接,用于将从待分发文件切分出的数据块的布隆向量保存于作为所述待分发文件的校验值文件的布隆向量库中。
对于上述文件处理器,在一种可能的实现方式中,所述验证模块包括:
第二提取单元,与所述计算模块以及所述布隆过滤器连接,用于将从待验证文件切分出的数据块作为关注数据块,并提取所述计算模块针对所述关注数据块计算出的校验值经所述布隆过滤器转换得到的布隆向量;
第二比较单元,与所述第二提取单元连接,用于将所述第二提取单元所提取到的所述关注数据块的布隆向量与所述待验证文件的校验值文件中的所述关注数据块的布隆向量进行比较;以及
第二停止单元,与所述第二比较单元连接,用于在所述第二比较单元输出的比较结果为不相同的情况下,认定所述关注数据块以及所述待验证文件不完整,并使所述验证模块停止操作。
对于上述文件处理器,在一种可能的实现方式中,其特征在于,所述计算模块通过对所述数据块进行HASH运算来计算所述数据块的校验值。
对于上述文件处理器,在一种可能的实现方式中,所述分块策略包括按预定长度进行所述切分,所述预定长度为页面大小的整数倍。
有益效果
本发明实施例提供的文件完整性验证方法,可以对切分后每个数据块独立提取其校验值,并对每个数据块单独进行完整性验证。如果某一数据块的完整性被验证为不完整,则可判定该数据块被破坏,这时可以直接得出这个文件的完整性被破坏的结论,将不再进行剩余数据块的验证,这样可以缩短文件完整性检测过程。进一步地,由于每个数据块的校验值提取和完整性验证都是独立进行的,因此可以对数据块的校验值提取和完整性验证采用并行方式进行处理,这样可以缩短文件校验值提取和文件完整性验证的时间。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的文件完整性验证方法的流程图;
图2示出根据本发明另一实施例的文件完整性验证方法的流程图;
图3示出根据本发明又一实施例的文件完整性验证方法的流程图;
图4示出根据本发明一实施例的文件校验值分片提取过程的示意图;
图5示出根据本发明一实施例的文件处理器的结构框图;
图6示出根据本发明另一实施例的文件处理器的结构框图;
图7示出根据本发明又一实施例的文件处理器的结构框图;
图8示出根据本发明又一实施例的文件处理器的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
实施例1
图1示出根据本发明一实施例的文件完整性验证方法的流程图。如图1所示,该文件完整性验证方法主要可以包括以下步骤:
步骤S100、按预定的分块策略将文件切分成至少两个数据块;以及
步骤S110、基于所述文件的校验值文件验证所述数据块的完整性,其中,所述校验值文件包括所述至少两个数据块各自的校验值,若任一所述数据块被认定为不完整,则判定所述文件不完整并停止所述验证。
具体地,在接收到一个文件的同时,通常还会接收到随该文件一起分发的校验值文件,该校验值文件主要用于验证该文件的完整性。在一种可能的实现方式中,文件的校验值文件可以通过以下操作生成:首先按照预定的分块策略将待验证文件切分为至少两个数据块,其中,预定的分块策略可以是预定的长度,例如页面大小的整数倍;然后再计算切分后的各所述数据块的校验值,其中,计算校验值所采用的算法可以是HASH算法,例如MD5算法;最后将计算出的各数据块的校验值保存到上述校验值文件中,并将该校验值文件随待验证的文件一起分发给验证方。
对于上述步骤S100,当接收到待验证的文件及其对应的校验值文件后,验证方会按照与校验值文件生成相同的分块策略对所接收到的待验证的文件进行切分,以得到至少两个数据块。
对于上述步骤S110,在得到至少两个数据块后,验证方会基于接收到的校验值文件验证数据块的完整性,若任一数据块被认定为不完整、即该数据块被破坏,则判定所述文件不完整、即文件被破坏,此时,停止对文件完整性的验证。
本发明实施例的文件完整性验证方法,首先按预定的分块策略将文件切分成至少两个数据块,然后基于所述文件的校验值文件验证所述数据块的完整性。本发明实施例提供的文件完整性验证方法可以基于校验值文件分别验证文件被切分后的每个数据块的完整性,当其中只有一个或几个数据块被破坏的时候,只要验证到其中一个数据块被破坏后,就可以判定该文件不完整,而不用在对整个文件的所有数据块进行校验提取之后,通过验证整个文件是否完整。因此,发明实施例提供的文件完整性验证方法能够缩短文件完整性验证的时间。
实施例2
图2示出根据本发明另一实施例的文件完整性验证方法的流程图。图2中标号与图1标号相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
如图2所示,图2所示的文件完整性验证方法与图1所示的文件完整性验证方法的主要区别在于,上述步骤S110具体可以包括以下步骤:
步骤S1101、计算所述数据块的校验值;
步骤S1102、将所计算出的所述数据块的校验值与所述校验值文件中的所述数据块的校验值进行比较;以及
步骤S1103、若上述比较的结果为相同,则认定所述数据块完整,否则认定所述数据块不完整。
具体地,为了缩短文件完整性验证过程的时间,提升用户体验。本实施例将整个文件按预定的分块策略例如按页面大小的整数倍对文件进行切分,以切分后得到的数据块作为完整性验证的最小单元。
对每个数据块独立提取其校验值,并对每个数据块单独进行完整性验证。例如,可以将接收到的待验证文件切分后的一个待验证的数据块作为关注数据块,并计算所述关注数据块的校验值,计算方法与校验值文件中各个数据块生成采用相同的算法,例如HASH算法中的MD5算法。然后将所计算出的所述关注数据块的校验值与所述校验值文件中的所述关注数据块的校验值进行比较。由于所计算出的校验值反应的是关注数据块当前的状态,而所述校验值文件中的所述关注数据块的校验值是关注数据块在校验值文件生成时的状态。因此,若这两者相同,则表明所述关注数据块从校验值文件生成起就没有遭到破坏、也即可认定所述关注数据块完整。此时,再将其它待验证的数据块作为关注数据块,并按照上述方法进行完整性验证。如果两者不同,则认定所述关注数据块不完整,即该关注数据块的被破坏。如果验证到某一数据块的完整性被破坏,则可以直接得出这个文件的完整性被破坏的结论,将不再进行剩余数据块的验证。如果所有的比较结果均相同,则认定所有的数据块均完整,即该文件完整。
进一步地,由于每个数据块的校验值提取和完整性验证是独立进行的,因此可以对各个数据块的校验值提取和完整性验证采用并行方式进行处理。例如,可以采取多线程的方法对上述各数据块进行校验值提取和完整性验证。
本发明实施例提供的文件完整性验证方法,可以对切分后每个数据块独立提取其校验值,并对每个数据块单独进行完整性验证。如果某一数据块的完整性被验证为不完整,则可判定该数据块被破坏,这时可以直接得出这个文件的完整性被破坏的结论,将不再进行剩余数据块的验证,这样可以缩短文件完整性检测过程。进一步地,由于每个数据块的校验值提取和完整性验证都是独立进行的,因此可以对数据块的校验值提取和完整性验证采用并行方式进行处理,这样可以缩短文件校验值提取和文件完整性验证的时间。
实施例3
图3示出根据本发明又一实施例的文件完整性验证方法的流程图。图3中标号与图1、图2相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
本发明实施例与上一实施例的主要区别在于,所述校验值文件为布隆向量库,所述布隆向量库包括各所述数据块的布隆向量,各所述数据块的布隆向量是在生成所述校验值文件时,使各所述数据块的校验值通过布隆过滤器而得到的。
具体地,如图4所示,在将文件切分成各数据块后,在一种可能的实现方式中,可以将切分后得到的各个数据块均匀的分给不同的线程。每个线程通过如文件数据块映射的方式直接对数据块进行校验值的生成,校验值的生成可以通过HASH算法例如MD5算法生成;然后将得到的校验值通过布隆过滤器转换为布隆向量后,存储在布隆向量库中。
举例而言,布隆过滤器首先把长度为m(m为整数)比特的布隆向量(b1,b2……bm)中的所有比特位初始化为0。然后,在每个线程中,将返回值在1到m间的k(k为整数)个相互独立的HASH函数h1、h2、…、hk作用于一个数据块的校验值上,得到k个返回值r1、r2、…、rk,并将布隆向量中位置在r1、r2、…、rk的比特位置为1,然后将得到的布隆向量存储在布隆向量库中。例如,m为16,k为4,计算出的某一个数据块的校验值为e,如式1可得出b8、b1、b6、b13值为1,其余为0。
将这个线程的其它数据块的校验值依次经过这个布隆过滤器,可以得到相应的布隆向量,并将得到的这些布隆向量存储到布隆向量库中。对于其它线程的数据块的校验值可以采用相同的方法得到所有数据块相应的布隆向量并存储到布隆向量库中。
在一种可能的实现方式中,如图3所示,本发明实施例的文件完整性验证方法主要可以包括以下步骤:
步骤S200、按预定的分块策略将文件切分成至少两个数据块;
步骤S210、基于所述文件的校验值文件验证所述数据块的完整性。
在一种可能的实现方式中,步骤S210主要可以包括以下步骤:
步骤S2101、计算所述数据块的校验值;
步骤S2102、将所计算出的所述数据块的校验值通过所述布隆过滤器转换为布隆向量;
步骤S2103、将所转换得到的布隆向量与所述布隆向量库中的所述数据块的布隆向量进行比较;以及
步骤S2104、若上述比较的结果为相同,则认定所述数据块完整,否则认定所述数据块不完整。
具体地,先将文件切分,以得到至少两个数据块,然后将切分后得到的各数据块均匀的分给不同的线程。每个线程通过文件数据块映射的方式直接对各数据块采用HASH算法进行校验值提取。每个数据块的验证过程如下:将待验证的一个数据块作为关注数据块,将计算出的关注数据块的校验值经过布隆过滤器,即使用k个相互独立的HASH函数h1、h2、…、hk,得到k个返回值r1、r2、…、rk,这里使用的HASH算法和k个相互独立的HASH函数h1、h2、…、hk与生成布隆向量库中的布隆向量的函数相同。将所转换得到的布隆向量与布隆向量库中的所述关注数据块的布隆向量进行比较,由于所计算出的布隆向量反应的是关注数据块当前的状态,而所述布隆向量库中的所述关注数据块的布隆向量是关注数据块在布隆向量库生成时的状态。如果两者相同,即转换得到的布隆向量在位置r1、r2、…、rk的比特位均为1,则表明所述关注数据块从布隆向量库生成起就没有遭到破坏、也即可认定所述关注数据块完整。此时,再将其它待验证的数据块作为关注数据块,并按照上述方法进行完整性验证。如果两者不同,即转换得到的布隆向量在位置r1、r2、…、rk的比特位中存在某一个比特位为0,则表明这个比特位对应所述关注数据块的校验值不同,从而表明所述关注数据块被篡改,则该数据块遭到了破坏,进而整个文件的完整性也就遭到了破坏。这时,将停止所有线程继续处理剩余的数据块,直接退出并报告文件完整性遭到破坏。如果经布隆过滤器转换得到的所有的数据块的布隆向量与布隆向量库中的布隆向量相同,则判定整个文件完整。
本发明实施例提供的文件完整性验证方法,可以对切分后每个数据块独立提取其校验值,进而提取其布隆向量,然后基于提取的每个数据块布隆向量及存储在布隆向量库中对应的每个数据块的布隆向量对每个数据块单独进行完整性验证。如果验证到某一数据块的完整性被破坏,则可以直接得出这个文件的完整性被破坏的结论,将不再进行剩余数据块的验证,这样可以缩短文件完整性验证过程。进一步地,由于每个数据块的校验值提取和完整性验证都是独立进行的,因此可以对各个数据块的校验值提取和完整性验证采用并行方式进行处理,这样可以缩短文件校验值提取和文件完整性验证的时间。进一步地,本发明实施例使用的布隆过滤器具有天然的保密性和防伪造性,避免了此前的文件完整性验证方法固有的可伪造特性。
实施例4
图5示出根据本发明一实施例的文件处理器的结构框图。如图5所示,该文件处理器500主要可以包括切分模块510和验证模块520。其中,切分模块510主要用于按预定的分块策略将文件切分成至少两个数据块;验证模块520,与所述切分模块510连接,主要用于基于所述文件的校验值文件验证所述数据块的完整性,并且若任一所述数据块被认定为不完整,则判定所述文件不完整并停止操作,其中,所述校验值文件包括所述至少两个数据块各自的校验值。
在一种可能的实现方式中,文件处理器500还可以包括计算模块530和生成模块540。计算模块530与切分模块510连接,主要用于计算由切分模块510切分出的数据块的校验值;生成模块540与计算模块530连接,主要用于将从待分发文件切分出的数据块的校验值保存于所述待分发文件的校验值文件中。
在一种可能的实现方式中,所述分块策略包括按预定长度进行所述切分,所述预定长度为页面大小的整数倍。
本发明实施例提供的文件处理器500可以用来执行上述实施例1中文件完整性验证方法。
本发明实施例的文件处理器,切分模块按预定的分块策略将文件切分成至少两个数据块,然后验证模块基于所述文件的校验值文件验证所述数据块的完整性。本发明实施例提供的文件处理器可以基于校验值文件分别验证文件被切分模块切分后的数据块的完整性,当其中只有一个或几个数据块被破坏的时候,只要验证到其中一个数据块被破坏后,就可以判定该文件不完整,而不用在对整个文件的所有数据块进行校验提取之后,再验证整个文件是否完整。因此,本发明实施例提供的文件处理器能够缩短文件完整性验证的时间。
实施例5
图6示出根据本发明另一实施例的文件处理器的结构框图。图6中标号与图5标号相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
如图6所示,图6所示的文件处理器600与图5所示的文件处理器500的主要区别在于,上述验证模块520具体可以包括第一提取单元5201、第一比较单元5202以及第一停止单元5203。第一提取单元5201与计算模块530连接,主要用于将从待验证文件切分出的数据块作为关注数据块,并提取所述计算模块530针对所述关注数据块计算出的校验值;第一比较单元5202,与第一提取单元5201连接,主要用于将所述第一提取单元5201所提取到的所述关注数据块的校验值与所述待验证文件的校验值文件中的所述关注数据块的校验值进行比较;第一停止单元5203,与所述第一比较单元5202连接,主要用于在所述第一比较单元5202输出的比较结果为不相同的情况下,认定所述关注数据块以及所述待验证文件不完整,并使所述验证模块520停止操作。
本发明实施例的文件处理器600可以用来执行上述实施例2中的文件完整性验证方法。
本发明实施例提供的文件处理器,可以对切分模块切分后的每个数据块利用第一提取单元独立提取其校验值,并利用第一比较单元将每个数据块与校验值文件中相应的数据块的校验值单独进行比较,第一停止单元在所述第一比较单元输出的比较结果为不相同的情况下,认定所比较的数据块以及所述待验证文件不完整,并使所述验证模块停止操作。如果验证到某一数据块的完整性被破坏,则可以直接得出这个文件的完整性被破坏的结论,将不再进行剩余数据块的验证。这样可以缩短文件完整性检测过程。进一步地,由于每个数据块的校验值提取和完整性验证都是独立进行的,因此可以对各个数据块的校验值提取和完整性验证采用并行方式进行处理,这样可以缩短文件校验值和文件完整性验证的时间。
实施例6
图7示出根据本发明又一实施例的文件处理器的结构框图。图7中标号与图5、图6相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
本发明实施例的文件处理器700与上一实施例的文件处理器600的主要区别在于,文件处理器700还可以包括布隆过滤器550。生成模块540还与布隆过滤器550连接,主要用于将从待分发文件切分出的数据块的布隆向量保存于作为所述待分发文件的校验值文件的布隆向量库中。
在一种可能的实现方式中,验证模块520包括第二提取单元5204、第二比较单元5205以及第二停止单元5206。其中,第二提取单元5204与计算模块530以及布隆过滤器550连接,主要用于将从待验证文件切分出的数据块作为关注数据块,并提取所述计算模块530针对所述关注数据块计算出的校验值经所述布隆过滤器550转换得到的布隆向量;第二比较单元5205,与所述第二提取单元5204连接,主要用于将所述第二提取单元5204所提取到的所述关注数据块的布隆向量与所述待验证文件的校验值文件中的所述关注数据块的布隆向量进行比较。第二停止单元5206,与所述第二比较单元5205连接,主要用于在所述第二比较单元5205输出的比较结果为不相同的情况下,认定所述关注数据块以及所述待验证文件不完整,并使所述验证模块520停止操作。
本发明实施例提供的文件处理器,可以利用第二提取单元对切分模块切分后的每个数据块独立提取其校验值,进而提取其布隆向量,然后利用第二比较单元基于第二提取单元提取到的每个数据块布隆向量及存储在布隆向量库中对应的每个数据块的布隆向量对每个数据块单独进行比较,第二停止单元在第二比较单元输出的比较结果为不相同的情况下,认定所比较的数据块以及所述待验证文件不完整,并使所述验证模块停止操作。如果验证到某一数据块的完整性被破坏,则可以直接得出这个文件的完整性被破坏的结论,将不再进行剩余数据块的验证,这样可以缩短文件完整性验证过程。进一步地,由于每个数据块的校验值提取和完整性验证都是独立进行的,因此可以对数据块的校验值提取和完整性验证采用并行方式进行处理,这样可以缩短文件校验值和文件完整性验证的时间。进一步地,本发明实施例使用的布隆过滤器具有天然的保密性和防伪造性,避免了此前的文件完整性验证方法固有的可伪造特性。
实施例7
图8示出根据本发明又一实施例的文件处理器的结构框图。所述文件处理器800可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述文件处理器800包括处理器(processor)810、通信接口(CommunicationsInterface)820、存储器(memory)830和总线840。其中,处理器810、通信接口820、以及存储器830通过总线840完成相互间的通信。
通信接口820用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器810用于执行程序。处理器810可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器830用于存放文件。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器830也可以是存储器阵列。存储器830还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实现方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:
按预定的分块策略将文件切分成至少两个数据块;以及
基于所述文件的校验值文件验证所述数据块的完整性,其中,所述校验值文件包括所述至少两个数据块各自的校验值,若任一所述数据块被认定为不完整,则判定所述文件不完整并停止所述验证。
在一种可能的实现方式中,基于所述文件的校验值文件验证所述数据块的完整性,包括:
计算所述数据块的校验值;
将所计算出的所述数据块的校验值与所述校验值文件中的所述数据块的校验值进行比较;以及
若上述比较的结果为相同,则认定所述数据块完整,否则认定所述数据块不完整。
在一种可能的实现方式中,所述校验值文件为布隆向量库,
所述布隆向量库包括各所述数据块的布隆向量,
各所述数据块的布隆向量是在生成所述校验值文件时,使各所述数据块的校验值通过布隆过滤器而得到的。
在一种可能的实现方式中,基于所述文件的校验值文件验证所述数据块的完整性,包括:
计算所述数据块的校验值;
将所计算出的所述数据块的校验值通过所述布隆过滤器转换为布隆向量;
将所转换得到的布隆向量与所述布隆向量库中的所述数据块的布隆向量进行比较;以及
若上述比较的结果为相同,则认定所述数据块完整,否则认定所述数据块不完整。
在一种可能的实现方式中,所述校验值是通过对所述数据块进行HASH运算提取到的。
在一种可能的实现方式中,所述分块策略包括按预定长度进行所述切分,所述预定长度为页面大小的整数倍。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (6)
1.一种文件完整性验证方法,其特征在于,包括:
按预定的分块策略将文件切分成至少两个数据块;以及
基于所述文件的校验值文件以并行方式验证各所述数据块的完整性,其中,所述校验值文件包括所述至少两个数据块各自的校验值,若任一所述数据块被认定为不完整,则判定所述文件不完整并停止所述验证,
其中,所述校验值文件为布隆向量库,所述布隆向量库包括各所述数据块的布隆向量,各所述数据块的布隆向量是在生成所述校验值文件时,使各所述数据块的校验值通过布隆过滤器而得到的,
并且,基于所述文件的校验值文件验证所述数据块的完整性,包括:
计算所述数据块的校验值;
将所计算出的所述数据块的校验值通过所述布隆过滤器转换为布隆向量;
将所转换得到的布隆向量与所述布隆向量库中的所述数据块的布隆向量进行比较;以及
若上述比较的结果为相同,则认定所述数据块完整,否则认定所述数据块不完整。
2.根据权利要求1所述的文件完整性验证方法,其特征在于,所述校验值是通过对所述数据块进行HASH运算提取到的。
3.根据权利要求1或2所述的文件完整性验证方法,其特征在于,所述分块策略包括按预定长度进行所述切分,所述预定长度为页面大小的整数倍。
4.一种文件处理器,其特征在于,包括:
切分模块,用于按预定的分块策略将文件切分成至少两个数据块;
验证模块,与所述切分模块连接,用于基于所述文件的校验值文件以并行方式验证各所述数据块的完整性,并且若任一所述数据块被认定为不完整,则判定所述文件不完整并停止操作,其中,所述校验值文件包括所述至少两个数据块各自的校验值;
计算模块,与所述切分模块连接,用于计算由所述切分模块切分出的数据块的校验值;以及
生成模块,与所述计算模块连接,用于将从待分发文件切分出的数据块的校验值保存于所述待分发文件的校验值文件中,
其中,所述文件处理器还包括布隆过滤器,所述布隆过滤器与所述计算模块连接,用于将所述计算模块计算出的校验值转换为相应的布隆向量,
并且,所述生成模块还与所述布隆过滤器连接,用于将从待分发文件切分出的数据块的布隆向量保存于作为所述待分发文件的校验值文件的布隆向量库中,
并且,所述验证模块包括:
提取单元,与所述计算模块以及所述布隆过滤器连接,用于将从待验证文件切分出的数据块作为关注数据块,并提取所述计算模块针对所述关注数据块计算出的校验值经所述布隆过滤器转换得到的布隆向量;
比较单元,与所述提取单元连接,用于将所述提取单元所提取到的所述关注数据块的布隆向量与所述待验证文件的校验值文件中的所述关注数据块的布隆向量进行比较;以及
停止单元,与所述比较单元连接,用于在所述比较单元输出的比较结果为不相同的情况下,认定所述关注数据块以及所述待验证文件不完整,并使所述验证模块停止操作。
5.根据权利要求4所述的文件处理器,其特征在于,所述计算模块通过对所述数据块进行HASH运算来计算所述数据块的校验值。
6.根据权利要求4或5所述的文件处理器,其特征在于,所述分块策略包括按预定长度进行所述切分,所述预定长度为页面大小的整数倍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310461083.XA CN103488952B (zh) | 2013-09-24 | 2013-09-24 | 文件完整性验证方法及文件处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310461083.XA CN103488952B (zh) | 2013-09-24 | 2013-09-24 | 文件完整性验证方法及文件处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488952A CN103488952A (zh) | 2014-01-01 |
CN103488952B true CN103488952B (zh) | 2017-01-18 |
Family
ID=49829166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310461083.XA Active CN103488952B (zh) | 2013-09-24 | 2013-09-24 | 文件完整性验证方法及文件处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488952B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574439B (zh) * | 2015-04-17 | 2019-05-14 | 宇龙计算机通信科技(深圳)有限公司 | 一种系统盘的校验方法和装置 |
CN105095767A (zh) * | 2015-07-27 | 2015-11-25 | 四川长虹电器股份有限公司 | 基于文件数据块校验的安全启动系统与方法 |
CN105306434A (zh) * | 2015-09-11 | 2016-02-03 | 北京金山安全软件有限公司 | 程序文件校验方法及装置、服务器和终端 |
CN106548092B (zh) * | 2016-10-31 | 2019-07-16 | 杭州嘉楠耘智信息科技有限公司 | 一种文件处理方法及装置 |
CN106708927B (zh) * | 2016-11-18 | 2021-01-05 | 北京二六三企业通信有限公司 | 文件的去重处理方法和装置 |
CN106650504B (zh) * | 2016-12-28 | 2019-04-02 | 中国科学院计算技术研究所 | 一种针对Web页面数据的摘要提取方法及检测方法 |
CN107516046B (zh) * | 2017-06-26 | 2019-11-12 | 江苏通付盾科技有限公司 | 数据保护方法及装置、电子设备、计算机存储介质 |
CN110457278A (zh) * | 2018-05-07 | 2019-11-15 | 百度在线网络技术(北京)有限公司 | 一种文件拷贝方法、装置、设备和存储介质 |
CN109977684B (zh) * | 2019-02-12 | 2024-02-20 | 平安科技(深圳)有限公司 | 一种数据传输方法、装置及终端设备 |
CN111753518B (zh) * | 2020-08-12 | 2021-03-12 | 深圳潮数软件科技有限公司 | 一种自主的文件一致性检验方法 |
CN112071335A (zh) * | 2020-08-20 | 2020-12-11 | 深圳云宣科技有限公司 | 一种对光盘刻录文件进行校验的方法及装置 |
CN112016134B (zh) * | 2020-09-01 | 2023-08-18 | 中国银行股份有限公司 | 一种验证文件完整性的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453478A (zh) * | 2007-11-28 | 2009-06-10 | 新奥特(北京)视频技术有限公司 | 一种在文件传输中的完整性校验方法 |
CN101853260A (zh) * | 2009-04-01 | 2010-10-06 | 赛门铁克公司 | 检测电子邮件内容包含的系统和方法 |
CN101894079A (zh) * | 2010-07-15 | 2010-11-24 | 哈尔滨工程大学 | 变长存储块的Hash树存储器完整性保护方法 |
CN102083069A (zh) * | 2009-11-26 | 2011-06-01 | 中兴通讯股份有限公司 | 一种检测移动终端存储器数据完整性的方法和装置 |
CN102752283A (zh) * | 2012-05-30 | 2012-10-24 | 福建省三奥信息科技股份有限公司 | 大数据量文件的传输方法及系统 |
CN102932650A (zh) * | 2011-08-11 | 2013-02-13 | 索尼公司 | 视频数据完整性保护和验证方法、设备和系统 |
CN103138871A (zh) * | 2011-11-23 | 2013-06-05 | 毕书清 | 移动通讯系统中应用程序的服务器数据处理系统和方法 |
CN103259797A (zh) * | 2013-05-17 | 2013-08-21 | 中国联合网络通信集团有限公司 | 数据文件传输方法及平台 |
-
2013
- 2013-09-24 CN CN201310461083.XA patent/CN103488952B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453478A (zh) * | 2007-11-28 | 2009-06-10 | 新奥特(北京)视频技术有限公司 | 一种在文件传输中的完整性校验方法 |
CN101853260A (zh) * | 2009-04-01 | 2010-10-06 | 赛门铁克公司 | 检测电子邮件内容包含的系统和方法 |
CN102083069A (zh) * | 2009-11-26 | 2011-06-01 | 中兴通讯股份有限公司 | 一种检测移动终端存储器数据完整性的方法和装置 |
CN101894079A (zh) * | 2010-07-15 | 2010-11-24 | 哈尔滨工程大学 | 变长存储块的Hash树存储器完整性保护方法 |
CN102932650A (zh) * | 2011-08-11 | 2013-02-13 | 索尼公司 | 视频数据完整性保护和验证方法、设备和系统 |
CN103138871A (zh) * | 2011-11-23 | 2013-06-05 | 毕书清 | 移动通讯系统中应用程序的服务器数据处理系统和方法 |
CN102752283A (zh) * | 2012-05-30 | 2012-10-24 | 福建省三奥信息科技股份有限公司 | 大数据量文件的传输方法及系统 |
CN103259797A (zh) * | 2013-05-17 | 2013-08-21 | 中国联合网络通信集团有限公司 | 数据文件传输方法及平台 |
Also Published As
Publication number | Publication date |
---|---|
CN103488952A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103488952B (zh) | 文件完整性验证方法及文件处理器 | |
CN104486075B (zh) | 一种智能变电站icd模型文件数字签名的验证方法 | |
Malik et al. | EMD and ANN based intelligent fault diagnosis model for transmission line | |
CN107871216A (zh) | 一种配电网脆弱节点的识别方法 | |
CN105978694A (zh) | 抗建模攻击的强物理不可克隆函数装置及其实现方法 | |
Anwar et al. | A data-driven approach to distinguish cyber-attacks from physical faults in a smart grid | |
CN106873957A (zh) | 一种业务流程的处理方法和设备 | |
CN107680003A (zh) | 工程监理任务的节点树生成方法及装置 | |
CN105956921A (zh) | 一种银行卡号自选方法及装置 | |
CN106547648A (zh) | 一种备份数据处理方法及装置 | |
CN113094975B (zh) | 智能电网节点脆弱性的评估方法、系统、设备及存储介质 | |
CN102722610A (zh) | 一种由流程图自动产生覆盖率代码的方法及装置 | |
CN102663185B (zh) | 一种基于模糊处理的抗硬件木马电路设计方法 | |
Fang et al. | Solving maximum weight clique using maximum satisfiability reasoning | |
CN103391224A (zh) | 基于并行扩展有限状态机的协议层次化测试生成方法 | |
EP3188403B1 (en) | Method for controlling error rate of device-specific information, and program for controlling error rate of device-specific information | |
CN103425932B (zh) | 签名校验方法和终端设备 | |
CN109102303A (zh) | 风险检测方法和相关装置 | |
CN103338107A (zh) | 密钥生成方法及密钥生成装置 | |
CN206481316U (zh) | 信息采集系统与实名制信息采集、应用系统 | |
CN104615537A (zh) | 一种图像处理类ip的可约束随机验证方法和装置 | |
CN114896201B (zh) | 一种数字电网财务数据迁移方法及系统 | |
CN109614519A (zh) | 数据导入方法和数据导入装置 | |
CN115242402A (zh) | 签名方法、验签方法及电子设备 | |
CN107478978A (zh) | 基于粒子群的硬件木马优化测试向量生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |