一种工业物联网中基于数据加密存储的数据共享方法与流程

文档序号:19156596发布日期:2019-11-16 00:52阅读:256来源:国知局
一种工业物联网中基于数据加密存储的数据共享方法与流程

本发明涉及工业领域和计算机领域,尤其涉及一种工业物联网中基于数据加密存储的数据共享方法。



背景技术:

工业物联网是将具有感知、监控能力的各类采集、控制传感器或控制器,以及移动通信、智能分析等技术不断融入到工业生产过程各个环节,从而大幅提高制造效率,改善产品质量,降低产品成本和资源消耗,最终实现将传统工业提升到智能化的新阶段。

近年来,我国农业信息化建设发展迅速,全国各地建立了大量农业信息网站,农业数据得到有效积累。但是由于我国的科学研究对数据共享的重视程度不足,使得数据的利用率很低,造成极大的资源浪费,同时农业信息网站建设相对独立、区域性显著,各农业信息网站之间缺乏统一的规范,比如数据存储的形式不一样等,造成数据相互独立,从而形成了信息孤岛效应,使得农业数据难以直接利用。常规的数据共享方式都是将数据发送到一个可靠的中央节点进行数据存储和共享,但是以中央节点进行数据共享的模式面临着一些共同的缺陷,比如,集中的恶意攻击;中心节点的单点故障;数据中心存储数据的恶意篡改等问题。因此,如何存储和利用现有数据是农业信息化急待研究和解决的问题。

区块链技术是指通过去中心化集体维护一个可靠数据库的技术,具有去信任、无中心、多方参与、可靠数据库等共识特征。区块链技术利用非对称加密技术实现区块数据的存储,利用分布式节点共识算法来生成和更新数据。采用分布式数据方法能够保证数据的安全存储,同时不需要依赖于全局可信的第三方,从而能够避免遭受集中的恶意攻击。因此,区块链的这些技术和特点为工业物联网中数据存储与共享问题提供了解决方案。



技术实现要素:

为了方便农业信息的存储与共享,本发明提出一种工业物联网中基于数据加密存储的数据共享方法,包括联盟链系统,所述联盟链系统包括数据聚合器、加密信息生成模块、数据加密模块、工作量证明模块、数据区块生成模块、智能合约处理模块;所述数据聚合器包括本地控制器以及记录池;在联盟链中进行数据存储时,联盟链系统利用加密信息生成模块生成证书、私钥、公钥以及签名,数据加密模块根据节点证书、私钥、公钥以及签名将节点的数据加密存储在数据聚合器的记录池中,若待上传的数据真实有效,则通过工作量证明模块来确定拥有记账权的节点,由该节点利用数据区块生成模块将数据写入区块链中;在联盟链系统中请求共享数据时,若一个节点若向另一个节点发起数据请求,智能合约处理模块判断是否同意收到数据请求的节点共享数据,若同意共享,将加密的数据发送给发情数据请求的节点,发起数据请求的节点利用自己的私钥对数据进行解密,完成数据共享。

进一步的,在联盟链中进行数据存储的具体步骤包括:

s101、系统为全网内每个合法的节点颁发用于加密数据的公钥、私钥以及数字签名并为每个合法节点生成证书;当系统进行初始化时,节点从邻近的数据聚合器的记录池中获取区块数据存储位置索引表;

s102、节点上传监测数据时,先将节点的数字签名发送给数据聚合器进行身份的验证,等到收到确认回复后,使用节点的公钥加密监测数据,附上加密后的监测数据的签名后连同加密后的监测数据一起发送给数据聚合器,数据聚合器利用本身公钥对接收到的数据进行加密,得到待上传数据;

s103、数据聚合器对待上传数据进行合法性检测,即判断待上传的数据是否安全有效,如果通过检测,就该待上传数据保存数据聚合器的记录池中,否则,直接忽略该待上传数据;

s104、通过工作量证明的方式确定某个时间段内数据记账管理权限,获得权限的数据聚合器才有资格将签名的数据写入到数据区块链中,即数据聚合器将本地一段时间内收集到的有效数据进行打包签名,随后数据聚合器会通过工作量证明竞争资格将签名的数据块写入数据区块链中;

s105、数据聚合器间执行共识规则,为保持区块数据一致,通过拜占庭容错共识算法来实现数据共享联盟链系统的区块共识。

进一步的,在联盟链系统中请求共享数据的过程具体包括:

s201、节点nm向节点ni发出数据共享请求,节点ni先验证节点nm身份的合法性,验证通过后,节点ni针对节点nm设置数据的访问约束规则(数据共享范围、时效、次数),随后节点ni把这些约束规则和被访问数据块的私钥发送给对应的数据聚合器;

s202、数据聚合器接收到交易数据后进行查验,通过验证后,自动执行智能合约;

s203、若节点nm与节点ni对应的是同一数据聚合器,那么当前执行智能合约的数据聚合器将共享数据直接发送给节点nm;否则,当前的执行智能合约的数据聚合器将共享数据发送给节点nm对应的数据聚合器,并由节点nm对应的数据聚合器将数据发送给节点nm;

s204、节点nm接收到返回的共享数据后,使用自身的私钥对接收到的结果数进行解密,获得数据。

进一步的,监测数据包括元数据类型、元数据标签、上传信息以及时间戳;其中监测数据即为需要上传的数据,上传信息包括农产品的供应商和产品流通过程所涉及到的产商。

进一步的,通过工作量证明竞争资格将签名的数据块写入数据区块链中的过程包括:将一个随机数x与前一区块的哈希值、时间戳以及当前数据块的merkel根值的组合p_data的哈希作为当前区块的哈希值,表示为

hash(x+p_data),将该哈希值作为工作量证明,若该工作量证明在数据共享联盟链系统中的数据集合器进行竞争计算,最先计算出随机数x的值的数据聚合器作为主节点,获得将签名数据块写入区块链的资格,其他数据聚合器作为从节点;其中hash(x+p_data)<difficulty,difficulty为控制数据聚合器计算出x的值速度的阀值。

进一步的,作为从节点的数据聚合器通过作为主节点的数据聚合器发送过来的区块哈希和数字签名来验证数据区块的合法性和正确性,并把各个作为从节点的数据聚合器的审计结果附上各自的数字签名广播给其他作为从节点的数据聚合器吧,以实现作为从节点的数据聚合器之间的相互监督和共同查验。

进一步的,节点ni先验证节点nm身份的合法性时,需要验证节点nm发出的数据共享请求中的数据访问的详细信息,包括访问目标、访问时间以及访问频率,通过验证数据访问的详细信息的合法性,来判断节点身份的合法性。

进一步的,数据聚合器自动执行智能合约的过程包括根据节点ni设置的访问约束规则锁定脚本,并利用数据块的私钥对数据解密,将解密后的共享数据与节点nm的公钥进行非对称加密,将解密后的共享数据以及节点的公钥进行非对称加密以后的内容作为执行智能合约的输出结果。

本发明所使用的数据存储联盟链系统,与传统的信息共享相比,其优越性主要体现在,首先,它采用分布式数据存储方式来保证数据的安全存储,不依赖全局可信的第三方实体,从而避免了传统中心化数据存储方法的中心节点容易遭受恶意攻击的风险;其次,防止故意篡改存储数据。这些特质能有效的保障所存储用来共享的农业数据的真实性及有效性,以避免当前农业数据的信息孤岛效应。

附图说明

图1为本发明数据存储与共享的系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

在本实施例中,提供一种工业物联网中基于数据加密存储的数据共享方法,包括联盟链系统,所述联盟链系统包括数据聚合器、加密信息生成模块、数据加密模块、工作量证明模块、数据区块生成模块、智能合约处理模块;所述数据聚合器包括本地控制器以及记录池;其中:

加密信息模块用于为系统中的合法节点生成证书并为系统中的合法节点颁布用于加密数据的公钥、私钥以及签名;

数据加密模块用于节点的公钥加密监测数据以及利用数据聚合器本身公钥对接收到的数据进行加密;

所述工作量证明模块用于在新的数据块加入区块链之前,预选的数据聚合器之间进行竞争获取记账权时,每个数据聚合器之间竞争寻找有效的工作量证明,最快找到有效工作量证明的数据聚合器将获得奖励,该数据聚合器负责审计交易记录并把交易记录组建成系统上新的数据区块;

所述数据区块生成模块用于将工作量证明模块中拥有有效工作量证明的数据聚合器中所存储的交易记录按照时间先后顺序存储在数据存储在系统中;

所述智能合约处理模块用于当满足智能合约时,自动执行任务条款,按照事先设定的规范控制数据的共享访问操作;

所述本地控制器用于用来整合节点上传的所需要存储的数据;

所述记录池用于存储本地控制器整合的数据。

进一步的,本地控制器对节点上传的数据进行整合时,需要判断节点上传的信息的合法性,若上传的信息合法,将合法的信息整合并存储在记录池;否则直接忽略该节点上传的数据。

在联盟链中进行数据存储时,联盟链系统利用加密信息生成模块生成证书、私钥、公钥以及签名,数据加密模块根据节点证书、私钥、公钥以及签名将节点的数据加密存储在数据聚合器的记录池中,若待上传的数据真实有效,则通过工作量证明模块来确定拥有记账权的节点,由该节点利用数据区块生成模块将数据写入区块链中;在联盟链系统中请求共享数据时,若一个节点若向另一个节点发起数据请求,智能合约处理模块判断是否同意收到数据请求的节点共享数据,若同意共享,将加密的数据发送给发情数据请求的节点,发起数据请求的节点利用自己的私钥对数据进行解密,完成数据共享。

实施例2

在本实施例中,在实施例1的基础上,提出一种在联盟链中进行数据存储的具体步骤,包括:

s101、系统为全网内每个合法的节点颁发用于加密数据的公钥、私钥以及数字签名,随后节点从对应的数据聚合器的记录池获取数据存储位置索引表;

s102、节点上传监测数据时,先将节点的数字签名发送给数据聚合器进行身份的验证,等到收到确认回复后,使用节点的公钥加密监测数据,附上加密后的监测数据的签名后连同加密后的监测数据一起发送给数据聚合器,数据聚合器利用本身公钥对接收到的数据进行加密,得到待上传数据;

s103、数据聚合器对待上传数据进行合法性检测,如果通过检测,就该待上传数据保存数据聚合器的记录池中,否则,直接忽略该待上传数据;

s104、数据聚合器会将本地一段时间内的数据进行打包签名,随后数据聚合器会通过工作量证明竞争资格将签名的数据块写入数据区块链中;

s105、数据聚合器间执行共识规则,为保持区块数据一致,通过拜占庭容错共识算法来实现数据共享联盟链系统的区块共识。

进一步的,系统为每个合法的节点通过bls短签名技术生成证书;并为每个合法的节点颁发用于加密数据的公钥、私钥以及签名,一个节点表示为公钥、私钥以签名表示为其中为节点的公钥,通过bls短签名技术生成,其作用是用来加密待上传的数据;为节点的私钥通过bls短签名技术生成,其作用是对数据进行解密;是节点的签名,通过bls短签名技术生成,其作用是进行身份验证。

进一步的,节点ni上传监测数据时,先将节点ni的签名sig_1和证书发送给数据聚合器进行身份的验证,等到收到确认回复后,使用节点的公钥加密待上传的数据data,附上加密数据的签名后一起发送给本地数据聚合器(例如bsj),数据聚合器利用本身公钥对接收到的数据进行加密,从而得到最终的上传数据record,具体过程可以表示为:

其中:

其中,bsj表示第j个数据聚合器;record表示最终上传数据;表示使用数据聚合器bsj的公钥加密信息m;data_1表示数据data经过加密以后的数据;表示签名;timestamp表示时间戳;

进一步的,数据聚合器bsj对上传的数据record进行合法性检测,如果通过检测,就把数据保存到聚合器的存储区,否则,直接忽略该数据。

进一步的,数据聚合器会将本地一段时间(例如10min)的数据进行打包签名,随后数据聚合器会通过工作量证明竞争资格将签名的数据块写入数据区块链中;其中,工作量证明实际上是将一个随机数x与前一区块的哈希值、时间戳以及当前数据块的merkel根值的组合p_data的哈希作为当前区块的哈希值,表示为hash(x+p_data),将该哈希值作为工作量证明,若该工作量证明在数据共享联盟链系统中的数据集合器进行竞争计算,最先计算出随机数x的值的数据聚合器作为主节点,获得将签名数据块写入区块链的资格,其他数据聚合器作为从节点;其中hash(x+p_data)<difficulty,difficulty为控制数据聚合器计算出x的值速度的阀值。

进一步的,作为从节点的数据聚合器通过作为主节点的数据聚合器发送过来的区块哈希和数字签名来验证数据区块的合法性和正确性,并把各个作为从节点的数据聚合器的审计结果附上各自的数字签名广播给其他作为从节点的数据聚合器吧,以实现作为从节点的数据聚合器之间的相互监督和共同查验。

进一步的,数据聚合器间执行共识规则,为保持区块数据一致,数据共享联盟链系统的区块共识通过拜占庭容错共识算法来实现。

实施例3

本实施例在实施例1的基础上提出一种在联盟链中进行数据存储的具体步骤,若节点ni按照实施例2的方法将数据存储在对应的数据聚合器,节点nm按照以下步骤向节点ni请求数据共享,包括:

节点ni按照实施例2的方法将数据存储在对应的数据聚合器,节点nm按照以下步骤向节点ni请求数据共享:

s201、节点nm向节点ni发出数据共享请求,节点ni先验证节点nm身份的合法性,验证通过后,针对节点nm设置数据的访问权限规则,随后节点ni把这些约束规则和被访问数据块的私钥发送给对应的数据聚合器;其中,访问约束规则包括数据共享的范围、时效、次数,当满足这些规则时,才能有效进行数据共享;

s202、数据聚合器接收到交易数据后进行查验,通过验证后,自动执行智能合约;

s203、发送共享数据,若节点nm与节点ni对应的是同一数据聚合器,那么当前执行智能合约的数据聚合器将共享数据直接发送给节点nm;否则,当前的执行智能合约的数据聚合器将共享数据发送给节点nm对应的数据聚合器,并由节点nm对应的数据聚合器将数据发送给节点nm;

s204、节点nm接收到返回的共享数据后,使用自身的私钥对接收到的结果数进行解密,获得数据。

进一步的,节点nm向节点ni发出数据共享请求req,请求中包含数据访问的详细信息,比如访问目标,访问时间,访问频率等,节点ni先验证节点nm身份的合法性,验证通过后,节点nm针对节点ni设置数据的访问约束条件constrainsts(例如数据共享范围、时效、次数等),随后节点nm把这些约束规则和被访问数据块的私钥发送给对应的数据聚合器bsj,该过程表示为:

其中,request表示请求;表示利用节点nk的公钥进行加密;表示节点nm的签名;表示利用数据聚合器bsj的公钥进行加密;constrants表示访问约束规则;表示被访问数据块的私钥;表示节点nm的的公钥;表示节点ni的签名。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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