一种用于区块链传感器的认证方法及区块链网络与流程

文档序号:22506031发布日期:2020-10-13 09:43阅读:134来源:国知局
一种用于区块链传感器的认证方法及区块链网络与流程

本申请涉及区块链技术领域,具体的涉及一种用于区块链传感器的认证方法及区块链网络。



背景技术:

随着超大规模集成电路(vlsi)和微机电系统科技(memstechnology)等硬件基础以及射频(radiofrequency,rf)技术的进步,传感器技术的发展越来越快,应用范围也越来越广。随着传感器技术的发展,在传感器的市场需求分析中,传感器的安全性能成为了一个重要的参数。例如,在物联网中,传感器可能被用来标识或跟踪产品,只有传感器具有可信性,产品才有可能具有可信性。因此,将物联网与区块链结合起来,形成可信物联网,是保证产品可信的重要手段。

图1为物联网和区块链相结合的可信物联网拓扑图。如图1所示,物联网中的终端01相当于区块链中的节点,多个终端01相互连接,每个终端01管理多个传感器02,传感器02会跟踪一个或多个产品(图1未示出),可见,产品的可信性由传感器02的可信性来保证。要保证传感器的可信性,首先需要传感器变成区块链传感器,即,借助区块链的去中心化、不可篡改、全程留痕、可以追溯、集体维护和公开透明等特点,来保证其可信性。

通常,用于区块链中的传感器,即区块链传感器的安全隐患来源于三个方面:资源较有限、不可靠的通信以及无人管理,基于上述的安全隐患,传感器网络容易遭受各种攻击。然而,对于遭受攻击的传感器传输出去的数据,目前还没有行之有效的认证方法对传感器的安全性进行认证。

然而,应用于区块链中的传感器通常安装在无人值守的地方,从而容易遭受物理攻击或者被恶意伪造以及传输的数据容易被恶意篡改。由于目前还没有行之有效的认证方法对区块链传感器进行身份认证和传输数据的安全性认证,从而区块链传感器的可信性得不到保障。



技术实现要素:

本申请提供一种用于区块链传感器的认证方法及区块链网络,以解决目前还没有行之有效的认证方法对区块链传感器进行身份认证和传输数据的安全性认证,从而区块链传感器的可信性得不到保障的问题。

第一方面,一种用于区块链传感器的认证方法,包括:

获取区块链传感器的当前任务随机数、当前任务状态信息、上一个任务随机数和身份标识;

对所述身份标识和所述上一个任务随机数进行整合运算,得到第一整合运算值;以及,对所述上一个任务随机数、所述当前任务随机数和所述身份标识进行所述整合运算,得到第二整合运算值;

以所述第一整合运算值为密钥,对所述当前任务状态信息进行加密运算,得到密文;

获取已经存储的上一个任务随机数和上一个任务状态信息;

对所述当前任务随机数、所述身份标识和已经存储的所述上一个任务随机数进行所述整合运算,得到第三整合运算值;以及,对所述身份标识和已经存储的所述上一个任务随机数进行整合运算,得到第四整合运算值;

判断所述第二整合运算值和所述第三整合运算值是否相等;

当所述第二整合运算值和所述第三整合运算值相等时,以所述第四整合运算值为密钥,对所述密文进行解密运算,得到明文;

将所述明文与已经存储的所述上一个任务状态信息做比对运算,得到比对运算结果,完成对所述区块链传感器的认证。

第二方面,一种用于区块链传感器认证的区块链网络,包括多个能够实现点对点通信的区块链节点和与所述区块链节点连接的区块链传感器,至少一个所述区块链节点作为认证节点执行对所述区块链传感器的认证操作,所述认证节点被配置为执行如下步骤:

获取区块链传感器的当前任务随机数、当前任务状态信息、上一个任务随机数和身份标识;

对所述身份标识和所述上一个任务随机数进行整合运算,得到第一整合运算值;以及,对所述上一个任务随机数、所述当前任务随机数和所述身份标识进行所述整合运算,得到第二整合运算值;

以所述第一整合运算值为密钥,对所述当前任务状态信息进行加密运算,得到密文;

获取已经存储的上一个任务随机数和上一个任务状态信息;

对所述当前任务随机数、所述身份标识和已经存储的所述上一个任务随机数进行所述整合运算,得到第三整合运算值;以及,对所述身份标识和已经存储的所述上一个任务随机数进行整合运算,得到第四整合运算值;

判断所述第二整合运算值和所述第三整合运算值是否相等;

当所述第二整合运算值和所述第三整合运算值相等时,以所述第四整合运算值为密钥,对所述密文进行解密运算,得到明文;

将所述明文与已经存储的所述上一个任务状态信息做比对运算,得到比对运算结果,完成对所述区块链传感器的认证。

第三方面,一种用于区块链传感器认证的区块链网络,包括多个能够实现点对点通信的区块链节点和与所述区块链节点连接的区块链传感器,至少一个所述区块链节点作为认证节点执行对所述区块链传感器的认证操作,所述区块链传感器被配置为执行如下步骤:

获取区块链传感器的当前任务随机数、当前任务状态信息、上一个任务随机数和身份标识;

对所述身份标识和所述上一个任务随机数进行整合运算,得到第一整合运算值;以及,对所述上一个任务随机数、所述当前任务随机数和所述身份标识进行所述整合运算,得到第二整合运算值;

以所述第一整合运算值为密钥,对所述当前任务状态信息进行加密运算,得到密文;

将所述当前任务随机数、所述第二整合运算值和所述密文发送至所述认证节点;

所述认证节点被配置执行如下步骤:

获取已经存储的上一个任务随机数和上一个任务状态信息;

对所述当前任务随机数、所述身份标识和已经存储的所述上一个任务随机数进行所述整合运算,得到第三整合运算值;以及,对所述身份标识和已经存储的所述上一个任务随机数进行整合运算,得到第四整合运算值;

判断所述第二整合运算值和所述第三整合运算值是否相等;

当所述第二整合运算值和所述第三整合运算值相等时,以所述第四整合运算值为密钥,对所述密文进行解密运算,得到明文;

将所述明文与已经存储的所述上一个任务状态信息做比对运算,得到比对运算结果,完成对所述区块链传感器的认证。

由以上技术方案可知,本申请提供的一种用于区块链传感器的认证方法及区块链网络,方法包括:获取区块链传感器的当前任务随机数、当前任务状态信息、上一个任务随机数和身份标识;对所述身份标识和所述上一个任务随机数进行整合运算,得到第一整合运算值;以及,对所述上一个任务随机数、所述当前任务随机数和所述身份标识进行所述整合运算,得到第二整合运算值;以所述第一整合运算值为密钥,对所述当前任务状态信息进行加密运算,得到密文;获取已经存储的上一个任务随机数和上一个任务状态信息;对所述当前任务随机数、所述身份标识和已经存储的所述上一个任务随机数进行所述整合运算,得到第三整合运算值;以及,对所述身份标识和已经存储的所述上一个任务随机数进行整合运算,得到第四整合运算值;判断所述第二整合运算值和所述第三整合运算值是否相等;当所述第二整合运算值和所述第三整合运算值相等时,以所述第四整合运算值为密钥,对所述密文进行解密运算,得到明文;将所述明文与已经存储的所述上一个任务状态信息做比对运算,得到比对运算结果,完成对所述区块链传感器的认证。

本申请提供的用于区块链传感器的认证方法及区块链网络,通过将区块链传感器的身份标识和上一个任务的随机数以及上一个任务状态信息预先存储在区块链节点内,通过对比待认证区块链传感器的身份标识与已经存储在区块链节点内的身份标识,认证区块链传感器的身份是否被伪造或篡改。再通过对称密钥的加密和解密运算,比对当前任务状态信息与已经存储在区块链节点内的上一个任务状态信息的差异是否在预设差异范围内,以认证区块链传感器传输的数据是否被伪造或篡改。因此,本申请提供的用于区块链传感器的认证方法及区块链网络能够保证区块链传感器的可信性以及保存在区块链网络中数据的可信性。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为物联网和区块链相结合的可信物联网拓扑图;

图2为本申请实施例提供的第一种用于区块链传感器的认证方法流程图;

图3为本申请实施例提供的第二种种用于区块链传感器的认证方法流程图;

图4为本申请实施例提供的一种用于区块链传感器认证的区块链网络拓扑图。

具体实施方式

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

区块链网络可以包括多个能够实现点对点通信的区块链节点,每个区块链节点可以连接一个或多个区块链传感器,区块链传感器通常用于采集数据,区块链节点可以对一个或多个块链节传感器进行管理,以及将区块链传感器采集的数据进行上链存储。

第一方面,图2为本申请实施例提供的第一种用于区块链传感器的认证方法流程图。如图2所示,以单个区块链节点和单个区块链传感器为例,对本申请提供的用于区块链传感器的认证方法做如下具体说明:

本实施例提供的用于区块链传感器的认证方法,首先执行步骤s1,从区块链传感器中获取当前任务随机数、当前任务状态信息、上一个任务随机数和身份标识。区块链传感器的上一个任务随机数和身份标识可以预先存储在区块链传感器内,每个区块链传感器的身份标识都是唯一的,代表区块链传感器的身份。当前任务随机数是区块链传感器根据当前任务生成的随机数,上一个任务随机数是区块链传感器在进行上一个任务时生成的随机数,不同的任务,随机数是不同的且是唯一的,可以作为不同任务的表征代码。当前任务状态信息可以包括区块链传感器根据当前任务采集到的数据和生成的时间戳,数据种类由区块链传感器的种类决定。例如,当区块链传感器是压力传感器时,则收集到的数据为压力数据。当前任务状态信息还可以包括其他数据,本申请不作一一列举,也不作具体限定。

进一步执行步骤s2,对身份标识和上一个任务随机数进行整合运算,得到第一整合运算值;以及,对上一个任务随机数、当前任务随机数和身份标识进行整合运算,得到第二整合运算值。整合运算可以为哈希运算、数据拼接运算和数据叠加运算中的一种,还可以是其他运算方式,只要能够实现将多种数据整合为一组数据进行应用即可,本申请不作具体限定。

继续执行步骤s3,以第一整合运算值为密钥,对当前任务状态信息进行加密运算,得到密文。

步骤s4可以与步骤s1-s3中的任意步骤并列执行,步骤s4,获取已经存储在区块链节点内的上一个任务随机数和上一个任务状态信息。区块链节点预先存储的上一个任务随机数和上一个任务状态信息与区块链传感器存储的上一个任务随机数和上一个任务状态信息是相同的,只是存储位置不同。

继续执行步骤s5,对当前任务随机数、身份标识和已经存储的上一个任务随机数进行整合运算,得到第三整合运算值;以及,对身份标识和已经存储的上一个任务随机数进行整合运算,得到第四整合运算值。步骤s5必须在步骤s4与步骤s1之后执行,或者在步骤s4与步骤s2之后执行,或者在步骤s4与步骤s3之后执行。

继续执行判断步骤s6,判断第二整合运算值和第三整合运算值是否相等。

当判断步骤s6的结果是第二整合运算值和第三整合运算值相等时,执行步骤s7,以第四整合运算值为密钥,对密文进行解密运算,得到明文。当第二整合运算值和第三整合运算值不相等时,执行步骤s7′,将当前任务随机数和当前任务状态信息均记为无效,完成对区块链传感器的认证。步骤s7与步骤s7′是判断步骤s6可能出现的两种结果。步骤s6-s7′通过判断第二整合运算值和第三整合运算值是否相等,可以对区块链传感器的身份进行认证,判断出区块链传感器的身份是否是合法的。例如,如果区块链传感器被伪造,则获取到区块链传感器存储的上一个任务随机数、当前任务随机数和身份标识不是真实的数据,而是伪造的或被篡改的数据,进而获取到区块链传感器内存储的上一个任务随机数与获取到已经存储在区块链节点内的上一个任务随机数是不同的,从而第二整合运算值与第三整合运算值不相等。以此判断出当前区块链传感器是非法的,此区块链传感器发送的数据则记为无效,区块链传感器的认证流程到此结束。当区块链传感器是合法的,则区块链传感器内存储的上一个任务随机数、当前任务随机数和身份标识未经伪造或篡改,则第二整合运算值和第三整合运算值是相等的,以此判断出当前区块链传感器是合法的,继续进行后续认证动作。

另外,步骤s3和步骤s7中,加密运算和解密运算可以采用对称密钥算法,即加密运算使用的密钥与解密运算使用的密钥相同,因此,第一整合运算值与第四整合运算值相等时,第四整合运算值才能将密文解密得到明文。举例说明,当区块链传感器是非法的,则用于计算第一整合运算值的区块链传感器存储的身份标识和上一个任务随机数是被伪造或篡改的,因此与用于计算第四整合运算值的节点内存储的身份标识和上一个任务随机数是不同的,进而第一整合运算值与第四整合运算值是不相等的,最后使用第四整合运算值无法实现对密文的解密。因此,步骤s7也是对区块链传感器的身份认证。

当经过步骤s6和s7,对区块链传感器的身份认证通过后,继续进行步骤s8,将明文与已经存储的上一个任务状态信息做比对运算,得到比对运算结果,完成对区块链传感器的认证。步骤s8对区块链传感器可以理解为数据认证步骤。

具体的,步骤s8中的比对运算可以为差异值运算,取明文与已经存储的上一个任务状态信息的差异值作为比对运算结果。

进一步,当比对运算结果在预设差值范围内时,区块链传感器通过认证,将当前任务随机数和当前任务状态信息均上链存储,完成对区块链传感器的认证。当比对运算结果在预设差值范围外时,区块链传感器认证失败,将当前任务随机数和当前任务状态信息均记为无效,完成述区块链传感器的认证。

再进一步,取明文与已经存储的上一个任务状态信息的差异值作为比对运算结果,具体可以分别将明文和已经存储的上一个任务状态信息转换为二进制代码形式;比对两者的二进制代码,对存在差异的位进行计数,得到比对运算结果。

其中,预设差值范围则是预设差异位数范围,预设差异位数范围是对允许存在差异位的数量进行设定,可以根据具体情况进行设定。举例说明,假设明文二进制代码为110001010111101,假设上一个状态信息二进制代码为110001010110111,则两者的差异位数是2位,假设预设差异位数为0-7位,则2位在0-7位范围内。因此,比对运算结果在预设差值范围内,区块链传感器通过认证,将当前任务随机数和当前任务状态信息均上链存储,完成对区块链传感器的认证。

另外,可以设定每经过预设时间间隔,完成一次对区块链传感器的认证。区块链传感器的认证可以是区块链节点发起认证请求,也可以是区块链传感器自行发起认证请求,即可以通过区块链网络的区块链节点或者区块链传感器发起认证请求,触发认证流程。预设时间间隔可以根据具体需要进行设定,本申请不作具体限定。

本实施例提供的用于区块链传感器的认证方法,通过将区块链传感器的身份标识和上一个任务的随机数以及上一个任务状态信息预先存储在区块链节点内,通过对比待认证区块链传感器的身份标识与已经存储在区块链节点内的身份标识,认证区块链传感器的身份是否被伪造或篡改。再通过对称密钥的加密和解密运算,比对当前任务状态信息与已经存储在节点内的上一个任务状态信息的差异是否在预设差异范围内,以认证区块链传感器传输的数据是否被伪造或篡改。本实施例提供的区块链传感器的认证方法能够对区块链传感器进行身份认证,并且对区块链传感器传输的数据进行数据认证,以保证区块链传感器的可信性以及保存在区块链网络中数据的可信性。

当区块链网络中包括有n个能够实现点对点通信的区块链节点时,第i个区块链节点中可以连接有mi个区块链传感器,以下针对多个区块链节点和多个区块链传感器对本申请提供的用于区块链传感器的认证方法进行举例说明。

图3为本申请实施例提供的第二种种用于区块链传感器的认证方法流程图。如图3所示,本实施例提供的用于区块链传感器的认证方法,首先执行步骤s1,获取第i个节点的第j个区块链传感器的当前任务随机数rij、当前任务状态信息staij、上一个任务随机数rij′和身份标识idij,

其中,i=1,2,3…n,j=1,2,3…mi。

继续执行步骤s2,对身份标识idij和上一个任务随机数rij′进行哈希运算,得到第一整合运算值h(idij‖rij′);以及,对上一个任务随机数rij′、当前任务随机数rij和身份标识idij进行哈希运算,得到第二整合运算值h(rij′‖rij‖idij)。

继续执行步骤s3,以第一整合运算值h(idij‖rij′)为密钥,对当前任务状态信息staij进行加密运算,得到密文

步骤s4可以与步骤s1-s3中任一步骤并列执行,s4,获取已经存储的上一个任务随机数crij′和上一个任务状态信息cstaij。需要说明的是,步骤s4,实际上需要依据身份标识idij,在区块链节点的数据库中调取已经存储的上一个任务随机数crij′和上一个任务状态信息cstaij。

继续执行步骤s5,对当前任务随机数rij、身份标识idij和已经存储的上一个任务随机数crij′进行哈希运算,得到第三整合运算值h(crij′‖rij‖idij);以及,对身份标识idij和已经存储的上一个任务随机数crij′进行哈希运算,得到第四整合运算值h(idij‖crij′)。

继续执行判断步骤s6,判断第二整合运算值h(rij′‖rij‖idij)和第三整合运算值h(crij′‖rij‖idij)是否相等。如果区块链传感器的身份未被伪造或篡改,则rij′=crij′,进而h(rij′‖rij‖idij)=h(crij′‖rij‖idij)。或者,区块链传感器在数据传输过程中的传输数据未被伪造或篡改,则rij和idij的数值也是可信的,进而第二整合运算值与第三整合运算值也是相等的。

当h(rij′‖rij‖idij)=h(crij′‖rij‖idij)时,执行步骤s7,以第四整合运算值h(idij‖crij′)为密钥,对密文进行解密运算,得到明文

当h(rij′‖rij‖idij)≠h(crij′‖rij‖idij)时,执行步骤s7′,将当前任务随机数rij和当前任务状态信息staij均记为无效,完成对第i个节点的第j个区块链传感器的认证。

继续执行步骤s8,将明文与已经存储的上一个任务状态信息cstaij做比对运算,得到比对运算结果,完成对第i个节点的第j个区块链传感器的认证。在第一整合运算值h(idij‖rij′)与第四整合运算值h(idij‖crij′)相等的前提下,密文才能被解密为明文,所以明文与已经存储的上一个任务状态信息cstaij做比对,实际上是对当前任务状态信息staij与上一个任务状态信息cstaij的做比对。

具体的,取明文与已经存储的上一个任务状态信息的差异值作为比对运算结果,还可以分别将明文和已经存储的上一个任务状态信息转换为二进制代码形式;将两者的二进制代码进行模二加运算,得到模二加代码;对模二加代码中的“1”进行计数,得到比对运算结果。

在本实施例中,预设差值范围则是预设差异值数范围,预设差异值数范围则是对模二加代码中的“1”允许数量的设定,可以根据具体情况进行设定。模二加运算规则是相加不进位,所以两个二进制代码进行模二加运算时,相同数相加等于0,不同数相加等于1。举例说明,假设明文二进制代码为11000100000000,假设上一个状态信息二进制代码为11000111111111,则模二加代码为11111111,模二加代码中“1”的数量为8个,假设预设差异值数范围为0-7个,则8个在0-7个范围外。因此,区块链传感器认证失败,将当前任务随机数和当前任务状态信息均记为无效,完成述区块链传感器的认证。

容易理解的是,当前任务与上一个任务是可能存在差异的,那么区块链传感器生成的当前任务状态信息与已经存储在节点中的上一个任务状态信息也可能是存在差异的,但是当两者的差异极大时,则区块链传感器则有可能被攻击或者被篡改,所以需要对区块链传感器进行对应的数据认证,具体则是通过对比当前任务与上一个任务是可能存在差异值,针对对两者的差异值设定一个可接受的范围,这个可接受的范围可以是一个上限端值,也可以是一个数值范围,具体需要根据传感器的类型或者其他因素进行设定,本申请不作具体限定。

第二方面,图4为本申请实施例提供的第一种用于区块链传感器认证的区块链网络拓扑图。如图4所示,本申请提供一种用于区块链传感器认证的区块链网络,包括多个能够实现点对点通信的区块链节点1和与区块链节点1连接的区块链传感器2,至少一个区块链节点1作为认证节点3执行对区块链传感器的认证操作,认证节点3被配置为执行步骤s1-s8。

第三方面,参考图4,本申请提供第二种用于区块链传感器认证的区块链网络,包括多个能够实现点对点通信的区块链节点1和与区块链节点1连接的区块链传感器2,至少一个区块链节点1作为认证节点3执行对区块链传感器2的认证操作,区块链传感器2被配置为执行步骤s1-s3,以及信息传送步骤:将当前任务随机数、第二整合运算值和密文发送至认证节点。

认证节点3被配置为执行步骤s4-s8。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

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