一种恶劣环境下的WSN动态密钥生成方法与流程

文档序号:15929496发布日期:2018-11-14 01:28阅读:144来源:国知局

本发明涉及一种无线传感网络中的动态密钥生成方案,具体涉及在恶劣环境下如锅炉系统、野外监测等温差变化较大的场景下,利用温度和时钟偏移动态生成密钥,且密钥的更新不需要额外的请求步骤,实现密钥变化的隐秘性和轻量化的方法。

背景技术

无线传感网络(wsn)是由多个节点组成的小型局域网络,通过各个子节点进行感知监测,并将信息汇聚到中心节点。wsn大多无人值守,且通信采用无线网络通信,需要一套安全协议保障通信的安全。

时钟偏移是一种由于电子器件的布线长度以及石英振荡器等因素导致的两个时钟之间的偏差,是元器件的一种固有的物理属性,已有证明时钟偏移具备电子指纹的特性,可以对电子设备进行唯一性标识,同时在wsn中已经证明时钟偏移同样存在且可以作为节点的唯一标识。

目前已经存在使用时钟偏移作为wsn加密方案的发明专利,但在这些发明中使用的基于时钟偏移的密钥长期不变,会降低密钥的安全性,因此需要设计轻量的动态密钥生成方案来满足要求。



技术实现要素:

为了解决现有技术中存在的上述技术问题,本发明提出了一种恶劣环境下的wsn动态密钥生成方法,该类环境的传感节点都带有温度感应器,通过节点间的时钟偏移和温度变化进行动态改变加密密钥,且当密钥发生改变时子节点无需通知主节点,保证密钥改变的隐秘性和轻量级,增强密钥的安全性。

本发明的技术方案步骤如下:

(一)初始化

在该阶段中,子节点与sink间交换时钟偏移信息,并初始化感应温差变化的标准温度,同时生成初始密钥用于消息的加密和解密。

(二)密钥更新

在该阶段中,节点将当前温度随消息一起加密发送给sink节点,收发两端根据该温度对下次通信密钥进行相同更新操作。

本发明的技术方案具体如下:

(1)时钟偏移的计算

时钟偏移的计算公式如公式(1)所示,其中m1、m2为sink广播的随机时间戳消息,m′1、m′2为子节点收到m1、m2时的时间。

(2)初始密钥的生成

初始密钥的生成方法如公式(2)所示,其中k1为初始密钥,f1为初始密钥生成函数,t′为标准温度,c为常量因子。

k1=f1(cs+t′×c)(2)

(二)密钥更新

密钥更新函数如公式(3)所示,在本次通信中若当前温度与标准温度差值超过阈值范围,则下次通信所用密钥k将进行更新,否则密钥保持不变。其中kn为第n次通信所用密钥,f为密钥更新函数;cs为初始化时节点储存的时钟偏移值;tn-1为第n-1次通信时的温度;t′为用于判断温度变化的标准温度;c为常量因子。

当由于|tn-1-t′|≥thread导致k发生改变后,t′也会如公式(4)进行更新:

t′=tn-1(4)。

附图说明

图1是wsn网络模型。

图2是本发明的算法时序图。

具体实施方式

下面结合附图对本发明作进一步说明。

本发明的网络模型设置如图1所示,sink节点负责汇聚其他节点的消息,节点所处环境温度会随时间发生改变,子节点带有温度感应模块,能够测量周围环境温度。

(1)初始化

初始化阶段需要在一个安全的环境下进行,由工作人员将所有节点部署到适当的位置后对网络进行初始化操作。

1)sink随机生成时间戳m1、m2广播给所有子节点,子节点收到时间戳后发送自己收到m1、m2的时间m′1、m′2给sink节点,sink节点根据公式(1)计算子节点与sink之间的时钟偏移值cs,sink储存cs并将其发送给各个子节点,子节点收到后同样储存cs。

时钟偏移的计算公式如公式(1)所示,其中m1、m2为sink广播的随机时间戳消息,m′1、m′2为子节点收到m1、m2时的时间。

2)子节点测量当前温度作为标准温度t′,用来衡量之后通信过程中的温差变化,储存t′并发送给sink节点,sink节点储存t′。

3)子节点和sink节点根据公式(2)计算初始加密密钥和解密密钥k1。

初始密钥的生成方法如公式(2)所示,其中k1为初始密钥,f1为初始密钥生成函数,t′为标准温度,c为常量因子。

(2)通信阶段

1)数据源节点端

在初始化后的首次通信中,子节点使用初始密钥k1对当前温度和监测数据加密,发送消息k1(data+t1)给下一跳节点,同时按照公式(3)计算下次通信时所用加密密钥k2,即判断t1与t′差异是否在阈值thread范围内,若|t1-t′|<thread,则下次通信消息加密密钥保持不变,k2=k1;若|t1-t′|≥thread,则按照公式(3)计算新的加密密钥k2,并按照公式(4)对标准温度t′进行更新。

2)转发节点端

转发节点收到数据源节点的消息后将消息转发给下一跳节点,直到sink端。

3)sink端

sink节点收到消息k1(data+t1)后使用k1解密获得t1,同时按照公式(3)计算下次通信时所用解密密钥,即判断t1与t′差异是否在阈值thread范围内,若|t1-t′|<thread,则下次通信消息解密密钥保持不变,k2=k1;若|t1-t′|≥thread,则按照公式(3)计算新的解密密钥k2,并按照公式(4)对标准温度t′进行更新。

密钥更新函数如公式(3)所示,在本次通信中若当前温度与标准温度差值超过阈值范围,则下次通信所用密钥k将进行更新,否则密钥保持不变。其中kn为第n次通信所用密钥,f为密钥更新函数;cs为初始化时节点储存的时钟偏移值;tn-1为第n-1次通信时的温度;t′为用于判断温度变化的标准温度;c为常量因子。

当|tn-1-t′|≥thread,thread是阈值,导致k发生改变后,t′也会如公式(4)进行更新:

t′=tn-1(4)。

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