一种基于联盟链的数据共享方法与流程

文档序号:26402586发布日期:2021-08-24 16:15阅读:135来源:国知局
一种基于联盟链的数据共享方法与流程

本发明涉及数据共享技术领域,尤其是一种基于联盟链的数据共享方法。



背景技术:

联盟链是区块链的一种实现形式,只针对特定某个群体的成员和有限的第三方,每个块的生成由所有的预选节点共同决定。联盟链的成员指组建联盟的企业、金融机构及经过联盟认证加入联盟的其他机构。

同一行业的企业自身都有一些有价值的行业信息,为了能让自身更好的发展,很多企业都希望能和同行进行信息的交换,而随着企业之间对互联沟通的不断重视以及目前互联网环境下数据泄露风险的不断增加这一矛盾的需求,人们对于数据是否能够在双方之间保证有限的信息安全不泄露的前提下实现数据共享已经成为一个很重要的需求,开放共享数据的同时,保护用户敏感信息、涉密数据等不被非法获取利用,是开放共享数据的基本共识和需求。

目前的数据共享方法,主要包括传统数据共享方案和中心化数据共享方案;其中,中心化数据共享方案主要是以第三方为数据开放和共享为中枢,各数据拥有者对第三方信任并对第三方开放数据,数据共享过程通过第三方来调度实现,这样的数据共享主要是基于对第三方人为的信任基础展开,实际中会随着商业合作关系的变化而存在不安全问题。参考中国专利公开号为cn107480224a的一种控制站的组态数据与第三方数据库实现数据共享的装置,包括数据源配置模块,用于创建数据源;数据表创建与配置模块,用于创建或配置数据库和控制站的数据表;映射函数编译器,为用户提供自定义的映射函数编译;搬迁任务创建与配置模块,用于创建或配置搬迁任务,用户选择搬迁方向、数据源和对应的数据表后即可生成一条搬迁任务以供启动执行,从而实现控制站的组态数据与第三方数据库实现数据共享。

同时当前企业间信息交换,更多的是通过商务沟通,评估后才能获得一份信息,时效性差。另外,不同企业之间的系统架构不同,通过互联网交换信息也会受到诸多限制。即使数据成功交换,由于各家都是中心化管理自己数据,得到数据后对该信息的评判并不能有效的让全网都了解。



技术实现要素:

本发明解决了现有技术企业间数据共享时效性差且安全性差的问题,提出一种基于联盟链的数据共享方法,基于联盟链共享数据实现实时数据共享,时效性高,同时通过设置流动监听节点对加解密进行监听,且多节点进行共享数据加解密,提高数据共享的安全性。

为实现上述目的,提出以下技术方案:

一种基于联盟链的数据共享方法,包括:

步骤a)构建联盟链加解密环境,所述联盟链加解密环境中,至少两个联盟链节点参与加密和解密,在联盟链内设置加解密监听节点,所述监听节点由联盟链节点通过投票轮流担任;

步骤b)将待共享数据经过联盟链加密环境加密,而后将加密后的共享数据放入联盟链的内网环境内展示,并允许在不解密的情况下复制;

步骤c)当联盟链的内网环境中的计算机应用程序请求打开共享数据时,向所述加解密监听节点发出请求,所述加解密监听节点验证所述应用程序是否在白名单内,若应用程序在白名单内则通过联盟链加解密环境解密共享数据,并将解密后的共享数据放入指定的缓冲区,将应用程序的数据读取地址替换为所述缓冲区地址,当应用程序关闭时,所述加解密监听节点清空缓冲区,若应用程序不在白名单内,则不做任何操作。

本发明通过投票选取联盟链节点作为加解密监听节点,避免监听第三方长期固定,从而实现监听节点的去中心化,提高数据共享的安全性。本发明利用联盟链加密环境加密对待共享数据进行加密,并允许在联盟链的内网环境内在不解密的情况下复制,既防止联盟链外节点获取共享数据,又能方便联盟链内部节点快速复制共享数据,本发明还设有应用程序白名单,联盟链仅对在白名单上的应用程序的打开共享数据的请求进行响应,解密共享数据并放置在指定的缓冲区,将应用程序的数据读取地址替换为所述缓冲区地址,方便应用程序读取解密后的共享数据。当应用程序关闭时,所述加解密监听节点清空缓冲区,避免解密后的数据留存在缓冲区泄漏,同时节省缓冲区的存储空间,做到即时使用,及时清空。

作为优选,步骤a)中,构建联盟链加解密环境的方法包括:

由加解密监听节点构建加密智能合约和解密智能合约,所述加密智能合约记录有数据标识k、公开数bk、参与奖励、参与节点标识列表、节点秘钥生成数列表、加密前存放地址和加密后存放地址;所述解密智能合约记录有初始加密秘钥、参与节点标识列表和待解密数据存放地址。本发明通过加密智能合约和解密智能合约构建联盟链加解密环境,所述联盟链加解密环境用于提供联盟链内部网络加解密环境给共享数据进行加解密。

作为优选,步骤b)中,将待共享数据经过联盟链加密环境加密后,关联数据源的签名,而后将关联有数据源签名的加密后的共享数据放入联盟链内网环境中,

在步骤c)中,所述加解密监听节点维护一个解密日志,所述加解密监听节点验证所述应用程序在白名单内后,将解密申请方的标识和数据源关联后作为解密日志的一条记录,解密日志定期同步到联盟链存储。

本发明对每次解密操作进行记录,用于追溯,提高数据共享的可靠性,同时解密日志定期同步到联盟链存储,避免解密日志数据被篡改。

作为优选,所述共享数据的数据源建立有允许解密白名单,在步骤c)中,所述加解密监听节点将解密申请方的标识发送给数据源审核,若解密申请方位于允许解密白名单内,则审核通过,所述加解密监听节点通过联盟链加解密环境解密共享数据,若解密申请方不在允许解密白名单内,则审核不通过,所述加解密监听节点不作进一步操作。本发明设置应用程序白名单,联盟链仅对在白名单上的应用程序的打开共享数据的请求进行响应,解密共享数据并放置在指定的缓冲区,将应用程序的数据读取地址替换为所述缓冲区地址,方便应用程序读取解密后的共享数据。

作为优选,所述步骤b)中,将待共享数据经过联盟链加密环境加密的方法包括:

步骤b1)所述加解密监听节点接收待共享数据dk及共享数据描述,所述加解密监听节点将待共享数据dk分割为若干个数据块dki,i∈[1,n],n为数据块数量,将数据块dki加密为数据块d′ki,加密秘钥记为keyk0;

步骤b2)将数据标识k、公开数bk、参与奖励、加密前存放地址以及加密后存放地址填入加密智能合约,而后发布加密智能合约;

步骤b3)决定参与加密的联盟链节点pj,j∈[1,n]将自己的标识写入智能合约中的参与节点标识列表,直到参与节点标识列表被填满;

步骤b4)每个决定参与加密的联盟链节点pj生成节点秘钥生成数cki,根据公开数bk和节点秘钥生成数cki生成加密秘钥keyki,从数据块d′ki对应的加密前存放地址读取数据块d′ki,使用加密秘钥keyki加密数据块d′ki,得到加密后的数据块d″ki,将数据块d″ki存入对应的加密后存放地址,将节点秘钥生成数cki写入智能合约节点秘钥生成数列表相应位置,加密秘钥keyki由联盟链节点pj保存;

步骤b5)当全部数据块d″ki都被写入加密后存放地址时,所述加解密监听节点将加密秘钥keyk0、参与节点标识列表和节点秘钥生成数列表下载到本地,并从加密后存放地址读取加密后的数据块d″ki,数据块d″ki拼接成加密数据d′k,所述加解密监听节点将加密秘钥keyk0、参与节点标识列表、节点秘钥生成数列表以及共享数据描述与加密数据d′k关联,作为共享数据。

本发明利用多节点进行共享数据加解密,提高数据共享的安全性。

作为优选,步骤c)中,通过联盟链加解密环境解密共享数据的方法包括:

步骤c1)所述加解密监听节点根据解密请求找到加密数据d′k对应的加密秘钥keyk0和参与节点标识列表;

步骤c2)所述加解密监听节点将加密数据d′k拆解成数据块d″ki,i∈[1,n],所述加解密监听节点根据参与节点标识列表,将数据块d″ki,i∈[1,n]发送给对应的联盟链节点pj,联盟链节点pj使用存储在本地的加密秘钥keyki解密数据块d″ki,获得数据块d′ki,所述加解密监听节点将全部数据块d′ki解密后拼接获得数据dk,所述加解密监听节点将数据dk放入缓冲区,将应用程序的数据读取地址替换为所述缓冲区地址。

作为优选,步骤b4)中,区块链节点pj生成的节点秘钥生成数cki是随机数,根据公开数bk和节点秘钥生成数cki生成加密秘钥keyki,即存在函数关系keyki=h(bk,cki),所述的函数关系h由函数关系库hn中随机选取而来,所述函数关系库hn由智能合约提供,所述函数关系库hn中包括至少两个函数关系h,所述函数关系库hn对请求者保密。

作为优选,在步骤c)中,若计算机应用程序在打开共享数据时,对共享数据进行了修改和保存,则将修改后的共享数据保存到临时缓冲区,当应用程序关闭时,所述加解密监听节点清空缓冲区,而后将临时缓冲区内的数据,添加修改源标识后作为新的共享数据执行步骤b)。

本发明的有益效果是:通过投票选取联盟链节点作为加解密监听节点,避免监听第三方长期固定,从而实现监听节点的去中心化,提高数据共享的安全性。本发明利用联盟链加密环境加密对待共享数据进行加密,并允许在联盟链的内网环境内在不解密的情况下复制,既防止联盟链外节点获取共享数据,又能方便联盟链内部节点快速复制共享数据。

附图说明

图1是实施例的流程图。

具体实施方式

实施例:

本实施例提出一种基于联盟链的数据共享方法,参考图1,包括:

步骤a)构建联盟链加解密环境,联盟链加解密环境中,至少两个联盟链节点参与加密和解密,在联盟链内设置加解密监听节点,监听节点由联盟链节点通过投票轮流担任;步骤a)中,构建联盟链加解密环境的方法包括:

由加解密监听节点构建加密智能合约和解密智能合约,加密智能合约记录有数据标识k、公开数bk、参与奖励、参与节点标识列表、节点秘钥生成数列表、加密前存放地址和加密后存放地址;解密智能合约记录有初始加密秘钥、参与节点标识列表和待解密数据存放地址。

步骤b)将待共享数据经过联盟链加密环境加密,而后将加密后的共享数据放入联盟链的内网环境内展示,并允许在不解密的情况下复制;步骤b)中,将待共享数据经过联盟链加密环境加密后,关联数据源的签名,而后将关联有数据源签名的加密后的共享数据放入联盟链内网环境中;

步骤b)中,将待共享数据经过联盟链加密环境加密的方法包括:

步骤b1)加解密监听节点接收待共享数据dk及共享数据描述,加解密监听节点将待共享数据dk分割为若干个数据块dki,i∈[1,n],n为数据块数量,将数据块dki加密为数据块d′ki,加密秘钥记为keyk0;

步骤b2)将数据标识k、公开数bk、参与奖励、加密前存放地址以及加密后存放地址填入加密智能合约,而后发布加密智能合约;

步骤b3)决定参与加密的联盟链节点pj,j∈[1,n]将自己的标识写入智能合约中的参与节点标识列表,直到参与节点标识列表被填满;

步骤b4)每个决定参与加密的联盟链节点pj生成节点秘钥生成数cki,根据公开数bk和节点秘钥生成数cki生成加密秘钥keyki,从数据块d′ki对应的加密前存放地址读取数据块d′ki,使用加密秘钥keyki加密数据块d′ki,得到加密后的数据块d″ki,将数据块d″ki存入对应的加密后存放地址,将节点秘钥生成数cki写入智能合约节点秘钥生成数列表相应位置,加密秘钥keyki由联盟链节点pj保存;

步骤b4)中,区块链节点pj生成的节点秘钥生成数cki是随机数,根据公开数bk和节点秘钥生成数cki生成加密秘钥keyki,即存在函数关系keyki=h(bk,cki),的函数关系h由函数关系库hn中随机选取而来,函数关系库hn由智能合约提供,函数关系库hn中包括至少两个函数关系h,函数关系库hn对请求者保密。

步骤b5)当全部数据块d″ki都被写入加密后存放地址时,加解密监听节点将加密秘钥keyk0、参与节点标识列表和节点秘钥生成数列表下载到本地,并从加密后存放地址读取加密后的数据块d″ki,数据块d″ki拼接成加密数据d′k,加解密监听节点将加密秘钥keyk0、参与节点标识列表、节点秘钥生成数列表以及共享数据描述与加密数据d′k关联,作为共享数据。

步骤c)当联盟链的内网环境中的计算机应用程序请求打开共享数据时,向加解密监听节点发出请求,加解密监听节点验证应用程序是否在白名单内,若应用程序在白名单内则通过联盟链加解密环境解密共享数据,并将解密后的共享数据放入指定的缓冲区,将应用程序的数据读取地址替换为缓冲区地址,当应用程序关闭时,加解密监听节点清空缓冲区,若应用程序不在白名单内,则不做任何操作。

在步骤c)中,加解密监听节点维护一个解密日志,加解密监听节点验证应用程序在白名单内后,将解密申请方的标识和数据源关联后作为解密日志的一条记录,解密日志定期同步到联盟链存储。

共享数据的数据源建立有允许解密白名单,在步骤c)中,加解密监听节点将解密申请方的标识发送给数据源审核,若解密申请方位于允许解密白名单内,则审核通过,加解密监听节点通过联盟链加解密环境解密共享数据,若解密申请方不在允许解密白名单内,则审核不通过,加解密监听节点不作进一步操作。

步骤c)中,通过联盟链加解密环境解密共享数据的方法包括:

步骤c1)加解密监听节点根据解密请求找到加密数据d′k对应的加密秘钥keyk0和参与节点标识列表;

步骤c2)加解密监听节点将加密数据d′k拆解成数据块d″ki,i∈[1,n],加解密监听节点根据参与节点标识列表,将数据块d″ki,i∈[1,n]发送给对应的联盟链节点pj,联盟链节点pj使用存储在本地的加密秘钥keyki解密数据块d″ki,获得数据块d′ki,加解密监听节点将全部数据块d′ki解密后拼接获得数据dk,加解密监听节点将数据dk放入缓冲区,将应用程序的数据读取地址替换为缓冲区地址。

在步骤c)中,若计算机应用程序在打开共享数据时,对共享数据进行了修改和保存,则将修改后的共享数据保存到临时缓冲区,当应用程序关闭时,加解密监听节点清空缓冲区,而后将临时缓冲区内的数据,添加修改源标识后作为新的共享数据执行步骤b)。

本发明通过投票选取联盟链节点作为加解密监听节点,避免监听第三方长期固定,从而实现监听节点的去中心化,提高数据共享的安全性。本发明利用联盟链加密环境加密对待共享数据进行加密,并允许在联盟链的内网环境内在不解密的情况下复制,既防止联盟链外节点获取共享数据,又能方便联盟链内部节点快速复制共享数据,本发明还设有应用程序白名单,联盟链仅对在白名单上的应用程序的打开共享数据的请求进行响应,解密共享数据并放置在指定的缓冲区,将应用程序的数据读取地址替换为所述缓冲区地址,方便应用程序读取解密后的共享数据。当应用程序关闭时,所述加解密监听节点清空缓冲区,避免解密后的数据留存在缓冲区泄漏,同时节省缓冲区的存储空间,做到即时使用,及时清空。

本发明通过加密智能合约和解密智能合约构建联盟链加解密环境,所述联盟链加解密环境用于提供联盟链内部网络加解密环境给共享数据进行加解密。

本发明对每次解密操作进行记录,用于追溯,提高数据共享的可靠性,同时解密日志定期同步到联盟链存储,避免解密日志数据被篡改。

本发明设置应用程序白名单,联盟链仅对在白名单上的应用程序的打开共享数据的请求进行响应,解密共享数据并放置在指定的缓冲区,将应用程序的数据读取地址替换为所述缓冲区地址,方便应用程序读取解密后的共享数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1