CN111953699A - 一种基于区块链的数据加密方法及系统 - Google Patents

一种基于区块链的数据加密方法及系统 Download PDF

Info

Publication number
CN111953699A
CN111953699A CN202010826320.8A CN202010826320A CN111953699A CN 111953699 A CN111953699 A CN 111953699A CN 202010826320 A CN202010826320 A CN 202010826320A CN 111953699 A CN111953699 A CN 111953699A
Authority
CN
China
Prior art keywords
data
node
encrypted
block chain
client
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.)
Withdrawn
Application number
CN202010826320.8A
Other languages
English (en)
Inventor
汪金玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202010826320.8A priority Critical patent/CN111953699A/zh
Publication of CN111953699A publication Critical patent/CN111953699A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3297Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种数据加密的技术领域,揭露了一种基于区块链的数据加密方法,包括:客户端接受用户发起的数据加密指令,并对需要进行加密的数据进行采集,同时利用基于数据关键字属性的加密方法对待加密数据进行加密;将加密数据划分为多个加密数据子集,并将所述加密数据子集分别发布到各个区块链节点中;各个区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中;利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互。本发明还提供了一种基于区块链的数据加密系统。本发明实现了数据的加密。

Description

一种基于区块链的数据加密方法及系统
技术领域
本发明涉及数据加密的技术领域,尤其涉及一种基于区块链的数据加密方法及系统。
背景技术
近年来随着大数据时代的来临,越来越多的用户选择将产生的大量数据存储于云上,使得电脑不会因为本地资源的占用而导致卡顿。云存储已经成为了一种信息交互的重要方式。然而网络信息的透明化使得数据的隐私性、真实性和准确性面临着严重的威胁。如今,用户数据的隐私性和真实性越来越受到人们的广泛关注,如何对存储在云上的用户数据进行加密,将成为当前研究的热门话题。
现有基于区块链的数据加密技术主要借助区块链的去中心化的特性,结合点对点通信模式、分布式共识算法和密码学原理解决了通信过程中的第三方依赖的问题和数据信息在传递过程中的消息泄露篡改问题,较好地实现了数据的加密。然而现有区块链框架主要采用PBFT共识算法,算法在执行的过程中,网络中有两类节点,分别为客户端节点、超级节点,该超级节点又分为有一个主节点,多个从节点,如果主节点为正常节点时,共识过程只需要所有节点进行一次有效的决策就可完成,假如主节点是错误节点(宕机节点或恶意节点),从节点进行一轮共识之后才能发现主节点有问题,之后则会替换主节点,新选出来的主节点接着上次未执行完的请求进行执行,如果新选出来的主节点依然是错误节点,继续进行主节点的替换,直至新选出来的主节点为正确节点,此时已经进行了一次或多次的无用共识,因此应对发生此类状况时处理效率不是很高,客户端等待时间过长。
鉴于此,在保证数据加密的安全性的基础上,如何对区块链中的共识算法进行改进,从而加快区块链的处理效率,成为本领域技术人员亟待解决的问题。
发明内容
本发明提供一种基于区块链的数据加密方法,通过引入了数据发送者和云服务器的公私钥,且不需要数据接收者指定发送者的身份,使得数据接收者生成的陷门能够在公开的信道进行传输,并基于数据的关键字属性,实现一对多的数据共享,同时对现有区块链的共识算法进行改进,提高区块链的处理效率,更快地实现了数据的加密。
为实现上述目的,本发明提供的一种基于区块链的数据加密方法,包括:
客户端接受用户发起的数据加密指令,并对需要进行加密的数据进行采集,同时利用基于数据关键字属性的加密方法对待加密数据进行加密;
将加密数据划分为多个加密数据子集,并将所述加密数据子集分别发布到各个区块链节点中;
各个区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中;
当客户端同区块链网络进行加密数据的数据交互时,利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互。
可选地,所述利用基于数据关键字属性的加密方法对待加密数据进行加密,包括:
1)设定安全参数Ik,并获取待加密数据的属性集合U;
2)设置G1和G2两个阶为p的循环群,G1×G2→G1,其中G2为双线性映射,g为G1的一个生成元,随机选择
Figure BDA0002636318410000021
设置加密主密钥msk=gα,公共参数为{p,G1,G2};并随机选择
Figure BDA0002636318410000022
设置私钥pk=gx
3)随机选择
Figure BDA0002636318410000023
计算K=gαt,L=gt
Figure BDA0002636318410000024
并将y和Kx发送给用户,用户设置解密密钥sk=gy
4)计算密文a={C,(C1,D1),...(Cl,Dl)},并用该密文对所述待加密数据进行加密处理,其中C=gs
Figure BDA0002636318410000025
Di=gxiUi
可选地,所述将加密数据划分为多个加密数据子集,包括:
若加密数据X的大小为N,并且每条加密数据样本记录中都有M个特征变量,即y1~yM为输入特征变量;
对于加密数据X,将样本数据进行随机打乱,并使用ShuffleSplit迭代器进行指定加密子数据集中样本数量的划分,如可将加密数据X均分为n个样本数量相同的加密数据子集。
可选地,所述各个区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,包括:
1)节点需要利用安全哈希函数对加密数据子集进行哈希运算,得到数据的哈希值,记为hash;
2)节点对这个哈希值进行数字签名,得到数字签名,记为dsign,并利用去中心化时间戳和数据源真实性标识技术将哈希值hash、数字签名dsign以及交易发生的时间戳timestamp和数据所有者owner都作为附加信息添加到Identifier结构中,同时将这个真实性标识结构代替数据哈希值映射到智能合约中;
3)各区块链节点将数据源真实性标识中的元数据信息保存在区块链主节点中,以便实时的数据完整性验证;
4)需要进行加密完整性验证服务时,首先计算出在区块链主节点中存储的数据的哈希值hash0,然后根据保留的时间戳信息timestamp0,再进行哈希计算,最终得到一个新的哈希值hash1,最后利用用户所设置的解密密钥sk,对此值hash1进行数字签名,得到新的数字签名dsign0;
5)节点和数据完整性智能合约进行交互,通过使用数字签名dsign0,搜索智能合约中Identifier结构对应的存储在区块链的数据哈希值hash;
6)对比两个哈希值hash和hash0,验证数据的完整性,若两个值相同,该加密数据就顺利完成数据完整性验证,说明加密数据没有被篡改,反之,加密数据就遭到篡改或者破坏,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中。
可选地,所述利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互,包括:
1)当前客户端主节点会将接收到的客户端请求消息按消息来到的时间进行排序,然后将最先来的消息保存到区块链主节点,再把该消息向主节点内的从节点传递,称为预准备消息;
2)主节点内的从节点对所接收到的预准备消息进行检查,若查验正确,接着先给客户端发送回复消息,再给除自身之外的其他从节点发送确认消息,最后当前从节点会将预准备消息和确认消息保存在主节点;
3)主节点内的从节点收到f+1条从节点发来的确认消息,并且这些确认消息都相同,该从节点依照接收到的确认消息,给客户端节点发送回复消息,给除自身在外的其余从节点发送确认消息;f为当前网络最大容错节点个数;
4)若从节点接收到主节点的预准备消息,又接收到f+1其他条从节点的确认信息且确认信息都相同,但是预准备消息跟确认消息不同,则可以判断出当前主节点向从节点发送了多条不一样的预准备消息,因此主节点是个恶意节点,此时,从节点向客户端主节点发起重新选举主节点的请求,即执行主节点变换协议,并删除原有主节点;
5)若当前主节点内发起主节点变换协议的从节点个数不少于f+1,即有至少f+1个从节点认为主节点存在问题,则将当前主节点的信誉得分减半,其他从节点的信誉得分保持不变,随后开始执行主节点转换协议;
6)若从节点接收到主节点内其他从节点发来的2f+1个相同的Commit消息,由于主节点内正确节点的执行结果必然相同,当前接收到2f+1个,而当前网络最大容错节点个数为f,则说明当前主节点内的存在绝大多数正确的从节点,此时主节点内的本次请求在各节点上达成一致,主节点内的所有节点的信誉得分加1分;
7)通过不断进行主节点转换,将使得各节点的信誉得分达到最高的主节点作为最终的主节点,并利用该节点执行客户端与区块链网络之间的数据交互。
此外,为实现上述目的,本发明还提供一种区块链节点,所述节点包括:
信息接收单元,用于接收加密子数据集;
数据校验单元,用于对所接收的加密子数据集进行数据完整性校验;
数据交互单元,用于利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互。
可选地,所述数据校验单元,包括:
区块链节点需要利用安全哈希函数对加密数据子集进行哈希运算,得到数据的哈希值,记为hash;
节点对这个哈希值进行数字签名,得到数字签名,记为dsign,并利用去中心化时间戳和数据源真实性标识技术将哈希值hash、数字签名dsign以及交易发生的时间戳timestamp和数据所有者owner都作为附加信息添加到Identifier结构中,同时将这个真实性标识结构代替数据哈希值映射到智能合约中;
各区块链节点将数据源真实性标识中的元数据信息保存在区块链主节点中,以便实时的数据完整性验证;
在需要进行加密完整性验证服务时,首先计算出在区块链主节点中存储的数据的哈希值hash0,然后根据保留的时间戳信息timestamp0,再进行哈希计算,最终得到一个新的哈希值hash1,最后利用用户所设置的解密密钥sk,对此值hash1进行数字签名,得到新的数字签名dsign0;
节点和数据完整性智能合约进行交互,通过使用数字签名dsign0,搜索智能合约中Identifier结构对应的存储在区块链的数据哈希值hash;
对比两个哈希值hash和hash0,验证数据的完整性,若两个值相同,该加密数据就顺利完成数据完整性验证,说明加密数据没有被篡改,反之,加密数据就遭到篡改或者破坏,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中。
此外,为实现上述目的,本发明还提供一种基于区块链的数据加密系统,所述系统包括:
数据获取装置,用于获取待加密的数据;
数据处理器,用于利用基于数据关键字属性的加密方法对待加密数据进行加密,并将加密数据存储到区块链节点中;
数据加密装置,用于利用数据完整性校验算法对加密数据进行存储,并基于共识算法进行加密数据的交互。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据加密程序指令,所述数据加密指令可被一个或者多个处理器执行,以实现如上所述的基于区块链的数据加密的实现方法的步骤。
相对于现有技术,本发明提出一种基于区块链的数据加密方法,该技术具有以下优势:
首先,对于存储在区块链中的加密数据,本发明提出一种基于数据哈希值的算法进行加密数据完整性的校验,在该算法中,区块链节点需要利用安全哈希函数对加密数据子集进行哈希运算,得到数据的哈希值,记为hash,同时节点对这个哈希值进行数字签名,得到数字签名,记为dsign,并利用去中心化时间戳和数据源真实性标识技术将哈希值hash、数字签名dsign以及交易发生的时间戳timestamp和数据所有者owner都作为附加信息添加到Identifier结构中,如果攻击者篡改区块中的数据,那么这个区块的哈希值就会随之被改变,这样一来,更改后产生的哈希值从未被其他区块引用,这种结果将不会被网络中所有节点所接受。而且这种情况还会造成区块链的分叉,由于区块链网络只接受最长链作为公共账本,而且分叉始终以最长链为主导链,因此攻击者为了使网络中的节点接受修改后的区块,必须想方设法比网络中其他节点更快地扩展分叉链,使其变成最长链。由于整个网络中的资源主要集中在最长链中,所以分叉链是很难超越最长链的,这就足以保证区块链中数据的完整性。一旦区块被确认之后,就无法改变一个交易的时间戳。这个过程可以帮助证明数据在某一时间点存在,自某一时间点之后就没有被改变,从而确保加密数据的完整性。
同时现有区块链框架主要采用PBFT共识算法,算法在执行的过程中,网络中有两类节点,分别为客户端节点、超级节点,该超级节点又分为有一个主节点,多个从节点,如果主节点为正常节点时,共识过程只需要所有节点进行一次有效的决策就可完成,假如主节点是错误节点(宕机节点或恶意节点),从节点进行一轮共识之后才能发现主节点有问题,之后则会替换主节点,新选出来的主节点接着上次未执行完的请求进行执行,如果新选出来的主节点依然是错误节点,继续进行主节点的替换,直至新选出来的主节点为正确节点,此时已经进行了一次或多次的无用共识,因此应对发生此类状况时处理效率不是很高,客户端等待时间过长。因此本发明提出一种基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互,主节点内的从节点既会收到主节点发来的预准备消息,又会收到其他从节点发来的确认消息,若从节点仅仅只收到f+1条从节点发来的确认消息,并且这些确认消息都相同,那么说明至少有f+1个正确的节点执行请求(因为最多有f个错误节点),此时,该从节点依照接收到的确认消息,给客户端节点发送回复消息,给除自身在外的其余从节点发送确认消息,若从节点接收到主节点的预准备消息,又接收到f+1其他条从节点的确认信息且确认信息都相同,但是预准备消息跟确认消息不同,则可以判断出当前主节点向从节点发送了多条不一样的预准备消息,因此主节点是个恶意节点,此时,从节点发起重新选举主节点的请求,即执行主节点变换协议,并删除原有主节点,从而减轻区块链网络的负担,提高了数据加密的执行效率。
附图说明
图1为本发明一实施例提供的一种基于区块链的数据加密方法的流程示意图;
图2为本发明一实施例提供的一种基于区块链的数据加密系统的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
通过引入了数据发送者和云服务器的公私钥,且不需要数据接收者指定发送者的身份,使得数据接收者生成的陷门能够在公开的信道进行传输,并基于数据的关键字属性,实现一对多的数据共享,同时对现有区块链的共识算法进行改进,提高区块链的处理效率,更快地实现了数据的加密。参照图1所示,为本发明一实施例提供的基于区块链的数据加密方法示意图。
在本实施例中,基于区块链的数据加密方法包括:
S1、客户端接受用户发起的数据加密指令,并对需要进行加密的数据进行采集,同时利用基于数据关键字属性的加密方法对待加密数据进行加密。
首先,客户端接收用户所发起的数据加密指令,根据所述数据加密指令,客户端对待加密数据进行搜集;
进一步地,本发明利用基于数据关键字属性的加密方法对待加密数据进行加密,所述加密过程为:
1)设定安全参数Ik,并获取待加密数据的属性集合U;
2)设置G1和G2两个阶为p的循环群,G1×G2→G1,其中G2为双线性映射,g为G1的一个生成元,随机选择
Figure BDA0002636318410000071
设置加密主密钥msk=gα,公共参数为{p,G1,G2};并随机选择
Figure BDA0002636318410000072
设置私钥pk=gx
3)随机选择
Figure BDA0002636318410000073
计算K=gαt,L=gt
Figure BDA0002636318410000074
并将y和Kx发送给用户,用户设置解密密钥sk=gy
4)计算密文a={C,(C1,D1),...(Cl,Dl)},并用该密文对所述待加密数据进行加密处理,其中C=gs
Figure BDA0002636318410000075
Di=gxiUi
S2、将加密数据划分为多个加密数据子集,并将所述加密数据子集分别发布到各个区块链节点中。
进一步地,本发明基于数据并行优化策略对加密数据进行划分,从而将加密数据划分为多个加密数据子集,以减少区块链分布式环境中的数据通信开销,所述加密数据划分过程为:
假设加密数据X的大小为N,并且每条加密数据样本记录中都有M个特征变量,即y1~yM为输入特征变量,在本发明所述数据并行优化策略中,对于加密数据X,本发明将样本数据进行随机打乱,并使用ShuffleSplit迭代器进行指定加密子数据集中样本数量的划分,如可将加密数据X均分为n个样本数量相同的加密数据子集。
进一步地,本发明将得到的若干加密数据子集分别发布到不同区块链节点中。
S3、各个区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中。
进一步地,各区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,所述数据的完整性校验过程为:
1)节点需要利用安全哈希函数对加密数据子集进行哈希运算,得到数据的哈希值,记为hash;
2)节点对这个哈希值进行数字签名,得到数字签名,记为dsign,并利用去中心化时间戳和数据源真实性标识技术将哈希值hash、数字签名dsign以及交易发生的时间戳timestamp和数据所有者owner都作为附加信息添加到Identifier结构中,同时将这个真实性标识结构代替数据哈希值映射到智能合约中;
3)各区块链节点将数据源真实性标识中的元数据信息保存在区块链主节点中,以便实时的数据完整性验证;
4)需要进行加密完整性验证服务时,首先计算出在区块链主节点中存储的数据的哈希值hash0,然后根据保留的时间戳信息timestamp0,再进行哈希计算,最终得到一个新的哈希值hash1,最后利用用户所设置的解密密钥sk,对此值hash1进行数字签名,得到新的数字签名dsign0;
5)节点和数据完整性智能合约进行交互,通过使用数字签名dsign0,搜索智能合约中Identifier结构对应的存储在区块链的数据哈希值hash;
6)对比两个哈希值hash和hash0,验证数据的完整性,若两个值相同,该加密数据就顺利完成数据完整性验证,说明加密数据没有被篡改,反之,加密数据就遭到篡改或者破坏,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中。
S4、在区块链网络中加入客户端节点,当客户端同区块链网络进行加密数据的数据交互时,利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互。
进一步地,本发明在区块链网络种加入客户端节点,当客户端同区块链网络进行数据交互时,本发明利用基于客户端节点反馈机制的共识算法进行数据交互,所述基于客户端节点反馈机制的共识算法的数据交互流程为:
1)当前客户端主节点会将接收到的客户端请求消息按消息来到的时间进行排序,然后将最先来的消息保存到区块链主节点,再把该消息向主节点内的从节点传递,称为预准备消息;
2)主节点内的从节点对所接收到的预准备消息进行检查,若查验正确,接着先给客户端发送回复消息,再给除自身之外的其他从节点发送确认消息,最后当前从节点会将预准备消息和确认消息保存在主节点;
3)主节点内的从节点收到f+1条从节点发来的确认消息,并且这些确认消息都相同,该从节点依照接收到的确认消息,给客户端节点发送回复消息,给除自身在外的其余从节点发送确认消息;f为当前网络最大容错节点个数;
4)若从节点接收到主节点的预准备消息,又接收到f+1其他条从节点的确认信息且确认信息都相同,但是预准备消息跟确认消息不同,则可以判断出当前主节点向从节点发送了多条不一样的预准备消息,因此主节点是个恶意节点,此时,从节点向客户端主节点发起重新选举主节点的请求,即执行主节点变换协议,并删除原有主节点;
5)若当前主节点内发起主节点变换协议的从节点个数不少于f+1,即有至少f+1个从节点认为主节点存在问题,则将当前主节点的信誉得分减半,其他从节点的信誉得分保持不变,随后开始执行主节点转换协议;
6)若从节点接收到主节点内其他从节点发来的2f+1个相同的Commit消息,由于主节点内正确节点的执行结果必然相同,当前接收到2f+1个,而当前网络最大容错节点个数为f,则说明当前主节点内的存在绝大多数正确的从节点,此时主节点内的本次请求在各节点上达成一致,主节点内的所有节点的信誉得分加1分;
7)通过不断进行主节点转换,将使得各节点的信誉得分达到最高的主节点作为最终的主节点,并利用该节点执行客户端与区块链网络之间的数据交互。
下面通过一个算法实验来说明本发明的具体实施方式,并对发明的处理方法进行测试。本发明基于64位的windows10操作系统,处理器为Intel(R)Core(TM)i7-7700 CPU@3.60GHZ 3.60GHZ,内存为8GB;对比算法为MD5、SHA1、HMAC和DES算法。
在本发明所述算法实验中,本发明通过搜集10G的数据使用对比算法和本发明所提出的算法进行加密,通过计算加密密文的生成时间以及加密密文与原始数据之间的相关性对加密算法进行评估。
根据实验结果,MD5算法的加密密文生成时间为10s,加密密文与原始数据之间的相关性为25.3%,SHA1算法的加密密文生成时间为7.8s,加密密文与原始数据之间的相关性为18.75%,HMAC算法的加密密文生成时间为10.78s,加密密文与原始数据之间的相关性为26.82%,DES算法的加密密文生成时间为8.56s,加密密文与原始数据之间的相关性为16.13%,本发明所述算法的加密密文生成时间为6.24s,加密密文与原始数据之间的相关性为12.69%,相较于对比算法,本发明所提出的基于区块链的数据加密方法能更快完成数据的加密,同时具备较高的数据安全性。
发明还提供一种基于区块链的数据加密系统。参照图2所示,为本发明一实施例提供的基于区块链的数据加密系统的内部结构示意图。
在本实施例中,所述基于区块链的数据加密系统1至少包括视数据获取装置11、数据处理器12、数据加密装置13,通信总线14,以及网络接口15。
其中,数据获取装置11可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、便携计算机等终端设备,也可以是一种服务器等。
数据处理器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。数据处理器12在一些实施例中可以是基于区块链的数据加密系统1的内部存储单元,例如该基于区块链的数据加密系统1的硬盘。数据处理器12在另一些实施例中也可以是基于区块链的数据加密系统1的外部存储设备,例如基于区块链的数据加密系统1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,数据处理器12还可以既包括基于区块链的数据加密系统1的内部存储单元也包括外部存储设备。数据处理器12不仅可以用于存储安装于基于区块链的数据加密系统1的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
数据加密装置13在一些实施例中可以是一中央处理器(Central ProcessingUnit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行数据处理器12中存储的程序代码或处理数据,例如数据加密程序指令等。
通信总线14用于实现这些组件之间的连接通信。
网络接口15可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该系统1与其他电子设备之间建立通信连接。
可选地,该系统1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在基于区块链的数据加密系统1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-15以及基于区块链的数据加密系统1,本领域技术人员可以理解的是,图1示出的结构并不构成对基于区块链的数据加密系统1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的装置1实施例中,数据处理器12中存储有基于区块链的数据加密程序指令;数据加密装置13执行数据处理器12中存储的数据加密程序指令的步骤,与基于区块链的数据加密方法的实现方法相同,在此不作类述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有基于区块链的数据加密程序指令,所述基于区块链的数据加密程序指令可被一个或多个处理器执行,以实现如下操作:
客户端接受用户发起的数据加密指令,并对需要进行加密的数据进行采集,同时利用基于数据关键字属性的加密方法对待加密数据进行加密;
将加密数据划分为多个加密数据子集,并将所述加密数据子集分别发布到各个区块链节点中;
各个区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中;
当客户端同区块链网络进行加密数据的数据交互时,利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种基于区块链的数据加密方法,其特征在于,所述方法包括:
客户端接受用户发起的数据加密指令,并对待加密数据进行采集,同时利用基于数据关键字属性的加密方法对待加密数据进行加密;
将待加密数据划分为多个加密数据子集,并将所述加密数据子集分别发布到各个区块链节点中;
各个区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,对于未通过完整性校验的加密数据子集,对应的区块链发布错误信息到客户端中;
当客户端同区块链网络进行加密数据的数据交互时,利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互。
2.如权利要求1所述的一种基于区块链的数据加密方法,其特征在于,所述利用基于数据关键字属性的加密方法对待加密数据进行加密,包括:
1)设定安全参数Ik,并获取待加密数据的属性集合U;
2)设置G1和G2两个阶为p的循环群,G1×G2→G1,其中G2为双线性映射,g为G1的一个生成元,随机选择
Figure FDA0002636318400000011
设置加密主密钥msk=gα,公共参数为{p,G1,G2};并随机选择
Figure FDA0002636318400000012
设置私钥pk=gx
3)随机选择
Figure FDA0002636318400000013
计算K=gαt,L=gt
Figure FDA0002636318400000014
并将y和Kx发送给用户,用户设置解密密钥sk=gy
4)计算密文a={C,(C1,D1),...(Cl,Dl)},并用该密文对所述待加密数据进行加密处理,其中C=gs
Figure FDA0002636318400000015
Di=gxiUi
3.如权利要求2所述的一种基于区块链的数据加密方法,其特征在于,所述将加密数据划分为多个加密数据子集,包括:
若加密数据X的大小为N,并且每条加密数据样本记录中都有M个特征变量,即y1~yM为输入特征变量;
对于加密数据X,将样本数据进行随机打乱,并使用ShuffleSplit迭代器进行指定加密子数据集中样本数量的划分。
4.如权利要求3所述的一种基于区块链的数据加密方法,其特征在于,所述各个区块链节点利用基于数据哈希值的算法实时进行加密数据子集的完整性校验,包括:
1)节点需要利用安全哈希函数对加密数据子集进行哈希运算,得到数据的哈希值,记为hash;
2)节点对这个哈希值进行数字签名,得到数字签名,记为dsign,并利用去中心化时间戳和数据源真实性标识技术将哈希值hash、数字签名dsign以及交易发生的时间戳timestamp和数据所有者owner都作为附加信息添加到Identifier结构中,同时将这个真实性标识结构代替数据哈希值映射到智能合约中;
3)各区块链节点将数据源真实性标识中的元数据信息保存在区块链主节点中,以便实时的数据完整性验证;
4)需要进行加密完整性验证服务时,首先计算出在区块链主节点中存储的数据的哈希值hash0,然后根据保留的时间戳信息timestamp0,再进行哈希计算,最终得到一个新的哈希值hash1,最后利用用户所设置的解密密钥sk,对此值hash1进行数字签名,得到新的数字签名dsign0;
5)节点和数据完整性智能合约进行交互,通过使用数字签名dsign0,搜索智能合约中Identifier结构对应的存储在区块链的数据哈希值hash;
6)对比两个哈希值hash和hash0,验证数据的完整性,若两个值相同,该加密数据完成数据完整性验证,若两个值不相同,对应的区块链将发布错误信息到客户端中。
5.如权利要求4所述的一种基于区块链的数据加密方法,其特征在于,所述利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互,包括:
1)当前客户端主节点将接收到的客户端请求消息按消息来到的时间进行排序,然后将最先来的消息保存到区块链主节点,再把该消息向主节点内的从节点传递,称为预准备消息;
2)主节点内的从节点对所接收到的预准备消息进行检查,若查验正确,接着先给客户端发送回复消息,再给除自身之外的其他从节点发送确认消息,最后当前从节点将预准备消息和确认消息保存在主节点;
3)主节点内的从节点收到f+1条从节点发来的确认消息,并且这些确认消息都相同,该从节点依照接收到的确认消息,给客户端节点发送回复消息,给除自身在外的其余从节点发送确认消息;f为当前网络最大容错节点个数;
4)若从节点接收到主节点的预准备消息,又接收到其他从节点的f+1条确认信息且确认信息都相同,预准备消息跟确认消息不同,从节点则向客户端主节点发起重新选举主节点的请求,即执行主节点变换协议,并删除原有主节点;
5)若当前主节点内发起主节点变换协议的从节点个数不少于f+1,则当前主节点的信誉得分减半,其他从节点的信誉得分保持不变,随后开始执行主节点转换协议;
6)若从节点接收到主节点内其他从节点发来的2f+1个相同的Commit消息,主节点内的所有节点的信誉得分加1分;
7)通过不断进行主节点转换,各节点的信誉得分达到最高的主节点作为最终的主节点,并利用该节点执行客户端与区块链网络之间的数据交互。
6.一种区块链节点,其特征在于,所述节点包括:
信息接收单元,用于接收加密子数据集;
数据校验单元,用于对所接收的加密子数据集进行数据完整性校验;
数据交互单元,用于利用基于客户端节点反馈机制的共识算法进行客户端与区块链网络间的数据交互。
7.如权利要求6所述的区块链节点,所述数据校验单元,包括:
区块链节点需要利用安全哈希函数对加密数据子集进行哈希运算,得到数据的哈希值,记为hash;
节点对这个哈希值进行数字签名,得到数字签名,记为dsign,并利用去中心化时间戳和数据源真实性标识技术将哈希值hash、数字签名dsign以及交易发生的时间戳timestamp和数据所有者owner都作为附加信息添加到Identifier结构中,同时将这个真实性标识结构代替数据哈希值映射到智能合约中;
各区块链节点将数据源真实性标识中的元数据信息保存在区块链主节点中,以便实时的数据完整性验证;
在需要进行加密完整性验证服务时,首先计算出在区块链主节点中存储的数据的哈希值hash0,然后根据保留的时间戳信息timestamp0,再进行哈希计算,最终得到一个新的哈希值hash1,最后利用用户所设置的解密密钥sk,对此值hash1进行数字签名,得到新的数字签名dsign0;
节点和数据完整性智能合约进行交互,通过使用数字签名dsign0,搜索智能合约中Identifier结构对应的存储在区块链的数据哈希值hash;
对比两个哈希值hash和hash0,验证数据的完整性,若两个值相同,该加密数据就顺利完成数据完整性验证,说明加密数据没有被篡改,反之,加密数据就遭到篡改或者破坏,对于未通过完整性校验的加密数据子集,对应的区块链将发布错误信息到客户端中。
8.一种基于区块链的数据加密系统,其特征在于,所述系统包括:
多个如权利要求6-7任一所述区块链节点;
数据获取装置,用于获取待加密的数据;
数据处理器,用于利用基于数据关键字属性的加密方法对待加密数据进行加密,并将加密数据存储到区块链节点中;
数据加密装置,用于利用数据完整性校验算法对加密数据进行存储,并基于共识算法进行加密数据的交互。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据加密程序指令,所述数据加密程序指令可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的一种基于区块链的数据加密的实现方法的步骤。
CN202010826320.8A 2020-08-17 2020-08-17 一种基于区块链的数据加密方法及系统 Withdrawn CN111953699A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010826320.8A CN111953699A (zh) 2020-08-17 2020-08-17 一种基于区块链的数据加密方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010826320.8A CN111953699A (zh) 2020-08-17 2020-08-17 一种基于区块链的数据加密方法及系统

Publications (1)

Publication Number Publication Date
CN111953699A true CN111953699A (zh) 2020-11-17

Family

ID=73342591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010826320.8A Withdrawn CN111953699A (zh) 2020-08-17 2020-08-17 一种基于区块链的数据加密方法及系统

Country Status (1)

Country Link
CN (1) CN111953699A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112447291A (zh) * 2020-11-23 2021-03-05 四川大学华西医院 基于区块链的医联体数据之间的共享方法
CN113553627A (zh) * 2021-09-23 2021-10-26 四川大学 基于区块链的数据完整性验证方法、系统、设备及介质
CN113568785A (zh) * 2021-09-23 2021-10-29 四川大学 一种基于区块链的数据备份方法、装置、设备及存储介质
CN113645295A (zh) * 2021-08-09 2021-11-12 东南大学 一种基于Paxos算法的区块链网络安全设置方法
CN114647862A (zh) * 2022-05-23 2022-06-21 江西省精彩纵横采购咨询有限公司 一种招投标处理方法及用户终端
CN117353893A (zh) * 2023-10-12 2024-01-05 扬州宝科信息技术咨询有限公司 一种基于区块链技术的网络信息安全验证方法与系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112447291A (zh) * 2020-11-23 2021-03-05 四川大学华西医院 基于区块链的医联体数据之间的共享方法
CN112447291B (zh) * 2020-11-23 2023-03-28 四川大学华西医院 基于区块链的医联体数据之间的共享方法
CN113645295A (zh) * 2021-08-09 2021-11-12 东南大学 一种基于Paxos算法的区块链网络安全设置方法
CN113645295B (zh) * 2021-08-09 2023-04-07 东南大学 一种基于Paxos算法的区块链网络安全设置方法
CN113553627A (zh) * 2021-09-23 2021-10-26 四川大学 基于区块链的数据完整性验证方法、系统、设备及介质
CN113568785A (zh) * 2021-09-23 2021-10-29 四川大学 一种基于区块链的数据备份方法、装置、设备及存储介质
CN113568785B (zh) * 2021-09-23 2021-12-31 四川大学 一种基于区块链的数据备份方法、装置、设备及存储介质
CN114647862A (zh) * 2022-05-23 2022-06-21 江西省精彩纵横采购咨询有限公司 一种招投标处理方法及用户终端
CN117353893A (zh) * 2023-10-12 2024-01-05 扬州宝科信息技术咨询有限公司 一种基于区块链技术的网络信息安全验证方法与系统
CN117353893B (zh) * 2023-10-12 2024-04-26 扬州宝科信息技术咨询有限公司 一种基于区块链技术的网络信息安全验证方法与系统

Similar Documents

Publication Publication Date Title
CN109862041B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
CN111953699A (zh) 一种基于区块链的数据加密方法及系统
TWI707244B (zh) 區塊鏈跨鏈的認證方法、系統、伺服器及可讀儲存媒體
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계
CN111914027B (zh) 一种区块链交易关键字可搜索加密方法及系统
WO2020233373A1 (zh) 一种应用程序的配置文件管理方法及装置
CN111835511A (zh) 数据安全传输方法、装置、计算机设备及存储介质
WO2022037596A1 (zh) 组合签名及验证签名方法、系统及存储介质
WO2017027438A1 (en) Group membership block chain
CN112347508A (zh) 一种区块链数据共享加密和解密方法及系统
EP3659319B1 (en) Improved anti-replay device based on memory space interchange
CN106603561B (zh) 一种云存储中的块级加密方法及多粒度去重复方法
CN106776904A (zh) 一种不可信云计算环境中支持动态验证的模糊查询加密方法
CN109379343B (zh) 一种区块链的异构共识方法及终端
CN111066019A (zh) 处理存储在区块链网络中的数据元素
CN113468598A (zh) 基于区块链的存证保全公证系统和方法
CN116980230B (zh) 一种信息安全保护方法及装置
CN109639436A (zh) 基于盐值的数据持有性验证方法及终端设备
CN112163240A (zh) 一种基于区块链的分布式政务架构统一方法及系统
CN113704357A (zh) 一种基于区块链的智慧城市数据共享方法及系统
CN113347143A (zh) 一种身份验证方法、装置、设备及存储介质
CN110598433A (zh) 基于区块链的防伪信息处理方法、装置
WO2021134898A1 (zh) 区块链交易数据证明监管方法、系统及相关设备
CN117561508A (zh) 可验证凭证的跨会话颁发
Lai et al. A blockchain-based traceability system with efficient search and query

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20201117