CN112347508A - 一种区块链数据共享加密和解密方法及系统 - Google Patents
一种区块链数据共享加密和解密方法及系统 Download PDFInfo
- Publication number
- CN112347508A CN112347508A CN202011217597.7A CN202011217597A CN112347508A CN 112347508 A CN112347508 A CN 112347508A CN 202011217597 A CN202011217597 A CN 202011217597A CN 112347508 A CN112347508 A CN 112347508A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- transaction
- block
- block chain
- 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
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/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/6227—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 where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种区块链的技术领域,揭露了一种区块链数据共享加密和解密方法,包括:获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量;构建待加密数据的关键字索引结构,将所述待加密数据向量存储在关键字索引结构中;利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到加密数据;利用群签名算法进行加密数据的共享以及加密数据的解密;利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中。本发明还提供了一种区块链数据共享加密和解密系统。本发明实现了区块链数据的加密和解密。
Description
技术领域
本发明涉及区块链的技术领域,尤其涉及一种区块链数据共享加密和解密方法及系统。
背景技术
随着电子信息技术的发展,数据共享的需求和数据安全之间的矛盾越来越凸显,如何在保证数据不被篡改或泄露的前提下实现数据共享,称为亟待解决的问题。
传统区块链上的数据对全网节点都是公开的,数据记录的更新操作也是透明的,这将有可能导致用户信息泄露问题。在区块链中,交易的发送方和接受方之间是有链接的,因此通过分析公共内容,可以推测出一些隐私内容。用来缓解这种攻击的其中之一方案是引入混合服务,允许服务者隐藏和谁进行通信以及通信的内容。但是混合服务可能会通过不转移资产给聚类分析的接收者来盗窃资产。混合服务器为了完成路由交易会在一定的时间内保存日志的记录,因此用户的隐私可能存在泄露的风险。
鉴于此,如何利用在保证数据隐私的情况下,实现数据的共享,成为本领域技术人员亟待解决的问题。
发明内容
通过利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量,同时构建数据的关键字索引结构对待加密数据向量进行存储,利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,同时利用群签名算法实现加密数据的共享,以及对加密数据的解密。
为实现上述目的,本发明提供的一种区块链数据共享加密和解密方法,包括:
获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量;
构建待加密数据的关键字索引结构,将所述待加密数据向量存储在关键字索引结构中;
利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到加密数据;
利用群签名算法进行加密数据的共享;
利用群签名算法进行加密数据的解密;
利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中。
可选地,所述利用新数据探索算法探索待加密数据中的新数据,包括:
1)利用word2vec将待加密数据转化为词向量;
2)计算第i个词向量wi与其余词向量wj之间的欧式距离Stagi,j,并定义词向量wi得分为:
Score=Max{Stagi,j}
3)统计满足Max{Stagi,j}的词向量wi和词向量wj的词频,若词频大于预设的阈值,则认为wiwj为新数据向量;反之计算词向量wi,wi+1,wi+2的长度,若长度小于5,则将词向量wi,wi+1,wi+2拼接成一个组合词,并重复2);
4)遍历所述待加密数据词向量,将新数据向量与待加密数据词向量共同作为待加密数据向量。
可选地,所述构建待加密数据的关键字索引结构,包括:
1)若关键字索引树中所有叶子节点数量为n,则关键字索引树中所有节点数为2n-1,每一个叶子节点与待加密数据向量的哈希值一一对应,即待加密数据向量的哈希值为其关键字索引;
2)树结构中每一个叶节点存储的是key-value键值对,key存储长度为m的01比特串,value值是唯一识别待加密数据向量的哈希值,叶子节点中比特序列与关键字集合中关键字一一对应;
3)树中所有内部节点由该节点的孩子节点运算生成,内部节点存储包含m个元素的01比特序列。
可选地,所述利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,包括:
1)区块链主节点将关键字索引结构在共识域内进行广播,其余节点收到广播消息后检查消息序列号n和广播签名v的合法性,即n是否满足水位线的规则,v是否等于当前的视图;
2)将共识域内所有共识节点分为四组A={a1,...,an},B={b1,...,bn},C={c1,...,cn}和D={d1,...,dn},规定A组成员的投票权重qa为1,B组成员的投票权重qb为2,C组成员的投票权重qc为3,D组成员的投票权重qd为4;
3)通过定义两个映射函数,H1:{0,1}→Zq,H2:{0,1}→G,计算公钥镜像y′:
y=xiH2(R)
其中:
xi为第i个区块节点的私钥;
R为公钥环,R=(pk1,pk2,...,pkn),公钥pki=xiG;
其中:
m为关键字索引结构;
5)对关键字索引结构进行加密,得到加密结果s,并将加密结果存储在区块链中:
其中:
q为函数Zq的维度。
可选地,所述利用群签名算法进行加密数据的共享的流程为:
1)用户随机选取整数r作为自己的特性参数,使用注册中心证书对特性参数r和真实身份ID进行加密作为申请信息,再使用自己证书私钥对申请信息签名后发送给注册中心;
2)注册中心首先使用用户证书验签,若通过验证,使用自己的证书私钥解密密文得到成员特性参数r和用户真实身份ID,并计算QID=ID||r作为用户的假名信息,同时将用户(ID,QID,r)信息存储群成员列表中,以便验证管理用户身份;
3)用户将假名信息QID发送给密钥颁发中心,密钥颁发中心将收到的用户信息和上一步中注册中心发送的信息进行对比验证,结果一致时用户入群,密钥颁发中心选取随机整数t,计算得到解密密钥ZID,并将该解密密钥发送给用户:
ZID=tnQID mod r2
其中:
QID为用户的假名信息;
n为t的位数。
可选地,所述利用群签名算法进行加密数据的解密的流程为:
用户发起解密交易,区块链以先到先得的方式为所有的交易做共识排序,区块链主节点收到交易提案密文后,使用群公钥验证交易信息;
若验证成功,则排序打包输出区块,并且向所有peer节点广播,用户利用解密密钥ZID对区块链中的加密数据进行解密,否则忽略该交易提案。
可选地,所述利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,包括:
1)建立基于区块链的排序管理器,排序管理器不断的从区块链中拉取完成数据解密的交易提案,然后按照设置的区块交易数量进行切分,并将其放入区块缓存队列;排序管理器每完成一个区块的切分,一方面需要将切分后的区块放入缓存队列,另一方面需要将切分后的区块放入工作线程池;
2)为了避免区块缓存过多造成的内存高负荷,将区块缓存队列的大小设置为5,并开启一个监听线程对该缓存队列的队首进行监听;当区块放入缓存队列后,监听线程会一直阻塞直至队首区块共识验证完成,待将该区块写入本地账本后,监听线程才会继续处理最新的队首区块;排序管理器特意为每个交易的执行结果收集操作设置了一个计时器,一旦计时器超时,该交易对应的执行结果收集操作立即结束,排序管理器不再接收任何共识节点发送的关于该交易的执行结果,转而直接进入交易执行结果的投票计数环节;
3)排序管理器在进行交易执行结果的收集时,会依据当前区块链中存活的节点数来对需要收集的交易执行结果数量进行设定,只要工作线程收集到的交易执行结果数达到了该值,那么排序管理器就不再接其余节点发送的关于该交易的执行结果,而是直接对收集到的交易执行结果进行投票计数处理;由多个工作线程以并发的形式对缓存队列中的区块进行交易验证,待区块验证完毕后按照区块放入缓存队列的顺序提交至本地账本,如果前一个区块尚未提交至账本则不允许后续区块写入账本;所述交易验证过程为:通过判断区块中的交易是否存在“写读冲突”和“写写冲突”,所述“写读冲突”是指前面交易的写集合与后面交易的读集合存在交集,而“写写冲突”是指前面交易的写集合与后面交易的写集合存在交集,若存在上述任意一种冲突,则将前面的交易标记为有效,后面的交易标记为无效。
此外,为实现上述目的,本发明还提供一种区块链数据共享加密和解密系统,所述系统包括:
数据获取装置,用于获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量,同时构建待加密数据的关键字索引结构,将所述待加密数据向量存储在关键字索引结构中;
数据加密装置,用于利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到加密数据;
数据共享装置,用于利用群签名算法进行加密数据的共享,以及对加密数据的解密,并利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据共享加密和解密程序指令,所述数据共享加密和解密程序指令可被一个或者多个处理器执行,以实现如上所述的区块链数据共享加密和解密的实现方法的步骤。
相对于现有技术,本发明提出一种区块链数据共享加密和解密方法,该技术具有以下优势:
首先,本发明提出一种基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,通过将共识域内所有共识节点分为四组A={a1,...,an},B={b1,...,bn},C={c1,...,cn}和D={d1,...,dn},规定A组成员的投票权重qa为1,B组成员的投票权重qb为2,C组成员的投票权重qc为3,D组成员的投票权重qd为4;D组的成员拥有最高的投票权,即它们是安全性最高,并且最不容易作恶的节点,通过这样的划分,共识网络的安全性更多的依赖投票权重高的那些组。共识服务从选取主节点开始,选定主节点之后确定了共识的视图v,之后就开始进行事务的共识。主节点的选取规则是从主域内进行随机抽取,而不同于传统拜占庭容错算法是从全网随机抽取,由于主域内的节点安全级别是最高的,主节点出错的概率较低,因为主节点出错导致的视图切换将会更少发生,这降低了共识开销的同时提高了共识效率。
同时本发明提出一种基于群签名的加密数据共享和解密策略,申请入群的用户将身份信息加密传输给注册中心,注册中心构造假名信息发给用户和密钥颁发中心,因此群成员在所述加密数据共享和解密策略中具有匿名性;注册中心首先使用用户证书验签,若通过验证,使用自己的证书私钥解密密文得到成员特性参数r和用户真实身份ID,并计算QID=ID||r作为用户的假名信息,同时将用户(ID,QID,r)信息存储群成员列表中,以便验证管理用户身份;用户将假名信息QID发送给密钥颁发中心,密钥颁发中心将收到的用户信息和上一步中注册中心发送的信息进行对比验证,结果一致时用户入群,密钥颁发中心选取随机整数t,计算得到解密密钥ZID,并将该解密密钥发送给用户:
ZID=tnQID mod r2
其中:QID为用户的假名信息;n为t的位数;r为随机整数,用户发起解密交易,区块链以先到先得的方式为所有的交易做共识排序,区块链主节点收到交易提案密文后,使用群公钥验证交易信息,若验证成功,则排序打包输出区块,并且向所有共识节点广播,用户利用解密密钥ZID对区块链中的加密数据进行解密,否则忽略该交易提案。由于用户假名信息由用户随机选取整数构造,群成员私钥生成时随机选取整数,因此每次群签名具有不可关联性,且用户真实身份信息由注册中心保存,当争议发生时,由可信机构和密钥注册中心利用解密算法对用户签名进行解密,获取用户的签名,找出真正的签名者,具有可监管性和可追踪性,从而在保证数据隐私的情况下实现数据的共享。
传统区块链交易确认仅以单线程的方式进行处理,只有在上一个交易提案的共识验证完成后,才会处理下一个交易提案。虽然每笔交易的共识验证并不耗时,但是这种串行验证的设计使得区块打包的总体时长随交易数据量的增长而线性增加,这在平台交易量较小的时候尚能满足快速确认的需要,然而一旦出现瞬时交易高峰的情况,排在尾部的交易提案需要经过较长的时间才会被验证,这就严重影响了区块链的性能表现。因此本发明提出一种基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中,通过建立基于区块链的排序管理器,允许排序管理器同时缓存多个区块的交易裁决提案,并以多线程的方式对缓存的区块进行共识验证;排序管理器不断的从区块链中拉取完成数据解密的交易提案,然后按照设置的区块交易数量进行切分,并将其放入区块缓存队列,为了避免区块缓存过多造成的内存高负荷,本发明将区块缓存队列的大小设置为5,并开启一个监听线程对该缓存队列的队首进行监听,当区块放入缓存队列后,监听线程会一直阻塞直至队首区块共识验证完成,待将该区块写入本地账本后,监听线程才会继续处理最新的队首区块;为了避免排序管理器中的工作线程一直处于阻塞状态,排序管理器特意为每个交易的执行结果收集操作设置了一个计时器,一旦计时器超时,该交易对应的执行结果收集操作立即结束,排序管理器不再接收任何共识节点发送的关于该交易的执行结果,转而直接进入交易执行结果的投票计数环节。
由多个工作线程以并发的形式对缓存队列中的区块进行交易验证,待区块验证完毕后按照区块放入缓存队列的顺序提交至本地账本,如果前一个区块尚未提交至本地账本则不允许后续区块写入本地账本,另外,排序管理器在进行交易执行结果的收集时,会依据当前区块链中存活的节点数来对需要收集的交易执行结果数量进行设定,只要工作线程收集到的交易执行结果数达到了该值,那么排序管理器就不再接其余节点发送的关于该交易的执行结果,而是直接对收集到的交易执行结果进行投票计数处理,避免频繁的进入计时器的超时处理流程,从而更为快速地完成区块链交易的确认。
附图说明
图1为本发明一实施例提供的一种区块链数据共享加密和解密方法的流程示意图;
图2为本发明一实施例提供的一种区块链数据共享加密和解密系统的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
通过利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量,同时构建数据的关键字索引结构对待加密数据向量进行存储,利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,同时利用群签名算法实现加密数据的共享,以及对加密数据的解密。参照图1所示,为本发明一实施例提供的区块链数据共享加密和解密方法示意图。
在本实施例中,区块链数据共享加密和解密方法包括:
S1、获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量。
首先,本发明获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,所述新数据探索算法的流程为:
1)利用word2vec将待加密数据转化为词向量;
2)计算第i个词向量wi与其余词向量wj之间的欧式距离Stagi,j,并定义词向量wi得分为:
Score=Max{Stagi,j}
3)统计满足Max{Stagi,j}的词向量wi和词向量wj的词频,若词频大于预设的阈值,则认为wiwj为新数据向量;反之计算词向量wi,wi+1,wi+2的长度,若长度小于5,则将词向量wi,wi+1,wi+2拼接成一个组合词,并重复2);
4)遍历所述待加密数据词向量,将新数据向量与待加密数据词向量共同作为待加密数据向量。
S2、构建待加密数据的关键字索引结构,将所述待加密数据向量存储在关键字索引结构中。
进一步地,本发明通过构建待加密数据的关键字索引结构,从而将所述待加密数据向量存储在关键字索引结构中,所述关键字索引结构的构建流程为:
1)若关键字索引树中所有叶子节点数量为n,则关键字索引树中所有节点数为2n-1,每一个叶子节点与待加密数据向量的哈希值一一对应,即待加密数据向量的哈希值为其关键字索引;
2)树结构中每一个叶节点存储的是key-value键值对,key存储长度为m的01比特串,value值是唯一识别待加密数据向量的哈希值,叶子节点中比特序列与关键字集合中关键字一一对应,对于每一个叶子节点来说,比特序列中某一比特值为1,则说明标识符对应的数据中包含关键字集合中相应位置上的关键字;
3)树中所有内部节点由该节点的孩子节点运算生成,内部节点存储包含m个元素的01比特序列。
S3、利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到加密数据。
进一步地,本发明利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到待加密数据的加密数据;所述利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密的流程为:
1)区块链主节点将关键字索引结构在共识域内进行广播,其余节点收到广播消息后检查消息序列号n和广播签名v的合法性,即n是否满足水位线的规则,v是否等于当前的视图;
2)将共识域内所有共识节点分为四组A={a1,...,an},B={b1,...,bn},C={c1,...,cn}和D={d1,...,dn},规定A组成员的投票权重qa为1,B组成员的投票权重qb为2,C组成员的投票权重qc为3,D组成员的投票权重qd为4;D组的成员拥有最高的投票权,即它们是安全性最高,并且最不容易作恶的节点,通过这样的划分,共识网络的安全性更多的依赖投票权重高的那些组;
3)通过定义两个映射函数,H1:{0,1}→Zq,H2:{0,1}→G,计算公钥镜像y′:
y′=xiH2(R)
其中:
xi为第i个区块节点的私钥;
R为公钥环,R=(pk1,pk2,...,pkn),公钥pki=xiG;
其中:
m为关键字索引结构;
5)对关键字索引结构进行加密,得到加密结果s,并将加密结果存储在区块链中:
其中:
q为函数Zq的维度。
S4、利用群签名算法进行加密数据的共享,以及对加密数据的解密。
进一步地,本发明利用群签名算法实现加密数据的共享,所述群签名算法的流程为:
1)用户随机选取整数r作为自己的特性参数,使用注册中心证书对特性参数r和真实身份ID进行加密作为申请信息,再使用自己证书私钥对申请信息签名后发送给注册中心;
2)注册中心首先使用用户证书验签,若通过验证,使用自己的证书私钥解密密文得到成员特性参数r和用户真实身份ID,并计算QID=ID||r作为用户的假名信息,同时将用户(ID,QID,r)信息存储群成员列表中,以便验证管理用户身份;
3)用户将假名信息QID发送给密钥颁发中心,密钥颁发中心将收到的用户信息和上一步中注册中心发送的信息进行对比验证,结果一致时用户入群,密钥颁发中心选取随机整数t,计算得到解密密钥ZID,并将该解密密钥发送给用户:
ZID=tnQID mod r2
其中:
QID为用户的假名信息;
n为t的位数;
4)用户发起解密交易,区块链以先到先得的方式为所有的交易做共识排序,区块链主节点收到交易提案密文后,使用群公钥验证交易信息,若验证成功,则排序打包输出区块,并且向所有peer节点广播,用户利用解密密钥ZID对区块链中的加密数据进行解密,否则忽略该交易提案。
S5、利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中。
进一步地,对于完成数据解密的交易提案,本发明利用基于交易排序的区块打包算法将交易提案进行区块打包处理,所述基于交易排序的区块打包算法流程为:
1)建立基于区块链的排序管理器,排序管理器不断的从区块链中拉取完成数据解密的交易提案,然后按照设置的区块交易数量进行切分,并将其放入区块缓存队列;排序管理器每完成一个区块的切分,一方面需要将切分后的区块放入缓存队列,另一方面需要将切分后的区块放入工作线程池;在本发明一个具体实施例中,所设置的区块交易数量为10;
2)为了避免区块缓存过多造成的内存高负荷,将区块缓存队列的大小设置为5,并开启一个监听线程对该缓存队列的队首进行监听;当区块放入缓存队列后,监听线程会一直阻塞直至队首区块共识验证完成,待将该区块写入本地账本后,监听线程才会继续处理最新的队首区块;同时为了避免排序管理器中的工作线程一直处于阻塞状态,排序管理器特意为每个交易的执行结果收集操作设置了一个计时器,一旦计时器超时,该交易对应的执行结果收集操作立即结束,排序管理器不再接收任何共识节点发送的关于该交易的执行结果,转而直接进入交易执行结果的投票计数环节;
3)排序管理器在进行交易执行结果的收集时,会依据当前区块链中存活的节点数来对需要收集的交易执行结果数量进行设定,只要工作线程收集到的交易执行结果数达到了该值,那么排序管理器就不再接其余节点发送的关于该交易的执行结果,而是直接对收集到的交易执行结果进行投票计数处理;由多个工作线程以并发的形式对缓存队列中的区块进行交易验证,待区块验证完毕后按照区块放入缓存队列的顺序提交至本地账本,如果前一个区块尚未提交至账本则不允许后续区块写入账本;所述交易验证过程为:通过判断区块中的交易是否存在“写读冲突”和“写写冲突”,所述“写读冲突”是指前面交易的写集合与后面交易的读集合存在交集,而“写写冲突”是指前面交易的写集合与后面交易的写集合存在交集,若存在上述任意一种冲突,则将前面的交易标记为有效,后面的交易标记为无效。
下面通过一个算法实验来说明本发明的具体实施方式,并对发明的处理方法进行测试。本发明算法的硬件测试环境为:操作系统为Linux CentOS 6.9,内存为16G;对比算法为MD5、HMAC和DES算法。
在本发明所述算法实验中,本实验通过搜集5G的数据使用对比算法和本发明所提出的算法进行加密,通过计算加密密文的生成时间以及加密密文与原始数据之间的相关性对加密算法进行评估。
根据实验结果MD5算法的加密密文生成时间为8s,加密密文与原始数据之间的相关性为22.3%,HMAC算法的加密密文生成时间为10.13s,加密密文与原始数据之间的相关性为22.82%,DES算法的加密密文生成时间为7.57s,加密密文与原始数据之间的相关性为15.33%,本发明所述算法的加密密文生成时间为6.74s,加密密文与原始数据之间的相关性为14.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),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,数据加密装置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)利用word2vec将待加密数据转化为词向量;
2)计算第i个词向量wi与其余词向量wj之间的欧式距离Stagi,j,并定义词向量wi得分为:
Score=Max{Stagi,j}
3)统计满足Max{Stagi,j}的词向量wi和词向量wj的词频,若词频大于预设的阈值,则认为wiwj为新数据向量;反之计算词向量wi,wi+1,wi+2的长度,若长度小于5,则将词向量wi,wi+1,wi+2拼接成一个组合词,并重复2);
4)遍历所述待加密数据词向量,将新数据向量与待加密数据词向量共同作为待加密数据向量。
3.如权利要求2所述的一种区块链数据共享加密和解密方法,其特征在于,所述构建待加密数据的关键字索引结构,包括:
1)若关键字索引树中所有叶子节点数量为n,则关键字索引树中所有节点数为2n-1,每一个叶子节点与待加密数据向量的哈希值一一对应,即待加密数据向量的哈希值为其关键字索引;
2)树结构中每一个叶节点存储的是key-value键值对,key存储长度为m的01比特串,value值是唯一识别待加密数据向量的哈希值,叶子节点中比特序列与关键字集合中关键字一一对应;
3)树中所有内部节点由该节点的孩子节点运算生成,内部节点存储包含m个元素的01比特序列。
4.如权利要求3所述的一种区块链数据共享加密和解密方法,其特征在于,所述利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,包括:
1)区块链主节点将关键字索引结构在共识域内进行广播,其余节点收到广播消息后检查消息序列号n和广播签名v的合法性,即n是否满足水位线的规则,v是否等于当前的视图;
2)将共识域内所有共识节点分为四组A={a1,...,an},B={b1,...,bn},C={c1,...,cn}和D={d1,...,dn},规定A组成员的投票权重qa为1,B组成员的投票权重qb为2,C组成员的投票权重qc为3,D组成员的投票权重qd为4;
3)通过定义两个映射函数,H1:{0,1}→Zq,H2:{0,1}→G,计算公钥镜像y′:
y′=xiH2(R)
其中:
xi为第i个区块节点的私钥;
R为公钥环,R=(pk1,pk2,...,pkn),公钥pki=xiG;
其中:
m为关键字索引结构;
5)对关键字索引结构进行加密,得到加密结果s,并将加密结果存储在区块链中:
其中:
q为函数Zq的维度。
5.如权利要求4所述的一种区块链数据共享加密和解密方法,其特征在于,所述利用群签名算法进行加密数据的共享的流程为:
1)用户随机选取整数r作为自己的特性参数,使用注册中心证书对特性参数r和真实身份ID进行加密作为申请信息,再使用自己证书私钥对申请信息签名后发送给注册中心;
2)注册中心首先使用用户证书验签,若通过验证,使用自己的证书私钥解密密文得到成员特性参数r和用户真实身份ID,并计算QID=ID||r作为用户的假名信息,同时将用户(ID,QID,r)信息存储群成员列表中,以便验证管理用户身份;
3)用户将假名信息QID发送给密钥颁发中心,密钥颁发中心将收到的用户信息和上一步中注册中心发送的信息进行对比验证,结果一致时用户入群,密钥颁发中心选取随机整数t,计算得到解密密钥ZID,并将该解密密钥发送给用户:
ZID=tnQID mod r2
其中:
QID为用户的假名信息;
n为t的位数。
6.如权利要求5所述的一种区块链数据共享加密和解密方法,其特征在于,所述利用群签名算法进行加密数据的解密的流程为:
用户发起解密交易,区块链以先到先得的方式为所有的交易做共识排序,区块链主节点收到交易提案密文后,使用群公钥验证交易信息;
若验证成功,则排序打包输出区块,并且向所有peer节点广播,用户利用解密密钥ZID对区块链中的加密数据进行解密,否则忽略该交易提案。
7.如权利要求6所述的一种区块链数据共享加密和解密方法,其特征在于,所述利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,包括:
1)建立基于区块链的排序管理器,排序管理器不断的从区块链中拉取完成数据解密的交易提案,然后按照设置的区块交易数量进行切分,并将其放入区块缓存队列;排序管理器每完成一个区块的切分,一方面需要将切分后的区块放入缓存队列,另一方面需要将切分后的区块放入工作线程池;
2)为了避免区块缓存过多造成的内存高负荷,将区块缓存队列的大小设置为5,并开启一个监听线程对该缓存队列的队首进行监听;当区块放入缓存队列后,监听线程会一直阻塞直至队首区块共识验证完成,待将该区块写入本地账本后,监听线程才会继续处理最新的队首区块;排序管理器特意为每个交易的执行结果收集操作设置了一个计时器,一旦计时器超时,该交易对应的执行结果收集操作立即结束,排序管理器不再接收任何共识节点发送的关于该交易的执行结果,转而直接进入交易执行结果的投票计数环节;
3)排序管理器在进行交易执行结果的收集时,会依据当前区块链中存活的节点数来对需要收集的交易执行结果数量进行设定,只要工作线程收集到的交易执行结果数达到了该值,那么排序管理器就不再接其余节点发送的关于该交易的执行结果,而是直接对收集到的交易执行结果进行投票计数处理;由多个工作线程以并发的形式对缓存队列中的区块进行交易验证,待区块验证完毕后按照区块放入缓存队列的顺序提交至本地账本,如果前一个区块尚未提交至账本则不允许后续区块写入账本;所述交易验证过程为:通过判断区块中的交易是否存在“写读冲突”和“写写冲突”,所述“写读冲突”是指前面交易的写集合与后面交易的读集合存在交集,而“写写冲突”是指前面交易的写集合与后面交易的写集合存在交集,若存在上述任意一种冲突,则将前面的交易标记为有效,后面的交易标记为无效。
8.一种区块链数据共享加密和解密系统,其特征在于,所述系统包括:
数据获取装置,用于获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量,同时构建待加密数据的关键字索引结构,将所述待加密数据向量存储在关键字索引结构中;
数据加密装置,用于利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到加密数据;
数据共享装置,用于利用群签名算法进行加密数据的共享,以及对加密数据的解密,并利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据共享加密和解密程序指令,所述数据共享加密和解密程序指令可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的一种区块链数据共享加密和解密的实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011217597.7A CN112347508A (zh) | 2020-11-04 | 2020-11-04 | 一种区块链数据共享加密和解密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011217597.7A CN112347508A (zh) | 2020-11-04 | 2020-11-04 | 一种区块链数据共享加密和解密方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112347508A true CN112347508A (zh) | 2021-02-09 |
Family
ID=74429208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011217597.7A Withdrawn CN112347508A (zh) | 2020-11-04 | 2020-11-04 | 一种区块链数据共享加密和解密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112347508A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988678A (zh) * | 2021-05-11 | 2021-06-18 | 江苏荣泽信息科技股份有限公司 | 一种基于区块链的智慧云数据安全保护系统 |
CN113055174A (zh) * | 2021-04-14 | 2021-06-29 | 长春大学 | 基于共识机制的多节点间量子密钥同步方法 |
CN113343251A (zh) * | 2021-05-21 | 2021-09-03 | 广东电网有限责任公司 | 基于区块链的能源交易处理方法和系统 |
CN113852470A (zh) * | 2021-09-23 | 2021-12-28 | 北京新华夏信息技术有限公司 | 提案广播方法、装置、设备和存储介质 |
CN114362987A (zh) * | 2021-08-02 | 2022-04-15 | 北京航空航天大学 | 一种基于区块链和智能合约的分布式投票系统及方法 |
CN114820175A (zh) * | 2022-06-27 | 2022-07-29 | 浙江数秦科技有限公司 | 一种基于区块链的贷款用途监督方法 |
CN114943089A (zh) * | 2022-07-22 | 2022-08-26 | 清华大学苏州汽车研究院(吴江) | 企业运营在线数据共享用信息安全防护系统 |
CN115051995A (zh) * | 2022-07-27 | 2022-09-13 | 南京搜文信息技术有限公司 | 一种支持数据高效溯源的区块链底层平台 |
CN115766616A (zh) * | 2022-10-16 | 2023-03-07 | 昆明理工大学 | 一种基于HoneyBadgerBFT共识算法的数据共享方法 |
-
2020
- 2020-11-04 CN CN202011217597.7A patent/CN112347508A/zh not_active Withdrawn
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055174A (zh) * | 2021-04-14 | 2021-06-29 | 长春大学 | 基于共识机制的多节点间量子密钥同步方法 |
CN113055174B (zh) * | 2021-04-14 | 2022-06-28 | 长春大学 | 基于共识机制的多节点间量子密钥同步方法 |
CN112988678A (zh) * | 2021-05-11 | 2021-06-18 | 江苏荣泽信息科技股份有限公司 | 一种基于区块链的智慧云数据安全保护系统 |
CN113343251A (zh) * | 2021-05-21 | 2021-09-03 | 广东电网有限责任公司 | 基于区块链的能源交易处理方法和系统 |
CN114362987B (zh) * | 2021-08-02 | 2023-02-28 | 北京航空航天大学 | 一种基于区块链和智能合约的分布式投票系统及方法 |
CN114362987A (zh) * | 2021-08-02 | 2022-04-15 | 北京航空航天大学 | 一种基于区块链和智能合约的分布式投票系统及方法 |
CN113852470A (zh) * | 2021-09-23 | 2021-12-28 | 北京新华夏信息技术有限公司 | 提案广播方法、装置、设备和存储介质 |
CN113852470B (zh) * | 2021-09-23 | 2024-04-05 | 北京新华夏信息技术有限公司 | 提案广播方法、装置、设备和存储介质 |
CN114820175A (zh) * | 2022-06-27 | 2022-07-29 | 浙江数秦科技有限公司 | 一种基于区块链的贷款用途监督方法 |
CN114820175B (zh) * | 2022-06-27 | 2022-09-23 | 浙江数秦科技有限公司 | 一种基于区块链的贷款用途监督方法 |
CN114943089A (zh) * | 2022-07-22 | 2022-08-26 | 清华大学苏州汽车研究院(吴江) | 企业运营在线数据共享用信息安全防护系统 |
CN115051995A (zh) * | 2022-07-27 | 2022-09-13 | 南京搜文信息技术有限公司 | 一种支持数据高效溯源的区块链底层平台 |
CN115766616A (zh) * | 2022-10-16 | 2023-03-07 | 昆明理工大学 | 一种基于HoneyBadgerBFT共识算法的数据共享方法 |
CN115766616B (zh) * | 2022-10-16 | 2024-04-26 | 昆明理工大学 | 一种基于HoneyBadgerBFT共识算法的数据共享方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112347508A (zh) | 一种区块链数据共享加密和解密方法及系统 | |
CN111355705B (zh) | 一种基于区块链的数据审计与安全去重云存储系统、方法 | |
CN111914027B (zh) | 一种区块链交易关键字可搜索加密方法及系统 | |
CN108900464B (zh) | 电子装置、基于区块链的数据处理方法和计算机存储介质 | |
CN111835511A (zh) | 数据安全传输方法、装置、计算机设备及存储介质 | |
CN107948152B (zh) | 信息存储方法、获取方法、装置及设备 | |
CN110457945B (zh) | 名单查询的方法、查询方设备、服务方设备及存储介质 | |
CN108921696B (zh) | 基于区块链的智能合约调用及合约交易验证的方法 | |
US20190305968A1 (en) | Human-solved puzzles as proof-of-work for blockchain | |
Kundu et al. | How to authenticate graphs without leaking | |
CN111953699A (zh) | 一种基于区块链的数据加密方法及系统 | |
Xie et al. | Blockchain‐Based Cloud Data Integrity Verification Scheme with High Efficiency | |
CN109977684A (zh) | 一种数据传输方法、装置及终端设备 | |
CN112347521A (zh) | 一种基于医疗区块链的医疗数据管理方法及系统 | |
CN116980230B (zh) | 一种信息安全保护方法及装置 | |
CN113420049B (zh) | 数据流通方法、装置、电子设备及存储介质 | |
CN114124502B (zh) | 消息传输方法、装置、设备及介质 | |
CN113391880A (zh) | 一种分层双重哈希验证的可信镜像传输方法 | |
CN113822675A (zh) | 基于区块链的报文处理方法、装置、设备及存储介质 | |
CN114884697A (zh) | 基于国密算法的数据加解密方法及相关设备 | |
CN111680013A (zh) | 基于区块链的数据共享方法、电子设备和装置 | |
CN115694949A (zh) | 一种基于区块链的隐私数据共享方法及系统 | |
CN108370312B (zh) | 加密装置、检索装置、计算机能读取的记录介质、加密方法和检索方法 | |
CN114553532A (zh) | 数据安全传输方法、装置、电子设备及存储介质 | |
CN109219816A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210209 |