CN102446250A - 数据完整性的保护和验证方法、设备和系统 - Google Patents
数据完整性的保护和验证方法、设备和系统 Download PDFInfo
- Publication number
- CN102446250A CN102446250A CN2010105156376A CN201010515637A CN102446250A CN 102446250 A CN102446250 A CN 102446250A CN 2010105156376 A CN2010105156376 A CN 2010105156376A CN 201010515637 A CN201010515637 A CN 201010515637A CN 102446250 A CN102446250 A CN 102446250A
- Authority
- CN
- China
- Prior art keywords
- hash
- chain
- cryptographic hash
- data
- cryptographic
- 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
- 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
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- 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/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/3236—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 cryptographic hash functions
-
- 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/3297—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 involving time stamps, e.g. generation of time stamps
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2153—Using hardware token as a secondary aspect
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/121—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本公开提供了数据完整性的保护和验证方法、设备和系统。一种数据完整性的保护方法包括:将数据分成多个数据块;利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,形成第一哈希链;利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联,其中,所述第一哈希链和所述第二哈希链作为所述数据的完整性信息;及利用所述第二哈希链中的最后一个链哈希值来生成所述数据的验证信息。
Description
技术领域
本公开涉及电子数据的完整性保护,具体地,涉及电子数据完整性的保护和验证方法、设备以及系统。
背景技术
相对于纸质媒体,电子数据(例如图像、文本、音频、视频等)容易被篡改,也容易在传输或保存过程中出现误差或丢失。在很多应用中,用户都需要检查电子数据的完整性,以确认数据未被篡改或者未出现误差或丢失。例如,随着电子签名法等法律法规的颁布,电子数据可以和纸质媒体一样作为法庭的证据。因此,确保电子数据的完整性日益成为重要的需求。
发明内容
在下文中给出关于本公开的一些方面的简要概述,以便提供对于本公开的基本理解。应当理解,这个概述并不是对本公开的穷举性概述。该概述也并非意图确定本公开的关键或重要部分,也不是意图限定本公开的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
根据本公开的一个方面,提供了一种数据完整性的保护方法。该方法包括:将数据分成多个数据块;利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链;利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联;及利用所述第二哈希链中的最后一个链哈希值来生成所述数据的验证信息。
根据本公开的另一方面,提供了一种数据完整性的保护设备。该设备包括:数据分块装置,用于将数据分成多个数据块;完整性信息生成装置,该完整性信息生成装置用于利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链;该完整性信息生成装置还用于利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联并与所述第二哈希链中的相邻链哈希值关联;及验证信息生成装置,用于利用所述第二哈希链中的最后一个链哈希值来生成所述数据的验证信息。
根据本公开的另一方面,提供了一种数据完整性的验证方法。该方法包括:将待验证的数据分成多个数据块;利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链,并且每个分块哈希值与所述多个数据块中的一个对应;利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联;以及根据所述第二哈希链中的最后一个链哈希值以及所述待验证的数据的验证信息来判断所述数据是否完整。
根据本公开的另一方面,提供了一种数据完整性的验证设备。该设备包括:数据分块装置,用于将待验证的数据分成多个数据块;哈希计算装置,该哈希计算装置用于利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链,并且每个分块哈希值与所述多个数据块中的一个对应;该计算装置还用于利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联;以及验证装置,用于根据所述第二哈希链中的最后一个链哈希值以及所述待验证的数据的验证信息来判断所述数据是否完整。
根据本公开的另一方面,提供了一种数据完整性的保护系统。该系统包括上述的保护设备和验证设备。
另外,本公开的实施例还提供了用于实现上述方法的计算机程序。
此外,本公开的实施例还提供了至少计算机可读介质形式的计算机程序产品,其上记录有用于实现上述方法的计算机程序代码。
附图说明
参照下面结合附图对本公开实施例的说明,会更加容易地理解本公开的以上和其它目的、特点和优点。附图中的部件只是为了示出本公开的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
图1是示出了根据本公开的一个实施例的用于数据完整性的保护的方法的示意性流程图;
图2是示出了根据本公开的一个实施例的用于数据完整性的验证的方法的示意性流程图;
图3(A)是示出了基于第一哈希链来生成第二哈希链的方法的一个示例的示意性流程图;
图3(B)是示出了基于第一哈希链来生成第二哈希链的方法的另一示例的示意性流程图;
图4是示出了根据本公开的一个实施例的用于数据完整性的保护的系统的示意图;
图5是示出了根据本公开的另一实施例的用于数据完整性的保护的系统的示意图;
图6(A)是示出了生成具有双哈希链结构的完整性信息和利用这样的信息来验证数据完整性的一个示例的示意图;
图6(B)是示出了生成具有双哈希链结构的完整性信息和利用这样的信息来验证数据完整性的另一示例的示意图
图7是示出了利用第二哈希链中的最后一个链哈希值来验证数据的完整性的一个示例的示意图;
图8是示出了利用第二哈希链中的最后一个链哈希值来验证数据的完整性的另一示例的示意图;
图9是示出用于定位错误数据块的方法的一个示例的示意图;
图10是示出用于定位错误数据块的方法的另一示例的示意图;
图11是示出用于定位错误数据块的方法的又一示例的示意图;
图12(A)、(B)、(C)是分别示出了图像或视频数据的分割方法的示意图;
图13是示出了根据一个实施例的用于数据的完整性保护的设备的示意性框图;
图14是示出了根据另一实施例的用于数据的完整性保护的设备的示意性框图;
图15是示出了根据一个实施例的用于数据的完整性验证的设备的示意性框图;以及
图16是示出用于实现本公开的计算机的结构的示例性框图。
具体实施方式
下面参照附图来说明本公开的实施例。在本公开的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本公开无关的、本领域普通技术人员已知的部件和处理的表示和描述。
本公开的实施例提供了对电子数据的完整性进行保护和验证的方法、设备和系统。本公开的实施例或技术方案中所提及的“数据”均是指电子数据,并且所述数据可以是图像、文本、视频、音频或其任意组合等任何形式的电子数据,本公开对此不作限定。
图1是示出了根据本公开的一个实施例的用于对数据的完整性进行保护的方法的示意性流程图。在图1示出的实施例中,信息生成方可以生成与要保护的数据相关的双层哈希链,作为数据的完整性信息。
如图1所示,该方法可以包括步骤103、105、107和109。
具体地,在步骤103中,信息生成方设备(简称信息生成方)将要保护的数据分成多个数据块。可以按照任何适当的顺序对数据进行分割。例如,可以按照时间或传输顺序将数据分成数据块。又如,可以按照空间顺序将数据分成数据块,图12(C)示出了将一幅图像从空间上分成多个块的一个示例,在该示例中,图像P被划分成16个块A1-A16。又如,可以按照时间和空间顺序二者来分割数据,如在图12(A)所示的示例中,将每帧图像作为一个数据块、按照时间顺序分割图像序列,即每帧图像f1,f2,...,或fn分别作为一个数据块A1,A2,...,或An;又如在图12(B)所示的示例中,将图像序列按照时间顺序划分成多组,每组包括多帧图像f1,f2,...,fm,然后,按照空间顺序将每组图像中的每帧图像划分为多个区域,多帧图像的某个相应位置的区域组成一个数据块。在本示例中,图像组f1,f2,...,fm被划分成16个数据块块A1-A16,其中每个图像块包括该组图像f1,f2,...,fn中相应位置的多个区域,即Ai={bi,1,...bi,j,bi,m},j=1,2,...,m,i=1,...,16。应理解,可以按照任何适当的方式来分割数据,本公开并不局限于上述示例。
然后,在步骤105中,信息生成方利用哈希函数(称为第一哈希函数)来计算每个数据块的哈希值。计算得到的每个数据块的哈希值称为分块哈希值。这样,得到多个分块哈希值,每个分块哈希值与一个数据块对应。这些分块哈希值可以称为第一哈希链。
然后,在步骤107中,以迭代哈希链将第一哈希链中的多个分块哈希值依次链接起来,形成所述数据的第二哈希链。第二哈希链中包括多个哈希值,为了与第一哈希链中的分块哈希值区分开,本公开中将第二哈希链中的哈希值称为“链哈希值”。具体地,可以利用哈希函数(称为第二哈希函数)、根据第一哈希链来进行迭代计算,从而得到第二哈希链,每个链哈希值不但与第一哈希链中的对应的分块哈希值关联,而且还与该第二哈希链中的相邻链哈希值关联。所形成的第一哈希链和第二哈希链可以作为所述数据的完整性信息。
作为一个示例,计算第二哈希链所采用的第二哈希函数可以与计算第一哈希链所采用的第一哈希函数相同。作为另一示例,第二哈希函数可以不同于第一哈希函数。
应理解,可以采用任何适当的方法来计算哈希值。例如,第一哈希函数或者第二哈希函数可以采用SHA256、SHA512(其中,SHA的全称为Secure Hash Algorithm,即安全哈希算法)和NIST(National Institute ofStandards and Technology,美国国家标准与技术研究院)在下一代哈希函数竞赛中选定的新的哈希函数等,这里不一一列举。
图3(A)示出了计算第二哈希链的方法的一个示例。如图3(A)所示,根据第一哈希链来计算第二哈希链的方法可以包括步骤107-1和107-2。在步骤107-1中,计算第二哈希链中的第一个链哈希值。具体地,将利用多个数据块中的头两个或更多个数据块的分块哈希值作为第二哈希函数的自变量而计算得到的哈希值作为第一个链哈希值。然后,在步骤107-2中依次计算后面的链哈希值。具体地,对于从第二个链哈希值开始的每个链哈希值,将利用前一个链哈希值和对应的分块哈希值作为第二哈希函数的自变量而计算得到的哈希值作为该链哈希值。
图3(B)示出了计算第二哈希链的方法的另一个示例。如图3(B)所示,根据第一哈希链来计算第二哈希链的方法可以包括步骤107-3和107-4。在步骤107-3中,计算第二哈希链中的第一个链哈希值。具体地,利用指定的初始化值和第一哈希链中的第一个分块哈希值(即第一个数据块的分块哈希值)作为第二哈希函数的自变量而计算得到的哈希值作为第一个链哈希值。指定的初始化值可以是前一组数据的最后一个哈希值或验证信息,或者可以是包含指定的验证信息(如时间信息、数据源信息、或者用户定义的任何附加信息)的数据。步骤107-4与图3(A)中的步骤107-2相似,这里不再重复。
假设数据被分成多个数据块A1,A2,...,An,(n>1),这些数据块的分块哈希值分别表示为h1,h2,...,hn:
hi=H1(Ai),i=1,...,n, (1)
其中,H1()表示第一哈希函数,其可以是任何适当的哈希函数。
根据图3(A)所示的方法,假设第二哈希链中的链哈希值表示为h’m,h’m+1,...,h’n,则可以用下式来计算这些链哈希值:
h’m=H2(hm,hm-1,...,h1), (2)
h’m+1=H2(hm+1,h’m),...,h’n=H(hn,h’n-1) (3)
其中,2≤m<n,n为数据块的个数。优选地,m=2。
根据图3(B)所示的方法,可以用下式来计算链哈希值h’1,h’2,...,h’n:
h’1=H2(h1,IV), (4)
h’i=H2(hi,h’i-1) (5)
其中,IV表示指定的初始化值,2≤i≤n,n为数据块的个数。
在上式(2)-(5)中,H2()表示第二哈希函数,其可以是任何适当的哈希函数。H2()可以与H1()相同,也可以与H1()不同。
应理解,上述示例仅仅是示例性的,而不是穷举性的。可以采用其他适当的方法来计算所述第二哈希链,只要第二哈希链中的链哈希值将第一哈希链中的分块哈希值用链状结构连接起来既可。
然后,在步骤109中,利用第二哈希链中的最后一个链哈希值来生成所述数据的验证信息:
验证信息=Verify(h’n) (6)
其中,Verify()表示验证算法。应理解,可以采用任何适当的验证算法。作为一个示例,Verify()可以是数字签名算法,所述验证信息可以是对最后一个链哈希值进行数字签名(可以采用任何适当的方法进行签名计算,这里不作限定)而得到的签名信息。作为另一示例,Verify()可以是时间戳的计算方法,所述验证信息可以是利用最后一个链哈希值和时间信息而生成的时间戳信息(可以采用任何适当的方法来计算时间戳,这里也不作限定)。作为又一示例,所述验证信息还可以包括数字签名和时间戳信息二者。这里不一一列举。
利用图1所示的方法,可以计算得到双层哈希链,作为要保护的数据的完整性信息。
图2示出了根据本公开的一个实施例的对数据的完整性进行验证的方法的示意性流程图。在图2示出的实施例中,信息验证方设备(简称信息验证方)可以生成与要验证的数据相关的双层哈希链,并利用该哈希信息来验证数据的完整性。
如图2所示,该验证方法可以包括步骤213、215、217和219。
首先,信息验证方采用与信息生成方同样的方式来生成待验证的数据的双层哈希链。具体地,在步骤213中,将待验证的数据分成多个数据块。数据的分割方式要与信息生成方分割数据的方式相同。这里不再重复。例如,这些数据块可以用RA1,RA2,...,RAn(n>1,n表示数据块的个数)来表示。
然后,在步骤215中,利用第一哈希函数来计算每个数据块的哈希值,得到第一哈希链,第一哈希链中的每个分块哈希值与多个数据块中的一个对应。可以采用与信息生成方所使用的相同的哈希函数来计算哈希值,这里不再重复。假设基于待验证的数据计算得到的分块哈希值分别表示为hR1,hR2,...,hRn(hRi=H1(RAi),i=1,...,n,其中H1()表示第一哈希函数,其可以是任何适当的哈希函数)。
在步骤217中,信息验证方利用迭代哈希链将第一哈希链中的分块哈希值连接起来,形成第二哈希链。具体地,信息验证方可以利用第二哈希函数、根据所述第一哈希链来计算第二哈希链。第二哈希链可以包括多个链哈希值,每个链哈希值与第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联。信息验证方采用与信息生成方所使用的相同的方法(如上文中参考图2或图3(A)图3(B)描述的实施例/示例中的方法)来计算第二哈希链。
以图3(A)所示的方法为例,假设信息验证方基于待验证的数据计算得到的第二哈希链中的链哈希值表示为h’Rm,h’R(m+1),...,h’Rn,则根据图3(A)的方法,h’Rm=H2(hRm,...,hR1),h’R(m+1)=H2(hR(m+1),h’Rm),...,h’Rn=H2(hRn,h’R(n-1)),2≤m<n,H2()表示第二哈希函数,其可以是任何适当的哈希函数。H2()可以与H1()相同,也可以与H1()不同。
以图3(B)所示的方法为例,假设信息验证方基于待验证的数据计算得到的第二哈希链中的链哈希值表示为h’R1,h’R2,...,h’Rn,则根据图3(B)的方法,h’R1=H2(hR1,IV),h’R2=H2(hR2,h’R1),...,h’Rn=H2(hRn,h’R(n-1)),IV表示指定的初始化值,H2()表示第二哈希函数,其可以是任何适当的哈希函数。H2()可以与H1()相同,也可以与H1()不同。
在步骤219中,信息验证方可以基于待验证的数据而计算得到的最后一个链哈希值(如h’Rn)及来自信息接收方的验证信息(如利用h’n计算得到的验证信息)来判断待验证的数据是否具有完整性。
具体地,可以采用例如图7或图8所示的方法进行验证。例如,在图7所示的示例中,可以利用来自信息生成方的验证信息Verify(h’n)来反推(如步骤219-1所示)链哈希值h’n,即对来自信息生成方的验证信息进行验证运算,然后在步骤219-2中,将验证运算的结果h’n与在步骤217中得到的最后一个链哈希值h’Rn相比较,如果二者相同,则可以初步确定数据是完整的,否则,则可以初步确定数据不具有完整性。又如,在图8所示的示例中,可以利用与信息接收方相同的方法、利用基于待验证的数据而计算得到的最后一个链哈希值h’Rn生成验证信息Verify(h’Rn)(如步骤219-3所示),然后在步骤219-4中,将计算得到的验证信息Verify(h’Rn)与来自信息生成方的验证信息Verify(h’n)相比较,如果二者相同,则可以初步确定数据是完整的,否则,则可以初步确定数据不具有完整性。
图4和图5分别示出了基于图1和图2所示的实施例数据完整性保护系统的示意图。
在图4所示的系统400中,可以包括信息生成方(即信息生成方设备)410、信息验证方(即信息验证方设备)420和安全存储器430。信息生成方410可以采用参考图1和图3描述的方法来生成数据的完整性信息以及数据的验证信息。然后,信息生成方410可以将所生成的完整性信息(第一哈希链和第二哈希链)存储在安全存储器430中,还可以将数据和验证信息通过数据传输方式(可以是任何适当的有线或无线的传输方式,这里不作限定)传输给信息验证方420。在数据的传输过程中有可能存在丢包或误码的情况,因此,信息验证方420可以采用参考图3描述的方法来验证接收到的数据的完整性。
在图5所示的系统500中,可以包括信息生成方(即信息生成方设备)510、信息验证方(即信息验证方设备)520、数据存储装置540和安全存储器530。信息生成方510可以采用参考图1和图3描述的方法来生成数据的完整性信息(包括第一哈希链和第二哈希链)。信息生成方510可以将第二哈希链中的最后一个链哈希值发送给时间戳服务器570,由时间戳服务器570利用该链哈希值和附加的时间信息来生成时间戳信息(可以采用任何适当的方式来生成时间戳,这里不作限定),并反馈给信息生成方510。信息生成方将所生成的完整性信息存储在安全存储器530中,并将数据和时间戳信息存储在数据存储装置540中。
存储在装置540中的数据有可能被数据修改者580修改或篡改。例如,数据的管理方有可能不希望数据中的某个或某些片段或区域为他人所知,因此对其进行掩盖或修改(即数据的管理方可以作为数据修改者580)。又如,存储该数据的存储装置540有可能遭到某些攻击者的攻击,从而导致存储的数据被篡改(即这种攻击者也可以是数据修改者580)。当信息验证方520从数据存储装置540中获取了这些数据和验证信息(时间戳)之后,可以采用参考图3描述的方法来验证所得到的数据的完整性。
作为具体示例,在上述实施例或示例中的安全存储器可以设置在信息生成方设备中,也可以独立于信息生成方设备。所述安全存储器可以是非易失性的存储器,以便确保数据的完整性信息的安全。
上述系统400或500可以应用于多种场景,如视频监控或知识产权的保护等等。
例如,在视频监控系统中,信息生成方设备400或500可以设置于摄像或拍照装置中,以根据该摄像或拍照装置拍摄的数据来生成完整性信息和验证信息。或者,信息生成方设备400或500可以与摄像或拍照装置分离,并可以用任何适当的方式(有线或无线的方式)与其相连接,以接收该摄像或拍照装置拍摄的数据并生成完整性信息和验证信息。拍摄得到的数据和验证信息可以存储在数据存储装置(如数据服务器)中。所生成的完整性信息可以存储在安全存储器中,该安全存储器可以是摄像或拍照装置中内置的存储器,也可以采用其他存储器。拍摄得到的数据及其验证信息还可以通过任何适当的通信通道而被发送给接收方(信息验证方)。
在待验证的数据中,可能仅其中的部分数据出现错误,而其他部分的数据仍是正确的。作为一个具体实施例,信息验证方可以根据数据的完整性信息(例如保存在安全存储器中)来定位出现错误的数据块,并确定其他数据块的完整性。信息验证方可以通过查询信息生成方基于原始数据而生成的第一哈希链和第二哈希链(为了描述方便,其中的哈希值分别称为原始分块哈希值和原始链哈希值)来确定待验证的多个数据块中哪个数据块出现了错误。具体地,信息验证方可以采用例如图9或图10或图11所示的方法来定位出现错误的数据块,验证其他数据块的完整性,并验证数据中的签名信息和时间戳信息。
在图9所示的示例中,该定位错误的方法开始于步骤921。假设验证方已根据图2所示的方法得知待验证的数据不是完整的(即h’Rn是错误的),则可以进行回溯计算,即从最后一个链哈希值开始向例如存储有完整性信息的安全存储器(430或530)回溯请求前面的链哈希值。具体地,在步骤921中,可以例如从安全存储器中获取最后一个数据块的原始分块哈希值hn及与前一链哈希值h’R(n-1)对应的原始链哈希值h’n-1。在步骤923中,将计算得到的最后一个数据块的分块哈希值hRn与其原始分块哈希值hn进行比较,以确定最后一个数据块是否发生错误。如果二者不同,则确定最后一个数据块RAn发生错误(步骤925)。如果二者不同,则可以确定RAn未出错。然后,在步骤927中,进一步判断所述前一链哈希值h’R(n-1)与其原始链哈希值h’n-1是否相同;若是,则确定RAn之前的数据块(RA1,...,RAn-1)均没有错误,因此结束错误数据块定位处理,否则,判断h’R(n-1)是否第二哈希链中的第一个,若是,则结束处理;否则进一步请求前一数据块的原始分块哈希值hn-1及下一个链哈希值h’R(n-2)对应的原始链哈希值h’n-2,并重复步骤921-927。采用图9所示的方法,如果出现错误的数据块的位置越靠近最后一个数据块的位置,则查询次数(重复步骤921-927的次数)越少;反之,查询次数越多。平均查询次数为n/2,平均计算次数为n/2。
图6(A)和图6(B)示出了两个具体示例。在图6(A)所示的示例中,信息生成方和验证方均采用图3(A)所示的方法来计算第二哈希链,并取m=2。具体地,信息生成方基于原始数据块A1,A2,...,An生成了原始分块哈希值h1,h2,...,hn和原始链哈希值h’2,h’3,...,h’n,并生成了验证信息Verify(h’n)。信息验证方在得到待验证的数据之后,基于数据块RA1,RA2,...,RAn生成了分块哈希值hR1,hR2,...,hRn和链哈希值h’R2,h’R3,...,h’Rn,并生成了验证信息Verify(h’Rn)。通过比较Verify(h’n)和Verify(h’Rn),发现二者不同,因此确定待验证的数据不完整。通过向安全存储器请求原始哈希值,确定数据块RA2出现错误。在图6(B)所示的示例中,信息生成方和验证方均采用图3(B)所示的方法来计算第二哈希链。具体地,信息生成方基于原始数据块A1,A2,...,An以及指定的初始化值IV生成了原始分块哈希值h1,h2,...,hn和原始链哈希值h’1,h’2,...,h’n,并生成了验证信息Verify(h’n)。信息验证方在得到待验证的数据之后,基于数据块RA1,RA2,...,RAn以及相同的初始化值IV生成了分块哈希值hR1,hR2,...,hRn和链哈希值h’R1,h’R2,...,h’Rn,并生成了验证信息Verify(h’Rn)。通过比较Verify(h’n)和Verify(h’Rn),发现二者不同,因此确定待验证的数据不完整。通过向安全存储器请求原始哈希值,确定数据块RA2出现错误。
在图10所示的示例中,可以一次查询两个或更多个数据块的原始哈希值。所述两个或更多个数据块可以分布在整个数据块集合的不同位置上,可以根据查询得到的原始哈希值来判断这些数据块所对应的哪个数据块区域中有错误的数据块。作为一个具体示例,下面以二分法为例来描述该方法。在步骤1021中,从例如安全存储器中获取所存储的原始第二哈希链中的两个链哈希值,例如,h’n-1和h’n/2。然后,在步骤1023中,根据这些原始链哈希值来判断验证方基于待验证的数据而计算的对应的链哈希值h’R(n-1)和h’R(n/2)是否正确,以确定出现错误的数据块是位于区域[RA1,...,RAn/2]还是[RAn/2,...,RAn-1]。具体地,如果h’n-1≠h’R(n-1)而h’n/2=h’R(n/2),则可以确定区域[RAn/2,...,RAn-1]中有错误的数据块,而区域[RA1,...,RAn/2]中没有错误的数据块。如果h’n-1≠h’R(n-1)且h’n/2≠h’R(n/2),则可以确定区域[RA1,...,RAn/2]中有错误的数据块;在这种情况下,区域[RAn/2,...,RAn-1]中可能有错误数据块,也可能没有错误数据块);进一步地,信息验证方可以根据查询获得的原始链哈希值h’n/2重新计算区域[RAn/2,...,RAn-1]中数据块RAn/2,之后的链哈希值,这些链哈希值用h’U((n/2)+1),h’U((n/2)+2),...,h’U(n-1)来表示,其中,h’U((n/2)+1)=H2(hR((n/2)+1),h’n/2),h’U(n/2+2)=H2(hR((n/2)+2),h’U((n/2)+1)),h’U(n-1)=H2(hR(n-1),h’U(n-2))。如果重新计算得到的链哈希值h’U(n-1)与查询获得的链哈希值h’n-1仍不相等,即h’U(n-1)≠h’n-1,则可以确定区域[RAn/2,...,RAn-1]中也有错误的数据块。所确定的出现错误的区域既可以作为下一次查询的区域。可以重复执行步骤1021和1023,直到准确定位出现错误的数据块。在图10所示的方法中,假设数据块的总数为n,则其中一块数据发生错误时,采用这种方法的平均查询次数为log2(n),平均哈希计算次数为n/2。与图9所示的方法相比,这种方法的查询次数较少。
在图11所示的示例中,可以在步骤1121中一次性例如从安全存储器中获取所有的原始分块哈希值h1,h2,...,hn;然后在步骤1123中将这些原始分块哈希值分别与验证方基于待验证的数据而计算得到的多个分块哈希值hR1,hR2,...,hRn分别进行比较。这样即可确定出现错误的数据块的位置。在图11所示的方法中,假设数据块的总数为n,则采用这种方法只需查询一次,但查询流量为n,平均哈希计算次数为n/2。与图9和图10所示的方法相比,这种方法的查询次数最少,但查询的流量最大。
作为一个示例,信息生成方可以将所生成的所有或部分完整性信息(第一哈希链和/或第二哈希链)连同数据和验证信息一起发送给信息接收方(验证方)。在传输过程中,如果有数据块丢失或出现错误但第一哈希链(分块哈希值)没有丢失或错误,则验证方可以通过这些分块哈希值来验证是否有以及哪个(哪些)数据块出现错误或丢失,并可以根据这些分块哈希值来重新生成链哈希值,从而验证信息的签名信息。如果数据块和第一哈希链均发生丢失或错误,则验证方可以通过第二哈希链来定位出现错误的数据块,并验证其他数据块的完整性。如果数据块、第一和第二哈希链均发生丢失或错误,则可以通过向安全存储器查询其所保存的完整性信息,从而定位出现错误的数据块,并验证数据的签名信息是否正确。
图13示出了根据本公开的一个实施例的用于数据完整性的保护的设备的示意性框图。该设备1310采用上述实施例/示例中的方法来生成数据的完整性信息和验证信息,可以用作上述实施例/示例中所述的信息生成方设备(如410或510)。
如图13所示,设备1310可以包括数据分块装置1312、完整性信息生成装置1314、验证信息生成装置1316。
数据分块装置1312用于将要保护的数据分成多个数据块。数据分块装置1312可以采用上述实施例/示例中所述的方法来分割数据,这里不再重复。
完整性信息生成装置1314用于利用哈希函数(称为第一哈希函数)来计算数据分块装置输出的每个数据块的哈希值,得到多个分块哈希值。这些分块哈希值形成第一哈希链。然后,完整性信息生成装置1314进一步利用哈希函数(称为第二哈希函数)、根据第一哈希链来计算第二哈希链。第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联并与所述第二哈希链中的相邻链哈希值关联。完整性信息生成装置1314可以采用上述实施例/示例中所述的方法来生成第一哈希链和第二哈希链;所采用的第一和第二哈希函数可以彼此相同,也可以相互不同,这里也不再重复。
所生成的第一哈希链和第二哈希链作为要保护的数据的完整性信息。
验证信息生成装置1316可以利用第二哈希链中的最后一个链哈希值来生成数据的验证信息。验证信息生成装置1316可以采用上述实施例/示例中所述的方法来生成所述验证信息,所生成的验证信息可以包括数据的数字签名和/或时间戳信息,这里不作限定。
作为一个示例,设备1310还可以包括发送装置1318,以便将数据以及所生成的验证信息发送给信息接收方(如验证方420)。作为一个具体示例,发送装置1318可以将完整性信息连同数据及验证信息一起发送给信息接收方。
完整性信息生成装置1314所生成的完整性信息可以保存在安全存储器1330中。作为一个示例,安全存储器可以独立于设备1310。作为另一示例,安全存储器可以是设备1310的一个组成部分。安全存储器可以是非易失性存储器,从而确保完整性信息的安全。
图14示出了根据本公开的另一实施例的用于数据完整性的保护的设备的示意性框图。该设备1410也采用上述实施例/示例中的方法来生成数据的完整性信息和验证信息,可以用作上述实施例/示例中所述的信息生成方设备(如510)。与图13所示的实施例不同的是,该设备1410通过外部的时间戳服务器来生成数据的时间戳。
如图14所示,设备1410可以包括数据分块装置1412、完整性信息生成装置1414、发送装置1416-1和接收装置1416-2。
数据分块装置1412与图13所示的数据分块装置1312相似,用于将要保护的数据分成多个数据块。数据分块装置1412可以采用上述实施例/示例中所述的方法来分割数据,这里不再重复。
完整性信息生成装置1414与图13所示的生成装置1314相似,用于利用第一哈希函数来计算数据分块装置输出的每个数据块的哈希值,得到多个分块哈希值。这些分块哈希值形成第一哈希链。然后,完整性信息生成装置1414进一步利用第二哈希函数、根据第一哈希链来计算第二哈希链。第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联并与所述第二哈希链中的相邻链哈希值关联。完整性信息生成装置1414可以采用上述实施例/示例中所述的方法来生成第一哈希链和第二哈希链;所采用的第一和第二哈希函数可以彼此相同,也可以相互不同,这里也不再重复。
所生成的第一哈希链和第二哈希链作为要保护的数据的完整性信息。
发送装置1316-1可以将第二哈希链中的最后一个链哈希值发送给时间戳服务器1470。时间戳服务器1470可以采用任何适当的方式利用该链哈希值来生成时间戳文件,并反馈给设备1410。接收装置1316-2可以接收时间戳服务器反馈的时间戳信息,并将其作为要保护的数据的验证信息。
完整性信息生成装置1414所生成的完整性信息可以保存在安全存储器(图14中未示出)中。作为一个示例,安全存储器可以独立于设备1410。作为另一示例,安全存储器可以是设备1410的一个组成部分。安全存储器可以是非易失性存储器,从而确保完整性信息的安全。
上述设备1410或1310还可以包括数据存储装置(未示出),以便存储要保护的数据和验证信息。
图15示出了根据本公开的一个实施例的用于数据完整性的验证的设备的示意性框图。该设备1520采用上述实施例/示例中的方法来验证数据的完整性,可以用作上述实施例/示例中所述的信息验证方设备(如420或520)。
如图15所示,设备1520可以包括数据分块装置1522、哈希计算装置1524、验证装置1526。
数据分块装置1522用于将待验证的数据分成多个数据块。数据分块装置1522可以采用上述实施例/示例中所述的方法来分割数据,这里不再重复。
哈希计算装置1524用于利用第一哈希函数来计算数据分块装置1522输出的每个数据块的哈希值,得到多个分块哈希值。这些分块哈希值形成第一哈希链。然后,哈希计算装置1524进一步利用第二哈希函数、根据第一哈希链来计算第二哈希链。第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联并与所述第二哈希链中的相邻链哈希值关联。哈希计算装置1314可以采用上述实施例/示例中所述的方法来生成第一哈希链和第二哈希链,这里也不再重复。
验证装置1526可以利用计算装置1524基于待验证的数据而生成的第二哈希链中的最后一个链哈希值以及待验证的数据的验证信息来判断数据的完整性。待验证的数据的验证信息可以包括该数据的数字签名和/或时间戳信息,这里不作限定。验证装置1526可以采用图7或图8所示的方法来验证数据的完整性,这里不再重复。
作为一个示例,设备1520还可以包括错误定位装置1528。错误定位装置1528可以在验证装置1526确定待验证的数据不完整时获取原始数据的完整性信息,并根据完整性信息来定位待验证的数据中出现错误的数据块。完整性信息可以包括信息生成方基于原始数据而计算得到的第一哈希链和第二哈希链,原始数据的第一哈希链包括多个分块哈希值(称为原始分块哈希值),原始数据的第二哈希链包括多个链哈希值(称为原始链哈希值)。作为示例,错误定位装置1528可以采用上文中参考图9或图10或图11来描述的方法来定位错误数据块,并进一步验证数据的验证信息(签名信息和/或时间戳信息)。
在本公开的实施例中,采用如上所述的双哈希链结构(第一哈希链和第二哈希链)用于数据的完整性保护。采用这种方法或设备或系统,可以快速地生成数据的完整性信息。由于采用了双层的哈希链结构而第二哈希链将第一哈希链的分块哈希值依次连接起来,因此,在数据部分缺失或出现错误的情况下,可以快速定位出现错误的数据块所处的位置或者区域。另外,由于第一哈希链中的分块哈希值是与数据块一一对应的,因此,即使部分数据块缺失或错误,验证方也可以验证其他部分的数据的完整性。另外,根据本公开的实施例的方法、设备或系统在保证数据安全和系统开销之间可以达到良好的平衡。
根据本公开的实施例的方法、设备或系统既适用于数据传输系统中的数据保护,也适用于数据存储系统中的数据保护,例如,可以应用于视频监控、知识产权保护、数据传输等多种应用场景,可以为这些应用提供了灵活而鲁棒的完整性保护。
另外,在本公开的一些实施例和/或示例中,用于存储完整性信息的存储器可以是可信第三方。而在另一些实施例和/或示例中,用于存储完整性信息的存储器可以为非易失性存储器既可,这样既可以保证完整性信息的存储的安全,也可以减轻对可信第三方的依赖。
应理解,上述实施例和示例是示例性的,而不是穷举性的,本公开不应被视为局限于任何具体的实施例或示例。另外,在上述实施例和示例中,采用了“第一”、“第二”等表述。本领域的普通技术人员应理解,上述表述只是为了对这些表述作文字上的区分,而并非表示其顺序或任何其他限定。
作为一个示例,上述方法的各个步骤以及上述设备的各个组成模块和/或单元可以实施为软件、固件、硬件或其组合。作为一个示例,在通过软件或固件实现的情况下,可以从存储介质或网络向具有专用硬件结构的计算机(例如图16所示的通用计算机1600)安装构成用于实施上述方法的软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
在图16中,中央处理单元(CPU)1601根据只读存储器(ROM)1602中存储的程序或从存储部分1608加载到随机存取存储器(RAM)1603的程序执行各种处理。在RAM 1603中,也根据需要存储当CPU 1601执行各种处理等等时所需的数据。CPU 1601、ROM 1602和RAM 1603经由总线1604彼此链路。输入/输出接口1605也链路到总线1604。
下述部件链路到输入/输出接口1605:输入部分1606(包括键盘、鼠标等等)、输出部分1607(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分1608(包括硬盘等)、通信部分1609(包括网络接口卡比如LAN卡、调制解调器等)。通信部分1609经由网络比如因特网执行通信处理。根据需要,驱动器1610也可链路到输入/输出接口1605。可拆卸介质1611比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器1610上,使得从中读出的计算机程序根据需要被安装到存储部分1608中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质1611安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图16所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质1611。可拆卸介质1611的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 1602、存储部分1608中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
本公开还提出一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本公开实施例的方法。
相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本公开的公开中。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
在上面对本公开具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以用相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
此外,本公开的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本公开的技术范围构成限制。
尽管上面已经通过对本公开的具体实施例的描述对本公开进行了披露,但是,应该理解,上述的所有实施例和示例均是示例性的,而非限制性的。本领域的技术人员可在所附权利要求的精神和范围内设计对本公开的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本公开的保护范围内。
Claims (29)
1.一种数据完整性的保护方法,包括:
将数据分成多个数据块;
利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链;
利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联;及
利用所述第二哈希链中的最后一个链哈希值来生成所述数据的验证信息。
2.如权利要求1所述的方法,其中,根据所述第一哈希链来计算第二哈希链包括:
利用所述多个数据块中的头两个或更多个数据块的分块哈希值作为第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
3.如权利要求1所述的方法,其中,根据所述第一哈希链来计算第二哈希链包括:
利用所述多个数据块中的第一个数据块的分块哈希值和指定的初始化值作为第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
4.如权利要求1所述的方法,其中,所述第一哈希链和所述第二哈希链作为所述数据的完整性信息被保存在安全存储器中,所述安全存储器为非易失性存储器。
5.如权利要求1所述的方法,其中,利用所述第二哈希链中的最后一个链哈希值来生成所述数据的验证信息包括:对所述最后一个链哈希值进行签名,以生成签名信息,作为所述验证信息,并且
其中,所述方法还包括:
将所述数据以及所述签名信息发送给信息接收方。
6.如权利要求4所述的方法,还包括:
将所述第一哈希链和/或所述第二哈希链发送给信息接收方。
7.如权利要求1所述的方法,其中,所述验证信息为所述数据的时间戳信息,并且利用所述最后一个链哈希值来生成所述数据的验证信息包括:
将所述最后一个链哈希值发送给时间戳服务器;以及
接收从所述时间戳服务器反馈的、由所述时间戳服务器利用所述最后一个链哈希值和时间信息而生成的时间戳信息。
8.一种数据完整性的保护设备,包括:
数据分块装置,用于将数据分成多个数据块;
完整性信息生成装置,该完整性信息生成装置用于利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链;该完整性信息生成装置还用于利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联并与所述第二哈希链中的相邻链哈希值关联;及
验证信息生成装置,用于利用所述第二哈希链中的最后一个链哈希值来生成所述数据的验证信息。
9.如权利要求8所述的设备,其中,所述完整性信息生成装置通过以下来计算所述第二哈希链:
利用所述多个数据块中的头两个或更多个数据块的分块哈希值作为所述第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
10.如权利要求8所述的设备,其中,所述完整性信息生成装置通过以下来计算所述第二哈希链:
利用所述多个数据块中的第一个数据块的分块哈希值和指定的初始化值作为第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
11.如权利要求8所述的设备,其中,所述第一哈希链和所述第二哈希链作为所述数据的完整性信息而被保存在安全存储器中,所述安全存储器为非易失性存储器。
12.如权利要求8所述的设备,其中,所述验证信息为对所述最后一个链哈希值进行签名而得到的签名信息,所述设备还包括:
发送装置,该发送装置用于将所述数据以及所述签名信息发送给信息接收方。
13.如权利要求12所述的设备,其中,所述发送装置还被配置用于将所述第一哈希链和/或所述第二哈希链发送给信息接收方。
14.如权利要求8所述的设备,其中,所述验证信息为所述数据的时间戳信息,所述验证信息生成装置包括:
发送装置,用于将所述最后一个链哈希值发送给时间戳服务器;以及
接收装置,用于接收从所述时间戳服务器反馈的、由所述时间戳服务器利用所述最后一个链哈希值和时间信息而生成的时间戳信息。
15.一种数据完整性的验证方法,包括:
将待验证的数据分成多个数据块;
利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链;
利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联;以及
根据所述第二哈希链中的最后一个链哈希值以及所述待验证的数据的验证信息来判断所述数据是否完整。
16.如权利要求15所述的方法,其中,根据所述第一哈希链来计算第二哈希链包括:
利用所述多个数据块中的头两个或更多个数据块的分块哈希值作为所述第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
17.如权利要求15所述的方法,其中,根据所述第一哈希链来计算第二哈希链包括:
利用所述多个数据块中的第一个数据块的分块哈希值和指定的初始化值作为第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
18.如权利要求15-17中任一项所述的方法,还包括:
如果判断所述待验证的数据不是完整的,则从保存有原始数据的完整性信息的安全存储器中获取信息,并利用该信息来定位所述待验证的数据中出现错误的数据块,
其中,所述完整性信息包括原始数据的第一哈希链和第二哈希链,原始数据的第一哈希链包括根据原始数据的数据块计算的多个原始分块哈希值,原始数据的第二哈希链包括根据其第一哈希链计算的多个原始链哈希值。
19.如权利要求18所述的方法,其中,定位所述待验证的数据中出现错误的数据块包括:
从所述第二哈希链的最后一个链哈希值开始,从所述安全存储器中获取与该最后一个链哈希值对应的数据块的原始分块哈希值及与前一链哈希值对应的原始链哈希值;
判断最后一个数据块的分块哈希值是否与其原始分块哈希值相同,若不相同,则确定最后一个数据块发生错误;以及
进一步判断前一链哈希值是否与其原始链哈希值相同,若相同,则确定该数据块之前的数据块均未发生错误,处理终止,否则,重复以上获取和判断步骤,直到找到所有发生错误的数据块。
20.如权利要求18所述的方法,其中,定位所述待验证的数据中出现错误的数据块包括:
从所述安全存储器中获取所述第二哈希链中的两个或更多个原始链哈希值,根据这些原始链哈希值来确定出现错误的数据块所处的区域。
21.如权利要求18所述的方法,其中,定位所述待验证的数据中出现错误的数据块包括:
从所述安全存储器中获取与所述待验证的数据的多个数据块对应的所有的原始分块哈希值;以及
将计算得到的所述多个分块哈希值中的每个与对应的原始分块哈希值进行比较,以定位出现错误的数据块。
22.一种数据完整性的验证设备,包括:
数据分块装置,用于将待验证的数据分成多个数据块;
哈希计算装置,该哈希计算装置用于利用第一哈希函数来计算每个数据块的哈希值,得到多个分块哈希值,所述多个分块哈希值形成第一哈希链;该计算装置还用于利用第二哈希函数、根据所述第一哈希链来计算第二哈希链,所述第二哈希链包括多个链哈希值,每个链哈希值与所述第一哈希链中的对应的分块哈希值关联,并与所述第二哈希链中的相邻链哈希值关联;以及
验证装置,用于根据所述第二哈希链中的最后一个链哈希值以及所述待验证的数据的验证信息来判断所述数据是否完整。
23.如权利要求22所述的设备,其中,所述哈希计算装置被配置用于利用以下来计算第二哈希链包括:
利用所述多个数据块中的头两个或更多个数据块的分块哈希值作为所述第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
24.如权利要求22所述的设备,其中,所述哈希计算装置被配置用于利用以下来计算第二哈希链包括:
利用所述多个数据块中的第一个数据块的分块哈希值和指定的初始化值作为第二哈希函数的自变量来计算哈希值,作为所述第二哈希链中的第一个链哈希值;及
对于从所述第二哈希链中的第二个链哈希值开始的每个链哈希值,利用前一链哈希值和对应的分块哈希值作为所述第二哈希函数的自变量来计算该链哈希值。
25.如权利要求22-24中任一项所述的设备,还包括:
错误定位装置,用于在所述验证装置判断所述待验证的数据不是完整的时获取原始数据的完整性信息,并根据所述完整性信息来定位所述待验证的数据中出现错误的数据块,
其中,所述完整性信息包括原始数据的第一哈希链和第二哈希链,原始数据的第一哈希链包括根据原始数据的数据块计算的多个原始分块哈希值,原始数据的第二哈希链包括根据其第一哈希链计算的多个原始链哈希值。
26.如权利要求25所述的设备,其中,所述错误定位装置用于通过以下来定位所述待验证的数据中出现错误的数据块:
从所述第二哈希链的最后一个链哈希值开始,从所述安全存储器中获取与该最后一个链哈希值对应的数据块的原始分块哈希值及与前一链哈希值对应的原始链哈希值;
判断最后一个数据块的分块哈希值是否与其原始分块哈希值相同,若不相同,则确定最后一个数据块发生错误;以及
进一步判断前一链哈希值是否与其原始链哈希值相同,若相同,则确定该数据块之前的数据块均未发生错误,处理终止,否则,重复以上获取和判断步骤,直到找到所有发生错误的数据块。
27.如权利要求25所述的设备,其中,所述错误定位装置用于通过以下来定位所述待验证的数据中出现错误的数据块:
从所述安全存储器中获取所述第二哈希链中的两个或更多个原始链哈希值,根据这些原始链哈希值来确定出现错误的数据块所处的区域。
28.如权利要求25所述的设备,其中,所述错误定位装置用于通过以下来定位所述待验证的数据中出现错误的数据块:
从所述安全存储器中获取与所述待验证的数据的多个数据块对应的所有的原始分块哈希值;以及
将计算得到的所述多个分块哈希值中的每个与对应的原始分块哈希值进行比较,以定位出现错误的数据块。
29.一种数据完整性的保护系统,包括根据权利要求8-14中任一项所述的数据完整性的保护设备和根据权利要求22-28中任一项所述的数据完整性的验证设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105156376A CN102446250A (zh) | 2010-10-13 | 2010-10-13 | 数据完整性的保护和验证方法、设备和系统 |
US13/271,590 US20120096564A1 (en) | 2010-10-13 | 2011-10-12 | Data integrity protecting and verifying methods, apparatuses and systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105156376A CN102446250A (zh) | 2010-10-13 | 2010-10-13 | 数据完整性的保护和验证方法、设备和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102446250A true CN102446250A (zh) | 2012-05-09 |
Family
ID=45935303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105156376A Pending CN102446250A (zh) | 2010-10-13 | 2010-10-13 | 数据完整性的保护和验证方法、设备和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120096564A1 (zh) |
CN (1) | CN102446250A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819708A (zh) * | 2012-08-01 | 2012-12-12 | 天地融科技股份有限公司 | 一种字模获取方法及装置、电子设备 |
CN103701842A (zh) * | 2012-09-27 | 2014-04-02 | 腾讯科技(深圳)有限公司 | 数据发送、接收方法及服务器、客户端 |
CN104009963A (zh) * | 2013-02-26 | 2014-08-27 | 中国银联股份有限公司 | 远程密码的安全认证机制 |
CN105574439A (zh) * | 2015-04-17 | 2016-05-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种系统盘的校验方法和装置 |
CN106506440A (zh) * | 2015-09-07 | 2017-03-15 | 阿姆Ip有限公司 | 用于验证数据完整性的方法 |
CN107070665A (zh) * | 2017-04-28 | 2017-08-18 | 北京海泰方圆科技股份有限公司 | 一种数字签名的方法及装置 |
CN108632318A (zh) * | 2017-03-21 | 2018-10-09 | 腾讯科技(深圳)有限公司 | 一种数据校验方法、数据发送方法、相关装置及系统 |
CN109257954A (zh) * | 2017-05-15 | 2019-01-22 | 松下电器(美国)知识产权公司 | 验证方法、验证装置和程序 |
CN109388918A (zh) * | 2018-11-02 | 2019-02-26 | 深圳市小牛普惠投资管理有限公司 | 资源包加密方法、装置、计算机设备及存储介质 |
CN110019278A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据验证方法、装置及设备 |
CN110582987A (zh) * | 2017-05-04 | 2019-12-17 | 国际商业机器公司 | 使用区块链建立配对群组并交换受保护的数据 |
CN111149322A (zh) * | 2017-09-25 | 2020-05-12 | 三菱电机株式会社 | 控制装置及控制装置系统 |
CN111522875A (zh) * | 2020-03-24 | 2020-08-11 | 福建省农村信用社联合社 | 一种全量数据同步的分布式系统数据副本一致性监测方法 |
CN112115522A (zh) * | 2020-09-27 | 2020-12-22 | 成都中科合迅科技有限公司 | 利用散列算法实现数据的可信存储的方法 |
CN112307511A (zh) * | 2020-11-06 | 2021-02-02 | 珠海格力电器股份有限公司 | 文件防护方法和系统 |
CN113114749A (zh) * | 2021-03-01 | 2021-07-13 | 北京信息科技大学 | 一种哈希链构建及文件数据同步方法、装置及系统 |
CN113190863A (zh) * | 2019-03-29 | 2021-07-30 | 神讯电脑(昆山)有限公司 | 验证码产生方法、资料验证方法及电子装置 |
CN115618428A (zh) * | 2022-12-19 | 2023-01-17 | 江西曼荼罗软件有限公司 | 一种基于区块链技术的数据完整性校验方法及系统 |
CN116266042A (zh) * | 2021-12-16 | 2023-06-20 | 江西亿铂电子科技有限公司 | 可替换装置、可替换芯片及其通信方法 |
RU2801124C1 (ru) * | 2022-10-26 | 2023-08-02 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ контроля и восстановления целостности многомерных массивов данных в условиях деградации систем хранения |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11469789B2 (en) | 2008-07-09 | 2022-10-11 | Secureall Corporation | Methods and systems for comprehensive security-lockdown |
US10128893B2 (en) | 2008-07-09 | 2018-11-13 | Secureall Corporation | Method and system for planar, multi-function, multi-power sourced, long battery life radio communication appliance |
US10447334B2 (en) | 2008-07-09 | 2019-10-15 | Secureall Corporation | Methods and systems for comprehensive security-lockdown |
WO2013138785A1 (en) * | 2012-03-16 | 2013-09-19 | Secureall Corporation | Electronic apparatuses and methods for access control and for data integrity verification |
CN102855302A (zh) * | 2012-08-17 | 2013-01-02 | 东方钢铁电子商务有限公司 | 适用于信息链的数据信息处理方法 |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN104112284B (zh) * | 2013-04-22 | 2017-10-13 | 阿里巴巴集团控股有限公司 | 一种图片的相似度检测方法和设备 |
JP5915629B2 (ja) * | 2013-11-28 | 2016-05-11 | トヨタ自動車株式会社 | データ共有システムにおける通信方法、データ共有システム、および通信ノード |
WO2015189343A1 (en) * | 2014-06-12 | 2015-12-17 | Thomson Licensing | Methods and systems for color processing of digital images |
DE102014226772A1 (de) * | 2014-12-22 | 2016-06-23 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Senden und Verfifizieren einer Signatur |
US9871775B2 (en) | 2015-08-10 | 2018-01-16 | Cisco Technology, Inc. | Group membership block chain |
EP3154218A1 (en) * | 2015-10-06 | 2017-04-12 | Thomson Licensing | Device and method for discontinuous hashing of digital data |
CN107172003B (zh) * | 2016-03-08 | 2020-08-04 | 创新先进技术有限公司 | 一种发布信息的处理方法、装置及信息发布系统 |
GB2548851B (en) | 2016-03-30 | 2018-07-25 | The Ascent Group Ltd | Validation of the integrity of data |
KR101780635B1 (ko) | 2016-04-28 | 2017-09-21 | 주식회사 코인플러그 | 인증 정보의 생성, 등록, 파기 방법 및 인증 지원 서버 |
US10133503B1 (en) * | 2016-05-02 | 2018-11-20 | Pure Storage, Inc. | Selecting a deduplication process based on a difference between performance metrics |
US10136098B2 (en) | 2017-03-28 | 2018-11-20 | International Business Machines Corporation | Integrity verification of an audio-visual data stream |
GB2562079B (en) * | 2017-05-04 | 2021-02-10 | Arm Ip Ltd | Continuous hash verification |
CN108023884A (zh) * | 2017-12-05 | 2018-05-11 | 北京军秀咨询有限公司 | 一种网络与信息安全的加密方法 |
CN110149373B (zh) * | 2019-04-28 | 2022-01-07 | 平安科技(深圳)有限公司 | 基于点对点网络的数据存储方法、装置、介质及服务器 |
CA3146035A1 (en) | 2019-08-12 | 2021-02-18 | Audio Visual Preservation Solutions, Inc. | Source identifying forensics system, device, and method for multimedia files |
CN113668584A (zh) * | 2020-05-13 | 2021-11-19 | 必照岩土科技(南京)有限公司 | 一种环保复合型防绕渗柔性竖向隔离系统及安装方法 |
GB2622761A (en) * | 2022-05-18 | 2024-04-03 | Zappaty Ltd | Methods of Transmitting and Receiving Files |
-
2010
- 2010-10-13 CN CN2010105156376A patent/CN102446250A/zh active Pending
-
2011
- 2011-10-12 US US13/271,590 patent/US20120096564A1/en not_active Abandoned
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819708B (zh) * | 2012-08-01 | 2015-12-09 | 天地融科技股份有限公司 | 一种字模获取方法及装置、电子设备 |
CN102819708A (zh) * | 2012-08-01 | 2012-12-12 | 天地融科技股份有限公司 | 一种字模获取方法及装置、电子设备 |
CN103701842A (zh) * | 2012-09-27 | 2014-04-02 | 腾讯科技(深圳)有限公司 | 数据发送、接收方法及服务器、客户端 |
CN104009963B (zh) * | 2013-02-26 | 2019-05-10 | 中国银联股份有限公司 | 远程密码的安全认证机制 |
CN104009963A (zh) * | 2013-02-26 | 2014-08-27 | 中国银联股份有限公司 | 远程密码的安全认证机制 |
CN105574439A (zh) * | 2015-04-17 | 2016-05-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种系统盘的校验方法和装置 |
US11146400B2 (en) | 2015-09-07 | 2021-10-12 | Arm Ip Limited | Methods for verifying data integrity |
CN106506440B (zh) * | 2015-09-07 | 2021-09-07 | 阿姆Ip有限公司 | 用于验证数据完整性的方法 |
CN106506440A (zh) * | 2015-09-07 | 2017-03-15 | 阿姆Ip有限公司 | 用于验证数据完整性的方法 |
CN108632318A (zh) * | 2017-03-21 | 2018-10-09 | 腾讯科技(深圳)有限公司 | 一种数据校验方法、数据发送方法、相关装置及系统 |
CN108632318B (zh) * | 2017-03-21 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 一种数据校验方法、数据发送方法、相关装置及系统 |
CN107070665B (zh) * | 2017-04-28 | 2018-06-12 | 北京海泰方圆科技股份有限公司 | 一种数字签名的方法及装置 |
CN107070665A (zh) * | 2017-04-28 | 2017-08-18 | 北京海泰方圆科技股份有限公司 | 一种数字签名的方法及装置 |
CN110582987A (zh) * | 2017-05-04 | 2019-12-17 | 国际商业机器公司 | 使用区块链建立配对群组并交换受保护的数据 |
CN109257954B (zh) * | 2017-05-15 | 2022-10-28 | 松下电器(美国)知识产权公司 | 验证方法、验证装置和计算机可读取记录介质 |
CN109257954A (zh) * | 2017-05-15 | 2019-01-22 | 松下电器(美国)知识产权公司 | 验证方法、验证装置和程序 |
CN111149322A (zh) * | 2017-09-25 | 2020-05-12 | 三菱电机株式会社 | 控制装置及控制装置系统 |
CN111149322B (zh) * | 2017-09-25 | 2021-06-11 | 三菱电机株式会社 | 控制装置及控制装置系统 |
CN109388918B (zh) * | 2018-11-02 | 2020-07-28 | 深圳市小牛普惠投资管理有限公司 | 一种资源包加密方法、装置、计算机设备及存储介质 |
CN109388918A (zh) * | 2018-11-02 | 2019-02-26 | 深圳市小牛普惠投资管理有限公司 | 资源包加密方法、装置、计算机设备及存储介质 |
CN110019278B (zh) * | 2019-01-31 | 2023-07-28 | 创新先进技术有限公司 | 一种数据验证方法、装置及设备 |
CN110019278A (zh) * | 2019-01-31 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据验证方法、装置及设备 |
CN113190863B (zh) * | 2019-03-29 | 2024-01-30 | 神讯电脑(昆山)有限公司 | 验证码产生方法、资料验证方法及电子装置 |
CN113190863A (zh) * | 2019-03-29 | 2021-07-30 | 神讯电脑(昆山)有限公司 | 验证码产生方法、资料验证方法及电子装置 |
CN111522875B (zh) * | 2020-03-24 | 2022-05-24 | 福建省农村信用社联合社 | 一种全量数据同步的分布式系统数据副本一致性监测方法 |
CN111522875A (zh) * | 2020-03-24 | 2020-08-11 | 福建省农村信用社联合社 | 一种全量数据同步的分布式系统数据副本一致性监测方法 |
CN112115522A (zh) * | 2020-09-27 | 2020-12-22 | 成都中科合迅科技有限公司 | 利用散列算法实现数据的可信存储的方法 |
CN112115522B (zh) * | 2020-09-27 | 2023-10-20 | 成都中科合迅科技有限公司 | 利用散列算法实现数据的可信存储的方法 |
CN112307511A (zh) * | 2020-11-06 | 2021-02-02 | 珠海格力电器股份有限公司 | 文件防护方法和系统 |
CN113114471A (zh) * | 2021-03-01 | 2021-07-13 | 北京信息科技大学 | 一种报文哈希链的构建方法及装置 |
CN113114472A (zh) * | 2021-03-01 | 2021-07-13 | 北京信息科技大学 | 一种基于报文哈希链的认证方法及系统 |
CN113114749A (zh) * | 2021-03-01 | 2021-07-13 | 北京信息科技大学 | 一种哈希链构建及文件数据同步方法、装置及系统 |
CN116094731A (zh) * | 2021-03-01 | 2023-05-09 | 北京信息科技大学 | 一种基于报文哈希链的签名认证方法及系统 |
CN116155507A (zh) * | 2021-03-01 | 2023-05-23 | 北京信息科技大学 | 一种报文哈希链的构建方法 |
CN116266042A (zh) * | 2021-12-16 | 2023-06-20 | 江西亿铂电子科技有限公司 | 可替换装置、可替换芯片及其通信方法 |
RU2801124C1 (ru) * | 2022-10-26 | 2023-08-02 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Способ контроля и восстановления целостности многомерных массивов данных в условиях деградации систем хранения |
CN115618428A (zh) * | 2022-12-19 | 2023-01-17 | 江西曼荼罗软件有限公司 | 一种基于区块链技术的数据完整性校验方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20120096564A1 (en) | 2012-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102446250A (zh) | 数据完整性的保护和验证方法、设备和系统 | |
US11018854B2 (en) | Data conversion systems and methods | |
CN107483585B (zh) | 云环境中支持安全去重的高效数据完整性审计系统及方法 | |
CN108664223B (zh) | 一种分布式存储方法、装置、计算机设备及存储介质 | |
CN110059494B (zh) | 一种区块链交易数据的隐私保护方法及区块链系统 | |
US7127067B1 (en) | Secure patch system | |
CN109981639B (zh) | 基于区块链的分布式可信网络连接方法 | |
CN103595525A (zh) | 一种抗去同步化的轻量级rfid双向认证协议 | |
US10425231B2 (en) | Information processing apparatus and method for authenticating message | |
CN105228157A (zh) | 一种无线传感器网络安全轻量重编程方法 | |
US20160241404A1 (en) | Method for manipulation protection | |
KR101596753B1 (ko) | 메시지 인증 코드 분할을 통한 순차적 can 패킷 인증 방법 및 그 장치 | |
CN106936563B (zh) | 用于保护密码运算的方法和系统 | |
CN112787796A (zh) | 一种边缘计算中检测虚假数据注入的聚合方法及装置 | |
US10129025B2 (en) | Binding data to a network in the presence of an entity with revocation capabilities | |
CN101980471B (zh) | 数字签名方法、数字签名的验证方法、装置及系统 | |
CN104995866A (zh) | 使用利用无进位乘法计算的通用哈希函数的消息认证 | |
CN101789939B (zh) | 一种有效的可信OpenSSH的实现方法 | |
CN102781005B (zh) | 应答器、读取器及其操作方法 | |
CN106850232A (zh) | 状态保持的授权管理方法和系统 | |
US20110029784A1 (en) | Method of processing data protected against fault injection attacks and associated device | |
CN104270756A (zh) | 身份与位置分离网络中的域内映射更新认证方法 | |
CN112132578B (zh) | 一种基于区块链的高效交易处理方法、追踪方法及装置 | |
Ansari et al. | IntelliCAN: Attack-resilient controller area network (CAN) for secure automobiles | |
CN107786330B (zh) | 用于秘密共享的方法、装置、计算机存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120509 |