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

一种基于区块链的工业物联网安全数据共享方法

文献发布时间:2023-06-19 19:32:07


一种基于区块链的工业物联网安全数据共享方法

技术领域

本发明涉及信息安全技术领域,特别是一种基于区块链的工业物联网安全数据共享方法。

背景技术

随着一系列国家战略的提出和实施,工业物联网成为全球工业体系创新驱动、转型升级的重要推手。在工业领域产业升级逐步推进的今天,产品的生产早已从企业独自制造转为产业供应链的协同制造,因此在产品制造的过程中各组织之间的数据共享是必不可少的。工业物联网将供应链上的众多制造商、供应商、销售商、物流服务商等紧密地连接在一起,共享工业系统中的各种数据,从而实现信息的互联互通、资源的合理配置,最终提高供应链的协同生产效率和智能化水平。

然而工业物联网中的数据常常包含重要的生产信息、企业机密和用户隐私,由于信任的缺失和对数据安全的担忧,相关参与方不愿参与数据共享。区块链具有去中心化、透明、不可篡改、可溯源等特点,能够在弱信任的环境中创建可信的执行环境,有助于实现工业物联网多个对等主体之间的安全数据共享。

传统的工业物联网数据共享方法存在以下问题:(1)集中式的访问授权机制:传统方法使用集中式的访问控制方式,容易发生单点故障,并且访问授权集中在一个节点,容易引发权限滥用和信任问题;(2)数据易遭恶意篡改:由于企业的自利性,当出现生产异常需要对生产数据进行追溯时,相关企业为了逃避责任会对数据进行恶意篡改。

发明内容

本发明的目的在于提供一种能够避免单点故障和访问授权权限滥用的安全性高的工业物联网应用场景中多方数据共享方法。

实现本发明目的技术解决方案:一种基于区块链的工业物联网安全数据共享方法,包括以下几个步骤:

步骤1、数据拥有方计算原始数据哈希值,然后使用AES对称加密算法加密原始数据,并将加密数据上传至工业物联网云平台,获得云平台返回的数据地址;

步骤2、数据拥有方使用Shamir秘密共享技术,将对称密钥分割为若干子密钥,并对子密钥进行加密,将加密后的子密钥和元数据上传至区块链系统;

步骤3、数据拥有方使用动态累加器技术创建访问控制智能合约,并部署在区块链上;

步骤4、数据请求方调用请求数据智能合约,向区块链系统发起数据请求;

步骤5、区块链系统执行访问控制智能合约,判别通过后返回元数据和子密钥;

步骤6、数据请求方通过访问控制后获得若干子密钥,并恢复出解密密钥;

步骤7、数据请求方向工业物联网云平台请求加密数据,并解密获得原始数据。

进一步地,步骤1中所述的数据拥有方计算原始数据哈希值,具体如下:

哈希值计算方法是SHA-256算法,用于检测数据是否经过篡改,具体来说,是在数据请求方获取原始数据后,重新计算哈希值并与初始哈希值进行对比,若相同则说明数据没有被篡改,若不同则说明数据已经被篡改。

进一步地,步骤l中的工业物联网云平台,是半可信的第三方云平台。

进一步地,步骤2中的Shamir秘密共享技术,具体如下:

一个t-1次多项式,如果获得t个不相同点的值,那么能够计算出此t-1次多项式的所有系数;设{(x

Shamir秘密共享所用的插值多项式构造方法如下:

步骤2.1、选取大素数P,在有限域GF(p)上构造一个t-1次多项式:

f(x)=c

则解密密钥设置为key

步骤2.2、分割解密密钥:对于n个工业物联网数据共享参与方,选取n个互不相同的整数{x

步骤2.3、恢复解密密钥:设n个工业物联网数据共享参与方持有的子密钥为(x

由h

h

因此,得到插值基函数:

由以上得t-1次拉格朗日插值多项式为

进一步地,步骤2中:

对子密钥进行加密,是指对所有子密钥进行非对称加密,子密钥的数量和工业物联网数据共享的参与方的数量相同,每个子密钥使用一个参与方的公钥进行非对称加密;

所述元数据,包括原始数据哈希值和数据在工业物联网云平台中存储的地址;

所述区块链系统,具体是联盟链,具有准入机制,适用于工业物联网多方数据共享。

进一步地,步骤3中动态累加器技术,具体如下:

数据拥有方将授权用户的公钥加入累加器集合中,并向这些授权用户发送累加器证据,然后公开动态累加器值;数据请求方凭借累加器证据和动态累加器的值证明自己存在于累加器授权集合中;当数据拥有方需要删除或新增授权用户时,只需更新动态累加器的值,然后将更新后的累加器证据分发给授权用户。

进一步地,步骤4中的数据请求方调用请求智能合约时,需要传入数据请求方公钥和本次请求的签名作为参数。

进一步地,步骤5中的区块链系统执行访问控制智能合约,判别通过后返回元数据和子密钥,具体如下:

每个区块链节点所在的组织拥有一份解密密钥的子密钥,满足数量的子密钥能够通过Shamir秘密共享技术恢复出最初的加密密钥,所有区块链节点均需要执行智能合约,执行结果为假则拒绝数据请求;执行结果为真则返回所在组织所持有的子密钥和数据在工业物联网云平台中的存储地址。

进一步地,步骤6中的解密密钥,是步骤1中数据拥有方用来加密原始数据的对称密钥;数据请求方必须获取足够数量的子密钥才能恢复出解密密钥,这个数量由数据拥有方设置。

进一步地,步骤7中数据请求方向工业物联网云平台发起数据请求时,需要传入数据地址和请求方公钥作为参数;所述的解密算法,是AES对称解密算法。

本发明与现有技术相比,其显著优点在于:(1)数据请求方必须获取足够数量的子密钥才能恢复出解密密钥,这个数量由数据拥有方设置,实现了访问控制去中心化,避免单点故障和访问授权权限滥用;(2)一定数量的节点遭到攻击后仍能保证数据共享系统正常运行,提高了系统的容错性能;(3)提高了工业物联网应用场景中多方数据共享的安全性。

附图说明

图1为工业物联网安全数据共享方法的应用于供应链场景的示意图。

图2为本发明一种基于区块链的工业物联网安全数据共享方法的流程示意图。

具体实施方式

下面结合附图和具体实施例,对本发明做进一步的详细说明。

工业物联网数据共享现有方案通常使用属性加密和代理重加密技术实现访问控制机制,其不足之处在于难以实现访问控制权限的撤销或更新,导致数据的可控性较差。部分方案使用区块链智能合约来进行访问控制,但是访问控制结果由单一节点决定,仍然存在单点故障问题。本方法采用动态累加器实现访问控制,具有高效、易更新易撤销的特点。同时,本方法使用Shamir秘密共享技术将访问控制由集中式执行改造为去中心化形式,避免了单点故障。

结合图1、图2,本发明一种基于区块链的工业物联网安全数据共享方法,包括以下几个步骤:

步骤1、数据拥有方计算原始数据哈希值,然后使用AES对称加密算法加密原始数据,并将加密数据上传至工业物联网云平台,获得云平台返回的数据地址;

进一步地,所述的数据拥有方计算原始数据哈希值,具体如下:

所述的哈希值计算方法是SHA-256算法,其目的是检测数据是否经过篡改,具体来说,是在数据请求方获取原始数据后,重新计算哈希值并与初始哈希值进行对比,若相同则说明数据没有被篡改,若不同则说明数据已经被篡改。

进一步地,所述的工业物联网云平台,是半可信的第三方云平台。

步骤2、数据拥有方使用Shamir秘密共享技术,将对称密钥分割为若干子密钥,并对子密钥进行加密,将加密后的子密钥和元数据上传至区块链系统;

进一步地,所述的Shamir秘密共享技术,具体如下:

一个t-1次多项式,如果获得其t个不相同点的值,那么可以计算出此t-1次多项式的所有系数;设{(x

所述的Shamir秘密共享所用的插值多项式构造方法如下:

步骤2.1、选取大素数P,在有限域GF(p)上构造一个t-1次多项式:

f(x)=c

则解密密钥设置为key

步骤2.2、分割解密密钥:对于n个工业物联网数据共享参与方,选取n个互不相同的整数{x

步骤2.3、恢复解密密钥:设n个工业物联网数据共享参与方持有的子密钥为(x

因此,最后可以得到插值基函数:

由以上可得t-1次拉格朗日插值多项式为

进一步地,所述的对子密钥进行加密,具体如下:

对所有子密钥进行非对称加密,子密钥的数量和工业物联网数据共享的参与方的数量相同,每个子密钥使用一个参与方的公钥进行非对称加密。

进一步地,所述的元数据,包括原始数据哈希值和数据在工业物联网云平台中存储的地址。

进一步地,所述的区块链系统,具体是联盟链,具有准入机制,适用于工业物联网多方数据共享。

步骤3、数据拥有方使用动态累加器技术创建访问控制智能合约,并部署在区块链上;

进一步地,所述的动态累加器技术,具体如下:

数据拥有方将授权用户的公钥加入累加器集合中,并向这些授权用户发送累加器证据,然后公开动态累加器值;数据请求方凭借累加器证据和动态累加器的值证明自己存在于累加器授权集合中;当数据拥有方需要删除或新增授权用户时,只需更新动态累加器的值,然后将更新后的累加器证据分发给授权用户。

步骤4、数据请求方调用请求数据智能合约,向区块链系统发起数据请求;

进一步地,所述的数据请求方调用请求智能合约时,需要传入数据请求方公钥和本次请求的签名作为参数。

步骤5、区块链系统执行访问控制智能合约,判别通过后返回元数据和子密钥;

进一步地,所述的区块链系统执行访问控制智能合约,判别通过后返回元数据和子密钥,具体如下:

每个区块链节点所在的组织拥有一份解密密钥的子密钥,满足数量的子密钥可以通过Shamir秘密共享技术恢复出最初的加密密钥,所有区块链节点均需要执行智能合约,执行结果为假则拒绝数据请求;执行结果为真则返回所在组织所持有的子密钥和数据在工业物联网云平台中的存储地址。

步骤6、数据请求方通过访问控制后获得若干子密钥,并恢复出解密密钥;

进一步地,所述的解密密钥,是步骤1中数据拥有方用来加密原始数据的对称密钥;数据请求方必须获取足够数量的子密钥才能恢复出解密密钥,这个数量由数据拥有方设置。

步骤7、数据请求方向工业物联网云平台请求加密数据,并解密获得原始数据。

进一步地,所述的数据请求方向工业物联网云平台发起数据请求时,需要传入数据地址和请求方公钥作为参数。

进一步地,所述的解密算法,是AES对称解密算法。

实施例1

结合图1、图2,本实施例的主要步骤如下:

步骤1、数据拥有方计算原始数据哈希值,然后使用AES对称加密算法加密原始数据,并将加密数据上传至工业物联网云平台,获得云平台返回的数据地址,具体如下:

数据拥有者首先将原始数据data通过SHA-256算法计算出哈希值h

表1

步骤2、数据拥有方使用Shamir秘密共享技术,将对称密钥分割为若干子密钥,并对子密钥进行加密,将加密后的子密钥和元数据上传至区块链系统,具体如下:

数据拥有者首先在本地维护一个授权集合C={c

表2

数据拥有者使用AES算法对原始数据进行对称加密,其中对称密钥为key。设联盟链系统中参与方的个数是n,Shamir秘密共享技术需要设定一个阈值t,任何t个分割后的子密钥可以恢复出原始密钥,少于t个子密钥则无法恢复出任何信息。对于待加密的密钥key,在有限群GF(p)上任取k-1个随机数{a

f(x)=a

任取n个不同的数b

表3

步骤3、数据拥有方使用动态累加器技术创建访问控制智能合约,并部署在区块链上,具体如下:

数据拥有者创建实现访问控制功能的智能合约。首先,数据拥有者将数据在工业物联网云平台中的地址url

表4

当数据拥有者想撤销A对数据的访问权限时,需要将其从授权集合中删除。数据拥有者更新动态累加器的值,然后对于仍然存在于授权集合中的其他参与方,更新其累加器证据,然后用对应的公钥加密后分发给相关参与方。最后数据拥有者调用智能合约中的函数更新动态累加器的值,这个过程经过所有节点的共识后不可篡改地写入区块链中。具体算法流程如表5:

表5

步骤4、数据请求方调用请求数据智能合约,向区块链系统发起数据请求,具体为:

数据请求方在调用完请求数据的智能合约后会获得解密密钥的若干子密钥,设其数量为k,若k大于等于密钥分割时设定的阈值t,那么根据Shamir秘密共享原理,数据请求方可以恢复出完整的解密密钥。然后,数据请求方向工业物联网云平台发起获取数据的请求,传入数据地址,获得加密数据。接着,数据请求方使用解密后的对称密钥进行解密操作获取原始数据。最后,数据请求方计算该数据的哈希值,并与智能合约返回的数据哈希值进行比较,若相同则说明成功获取完整数据。具体算法流程如表6:

表6

综上所述,本发明第一、数据请求方必须获取足够数量的子密钥才能恢复出解密密钥,这个数量由数据拥有方设置,实现了访问控制去中心化,避免单点故障和访问授权权限滥用;第二、一定数量的节点遭到攻击后仍能保证数据共享系统正常运行,提高了系统的容错性能;第三、提高了工业物联网应用场景中多方数据共享的安全性。

相关技术
  • 一种基于区块链的数据共享系统及数据共享方法
  • 一种基于区块链的物联网数据交易架构及其交易安全方法
  • 一种基于区块链的数据共享平台及其实现方法
  • 基于边缘区块链的工业物联网安全数据共享方法
  • 基于边缘区块链的工业物联网安全数据共享方法
技术分类

06120115939208