一种基于环签名的区块链传感器数据认证方法及系统与流程

文档序号:26103327发布日期:2021-07-30 18:15阅读:90来源:国知局
一种基于环签名的区块链传感器数据认证方法及系统与流程

本发明涉及区块链技术领域,特别涉及一种基于环签名的区块链传感器数据认证方法及系统。



背景技术:

随着全球物联网技术的逐渐发展和各国政策的大力扶持,物联网芯片、信息传感器等先进产品不断推出,有力地促进了物联网的应用和普及。其中,区块链网络集成了分布式数据存储、点对点传输、共识机制、加密算法等技术,具有去中心化、去信任化、数据不可篡改、可追溯等特点,可以为物联网提供信任、所有权记录、透明性和通信支持,从而为解决物联网产业发展难题、拓展物联网产业发展空间提供了新的思路。

而为了保证区块链网络的安全,区块链传感器在接入区块链网络时,可靠可信的认证和数据传输至关重要。在区块链传感器需求的分析中,安全是一个重要的参数。

区块链传感器的安全隐患主要来源于三个方面:资源非常有限、不可靠的通信以及无人管理。这些缺陷使得区块链网络容易遭受各种攻击,而遭受攻击的区块链传感器,其传输出去的数据一般没有行之有效的检验机制来进行验证。



技术实现要素:

本发明所要解决的技术问题是:提供一种基于环签名的区块链传感器数据认证方法及系统,解决目前区块链传感器传输的数据无法得到有效验证的问题,保证数据传输的安全性的同时也保证了数据来源的真实性和有效性。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于环签名的区块链传感器数据认证方法,包括步骤:

s1、当前区块链传感器采用所属的当前区块链节点的节点公钥加密待传输数据信息,得到第一信息;

s2、所述当前区块链传感器采用自身的当前传感器私钥以及所述当前区块链节点中的任意多个区块链传感器的多个传感器公钥对所述待传输数据信息进行环签名,得到第二信息;

s3、所述当前区块链传感器将所述多个传感器公钥、所述第一信息和所述第二信息发送给所述当前区块链节点;

s4、所述当前区块链节点采用自身的节点私钥解密所述第一信息,得到所述第一信息中的所述待传输数据信息,并通过环签名算法验证所述第二信息是否由所属区块链传感器生成,若是,则验证通过,将所述待传输数据信息上链,否则返回验证失败通知。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种基于环签名的区块链传感器数据认证系统,包括当前区块链传感器以及当前区块链节点子系统,所述当前区块链传感器包括第一存储器、第一处理器以及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述当前区块链节点子系统包括第二存储器、第二处理器以及存储在第二存储器上并可在第二处理器上运行的第二计算机程序;

所述第一处理器执行所述第一计算机程序时实现以下步骤:

s1、采用所属的当前区块链节点的节点公钥加密待传输数据信息,得到第一信息;

s2、采用自身的当前传感器私钥以及所述当前区块链节点中的任意多个区块链传感器的多个传感器公钥对所述待传输数据信息进行环签名,得到第二信息;

s3、将所述多个传感器公钥、所述第一信息和所述第二信息发送给所述当前区块链节点;

所述第二处理器执行所述第二计算机程序时实现以下步骤:

s4、采用自身的节点私钥解密所述第一信息,得到所述第一信息中的所述待传输数据信息,并通过环签名算法验证所述第二信息是否由所属区块链传感器生成,若是,则验证通过,将所述待传输数据信息上链,否则返回验证失败通知。

本发明的有益效果在于:本发明提供一种基于环签名的区块链传感器数据认证方法及系统,当当前区块链传感器传输数据时,通过采用所属的当前区块链节点的节点公钥对数据进行加密,并采用自身的私钥和同属于当前区块链节点中的任一多个区块链传感器的公钥对数据进行环签名,并将进行环签名的多个传感器公钥、加密的数据以及环签名的数据一起发送给当前区块链节点,从而通过节点私钥解密获得数据及通过环签名算法验证环签名是否是由自己的区块链传感器所签,保证数据传输的安全性的同时也保证了数据来源的真实性和有效性。

附图说明

图1为本实施例中的一种基于环签名的区块链传感器数据认证方法的流程示意图;

图2为本实施例中的一种基于环签名的区块链传感器数据认证方法的框架示意图;

图3为本实施例中的一种基于环签名的区块链传感器数据认证系统的结构示意图。

标号说明:

10、一种基于环签名的区块链传感器数据认证系统;20、当前区块链传感器;21、第一存储器;22、第一处理器;30、当前区块链节点子系统;31、第二存储器;32、第二处理器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1及图2,一种基于环签名的区块链传感器数据认证方法,包括步骤:

s1、当前区块链传感器采用所属的当前区块链节点的节点公钥加密待传输数据信息,得到第一信息;

s2、所述当前区块链传感器采用自身的当前传感器私钥以及所述当前区块链节点中的任意多个区块链传感器的多个传感器公钥对所述待传输数据信息进行环签名,得到第二信息;

s3、所述当前区块链传感器将所述多个传感器公钥、所述第一信息和所述第二信息发送给所述当前区块链节点;

s4、所述当前区块链节点采用自身的节点私钥解密所述第一信息,得到所述第一信息中的所述待传输数据信息,并通过环签名算法验证所述第二信息是否由所属区块链传感器生成,若是,则验证通过,将所述待传输数据信息上链,否则返回验证失败通知。

由上述描述可知,本发明的有益效果在于:当当前区块链传感器传输数据时,通过采用所属的当前区块链节点的节点公钥对数据进行加密,并采用自身的私钥和同属于当前区块链节点中的任一多个区块链传感器的公钥对数据进行环签名,并将进行环签名的多个传感器公钥、加密的数据以及环签名的数据一起发送给当前区块链节点,从而通过节点私钥解密获得数据及通过环签名算法验证环签名是否是由自己的区块链传感器所签,保证数据传输的安全性的同时也保证了数据来源的真实性和有效性。

进一步地,所述步骤s1之前还包括步骤:

s01、所述当前区块链传感器生成并存储所述当前传感器公钥和所述当前传感器私钥,并将所述当前传感器公钥和自身的当前传感器物理标识存储在所述当前区块链节点中,同时将所述当前传感器公钥存储在所述当前区块链节点的所有所属区块链传感器中;

s02、所述当前区块链节点生成并存储所述节点公钥和所述节点私钥,并将所述节点公钥和自身的节点物理标识存储在所述区块链节点中的每个所属区块链传感器中。

由上述描述可知,每个传感器都生成一对公钥和私钥,其中公钥可存储在同在一个节点下的其他传感器中,方便每个传感器进行数据传输时通过公钥进行环签名,同时公钥还存在所属的当前节点的数据库中,方便后续节点通过数据库中的所有传感器公钥验证传感器上传的进行环签名的多个公钥是否在节点数据库中存储有,从而认证环签名来源于该节点下的一个区块链传感器。每个节点也生成一对公钥和私钥,其中公钥存储在其节点下的所有传感器中,用于传感器加密待传输数据,进一步保证数据传输的安全性。

进一步地,所述步骤s3具体为:

所述当前区块链传感器将所述多个传感器公钥、所述节点物理标识、所述当前传感器物理标识、所述第二信息和所述第一信息发送给所述当前区块链节点。

由上述描述可知,通过物理标识进一步保证数据传输的安全性和可靠性。

进一步地,所述步骤s4具体包括以下步骤:

s41、所述当前区块链节点验证所述节点物理标识是否存储在所述当前区块链节点中,若是则执行步骤s42,否则返回验证失败通知;

s42、所述当前区块链节点验证所述当前传感器物理标识是否存储在所述当前区块链节点中,若是则执行步骤s43,否则返回验证失败通知;

s43、所述当前区块链节点采用自身的节点私钥解密所述第一信息,得到所述第一信息中的所述待传输数据信息,并通过环签名算法验证所述第二信息是否由所属区块链传感器生成,若是,则验证通过,将所述待传输数据信息上链,否则返回验证失败通知。

由上述描述可知,采用先验证物理标识再验证环签名的方式,从而达到高效的数据认证。

进一步地,所述步骤s2具体为:

对所述待传输数据信息进行哈希值计算,得到第二哈希值;

所述当前区块链传感器采用所述当前传感器私钥以及所述当前区块链节点中的任意多个区块链传感器的多个传感器公钥对所述第二哈希值进行环签名,得到第二信息;

所述步骤s4中的并通过环签名算法验证所述第二信息是否由所属区块链传感器生成具体为:

首先验证所述多个传感器公钥是否在所述当前区块链节点的数据库中存储有,若是,则通过所述多个传感器公钥将所述第二信息解为所述第二哈希值,再正向计算所述待传输数据信息的哈希值为第一哈希值,比对所述第一哈希值与所述第二哈希值是否相同,若是,则所述第二信息是由所属区块链传感器生成,否则所述第二信息不是由所属区块链传感器生成。

由上述描述可知,签名一般都是对哈希值进行签名,在当前区块链传感器中对待传输数据信息的哈希值进行环签名之后再传输,由于哈希值是不能得到原始消息的,结合节点公钥加密的待传输数据信息,由于只有节点私钥能够解密得到待传输数据信息,所以即使数据被窃取,窃取方也只能得到加密的待传输数据信息和哈希值,而无法得到原始的待传输数据信息,保证了数据传输的安全性。同时,结合环签名算法,先通过节点数据库中预先存储的所有传感器公钥验证进行环签名的多个传感器公钥是否在数据库中存储有,以保证环签名来源于该节点下的一个传感器,并比对第一哈希值与第二哈希值是否相同再对待传输数据信息进行上链的方式,即保证了数据来源的可靠性,也保证了数据的有效性。

请参照图3,一种基于环签名的区块链传感器数据认证系统,包括当前区块链传感器以及当前区块链节点子系统,所述当前区块链传感器包括第一存储器、第一处理器以及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述当前区块链节点子系统包括第二存储器、第二处理器以及存储在第二存储器上并可在第二处理器上运行的第二计算机程序;

所述第一处理器执行所述第一计算机程序时实现以下步骤:

s1、采用所属的当前区块链节点的节点公钥加密待传输数据信息,得到第一信息;

s2、采用自身的当前传感器私钥以及所述当前区块链节点中的任意多个区块链传感器的多个传感器公钥对所述待传输数据信息进行环签名,得到第二信息;

s3、将所述多个传感器公钥、所述第一信息和所述第二信息发送给所述当前区块链节点;

所述第二处理器执行所述第二计算机程序时实现以下步骤:

s4、采用自身的节点私钥解密所述第一信息,得到所述第一信息中的所述待传输数据信息,并通过环签名算法验证所述第二信息是否由所属区块链传感器生成,若是,则验证通过,将所述待传输数据信息上链,否则返回验证失败通知。

由上述描述可知,本发明的有益效果在于:基于同一技术构思,配合上述一种基于环签名的区块链传感器数据认证方法,提供一种基于环签名的区块链传感器数据认证系统,当当前区块链传感器传输数据时,通过采用所属的当前区块链节点的节点公钥对数据进行加密,并采用自身的私钥和同属于当前区块链节点中的任一多个区块链传感器的公钥对数据进行环签名,并将进行环签名的多个传感器公钥、加密的数据以及环签名的数据一起发送给当前区块链节点,从而通过节点私钥解密获得数据及通过环签名算法验证环签名是否是由自己的区块链传感器所签,保证数据传输的安全性的同时也保证了数据来源的真实性和有效性。

进一步地,在所述步骤s1之前,所述第一处理器执行所述第一计算机程序还包括步骤:

s01、生成并存储所述当前传感器公钥和所述当前传感器私钥,并将所述当前传感器公钥和自身的当前传感器物理标识存储在所述当前区块链节点中,同时将所述当前传感器公钥存储在所述当前区块链节点的所有所属区块链传感器中;

所述第二处理器执行所述第二计算机程序还包括步骤:

s02、生成并存储所述节点公钥和所述节点私钥,并将所述节点公钥和自身的节点物理标识存储在所述区块链节点中的每个所属区块链传感器中。

由上述描述可知,每个传感器都生成一对公钥和私钥,其中公钥可存储在同在一个节点下的其他传感器中,方便每个传感器进行数据传输时通过公钥进行环签名,同时公钥还存在所属的当前节点的数据库中,方便后续节点通过数据库中的所有传感器公钥验证传感器上传的进行环签名的多个公钥是否在节点数据库中存储有,从而认证环签名来源于该节点下的一个区块链传感器。每个节点也生成一对公钥和私钥,其中公钥存储在其节点下的所有传感器中,用于传感器加密待传输数据,进一步保证数据传输的安全性。

进一步地,所述第一处理器执行所述第一计算机程序的所述步骤s3时具体为:

将所述多个传感器公钥、所述节点物理标识、所述当前传感器物理标识、所述第二信息和所述第一信息发送给所述当前区块链节点。

由上述描述可知,通过物理标识进一步保证数据传输的安全性和可靠性。

进一步地,所述第二处理器执行所述第二计算机程序的所述步骤s4时具体包括以下步骤:

s41、验证所述节点物理标识是否存储在所述当前区块链节点中,若是则执行步骤s42,否则返回验证失败通知;

s42、验证所述当前传感器物理标识是否存储在所述当前区块链节点中,若是则执行步骤s43,否则返回验证失败通知;

s43、采用自身的节点私钥解密所述第一信息,得到所述第一信息中的所述待传输数据信息,并通过环签名算法验证所述第二信息是否由所属区块链传感器生成,若是,则验证通过,将所述待传输数据信息上链,否则返回验证失败通知。

由上述描述可知,采用先验证物理标识再验证环签名的方式,从而达到高效的数据认证。

进一步地,所述第一处理器执行所述第一计算机程序的所述步骤s2时具体为:

对所述待传输数据信息进行哈希值计算,得到第二哈希值;

采用所述当前传感器私钥以及所述当前区块链节点中的任意多个区块链传感器的多个传感器公钥对所述第二哈希值进行环签名,得到第二信息;

所述第二处理器执行所述第二计算机程序的所述步骤s4中的并通过环签名算法验证所述第二信息是否由所属区块链传感器生成具体为:

首先验证所述多个传感器公钥是否在所述当前区块链节点的数据库中存储有,若是,则通过所述多个传感器公钥将所述第二信息解为所述第二哈希值,再正向计算所述待传输数据信息的哈希值为第一哈希值,比对所述第一哈希值与所述第二哈希值是否相同,若是,则所述第二信息是由所属区块链传感器生成,否则所述第二信息不是由所属区块链传感器生成。

由上述描述可知,签名一般都是对哈希值进行签名,在当前区块链传感器中对待传输数据信息的哈希值进行环签名之后再传输,由于哈希值是不能得到原始消息的,结合节点公钥加密的待传输数据信息,由于只有节点私钥能够解密得到待传输数据信息,所以即使数据被窃取,窃取方也只能得到加密的待传输数据信息和哈希值,而无法得到原始的待传输数据信息,保证了数据传输的安全性。同时,结合环签名算法,先通过节点数据库中预先存储的所有传感器公钥验证进行环签名的多个传感器公钥是否在数据库中存储有,以保证环签名来源于该节点下的一个传感器,并比对第一哈希值与第二哈希值是否相同再对待传输数据信息进行上链的方式,即保证了数据来源的可靠性,也保证了数据的有效性。

请参照图1及图2,本发明的实施例一为:

一种基于环签名的区块链传感器数据认证方法,包括步骤:

s01、当前区块链传感器生成并存储当前传感器公钥和当前传感器私钥,并将当前传感器公钥和自身的当前传感器物理标识存储在当前区块链节点中,同时将当前传感器公钥存储在当前区块链节点的所有所属区块链传感器中;

在本实施例中,每个传感器都生成一对公钥和私钥,其中公钥可存储在同在一个节点下的其他传感器中,方便每个传感器进行数据传输时通过公钥进行环签名,同时公钥还存在所属的当前节点的数据库中,方便后续节点通过数据库中的所有传感器公钥验证传感器上传的进行环签名的多个公钥是否在节点数据库中存储有,从而认证环签名来源于该节点下的一个区块链传感器。

s02、当前区块链节点生成并存储节点公钥和节点私钥,并将节点公钥和自身的节点物理标识存储在区块链节点中的每个所属区块链传感器中;

在本实施例中,每个节点也生成一对公钥和私钥,其中公钥存储在其节点下的所有传感器中,用于传感器加密待传输数据,从而保证数据传输的安全性。

s1、当前区块链传感器采用所属的当前区块链节点的节点公钥加密待传输数据信息,得到第一信息;

在本实施例中,如图2所示,该系统中共有n个区块链节点,记第i(i=1,2,...,n)个区块链节点为当前区块链节点,与当前区块链节点连接的共有m个区块链传感器,这m个区块链传感器通过当前区块链节点将数据传输到该区块链系统中,其中,记第j(j=1,2,...,mi)个区块链传感器为当前区块链传感器。

其中,记当前区块链节点的公私钥对为{mpki,mski},当前区块链传感器的公私钥对为当前区块链节点的物理标识为mideni,当前区块链传感器的物理标识为则第一消息的格式为:

其中,message为待传输数据信息,enc为对称加密算法。

s2、当前区块链传感器采用自身的当前传感器私钥以及当前区块链节点中的任意多个区块链传感器的多个传感器公钥对待传输数据信息进行环签名,得到第二信息;

具体为:对待传输数据信息进行哈希值计算,得到第二哈希值;当前区块链传感器采用当前传感器私钥以及当前区块链节点中的任意多个区块链传感器的多个传感器公钥对第二哈希值进行环签名,得到第二信息。

在本实施例中,具体为采用(t-1)个传感器公钥对待传输数据进行环签名,第二信息的格式为:

其中,sha为哈希值算法,rsig为环签名算法。

s3、当前区块链传感器将多个传感器公钥、第一信息和第二信息发送给当前区块链节点;

具体为:当前区块链传感器将多个传感器公钥、节点物理标识、当前传感器物理标识、第二信息和第一信息发送给当前区块链节点;其中物理标识能够进一步保证数据传输的安全性和可靠性。

在本实施例中,发送的具体格式为:

s4、当前区块链节点采用自身的节点私钥解密第一信息,得到第一信息中的待传输数据信息,并通过环签名算法验证第二信息是否由所属区块链传感器生成,若是,则验证通过,将待传输数据信息上链,否则返回验证失败通知;

具体为:

s41、当前区块链节点验证节点物理标识是否存储在当前区块链节点中,若是则执行步骤s42,否则返回验证失败通知;即验证mideni是否在当前区块链节点中;

s42、当前区块链节点验证当前传感器物理标识是否存储在当前区块链节点中,若是则执行步骤s43,否则返回验证失败通知;即验证是否在当前区块链节点中;

在本实施例中,采用先验证物理标识再验证环签名的方式,能够达到高效的数据认证。

s43、当前区块链节点采用自身的节点私钥解密第一信息,得到第一信息中的待传输数据信息,并通过环签名算法验证第二信息是否由所属区块链传感器生成,若是,则验证通过,将待传输数据信息上链,否则返回验证失败通知;

即在本实施例中,通过采用当前区块链节点的节点私钥mski,解密第一信息得到待传输数据信息message。

其中,通过环签名算法验证第二信息是否由所属区块链传感器生成具体为:

首先验证多个传感器公钥是否在当前区块链节点的数据库中存储有,若是,则通过当前区块链节点的数据库的任意多个区块链传感器的多个传感器公钥将第二信息解为第二哈希值,再正向计算待传输数据信息的哈希值为第一哈希值,比对第一哈希值与第二哈希值是否相同,若是,则第二信息是由所属区块链传感器生成,否则第二信息不是由所属区块链传感器生成;

即在本实施例中,首先通过节点数据库中预先存储的所有传感器公钥验证进行环签名的(t-1)个传感器公钥是否在数据库中存储有,以保证环签名来源于该节点下的一个传感器,当验证通过时通过采用这(t-1)个传感器公钥,对第二信息进行解环签名,得到sha(message),然后再对通过节点私钥解密得到的待传输数据信息message进行哈希值计算并与sha(message)进行比对验证是否一样。

由于哈希值是不能得到原始消息的,结合节点公钥加密的待传输数据信息,由于只有节点私钥能够解密得到待传输数据信息,所以即使数据被窃取,窃取方也只能得到加密的待传输数据信息和哈希值,而无法得到原始的待传输数据信息,保证了数据传输的安全性。同时,结合环签名算法,先通过节点数据库中预先存储的所有传感器公钥验证进行环签名的多个传感器公钥是否在数据库中存储有,以保证环签名来源于该节点下的一个传感器,并比对在当前区块链节点中再进行哈希值计算后得到的第一哈希值与解环签名得到的第二哈希值是否相同再对待传输数据信息进行上链的方式,即保证了数据来源的可靠性,也保证了数据的有效性。

请参照图3,本发明的实施例二为:

配合上述实施例一的一种基于环签名的区块链传感器数据认证方法,如图2所示,提供一种基于环签名的区块链传感器数据认证系统10,包括当前区块链传感器20以及当前区块链节点子系统30,当前区块链传感器20包括第一存储器21、第一处理器22以及存储在第一存储器21上并可在第一处理器22上运行的第一计算机程序,当前区块链节点子系统30包括第二存储器31、第二处理器32以及存储在第二存储器31上并可在第二处理器32上运行的第二计算机程序。

其中,第一处理器22执行第一计算机程序时实现上述实施例一中的步骤s01、s1、s2和s3,第二处理器32执行第二计算机程序时实现上述实施例一中的步骤s02、s4及其对应的子步骤s41、s42和s43。

综上所述,本发明提供的一种基于环签名的区块链传感器数据认证方法及系统,当当前区块链传感器传输数据时,通过采用所属的当前区块链节点的节点公钥对数据进行加密,并采用自身的私钥和同属于当前区块链节点中的任一多个区块链传感器的公钥对数据进行环签名,并将进行环签名的多个传感器公钥、加密的数据、环签名的数据、当前区块链传感器的物理标识以及当前区块链节点的物理标识一起发送给当前区块链节点。首先通过先依次验证当前区块链节点的物理标识和当前区块链传感器的物理标识是否存储在当前区块链节点中,保证数据传输的安全性和可靠性的同时达到高效的数据认证;其次通过利用节点私钥解密得到待传输的数据信息,再通过环签名算法验证环签名是否是由自己的区块链传感器所签,其中,对待传输数据信息进行环签名时是对其的哈希值进行环签名,由于哈希值是不能得到原始消息的,故而在传输过程中就算环签名被窃取,窃取方也无法得到原始的待传输数据信息,保证了数据传输的安全性,同时由于节点公钥加密的待传输数据信息只有节点私钥能够进行解密,而节点私钥只有区块链节点拥有,所以在传输过程中如果加密的待传输数据信息也被窃取,窃取方也无法得到原始的待传输数据信息,更进一步保证了数据传输的安全性;最后通过环签名算法,先通过节点数据库中预先存储的所有传感器公钥验证进行环签名的多个传感器公钥是否在数据库中存储有,以保证环签名来源于该节点下的一个传感器,再将节点私钥解密得到的待传输数据信息再计算哈希值,与解环签名得到的哈希值进行比对是否相同而决定是否对待传输数据信息进行上链的方式,在保证数据传输的安全性的同时也保证了数据来源的真实性和有效性。

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

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