掌桥专利:专业的专利平台
掌桥专利
首页

一种区块链数据共享加密和解密方法及系统

文献发布时间:2023-06-19 09:51:02


一种区块链数据共享加密和解密方法及系统

技术领域

本发明涉及区块链的技术领域,尤其涉及一种区块链数据共享加密和解密方法及系统。

背景技术

随着电子信息技术的发展,数据共享的需求和数据安全之间的矛盾越来越凸显,如何在保证数据不被篡改或泄露的前提下实现数据共享,称为亟待解决的问题。

传统区块链上的数据对全网节点都是公开的,数据记录的更新操作也是透明的,这将有可能导致用户信息泄露问题。在区块链中,交易的发送方和接受方之间是有链接的,因此通过分析公共内容,可以推测出一些隐私内容。用来缓解这种攻击的其中之一方案是引入混合服务,允许服务者隐藏和谁进行通信以及通信的内容。但是混合服务可能会通过不转移资产给聚类分析的接收者来盗窃资产。混合服务器为了完成路由交易会在一定的时间内保存日志的记录,因此用户的隐私可能存在泄露的风险。

鉴于此,如何利用在保证数据隐私的情况下,实现数据的共享,成为本领域技术人员亟待解决的问题。

发明内容

通过利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量,同时构建数据的关键字索引结构对待加密数据向量进行存储,利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,同时利用群签名算法实现加密数据的共享,以及对加密数据的解密。

为实现上述目的,本发明提供的一种区块链数据共享加密和解密方法,包括:

获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量;

构建待加密数据的关键字索引结构,将所述待加密数据向量存储在关键字索引结构中;

利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到加密数据;

利用群签名算法进行加密数据的共享;

利用群签名算法进行加密数据的解密;

利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中。

可选地,所述利用新数据探索算法探索待加密数据中的新数据,包括:

1)利用word2vec将待加密数据转化为词向量;

2)计算第i个词向量w

Score=Max{Stag

3)统计满足Max{Stag

4)遍历所述待加密数据词向量,将新数据向量与待加密数据词向量共同作为待加密数据向量。

可选地,所述构建待加密数据的关键字索引结构,包括:

1)若关键字索引树中所有叶子节点数量为n,则关键字索引树中所有节点数为2n-1,每一个叶子节点与待加密数据向量的哈希值一一对应,即待加密数据向量的哈希值为其关键字索引;

2)树结构中每一个叶节点存储的是key-value键值对,key存储长度为m的01比特串,value值是唯一识别待加密数据向量的哈希值,叶子节点中比特序列与关键字集合中关键字一一对应;

3)树中所有内部节点由该节点的孩子节点运算生成,内部节点存储包含m个元素的01比特序列。

可选地,所述利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,包括:

1)区块链主节点将关键字索引结构在共识域内进行广播,其余节点收到广播消息后检查消息序列号n和广播签名v的合法性,即n是否满足水位线的规则,v是否等于当前的视图;

2)将共识域内所有共识节点分为四组A={a

3)通过定义两个映射函数,H

y=x

其中:

x

R为公钥环,R=(pk

4)产生随机教

其中:

m为关键字索引结构;

5)对关键字索引结构进行加密,得到加密结果s,并将加密结果存储在区块链中:

其中:

q为函数Z

可选地,所述利用群签名算法进行加密数据的共享的流程为:

1)用户随机选取整数r作为自己的特性参数,使用注册中心证书对特性参数r和真实身份ID进行加密作为申请信息,再使用自己证书私钥对申请信息签名后发送给注册中心;

2)注册中心首先使用用户证书验签,若通过验证,使用自己的证书私钥解密密文得到成员特性参数r和用户真实身份ID,并计算Q

3)用户将假名信息Q

Z

其中:

Q

n为t的位数。

可选地,所述利用群签名算法进行加密数据的解密的流程为:

用户发起解密交易,区块链以先到先得的方式为所有的交易做共识排序,区块链主节点收到交易提案密文后,使用群公钥验证交易信息;

若验证成功,则排序打包输出区块,并且向所有peer节点广播,用户利用解密密钥Z

可选地,所述利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,包括:

1)建立基于区块链的排序管理器,排序管理器不断的从区块链中拉取完成数据解密的交易提案,然后按照设置的区块交易数量进行切分,并将其放入区块缓存队列;排序管理器每完成一个区块的切分,一方面需要将切分后的区块放入缓存队列,另一方面需要将切分后的区块放入工作线程池;

2)为了避免区块缓存过多造成的内存高负荷,将区块缓存队列的大小设置为5,并开启一个监听线程对该缓存队列的队首进行监听;当区块放入缓存队列后,监听线程会一直阻塞直至队首区块共识验证完成,待将该区块写入本地账本后,监听线程才会继续处理最新的队首区块;排序管理器特意为每个交易的执行结果收集操作设置了一个计时器,一旦计时器超时,该交易对应的执行结果收集操作立即结束,排序管理器不再接收任何共识节点发送的关于该交易的执行结果,转而直接进入交易执行结果的投票计数环节;

3)排序管理器在进行交易执行结果的收集时,会依据当前区块链中存活的节点数来对需要收集的交易执行结果数量进行设定,只要工作线程收集到的交易执行结果数达到了该值,那么排序管理器就不再接其余节点发送的关于该交易的执行结果,而是直接对收集到的交易执行结果进行投票计数处理;由多个工作线程以并发的形式对缓存队列中的区块进行交易验证,待区块验证完毕后按照区块放入缓存队列的顺序提交至本地账本,如果前一个区块尚未提交至账本则不允许后续区块写入账本;所述交易验证过程为:通过判断区块中的交易是否存在“写读冲突”和“写写冲突”,所述“写读冲突”是指前面交易的写集合与后面交易的读集合存在交集,而“写写冲突”是指前面交易的写集合与后面交易的写集合存在交集,若存在上述任意一种冲突,则将前面的交易标记为有效,后面的交易标记为无效。

此外,为实现上述目的,本发明还提供一种区块链数据共享加密和解密系统,所述系统包括:

数据获取装置,用于获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量,同时构建待加密数据的关键字索引结构,将所述待加密数据向量存储在关键字索引结构中;

数据加密装置,用于利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,得到加密数据;

数据共享装置,用于利用群签名算法进行加密数据的共享,以及对加密数据的解密,并利用基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据共享加密和解密程序指令,所述数据共享加密和解密程序指令可被一个或者多个处理器执行,以实现如上所述的区块链数据共享加密和解密的实现方法的步骤。

相对于现有技术,本发明提出一种区块链数据共享加密和解密方法,该技术具有以下优势:

首先,本发明提出一种基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,通过将共识域内所有共识节点分为四组A={a

同时本发明提出一种基于群签名的加密数据共享和解密策略,申请入群的用户将身份信息加密传输给注册中心,注册中心构造假名信息发给用户和密钥颁发中心,因此群成员在所述加密数据共享和解密策略中具有匿名性;注册中心首先使用用户证书验签,若通过验证,使用自己的证书私钥解密密文得到成员特性参数r和用户真实身份ID,并计算Q

Z

其中:Q

传统区块链交易确认仅以单线程的方式进行处理,只有在上一个交易提案的共识验证完成后,才会处理下一个交易提案。虽然每笔交易的共识验证并不耗时,但是这种串行验证的设计使得区块打包的总体时长随交易数据量的增长而线性增加,这在平台交易量较小的时候尚能满足快速确认的需要,然而一旦出现瞬时交易高峰的情况,排在尾部的交易提案需要经过较长的时间才会被验证,这就严重影响了区块链的性能表现。因此本发明提出一种基于交易排序的区块打包算法将完成数据解密的交易提案进行打包,并将打包结果提交到区块链账本中,通过建立基于区块链的排序管理器,允许排序管理器同时缓存多个区块的交易裁决提案,并以多线程的方式对缓存的区块进行共识验证;排序管理器不断的从区块链中拉取完成数据解密的交易提案,然后按照设置的区块交易数量进行切分,并将其放入区块缓存队列,为了避免区块缓存过多造成的内存高负荷,本发明将区块缓存队列的大小设置为5,并开启一个监听线程对该缓存队列的队首进行监听,当区块放入缓存队列后,监听线程会一直阻塞直至队首区块共识验证完成,待将该区块写入本地账本后,监听线程才会继续处理最新的队首区块;为了避免排序管理器中的工作线程一直处于阻塞状态,排序管理器特意为每个交易的执行结果收集操作设置了一个计时器,一旦计时器超时,该交易对应的执行结果收集操作立即结束,排序管理器不再接收任何共识节点发送的关于该交易的执行结果,转而直接进入交易执行结果的投票计数环节。

由多个工作线程以并发的形式对缓存队列中的区块进行交易验证,待区块验证完毕后按照区块放入缓存队列的顺序提交至本地账本,如果前一个区块尚未提交至本地账本则不允许后续区块写入本地账本,另外,排序管理器在进行交易执行结果的收集时,会依据当前区块链中存活的节点数来对需要收集的交易执行结果数量进行设定,只要工作线程收集到的交易执行结果数达到了该值,那么排序管理器就不再接其余节点发送的关于该交易的执行结果,而是直接对收集到的交易执行结果进行投票计数处理,避免频繁的进入计时器的超时处理流程,从而更为快速地完成区块链交易的确认。

附图说明

图1为本发明一实施例提供的一种区块链数据共享加密和解密方法的流程示意图;

图2为本发明一实施例提供的一种区块链数据共享加密和解密系统的结构示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

通过利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量,同时构建数据的关键字索引结构对待加密数据向量进行存储,利用基于改进的拜占庭容错算法的区块链对关键字索引结构进行加密,同时利用群签名算法实现加密数据的共享,以及对加密数据的解密。参照图1所示,为本发明一实施例提供的区块链数据共享加密和解密方法示意图。

在本实施例中,区块链数据共享加密和解密方法包括:

S1、获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,并将待加密数据转换为待加密数据向量。

首先,本发明获取待加密数据,利用新数据探索算法探索待加密数据中的新数据,所述新数据探索算法的流程为:

1)利用word2vec将待加密数据转化为词向量;

2)计算第i个词向量w

Score=Max{Stag

3)统计满足Max{Stag

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={a

3)通过定义两个映射函数,H

y′=x

其中:

x

R为公钥环,R=(pk

4)产生随机教

其中:

m为关键字索引结构;

5)对关键字索引结构进行加密,得到加密结果s,并将加密结果存储在区块链中:

其中:

q为函数Z

S4、利用群签名算法进行加密数据的共享,以及对加密数据的解密。

进一步地,本发明利用群签名算法实现加密数据的共享,所述群签名算法的流程为:

1)用户随机选取整数r作为自己的特性参数,使用注册中心证书对特性参数r和真实身份ID进行加密作为申请信息,再使用自己证书私钥对申请信息签名后发送给注册中心;

2)注册中心首先使用用户证书验签,若通过验证,使用自己的证书私钥解密密文得到成员特性参数r和用户真实身份ID,并计算Q

3)用户将假名信息Q

Z

其中:

Q

n为t的位数;

4)用户发起解密交易,区块链以先到先得的方式为所有的交易做共识排序,区块链主节点收到交易提案密文后,使用群公钥验证交易信息,若验证成功,则排序打包输出区块,并且向所有peer节点广播,用户利用解密密钥Z

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、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种区块链数据共享加密和解密方法及系统
  • 一种基于区块链与隐藏策略属性加密的数据共享方法与系统
技术分类

06120112328732