一种基于智能合约的工业物联网身份认证和数据交互方法及系统

文档序号:37941312发布日期:2024-05-11 00:20阅读:20来源:国知局
一种基于智能合约的工业物联网身份认证和数据交互方法及系统

本发明属于工业物联网安全,同时涉及区块链智能合约,具体是一种基于智能合约的工业物联网身份认证和数据交互方法及系统。


背景技术:

1、工业物联网(iiot)指的是将先进的传感器、通信技术、数据分析和自动化技术应用于工业设备和过程中,以提高生产效率和经济效益。在工业制造过程中,存在着大量异构的智能设备,设备进行工业生产时生成的数据种类繁多、数量庞大。同时,设备的伪装、潜伏、越权等恶意攻击将对工业物联网造成巨大的经济损失。如何保护工业数据不被未授权访问和工业数据进行安全交互尤为重要。因此,海量且异构的工业数据安全成为一大研究重点,设备的身份认证和数据的安全交互已成为关注重点。

2、然而,传统工业物联网系统多为集中式,这将遭受单点故障、集中攻击、可扩展性差等问题。此外,依靠第三服务器或者第三方云来进行信息的传输、交互和存储,这不仅导致了中心化的问题,也会引起异步访问生产数据时隐私泄露、效率低下等问题。区块链是一种分布式账本技术,可以在没有中央权威机构的情况下安全地记录交易。将区块链应用于工业物联网中,可增强数据安全性和隐私保护、提供可靠的身份认证、提高数据透明度和可追溯性。通过在区块链上实施智能合约,工业物联网中的交易和流程可以自动化执行,减少人工干预和错误的可能性。这对于提高生产效率和降低成本非常有帮助。因此,将区块链的智能合约应用于工业物联网中具备可行性与研究意义。

3、综上,在工业物联网领域中,一个能够实现分布式管理的身份认证和异步数据交互的系统十分重要。基于此,本发明提出一种基于智能合约的工业物联网身份认证和数据交互方法及系统,其能够解决现有工业物联网当中存在中心化问题、身份认证问题和异步数据交互问题。


技术实现思路

1、针对上述现状,本发明提供了一种能够为工业物联网过程中的数据提供安全保护,能够对参与生产的设备进行严格的身份认证,在实现去中心化的同时,提供工业设备高效身份认证和数据安全交互技术方案。本发明通过diffie-hellman(dh)密钥协商算法对schnorr非交互式零知识证明算法进行变体,采用智能合约自动化执行身份认证,最终实现适用于工业物联网环境的身份认证系统和能够实现异步数据交互的数据交互系统。本发明为工业物联网安全保护奠定基础。

2、本发明解决其技术问题所采用的技术方案是:

3、为了实现上述目的,本发明首先将工业物联网进行分布式的处理,将生产过程中的不同过程的设备划分为不同的部门,每个部门或者几个部门设置一个服务器,通过服务器实现与区块链的交互,区块链根据不同的阶段调用不同的智能合约来实现身份认证。

4、具体技术方案如下:一种基于区块链智能合约的工业物联网身份认证和数据交互方法,涉及三个不同的智能合约,分别是身份智能合约、身份认证合约、数据交互智能合约,主要步骤包括初始化阶段、链上身份生成阶段、身份认证阶段、异步数据交互阶段,具体如下:

5、(1).初始化阶段

6、对申请身份认证的部门内的工业物联网设备进行链上注册以及对部门进行身份认证的参数进行初始化;

7、(2).链上身份生成阶段

8、申请身份认证的部门将自己的系统参数和公钥进行公开,通过服务器发送到区块链上,区块链调用身份智能合约,身份智能合约接收公共参数,并根据证明者上传的身份标识,生成该部门的链上身份并保存到集合当中;该部门根据身份智能合约的输出在本地计算得到自己的链上身份并计算得到自己的公私密钥;

9、(3).身份认证阶段

10、申请身份认证的部门在本地计算零知识证明所需要的参数,连同自己链上身份的哈希值共同输入到区块链,区块链调用身份认证合约,通过哈希值对比找到该部门需要验证的链上身份,进行链上身份认证;

11、(4).异步数据交互阶段

12、申请身份认证的部门通过认证之后,其身份得到了证明,通过调用数据交互智能合约,就可以进行异步的数据交互。

13、优选的,阶段(1).初始化阶段具体如下:

14、初始化阶段的部分主要是部门内的工业物联网设备进行链上注册以及对部门进行身份认证的系统参数进行初始化。首先对于刚进入部门的工业物联网设备,需要进行对其身份进行上链,然后才能在部门内运行。工业物联网设备选择一个随机数和加入部门的时间共同作为自己的身份码其中,n是按照设备加入部门顺序的从0开始的整数,表示整数集合。然后各设备将自己的身份码上传到部门i的设备集合devicegroupi中,i为任意整数,devicegroupi={deviceid1,deviceid2,...,deviceidn}。

15、需要申请进行身份认证的部门i在其服务器上进行系统参数(p,q,g)初始化,选择一个大素数p,选择p-1的一个大素数因子q,是p的整数乘积群,选择中素数阶为q的一个子群gq,g为乘积群gq的生成元。申请身份认证的部门i,选择一个标识符αi(0<αi<q),并生成身份标识将标识符αi秘密保存。初始化后,申请身份认证的部门将自己的身份标识公共参数(p,q,g)进行公开,并将部门内的设备集合devicegroupi一同上传到区块链,此时整个系统已经具备了获取链上身份标识所需要的基础参数。

16、优选的,步骤(2).链上身份生成阶段具体如下:

17、本发明所设计的链上身份合约是基于dh密钥协商算法的,通过不同于申请身份认证部门的秘密数的身份标识,来生成该部门的链上身份。

18、部门i将身份标识发送到区块链,这时区块链调用链上身份合约,生成部门i对应的链上身份标识。身份合约的输入为部门i的公共参数(p,q,g)和身份标识ui。具体合约如下:

19、第一步:部门i输入参数(p,q,g)和身份标识ui;

20、第二步:身份智能合约根据公共参数(p,q,g),选择一个随机值βi(0<βi<q),计算并将发送给部门i;

21、第三步:身份智能合约根据部门i上传的身份标识ui和自己选择的随机值,根据式(1)计算部门i的链上身份idi;

22、

23、第四步:身份智能合约根据式(2)计算哈希值hi,并将idi保存到链上身份集合(id,β){(id1,β1),(id2,β2),...,(idn,βn),(idi,βi)}中进行存储;

24、hi=h(p||q||g||idi)    (2)

25、第五步:身份智能合约对进行hi备份,加入链上集合h{h1,h2,...,hn,hi};

26、部门i收到来自区块链的ui'后,通过式(3)计算得知自己在区块链上的链上身份idi。部门i在计算完idi后,重新在本地选择一个不同于αi的秘密数xi(0<xi<q)并将idi和xi组成私钥ski=(xi,αi),同时计算公钥将秘密数xi与私钥ski在本地秘密保存。

27、

28、至此,部门i已经具备了进行身份认证的条件。

29、优选的,步骤(3).身份认证阶段具体如下:

30、在生成了自己的公钥pki和私钥ski后,部门i已经具备了本发明所提出的身份认证所需要的所有条件。认证在工业物联网的实际应用中是非常重要的,当部门之间需要进行通信时,区块链需要对两者的服务器建立通信通道,并作为一个进行密钥协商的桥梁,所以需要对所有参与的部门进行身份认证。

31、本发明提出的身份认证基于dh变体,通过dh变体,既可以实现安全性更高的身份认证,也可以实现信息的加密传输。本发明所提出的身份认证,需要向区块链证明其是私钥及其身份标识的真正所有者,即使公开进行了链上身份的协商,依旧需要对申请身份认证部门的身份进行验证,但是又不能向区块链以及任何人泄露自己的秘密值和身份标识,为了解决这个问题,本发明引入了基于schnorr签名算法的非交互式的零知识证明。所谓非交互式,就是证明者可以在单独的计算中生成证明,并将证明提供给验证者,而验证者可以在不了解具体信息的情况下验证陈述的真实性。在身份认证时,需要验证身份的部门使用公共参数(p,q,g)、链上身份idi以及自己的标识符和秘密数计算承诺值ri、挑战值ei、隐藏见证值si以及验证者需要计算的验证值ri'。本发明结合了dh的安全性和非交互式schnorr零知识证明的特性,将承诺值ri、挑战值ei、隐藏见证值si以及验证者需要计算的验证值ri'分别设计为式(4)、(5)、(6)、(7):

32、

33、ei=h(idi||ri)    (5)

34、si=sici-αixih(idi||ri)    (6)

35、

36、证明者使用式(4)、(5)、(6)计算承诺值ri和隐藏见证值si,并将挑战值和隐藏见证值映射为δi=(ri,si)通过服务器发送到区块链,调用身份认证智能合约进行验证操作。式(6)中将βiαi+xi命名为签名过程中证明者身份的综合体sic(sign identity composite),即sici=βiαi+xi,部门i将sici秘密保存在本地。

37、申请进行认证的部门i首先在本地进行δi的值计算,并计算哈希值hi'=h(p||q||g||idi),计算完成之后将δi和hi'通过服务器发送到区块链,区块链调用认证合约对部门i的身份进行验证。

38、身份认证合约设计如下:

39、第一步:部门i将δi与hi'作为输入,身份认证合约通过链上身份的哈希集合h{h1,h2,...,hn,hi}查找部门i需要验证的链上身份;

40、第二步:身份认证合约通过部门i的输入,并在集合中找到对应的idi,使用公式(5)计算ei';

41、第三步:通过哈希值的验证后,认证智能合约根据式(7)计算

42、

43、第四步:身份认证合约判断ri'是否与用户上传的ri相等,如果相等则认证通过,否则验证失败。

44、优选的,步骤(4).异步数据交互阶段具体如下:

45、在通过了身份认证之后,部门i就可以与另一个通过身份认证的部门j(j是任意不同于i的整数)进行异步的数据交互。本发明设计的异步数据交互中,通过认证的两个部门i和j通过数据交互智能合约查找到对方的链上身份后,就可以在本地进行密钥协商并加密需要交互的数据。

46、首先部门i使用从区块链上获取的部门j的(dhid是用于数据交互的密钥协商id)和自己的标识符αi,通过式(8)计算协商密钥kij:

47、

48、进行数据交互时,通过认证的部门i将自己的消息mi通过协商密钥kij加密为密文mi上传到区块链,区块链收到加密的密文mi后再将密文mi发送给部门j。部门j收到来自i的密文mi,通过区块链一同发送来自部门i的使用式(8)计算出协商密钥kij。此时,部门i就可以和部门j进行数据的交互,不需要同步进行,只需要通过身份认证,并且通过数据交互智能合约获取对方的dhid,就可以进行信息的解密。数据交互智能合约设计如下:

49、第一步:数据交互智能合约将通过验证的部门i的dhidi以及部门i想要交互的部门j的链上身份的哈希值hj作为输入;

50、第二步:数据交互智能合约根据部门i输入的目标部门j的链上身份哈希值hj,从链上身份集合(id,β){(id1,β1),(id2,β2),...,(idn,βn),(idi,βi)}找到对应的链上身份idj和βj;

51、第三步:数据交互合约将部门j的链上身份集合通过式(9)计算为dhidj发送给部门i;

52、

53、第四步:若部门j已经通过身份认证,那么通过式(9)计算出dhidi,直接将dhidi发送给部门j,否则等待部门j的身份认证;

54、这时部门i与部门j就可以实现异步的数据交互。

55、本发明还公开了一种基于智能合约的工业物联网身份认证和数据交互系统,基于上述的方法,其包括如下模块:

56、初始化模块:对申请身份认证的部门内的工业物联网设备进行链上注册以及对部门进行身份认证的参数进行初始化;

57、链上身份生成模块:申请身份认证的部门将自己的参数和公钥进行公开,通过服务器发送到区块链上,区块链调用身份智能合约,身份智能合约接收公共参数,并根据证明者上传的身份标识,生成部门的链上身份并保存到集合当中;部门根据身份智能合约的输出在本地计算得到自己的链上身份并计算得到自己的公私密钥;

58、身份认证模块:申请身份认证的部门在本地计算零知识证明所需要的参数,连同自己链上身份的哈希值共同输入到区块链,区块链调用身份认证合约,通过哈希值对比找到部门需要验证的链上身份,进行链上身份认证;

59、异步数据交互模块:申请身份认证的部门通过认证之后,其身份得到了证明,调用数据交互智能合约,进行异步的数据交互。

60、本发明首先将工业物联网进行分布式的处理,将生产过程中不同过程的设备划分为不同的部门,每个部门或者几个部门设置一个服务器,通过服务器实现与区块链的交互,区块链根据不同的阶段调用不同的智能合约来实现身份认证。

61、本发明涉及diffie-hellman密钥协商算法和schnorr非交互式零知识证明算法变体,设计了三个不同的智能合约,分别是身份合约、认证合约、数据交互合约,本发明能够解决现有工业物联网当中存在中心化问题、身份认证问题和异步数据交互问题。

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