CN117556476A - 一种数据验证方法、装置、设备及介质 - Google Patents
一种数据验证方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117556476A CN117556476A CN202311572536.6A CN202311572536A CN117556476A CN 117556476 A CN117556476 A CN 117556476A CN 202311572536 A CN202311572536 A CN 202311572536A CN 117556476 A CN117556476 A CN 117556476A
- Authority
- CN
- China
- Prior art keywords
- data
- digest
- hash value
- verification
- standard
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000013524 data verification Methods 0.000 title claims abstract description 16
- 238000012795 verification Methods 0.000 claims abstract description 126
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 97
- 238000012545 processing Methods 0.000 claims abstract description 79
- 238000004891 communication Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013502 data validation Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
- G06F16/345—Summarisation for human users
-
- 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/602—Providing cryptographic facilities or services
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种数据验证方法、装置、设备及介质。该方法包括第一设备可以根据哈希算法分别对获得的第一数据和第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值。第一设备可以将第一数据的哈希值和第二数据的哈希值进行相加,再根据预设的摘要算法对相加后的数据进行摘要处理,获得第一验证摘要。第一设备可以根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。若第一验证摘要与相应的标准摘要相同,则说明第一数据和第二数据均未被篡改。因此,采用该方法可以根据第一验证摘要验证多个数据中是否存在被篡改的数据,从而提高验证数据是否被篡改的效率。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种数据验证方法、装置、设备及介质。
背景技术
数据摘要算法的主要特征是生成的数据摘要无法实现反向解密。使用相同的数据摘要算法对相同的数据进行处理,获得数据摘要是相同的。在实际应用中,使用相同的数据摘要算法对不同的数据进行处理,通常会获得不同的数据摘要,因此,在信息安全技术领域,数据摘要算法可用于验证数据是否被篡改。
为了提高验证数据是否被篡改的准确性,目前通常会使用带密钥的数据摘要算法生成相应的数据摘要。其中,验证数据是否被篡改的方案通常是在验证数据时,使用相同的数据摘要算法对该数据再次进行摘要计算,若前后两次的数据摘要相同,则表示该数据未被篡改,若前后两次的数据摘要不同,则表示该数据被篡改。
然而,由于带密钥的数据摘要算法的计算量较大,导致根据该方法对多个数据进行完整性验证的效率较低。
发明内容
本申请提供了一种数据验证方法、装置、设备及介质,用于提高对多个数据进行完整性验证的效率。
第一方面,本申请提供了一种数据验证方法,该方法包括:获取第一数据和第二数据。根据哈希算法分别对第一数据和第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值。根据预设的摘要算法对第一数据的哈希值和第二数据的哈希值的和进行摘要处理,获得第一验证摘要。根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。
采用该方法,本申请中可以根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。也就是说,若第一验证摘要与相应的标准摘要相同,则说明第一数据和第二数据均未被篡改。因此,采用该方法可以根据第一验证摘要验证多个数据中是否存在被篡改的数据,从而提高验证多个数据是否被篡改的效率。
在一种可能的实施例中,根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据,包括:获取第一标准摘要,第一标准摘要是将第一数据的标准摘要和第二数据的标准摘要进行累乘获得的,第一数据的标准摘要和第二数据的标准摘要是根据预设的摘要算法分别对第一数据的哈希值和第二数据的哈希值进行摘要处理获得的。根据第一验证摘要和第一标准摘要验证第一数据和第二数据中是否存在被篡改的数据。
基于该实施例,第一标准摘要是将第一数据的标准摘要与第二数据的标准摘要进行相乘获得的,从而保证本申请所提供方法的可实施性。
在一种可能的实施例中,若第一验证摘要与第一标准摘要不相等,该方法还包括:根据预设的摘要算法对第一数据的哈希值进行摘要处理,获得第一数据的验证摘要,并根据第一数据的验证摘要和第一数据的标准摘要验证第一数据是否被篡改。以及,根据预设的摘要算法对第二数据的哈希值进行摘要处理,获得第二数据的验证摘要,并根据第二数据的验证摘要和第二数据的标准摘要验证第二数据是否被篡改。
基于该实施例,若第一验证摘要与第一标准摘要不相等,则说明第一数据与第二数据中至少存在一个被篡改的数据。当第一数据与第二数据中存在被篡改的数据,可以根据数据的验证摘要和标准摘要确定该数据是否被篡改,从而提高确定被篡改的数据的效率。
在一种可能的实施例中,根据预设的摘要算法对第一数据的哈希值、第二数据的哈希值以及第三数据的哈希值的和进行摘要处理,获得第二验证摘要,第三数据的哈希值是根据哈希算法对第三数据进行处理获得的。根据第二验证摘要验证第一数据、第二数据和第三数据中是否存在被篡改的数据。
基于该实施例,本申请中可以对三个数据进行处理,获得相应的验证摘要,并根据该验证摘要验证三个数据中是否存在被篡改的数据。可理解的,本申请还可以对更多个数据,不再一一举例。
在一种可能的实施例中,预设的摘要算法包括线性同态哈希算法。
第二方面,本申请提供了一种数据验证装置,该装置包括:通信模块,用于获取第一数据和第二数据。处理模块,用于根据哈希算法分别对第一数据和第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值。处理模块,还用于根据预设的摘要算法对第一数据的哈希值和第二数据的哈希值的和进行摘要处理,获得第一验证摘要。处理模块,还用于根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。
在一种可能的实施例中,通信模块,还用于获取第一标准摘要,第一标准摘要是将第一数据的标准摘要和第二数据的标准摘要进行累乘获得的,第一数据的标准摘要和第二数据的标准摘要是根据预设的摘要算法分别对第一数据的哈希值和第二数据的哈希值进行摘要处理获得的。处理模块,具体用于根据第一验证摘要和第一标准摘要验证第一数据和第二数据中是否存在被篡改的数据。
在一种可能的实施例中,若第一验证摘要与第一标准摘要不相等,处理模块还用于:根据预设的摘要算法对第一数据的哈希值进行摘要处理,获得第一数据的验证摘要,并根据第一数据的验证摘要和第一数据的标准摘要验证第一数据是否被篡改。以及,根据预设的摘要算法对第二数据的哈希值进行摘要处理,获得第二数据的验证摘要,并根据第二数据的验证摘要和第二数据的标准摘要验证第二数据是否被篡改。
在一种可能的实施例中,处理模块还用于根据预设的摘要算法对第一数据的哈希值、第二数据的哈希值以及第三数据的哈希值的和进行摘要处理,获得第二验证摘要,第三数据的哈希值是根据哈希算法对第三数据进行处理获得的。根据第二验证摘要验证第一数据、第二数据和第三数据中是否存在被篡改的数据。
在一种可能的实施例中,预设的摘要算法包括线性同态哈希算法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现第一方面和第二方面及其任意一种设计的方法。
第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面和第二方面及其任意一种设计的方法。
第二方面至第四方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的实施方式,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据验证方法的流程示意图;
图2为本申请实施例提供的一种数据验证系统的结构示意图;
图3为本申请实施例提供的一种验证摘要的分组示意图;
图4为本申请实施例提供的一种存储标准摘要的结构示意图;
图5为本申请实施例提供的一种数据验证装置的结构示意图;
图6为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步的详细描述,显然,本申请所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
下面,结合现有技术对数据完整性验证的方法进行介绍。
目前现有技术中,在信息安全技术领域,验证数据是否被篡改的方案通常是根据数据摘要算法验证数据是否被篡改。
例如,为了验证传输的数据是否被篡改,数据发送方可以根据数据摘要算法生成该数据的数据摘要,并向数据接收方发送数据以及数据摘要,数据接收方接收到数据后可以根据相同的数据摘要算法生成该数据的数据摘要。若计算出的数据摘要与接收到的数据摘要相同,则表示数据未被篡改,若两个数据摘要不同,则表示数据被篡改。
然而,由于数据摘要算法是公开的,恶意篡改者在对数据进行篡改后,可以根据相同的数据摘要算法对数据进行处理,获得相应的数据摘要。也就是说,即便数据被篡改,但被篡改的数据仍可以通过完整性验证,从而导致数据的完整性验证的准确率降低。
为了避免数据和数据摘要同时被篡改,目前通常会采用带有密钥的数据摘要算法对数据进行摘要处理,获得相应的数据摘要,并根据前后两次的数据摘要验证该数据的完整性。即,若前后两次的数据摘要相同,则表明数据未被篡改;若前后两次的数据摘要不相同,则表明数据被篡改。
然而,由于该方法是对数据进行多次摘要处理,则该方法的计算量较大。若采用该方法对多个数据进行完整性验证,则会导致数据完整性验证的效率较低。
为了解决上述技术缺陷,本申请提供一种数据验证确定方法及装置。该方法中,第一设备可以根据哈希算法分别对获得的第一数据和第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值。第一设备可以将第一数据的哈希值和第二数据的哈希值进行相加,再根据预设的摘要算法对相加后的数据进行摘要处理,获得第一验证摘要。第一设备可以根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。
可理解的,本申请中可以根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。也就是说,若第一验证摘要与相应的标准摘要相同,则说明第一数据和第二数据均未被篡改。因此,采用该方法可以根据第一验证摘要验证多个数据中是否存在被篡改的数据,从而提高验证数据是否被篡改的效率。
此外,第一设备可以是计算机系统,也可以是数据设备中用于执行本申请所示方法的装置,如处理器或处理模块等,本申请不具体限定。
图1为本发明实施例提供的一种数据验证方法的流程示意图。以第一设备为执行主体为例,该流程可以包括以下步骤:
S101,第一设备获取第一数据和第二数据。
具体的,第一数据和第二数据可以是待验证是否被篡改的数据。第一设备可以通过接收来自于其他设备的第一数据和第二数据的方式获取第一数据和第二数据。例如,本申请中还包括数据使用设备,数据使用设备在使用第一数据和第二数据前需要确定第一数据和第二数据是否被篡改,则数据使用设备可以向第一设备发送第一数据和第二数据,并向第一设备发送验证第一数据和第二数据的请求。相应的,第一设备接收来自于数据使用设备的第一数据和第二数据,以及相应的请求。
第一数据和第二数据也可以是第一设备自身存储的数据。例如,图2为本申请实施例提供的一种数据验证系统的结构示意图。如图2所示,服务端可以表示为第一设备,第一数据和第二数据可以存储在数据库中。客户端可以向第一设备发送验证第一数据和第二数据完整性的请求。相应的,第一设备接收来自于客户端的验证第一数据和第二数据完整性的请求。第一设备可以根据该请求从数据库中获取待验证的第一数据和第二数据。
又如,第一数据和第二数据可以分别是存储在第一设备的存储单元中的两条不同的系统日志。当第一设备接收到验证系统日志是否被篡改的请求后,可以从自身的存储单元中调取系统日志。
从外,本申请中,第一设备获取的数据中还可以包括其他的待验证是否被篡改的数据(如,第三数据、第四数据等)。本申请不再一一举例说明。
S102,第一设备根据哈希算法分别对第一数据和第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值。
具体的,第一设备在获得第一数据和第二数据后,可以根据预先设定好的哈希算法对第一数据进行哈希处理,获得第一数据的哈希值。以及,根据预先设定好的哈希算法对第二数据进行哈希处理,获得第二数据的哈希值。其中,本申请中不区分第一设备获得第一数据的哈希值和第一设备获得第二数据的哈希值的先后顺序。
可理解的,若本申请中的待验证是否被篡改的数据包括第三数据,则第一设备可以根据哈希算法对第三数据进行哈希处理,获得第三数据的哈希值。
仍以图2为例,如图2所示,加密机可以用于对数据进行加密处理。服务端可以向加密机发送第一数据和第二数据。加密机可以分别对第一数据和第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值。
示例性的,待验证是否被篡改的数据包括i个数据,则第i个数据可以表示为xi,第i个数据的哈希值可以表示为mi,则第i个数据和第i个数据的哈希值满足:
mi=hash(xi);
其中,hash(x)表示对x进行哈希运算。
S103,第一设备根据预设的摘要算法对第一数据的哈希值和第二数据的哈希值的和进行摘要处理,获得第一验证摘要。
具体的,第一设备在获得第一数据的哈希值和第二数据的哈希值后,可以将第一数据的哈希值和第二数据的哈希值进行相加,获得第一聚合哈希值。即,第一聚合哈希值为第一数据的哈希值和第二数据的哈希值的和。
仍以图2为例,加密机在生成第一数据的哈希值和第二数据的哈希值后,还可以将第一数据的哈希值和第二数据的哈希值进行累加,获得第一聚合哈希值。
示例性的,第一数据的哈希值可以表示为m1,第二数据的哈希值可以表示为m2,第一聚合哈希值可以表示为m1,2,则第一数据的哈希值、第二数据的哈希值和第一聚合哈希值满足:
m1,2=∑mi,i∈[1,2];
其中,∑为累加符号。
预设的摘要算法可以是根据数据的重要性进行设定的。预设的摘要算法也可以是根据计算设备的计算能力进行设定的。或者,预设的摘要算法可以是根据其他需求进行设定的,本申请不做具体限定。
第一设备在获得第一聚合哈希值后,可以根据预设的摘要算法对第一聚合哈希值进行摘要处理,获得第一验证摘要。
在一个或多个实施例中,预设的摘要算法包括线性哈希同态算法。
具体的,哈希同态算法(Linear Homomorphic Hash,LHH)可以满足哈希函数所需的单向性、抗碰撞性、输出为固定长度的特性,同时又额外拥有同态性。
示例性的,预设的摘要算法可以是线性哈希同态算法,哈希算法可以是SM3哈希算法,用于生成公共参数的算法可以是参数初始化LHH.HGen(1κ,1t)→LHHpp。其中,LHH.HGen(1κ,1t)→LHHpp是指输入安全参数κ和消息向量的维数t后,输出公共参数LHHpp。LHHpp包括循环群阶数q,生成元g,/> 安全参数和阶数满足:
κ可以是根据哈希算法确定的,t可以是根据数据的重要性设定的。即,数据的重要性越高,可以将t的数值设定的越高。例如,重要性低的案子可以将t设置为1,重要性高的案子可以将t设置为2或者3。也就是说,用户可以根据自己的需求设置t的值。
第一设备可以从循环群中获得t个不同的g。其中,g可以作为摘要算法的参数。t个不同的g可以表示为gi,i∈[1,t]。
第一验证摘要可以表示为h,第一聚合哈希值可以表示为m,则第一验证摘要和第一聚合哈希值满足:
h=∏i∈[t]gi m[i];
其中,∏为累乘符号。
基于步骤S103,第一设备可以预设的摘要算法对第一数据的哈希值和第二数据的哈希值的和进行摘要处理,获得第一验证摘要,可以提供获得第一验证摘要的效率,从而提高验证多个数据是否被篡改的效率。
S104,第一设备根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。
具体的,第一设备在验证第一数据和第二数据中是否存在被篡改的数据之前,第一设备还可以获得第一标准摘要。
在一个或多个实施例中,第一设备根据第一验证摘要和第一标准摘要验证第一数据和第二数据中是否存在被篡改的数据。
具体的,第一标准摘要可以是将第一数据的标准摘要和第二数据的标准摘要进行累乘获得的。也就是说,第一标准摘要可以是第一数据的标准和第二数据的标准摘要的积。第一数据的标准摘要可以是根据预设的摘要算法(如线性同态哈希算法)对第一数据的哈希值进行摘要处理获得的。同理,第二数据的标准摘要可以是根据预设的摘要算法(如线性同态哈希算法)对第二数据的哈希值进行摘要处理获得的。
示例性的,仍以图2为例,服务端可以调用加密机对第一数据(如,系统日志1)进行哈希处理以及摘要处理,获得第一数据的标准摘要。服务端可以同时将第一数据和第一数据的标准摘要存储至数据库中。同理,服务端可以调用加密机对第二数据(如,系统日志2)进行哈希处理以及摘要处理,获得第二数据的标准摘要。服务端可以同时将第一数据和第一数据的标准摘要存储至数据库中。服务端还可以调用加密机将第一数据的标准摘要和第二数据的标准摘要进行累乘,获得第一标准摘要。
第一设备可以接收来自于其他设备的第一标准摘要。例如,本申请还包括第二设备,且第一数据和第二数据均是由第二设备向第一设备发送的,则第二设备向第一设备发送第一数据和第二数据的同时,还可以向第一设备发送第一标准摘要。相应的,第一设备接受来自于第二设备的第一标准摘要。第一标准摘要也可以是第一设备从存储装置中获取的。例如,仍以图2为例,数据库中预先存储第一标准摘要,则服务端可以从数据库中获取第一标准摘要。
第一设备在获得第一验证摘要和第一标准摘要后,可以判断第一验证摘要和第一标准摘要是否相等。若第一验证摘要与第一标准摘要相等,则说明第一数据和第二数据均未被篡改。若第一验证摘要与的第一标准摘要不相等,则说明第一数据和第二数据中至少一个数据被篡改。
基于该实施例,第一标准摘要是将第一数据的标准摘要与第二数据的标准摘要进行相乘获得的,从而保证本申请所提供方法的可实施性。
在一个或多个实施例中,根据预设的摘要算法对第一数据的哈希值、第二数据的哈希值以及第三数据的哈希值的和进行摘要处理,获得第二验证摘要,第三数据的哈希值是根据哈希算法对第三数据进行处理获得的。根据预设的摘要算法对第二聚合哈希值进行摘要处理,获得第二验证摘要;根据第二验证摘要验证第一数据、第二数据和第三数据中是否存在被篡改的数据。
具体的,由上述内容可知,第一聚合哈希值为第一数据的哈希值和第二数据的哈希值的和。若本申请的待验证的数据中新增第三数据,则可以将第一聚合哈希值和第三数据的哈希值进行累加,获得第二聚合哈希值。即,第二聚合哈希值为第一数据的哈希值、第二数据的哈希值以及第三数据的哈希值的和。其中,第三数据的哈希值的具体获得方式,可参见第一数据的哈希值的具体获得方式,此处不再赘述。
或者,本申请中的待验证的数据中包括第三数据,则将可以第一数据的哈希值、第二数据的哈希值和第三数据的哈希值进行累加,获得第二聚合哈希值。
可理解的,本申请中的待验证的数据还可以包括更多的数据,则将相应的数据的哈希值进行累加,获得相应的聚合哈希值,此处不再一一举例。
第一设备在生成第二聚合哈希值后,可以根据预设的摘要算法对第二聚合哈希值进行摘要处理,获得第二验证摘要。其中,第一设备获得第二验证摘要的具体方式,可以参见第一设备获得第一验证摘要的具体方式,此处不再赘述。
第一设备可以根据第二验证摘要和第二标准摘要判断第一数据、第二数据和第三数据中是否存在被篡改的数据。即,若第二验证摘要与第二标准摘要相等,则说明第一数据、第二数据和第三数据均未被篡改。若第二验证摘要与的第二标准摘要不相等,则说明第一数据、第二数据和第三数据中至少一个数据被篡改。其中,第一设备获得第二标准摘要的具体方式,可以参见第一设备获得第一标准摘要的具体方式,此处不再赘述。
基于该实施例,本申请中可以对三个数据进行处理,获得相应的验证摘要,并根据该验证摘要验证三个数据中是否存在被篡改的数据。可理解的,本申请还可以对更多个数据,不再一一举例。
在一个或多个实施例中,若第一验证摘要与第一标准摘要不相等,则第一设备可以根据预设的摘要算法对第一数据的哈希值进行摘要处理,获得第一数据的验证摘要,并根据第一数据的验证摘要和第一数据的标准摘要验证第一数据是否被篡改。以及,
第一设备可以根据预设的摘要算法对第二数据的哈希值进行摘要处理,获得第二数据的验证摘要,并根据第二数据的验证摘要和第二数据的标准摘要验证第二数据是否被篡改。
具体的,第一设备获得第一数据的验证摘要和第二数据的验证摘要的具体方式,可参见第一设备获得第一验证摘要的具体方式,此处不再赘述。
若第一数据的验证摘要与第一数据的标准摘要相同,则说明第一数据未被篡改。否则,第一数据被篡改。同理,若第二数据的验证摘要与第二数据的标准摘要相同,则说明第二数据未被篡改。否则,第二数据被篡改。
基于该实施例,若第一验证摘要与第一标准摘要不相等,则说明第一数据与第二数据中至少存在一个被篡改的数据。当第一数据与第二数据中存在被篡改的数据,可以根据数据的验证摘要和标准摘要确定该数据是否被篡改,从而提高确定被篡改的数据的效率。
当待验证的多个数据中存在被篡改的数据时,为了提高确定被篡改的数据效率,本申请可以根据待验证的数据的数量设定分组数,并根据分组数对数据进行分组,并根据分组的数据,获得相应的验证摘要。
例如,图3为本申请实施例提供的一种验证摘要的分组示意图。如图3所示,待验证的数据中包括8个数据。其中,8个数据可以分别表示为x1,x2,…,x7,x8。设定的分组数为4。第一设备可以将8个待验证的数据分为4组。即,x1与x2为同一组,……,x7与x8为同一组。
在对数据进行存储时,第一设备可以根据线性同态哈希算法对待验证的数据的哈希值进行摘要处理,获得相应数据的标准摘要。8个数据的一级标准摘要可以分别表示为h1,h2,…,h7,h8。
第一设备可以将x1的标准摘要与x2的标准摘要进行相乘,获得x1与x2的二级标准摘要h1,2。同理,第一设备可以获得x3与x4的二级标准摘要h3,4、x5与x6的二级标准摘要h5,6以及x7与x8的二级标准摘要h7,8。
第一设备可以将h1,2与h3,4进行相乘,获得x1、x2、x3和x4的三级标准摘要h1,4。同理,第一设备可以将h5,6与h7,8进行相乘,获得x5、x6、x7和x8的三级标准摘要h5,8。
第一设备可以将h1,4与h5,8进行相乘,获得x1、x2、x3、x4、x5、x6、x7和x8的四级标准摘要h1,8。
当第一设备对待验证的数据进行验证时,第一设备可以根据哈希算法分别对8个数据进行哈希计算,获得8个数据的哈希值。其中,8个数据的哈希值可以分别表示为m1,m2,…,m7,m8。第一设备可以将8个数据的哈希值进行累加,获得8个数据的聚合哈希值m1,8。8个数据的哈希值和8个数据的聚合哈希值满足:
m1,8=∑mi mod q;
其中,i∈[1,8],q为线性同态哈希算法中的阶数。
第一设备可以根据线性同态哈希算法对该聚合哈希值进行摘要处理,获得8个数据的四级验证摘要。8个数据的四级验证摘要可以表示为H1,8,则8个数据的验证摘要和聚合哈希值满足:
LHH.Hash(m1,8)=H1,8。
第一设备可以判断8个数据的四级验证摘要和8个数据的四级标准摘要是否相等。即,H1,8与h1,8是否相等。若H1,8与h1,8相等,则说明8个数据均未被篡改。若H1,8与h1,8不相等,则说明8个数据中至少有一个数据被篡改。
若H1,8与h1,8不相等,第一设备可以获得前4个数据的三级验证摘要H1,4和后4个数据的三级验证摘要H5,8。其中,第一设备获得H1,4和H5,8的具体方式,可以参见第一设备获得H1,8的具体方式,此处不再赘述。
第一设备可以判断H1,4与h1,4是否相等。若H1,4与h1,4相等,则说明x1,x2,x3,x4均未被篡改。若H1,4与h1,4不相等,则说明x1,x2,x3,x4中至少一个数据被篡改。同理,第一设备可以判断H5,8与h5,8是否相等。若H5,8与h5,8相等,则说明x5,x6,x7,x8均未被篡改。若H5,8与h5,8不相等,则说明x5,x6,x7,x8中至少一个数据被篡改。
可理解的,若三级验证摘要与三级标准摘要不相等,则第一设备可以获得二级验证摘要。其中,第二设备获得二级验证摘要的具体方式,可以参见第二设备获得四级验证摘要的具体方式,此处不再赘述。第一设备可以判断二级验证摘要与二级标准摘要是否相等。若二级验证摘要与二级标准摘要不相等,则第一设备可以通过比较一级验证摘要与一级标准摘要是否相等,确定被篡改的数据。
在一个或多个实施例中,第一设备可以根据预设的分组参数对数据进行分组,并根据分组数据确定相应的验证摘要。
具体的,分组参数可以包括分组宽度和分组级别数。其中,分组宽度用于指示一个分组中包括的数据的数量。分组级别数用于指示分组的级别的数量。
为了保证分组参数的合理性,以及保证验证数据完整性的效率,本申请可以设置分组宽度与分组级别之前满足的关系。分组宽度可以表示为λ,分组级别数可以表示为μ,则分组宽度与分组级别数满足:
μ≤λ+1。
待验证的多个数据的数量可以表示为i,待验证的多个数据可以表示为xk,k∈[1,i]。分组级别可以表示为j+1,1<j<μ,且j为整数。当分组宽度被待验证数据的数量整除时(即,λ|i),需要计算多级验证摘要。当 时,则需要计算k∈[i-λj+1,i]区间的数据的标准摘要/>也就是说,根据线性同态哈希算法对k∈[i-λj+1+b·λj-1,i-λj+(b+1)·λj-1],b∈[0,λ)区间的数据的哈希值进行计算,获得相应的标准摘要。
即,
此外,本申请还可以根据该分组方式将一级标准摘要和多个标准摘要进行分组存储,从而可以降低标准摘要在数据库中的标签数量。
示例性的,图4为本申请实施例提供的一种存储标准摘要的结构示意图。如图4所示,分组宽度设置为2,分组级别数设置为3,待验证的数据可以表示为x1,x2,…,x9,x10,用于存储一级标准摘要的标签可以表示为label,用于存储多级标准摘要(即,二级标准摘要和三级标准摘要)的标签可以表示为agg_label。
第一设备可以分别对x1,x2,…,x7,x8进行处理,获得相应的一级标准摘要h1,h2,…,h7,h8。
第一设备根据分组宽度和分组级别数对一级标准摘要进行处理,获得相应的二级标准摘要h1,2,h3,4,h5,6,h7,8。
第一设备可以根据分组宽度和分组级别数对一级标准摘要进行处理,获得相应的三级标准摘要h1,4,h5,8。
第一设备可以将一级标准摘要存储至label对应的字段中,将二级标签和三级标签存储至agg_label对应的字段中。
基于同样的技术构思,在上述各实施例的基础上,在本申请实施例中,提供了一种数据验证装置,图5为本申请的一些实施例提供的一种数据验证装置的结构示意图。如图5所示,该装置包括:
通信模块501,用于获取第一数据和第二数据。处理模块502,用于根据哈希算法分别对第一数据和第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值。处理模块502,还用于根据预设的摘要算法对第一数据的哈希值和第二数据的哈希值的和进行摘要处理,获得第一验证摘要。处理模块502,还用于根据第一验证摘要验证第一数据和第二数据中是否存在被篡改的数据。
在一种可能的实施例中,处理模块502,还用于获取第一标准摘要,第一标准摘要是将第一数据的标准摘要和第二数据的标准摘要进行累乘获得的,第一数据的标准摘要和第二数据的标准摘要是根据预设的摘要算法分别对第一数据的哈希值和第二数据的哈希值进行摘要处理获得的。处理模块502,具体用于根据第一验证摘要和第一标准摘要验证第一数据和第二数据中是否存在被篡改的数据。
在一种可能的实施例中,若第一验证摘要与第一标准摘要不相等,处理模块502还用于:根据预设的摘要算法对第一数据的哈希值进行摘要处理,获得第一数据的验证摘要,并根据第一数据的验证摘要和第一数据的标准摘要验证第一数据是否被篡改。以及,根据预设的摘要算法对第二数据的哈希值进行摘要处理,获得第二数据的验证摘要,并根据第二数据的验证摘要和第二数据的标准摘要验证第二数据是否被篡改。
在一种可能的实施例中,处理模块502还用于根据预设的摘要算法对第一数据的哈希值、第二数据的哈希值以及第三数据的哈希值的和进行摘要处理,获得第二验证摘要,第三数据的哈希值是根据哈希算法对第三数据进行处理获得的。根据第二验证摘要验证第一数据、第二数据和第三数据中是否存在被篡改的数据。
在一种可能的实施例中,预设的摘要算法包括线性同态哈希算法。
基于同一发明构思,本申请实施例提供一种电子设备,该设备可以实现前文论述的数据处理装置的功能。图6示出了本申请实施例提供的一种电子设备结构示意图。
本申请实施例中的电子设备可包括处理器601。处理器601是该装置的控制中心,可以利用各种接口和线路连接该装置的各个部分,通过运行或执行存储在存储器603内的指令以及调用存储在存储器603内的数据。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器603可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器603存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器603存储的指令,可以用于执行本申请实施例所公开的方法步骤。
存储器603作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器603可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器603是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器603还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中,该装置还可以包括通信接口602,电子设备可以通过该通信接口602传输数据。
可选的,可由图6所示处理器601(或处理器601和通信接口602)实现图5所示的处理模块502和/或通信模块501,也就是说,可以由处理器601(或处理器601和通信接口602)执行处理模块502和/或通信模块501的动作。
基于相同的发明构思,本申请实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图6所示的存储器603。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备。
Claims (12)
1.一种数据验证方法,其特征在于,所述方法包括:
获取第一数据和第二数据;
根据哈希算法分别对所述第一数据和所述第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值;
根据预设的摘要算法对所述第一数据的哈希值和所述第二数据的哈希值的和进行摘要处理,获得第一验证摘要;
根据所述第一验证摘要验证所述第一数据和所述第二数据中是否存在被篡改的数据。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一验证摘要验证所述第一数据和所述第二数据中是否存在被篡改的数据,包括:
获取第一标准摘要,所述第一标准摘要是将所述第一数据的标准摘要和所述第二数据的标准摘要进行累乘获得的,所述第一数据的标准摘要和所述第二数据的标准摘要是根据所述预设的摘要算法分别对所述第一数据的哈希值和所述第二数据的哈希值进行摘要处理获得的;
根据所述第一验证摘要和所述第一标准摘要验证所述第一数据和所述第二数据中是否存在被篡改的数据。
3.如权利要求2所述的方法,其特征在于,若所述第一验证摘要与所述第一标准摘要不相等,所述方法还包括:
根据所述预设的摘要算法对所述第一数据的哈希值进行摘要处理,获得第一数据的验证摘要,并根据所述第一数据的验证摘要和所述第一数据的标准摘要验证所述第一数据是否被篡改;以及,
根据所述预设的摘要算法对所述第二数据的哈希值进行摘要处理,获得第二数据的验证摘要,并根据所述第二数据的验证摘要和所述第二数据的标准摘要验证所述第二数据是否被篡改。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述预设的摘要算法对所述第一数据的哈希值、第二数据的哈希值以及第三数据的哈希值的和进行摘要处理,获得第二验证摘要,所述第三数据的哈希值是根据所述哈希算法对第三数据进行处理获得的;
根据所述第二验证摘要验证所述第一数据、所述第二数据和所述第三数据中是否存在被篡改的数据。
5.如权利要求1-4中任一所述方法,其特征在于,所述预设的摘要算法包括线性同态哈希算法。
6.一种数据验证装置,其特征在于,所述装置包括:
通信模块,用于获取第一数据和第二数据;
处理模块,用于根据哈希算法分别对所述第一数据和所述第二数据进行哈希处理,获得第一数据的哈希值和第二数据的哈希值;
所述处理模块,还用于根据预设的摘要算法对所述第一数据的哈希值和所述第二数据的哈希值的和进行摘要处理,获得第一验证摘要;
所述处理模块,还用于根据所述第一验证摘要验证所述第一数据和所述第二数据中是否存在被篡改的数据。
7.如权利要求6所述的装置,其特征在于,所述通信模块,还用于获取第一标准摘要,所述第一标准摘要是将所述第一数据的标准摘要和所述第二数据的标准摘要进行累乘获得的,所述第一数据的标准摘要和所述第二数据的标准摘要是根据所述预设的摘要算法分别对所述第一数据的哈希值和所述第二数据的哈希值进行摘要处理获得的;
所述处理模块,具体用于根据所述第一验证摘要和所述第一标准摘要验证所述第一数据和所述第二数据中是否存在被篡改的数据。
8.如权利要求7所述的装置,其特征在于,若所述第一验证摘要与所述第一标准摘要不相等,所述处理模块还用于:
根据所述预设的摘要算法对所述第一数据的哈希值进行摘要处理,获得第一数据的验证摘要,并根据所述第一数据的验证摘要和所述第一数据的标准摘要验证所述第一数据是否被篡改;以及,
根据所述预设的摘要算法对所述第二数据的哈希值进行摘要处理,获得第二数据的验证摘要,并根据所述第二数据的验证摘要和所述第二数据的标准摘要验证所述第二数据是否被篡改。
9.如权利要求6所述的装置,其特征在于,所述处理模块还用于:
根据所述预设的摘要算法对所述第一数据的哈希值、第二数据的哈希值以及第三数据的哈希值的和进行摘要处理,获得第二验证摘要,所述第三数据的哈希值是根据所述哈希算法对第三数据进行处理获得的;
根据所述第二验证摘要验证所述第一数据、所述第二数据和所述第三数据中是否存在被篡改的数据。
10.如权利要求6-9中任一所述装置,其特征在于,所述预设的摘要算法包括线性同态哈希算法。
11.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-5中任一所述数据验证方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行如权利要求1-5中任一所述数据验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311572536.6A CN117556476A (zh) | 2023-11-23 | 2023-11-23 | 一种数据验证方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311572536.6A CN117556476A (zh) | 2023-11-23 | 2023-11-23 | 一种数据验证方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117556476A true CN117556476A (zh) | 2024-02-13 |
Family
ID=89810606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311572536.6A Pending CN117556476A (zh) | 2023-11-23 | 2023-11-23 | 一种数据验证方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117556476A (zh) |
-
2023
- 2023-11-23 CN CN202311572536.6A patent/CN117556476A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109495249B (zh) | 一种区块链系统的数据存储方法、节点和区块链系统 | |
CN111801910A (zh) | 基于证明验证的用于认证链外数据的系统和方法 | |
CN113095510B (zh) | 一种基于区块链的联邦学习方法及装置 | |
US20080083039A1 (en) | Method for integrity attestation of a computing platform hiding its configuration information | |
US8654975B2 (en) | Joint encryption of data | |
CN112215608A (zh) | 数据处理方法和装置 | |
CN102687184B (zh) | 代理计算系统、方法及代理计算委托装置 | |
JP5510590B2 (ja) | 伝送システムと方法ならびにプログラム | |
CN111064583B (zh) | 一种门限sm2数字签名方法、装置、电子设备及存储介质 | |
US20090313171A1 (en) | Electronic transaction verification | |
CN112907375B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20220337392A1 (en) | Automatic digital media authenticator | |
CN112036878B (zh) | 数据处理方法及装置 | |
CN111080296A (zh) | 一种基于区块链系统的验证方法及装置 | |
US20230237437A1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
CN115580396A (zh) | 匿踪查询系统及匿踪查询方法 | |
CN116599669A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
Yang et al. | Lis: Lightweight signature schemes for continuous message authentication in cyber-physical systems | |
CN112466032B (zh) | 电子投票方法、装置及电子设备 | |
WO2023103316A1 (zh) | 应用管理方法及相关产品 | |
WO2023077627A1 (zh) | 一种基于区块链的隐私保护方案聚合方法及装置 | |
CN117556476A (zh) | 一种数据验证方法、装置、设备及介质 | |
CN109768969A (zh) | 权限控制方法及物联网终端、电子设备 | |
JP5469631B2 (ja) | 復号結果検証装置、方法及びプログラム | |
CN113055178B (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 |