CN116069856A - 一种基于区块链的数据完整性验证方法及系统 - Google Patents
一种基于区块链的数据完整性验证方法及系统 Download PDFInfo
- Publication number
- CN116069856A CN116069856A CN202211618115.8A CN202211618115A CN116069856A CN 116069856 A CN116069856 A CN 116069856A CN 202211618115 A CN202211618115 A CN 202211618115A CN 116069856 A CN116069856 A CN 116069856A
- Authority
- CN
- China
- Prior art keywords
- data
- hash value
- original data
- user
- hash
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种基于区块链的数据完整性验证方法及系统,属于区块链领域;所述方法包括:将原始数据上链,验证数据的真实性与数据内容的完备性,确保原始数据不被篡改;将原始数据的哈希值经过处理后存入以太坊的智能合约中;将需要验证的用户数据作为目标数据,将目标数据进行与原始数据类似的哈希算法加密流程得到一个哈希值,将得到的哈希值与以太坊区块链数据的哈希值进行对比,利用哈希值特性验证该目标用户数据的完整性;本发明使用区块链存储用户原始数据,利用其不可篡改,去中心化的特性,可以有效避免数据完整性验证传统方法中不可信第三方带来的安全威胁。
Description
技术领域
本发明公开一种基于区块链的数据完整性验证方法及系统,涉及区块链技术领域。
背景技术
随着云计算服务的出现,云服务供应商为数据存储提供了新的思路和方法。越来越多的用户开始将数据保存到云存储当中,当用户采用云存储模式后,云存储的安全问题渐渐引人注目,用户将数据放入云存储后一般不会在本地保存副本,因此云存储的数据完整性关乎用户的切身利益。
区块链本身也是一种分布式数据库技术,它有不可篡改、去中心化的特性,利用区块链的安全特性可以保证云存储的数据完整性,有效避免不可信第三方或假冒、被篡改、过期数据带来的危害。
故现发明一种基于区块链的数据完整性验证方法及系统,以解决上述问题。
发明内容
本发明针对现有技术的问题,提供一种基于区块链的数据完整性验证方法及系统,所采用的技术方案为:一种基于区块链的数据完整性验证方法,所述方法包括:
将原始数据上链,验证数据的真实性与数据内容的完备性,确保原始数据不被篡改;将原始数据的哈希值经过处理后存入以太坊的智能合约中;
将需要验证的用户数据作为目标数据,将目标数据进行与原始数据类似的哈希算法加密流程得到一个哈希值,将得到的哈希值与以太坊区块链数据的哈希值进行对比,利用哈希值特性验证该目标用户数据的完整性。
所述原始数据在上链前进行预处理:
输入任意长度的原始数据通过哈希函数将其转换成固定长度的数据,作为原始数据的哈希值;
将原始数据的哈希值和原始数据的伴随信息I代替原始数据本身映射到以太坊智能合约中
所述原始数据的伴随信息I具体为存入的时间戳、存入用户和存储节点签名;
将原始数据的哈希值、存入的时间戳、存入用户和存储节点签名作为验证结构I经过哈希算法加密后上链。
所述存储节点签名即节点CA对哈希值进行签名,得到数字签名sign;
所述CA负责为公钥系统中的用户办理数字证书,绑定主题的身份以及与公钥的匹配关系。
所述目标数据在验证用户完整性服务前进行预处理:
将待验证的目标数据进行哈希加密生成哈希值,
使用用户的私钥对生成的哈希值进行签名,得到新数字签名nsign;
根据私钥导出相应的公钥。
所述将得到的哈希值与以太坊区块链数据的哈希值进行对比,具体包括:
用户新数字签名nsign根据公钥和私钥签名证书之间的关系,在以太坊区块链中查找用户原始数据组,得到原始数据的加密哈希值。
所述利用哈希值特性验证该目标用户数据的完整性,即通过比较原始数据的加密哈希值与目前用户数据的哈希值是否相同得到用户数据完整性结果。
一种基于区块链的数据完整性验证系统,所述系统包括原始数据上链模块和用户验证模块:
数据处理模块:将原始数据上链,验证数据的真实性与数据内容的完备性,确保原始数据不被篡改;将原始数据的哈希值经过处理后存入以太坊的智能合约中;
用户验证模块:将需要验证的用户数据作为目标数据,将目标数据进行与原始数据类似的哈希算法加密流程得到一个哈希值,将得到的哈希值与以太坊区块链数据的哈希值进行对比,利用哈希值特性验证该目标用户数据的完整性。
所述系统还包括上链预处理模块:原始数据在上链前进行预处理;
在所述系统中输入任意长度的原始数据通过哈希函数将其转换成固定长度的数据,作为原始数据的哈希值;
所述上链预处理模块将原始数据的哈希值和原始数据的伴随信息I代替原始数据本身映射到以太坊智能合约中。
本发明的有益效果为:
(1)避免不可信第三方带来的影响
使用区块链存储用户原始数据,利用其不可篡改,去中心化的特性,可以有效避免数据完整性验证传统方法中不可信第三方带来的安全威胁。
(2)数据完整性验证的可信
利用哈希算法的特点,即使两个数据源有细微的差别,通过哈希算法加密后得到的哈希值也会不同,同时利用以太坊CA非对称加密,可以保证用户原始数据的真实性和匹配性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于区块链的数据完整性验证方法流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一:
一种基于区块链的数据完整性验证方法,如图1所示一种基于区块链的数据完整性验证方法流程图,所述方法包括:
将原始数据上链,验证数据的真实性与数据内容的完备性,确保原始数据不被篡改;将原始数据的哈希值经过处理后存入以太坊的智能合约中;
将需要验证的用户数据作为目标数据,将目标数据进行与原始数据类似的哈希算法加密流程得到一个哈希值,将得到的哈希值与以太坊区块链数据的哈希值进行对比,利用哈希值特性验证该目标用户数据的完整性。
在本实施例中,验证数据的完整性,即验证数据的真实性与验证数据内容的完备性,将原始数据上链可以很好的利用区块链的先天优势,确保原始数据不被篡改。
由于直接将原始数据存入以太坊面临着难以承受的高额成本,所以本发明采用将元数据的哈希值经过处理后存入以太坊的智能合约中。
当用户需要验证用户数据的数据完整性时,需要将目标用户数据进行与原始数据类似的哈希算法加密的流程,得到一个哈希值,再去与以太坊区块链原始数据的哈希值进行对比,利用哈希值的特性来验证数据完整性。
实施例二:
在实施例一的基础上,进一步的,所述原始数据在上链前进行预处理:
输入任意长度的原始数据通过哈希函数将其转换成固定长度的数据,作为原始数据的哈希值;
将原始数据的哈希值和原始数据的伴随信息I代替原始数据本身映射到以太坊智能合约中
所述原始数据的伴随信息I具体为存入的时间戳、存入用户和存储节点签名;
将原始数据的哈希值、存入的时间戳、存入用户和存储节点签名作为验证结构I经过哈希算法加密后上链。
哈希函数(H(x))能把任意长度的输入(M)转换成固定长度的数据块,即哈希值(h)。公式如下所示。
h=H(M)
在上链之前不能把原始数据直接通过哈希函数加密后放入以太坊的智能合约中,这样难以保证数据的真实性,因此本发明采用将原始数据的哈希值(H(data))、原始数据存入的时间戳(timestamp)、存入用户(user)、存储节点签名(sign),作为可验证结构I经过哈希算法加密后上链。
首先要将原始数据进行哈希算法加密以利用哈希算法的特点进行完整性保证并且减少成本消耗,然后节点CA对该哈希值进行签名,得到数字签名sign。CA负责为在公钥系统中的用户办法数字证书,绑定主题的身份以及与公钥的匹配关系。同时为了保证数字证书不被攻击者篡改和伪造,需要对数字证书进行数字签名。公式如下所示。
M||SKA{H(data)}
I<H(data),timestamp,user,M||SKA{H(data)}>
所述存储节点签名即节点CA对哈希值进行签名,得到数字签名sign;
所述CA负责为公钥系统中的用户办理数字证书,绑定主题的身份以及与公钥的匹配关系。
把用户原始数据通过哈希加密生成固定长度哈希值的方法可以有效减少数据上链的成本,还能有效保护用户数据的隐私。
实施例三:
在实施例一或二的基础上,进一步的,所述目标数据在验证用户完整性服务前进行预处理:
将待验证的目标数据进行哈希加密生成哈希值,
使用用户的私钥对生成的哈希值进行签名,得到新数字签名nsign;
根据私钥导出相应的公钥。
进一步的,所述将得到的哈希值与以太坊区块链数据的哈希值进行对比,具体包括:
用户新数字签名nsign根据公钥和私钥签名证书之间的关系,在以太坊区块链中查找用户原始数据组,得到原始数据的加密哈希值。
当用户需要进行验证用户数据完整性服务时,首先需要把待验证目标用户数据Udata进行哈希加密生成哈希值H(Udata)。由于哈希算法的特性,只要两个数据源存在差异,通过哈希算法加密后得到的哈希值就不同,因此可以利用这个特性验证用户数据的完整性和真实性。公式如下所示。
h=H(Udata)
然后使用用户的私钥对此哈希值进行签名,得到新数字签名nsign。在区块链中,用户的私钥被视为身份和安全凭证,私钥由用户自己生成和维护,并不依赖第三方机构,基于用户自己的私钥推导出相应的公钥。公式如下所示。
Mu||SKA{HU(data)}
进一步的,所述利用哈希值特性验证该目标用户数据的完整性,即通过比较原始数据的加密哈希值与目前用户数据的哈希值是否相同得到用户数据完整性结果。
得到用户私钥加密后的数字签名后,可以利用公私钥签名证书之间的关系,在以太坊区块链中利用获得的新签名查找用户原始数据组,得到原始数据的加密哈希值,再通过比较此哈希值与目前用户数据的哈希值是否相同得到用户数据完整性结果。
首先使用新数字签名nsign搜索查找智能合约中相对应数据组内的原始数据的哈希值。然后使用用户目标数据通过哈希算法加密后得到的哈希值与通过查找匹配nsign得到的哈希值进行对比,若完全相同则说明用户目标数据没有被篡改。反之,用户目标数据被篡改或被损失。公式如下所示。
假设区块链被攻击,区块数据被篡改,那么存储在区块中的哈希值也会随之改变,这样一来,更改后产生的哈希值从未被其它区块引用,这种结果不会被网络中所有节点接受,而且这种情况会导致区块链分叉,区块链网络只接受最长链作为公共账本,而且分叉始终以最长链为主导连,因此攻击者为了使区块链网络中的节点接受修改后的区块,他必须让分叉链比其它节点更快拓展,但由于网络的资源主要集中在最长链中,所以分叉连很难超越最长链,这就足以保证区块链中数据的完整性。一旦区块链被确认后,就无法改变一个交易的时间戳,这个过程可以帮助证明数据在某一时间点存在,自某一时间点之后就没有被改变,确保数据的完整性。存储到区块链中的数据很难被篡改或伪造,所以数据是可以被安全存储的。
实施例四:
在实施例三的基础上,本实施例提供一种基于区块链的数据完整性验证系统,所述系统包括原始数据上链模块和用户验证模块:
数据处理模块:将原始数据上链,验证数据的真实性与数据内容的完备性,确保原始数据不被篡改;将原始数据的哈希值经过处理后存入以太坊的智能合约中;
用户验证模块:将需要验证的用户数据作为目标数据,将目标数据进行与原始数据类似的哈希算法加密流程得到一个哈希值,将得到的哈希值与以太坊区块链数据的哈希值进行对比,利用哈希值特性验证该目标用户数据的完整性。
进一步的,所述系统还包括上链预处理模块:原始数据在上链前进行预处理;
在所述系统中输入任意长度的原始数据通过哈希函数将其转换成固定长度的数据,作为原始数据的哈希值;
所述上链预处理模块将原始数据的哈希值和原始数据的伴随信息I代替原始数据本身映射到以太坊智能合约中。
首先用户要将存储在云数据库中的数据进行哈希算法加密生成哈希值,然后认证中心对此哈希值发数字证书并签名。将此哈希值与用户数据的一些相关信息组成用户信息组,存入以太坊区块链中。当用户需要对用户目标数据进行数据完整性验证时,将用户目标数据进行哈希算法加密,得到新哈希值,使用用户私钥对该哈希值进行签名,使用得到的新签名在以太坊区块链中查找旧签名所在的用户数据组,从中获取原始数据哈希值,比较两个哈希值是否相同得出结论。
利用以太坊区块链不可篡改特性,使用哈希算法将用户原始数据进行加密生成哈希值,再对此哈希值进行公钥签名,然后将哈希值与签名,用户信息,时间戳一起存储到以太坊区块链中。
利用哈希算法加密的特性,当用户数据出现细微差距时,可以确保用户目标数据与用户原始数据验证结果的准确性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于区块链的数据完整性验证方法,其特征是所述方法包括:
将原始数据上链,验证数据的真实性与数据内容的完备性,确保原始数据不被篡改;将原始数据的哈希值经过处理后存入以太坊的智能合约中;
将需要验证的用户数据作为目标数据,将目标数据进行与原始数据类似的哈希算法加密流程得到一个哈希值,将得到的哈希值与以太坊区块链数据的哈希值进行对比,利用哈希值特性验证该目标用户数据的完整性。
2.根据权利要求1所述的方法,其特征是所述原始数据在上链前进行预处理:
输入任意长度的原始数据通过哈希函数将其转换成固定长度的数据,作为原始数据的哈希值;
将原始数据的哈希值和原始数据的伴随信息I代替原始数据本身映射到以太坊智能合约中。
3.根据权利要求2所述的方法,其特征是所述原始数据的伴随信息I具体为存入的时间戳、存入用户和存储节点签名;
将原始数据的哈希值、存入的时间戳、存入用户和存储节点签名作为验证结构I经过哈希算法加密后上链。
4.根据权利要求3所述的方法,其特征是所述存储节点签名即节点CA对哈希值进行签名,得到数字签名sign;
所述CA负责为公钥系统中的用户办理数字证书,绑定主题的身份以及与公钥的匹配关系。
5.根据权利要求1所述的方法,其特征是所述目标数据在验证用户完整性服务前进行预处理:
将待验证的目标数据进行哈希加密生成哈希值,
使用用户的私钥对生成的哈希值进行签名,得到新数字签名nsign;
根据私钥导出相应的公钥。
6.根据权利要求5所述的方法,其特征是所述将得到的哈希值与以太坊区块链数据的哈希值进行对比,具体包括:
用户新数字签名nsign根据公钥和私钥签名证书之间的关系,在以太坊区块链中查找用户原始数据组,得到原始数据的加密哈希值。
7.根据权利要求6所述的方法,其特征是所述利用哈希值特性验证该目标用户数据的完整性,即通过比较原始数据的加密哈希值与目前用户数据的哈希值是否相同得到用户数据完整性结果。
8.一种基于区块链的数据完整性验证系统,其特征是所述系统包括原始数据上链模块和用户验证模块:
数据处理模块:将原始数据上链,验证数据的真实性与数据内容的完备性,确保原始数据不被篡改;将原始数据的哈希值经过处理后存入以太坊的智能合约中;
用户验证模块:将需要验证的用户数据作为目标数据,将目标数据进行与原始数据类似的哈希算法加密流程得到一个哈希值,将得到的哈希值与以太坊区块链数据的哈希值进行对比,利用哈希值特性验证该目标用户数据的完整性。
9.根据权利要求8所述的系统,其特征是所述系统还包括上链预处理模块:原始数据在上链前进行预处理;
在所述系统中输入任意长度的原始数据通过哈希函数将其转换成固定长度的数据,作为原始数据的哈希值;
所述上链预处理模块将原始数据的哈希值和原始数据的伴随信息I代替原始数据本身映射到以太坊智能合约中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211618115.8A CN116069856A (zh) | 2022-12-15 | 2022-12-15 | 一种基于区块链的数据完整性验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211618115.8A CN116069856A (zh) | 2022-12-15 | 2022-12-15 | 一种基于区块链的数据完整性验证方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116069856A true CN116069856A (zh) | 2023-05-05 |
Family
ID=86170806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211618115.8A Pending CN116069856A (zh) | 2022-12-15 | 2022-12-15 | 一种基于区块链的数据完整性验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069856A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349880A (zh) * | 2023-09-12 | 2024-01-05 | 泰州历帆科技有限公司 | 一种基于区块链的分布式数据存储与记录方法 |
-
2022
- 2022-12-15 CN CN202211618115.8A patent/CN116069856A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349880A (zh) * | 2023-09-12 | 2024-01-05 | 泰州历帆科技有限公司 | 一种基于区块链的分布式数据存储与记录方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11057187B2 (en) | Blockchain-assisted hash-based data signature system and method | |
US11652644B1 (en) | Quantum-resistant double signature system | |
CN107196966B (zh) | 基于区块链的多方信任的身份认证方法和系统 | |
CN107483212B (zh) | 一种双方协作生成数字签名的方法 | |
CN107342867B (zh) | 签名验签方法和装置 | |
CN110958110B (zh) | 一种基于零知识证明的区块链隐私数据管理方法和系统 | |
EP1750389A1 (en) | System and method for updating keys used for public key cryptography | |
CN1922816B (zh) | 单向认证 | |
CN108650080B (zh) | 一种标识密钥管理方法和系统 | |
US20030126085A1 (en) | Dynamic authentication of electronic messages using a reference to a certificate | |
CN1717896A (zh) | 长期安全数字签名 | |
US20200259663A1 (en) | One-Time Data Signature System and Method with Untrusted Server Assistance | |
CN112732695B (zh) | 一种基于区块链的云存储数据安全去重方法 | |
CN112906056A (zh) | 一种基于区块链的云存储密钥安全管理方法 | |
US11316698B2 (en) | Delegated signatures for smart devices | |
CN116069856A (zh) | 一种基于区块链的数据完整性验证方法及系统 | |
CN110851848B (zh) | 对称可搜索加密的隐私保护方法 | |
CN114826607B (zh) | 基于区块链的边缘计算节点压缩方法及轻量级存储系统 | |
CN104158662A (zh) | 基于XAdES的多人电子凭证及实现方法 | |
CN111585756B (zh) | 一种适用于多副本-多云情形下的无证书云审计方法 | |
CN113065146A (zh) | 一种用于区块链数据保护的同态加密方法 | |
CN111723405A (zh) | 一种去中心化的多重数字签名/电子签章方法 | |
Yu et al. | Blockchain-based cryptographic model for electronic evidence authentication | |
CN112738130B (zh) | 基于身份的命名数据网络通信方法和通信系统 | |
CN116506104B (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 |