环形区域无线传感器网络的密钥管理方案
2022-03-04吴万青张子扬董亚华
吴万青,张子扬,董亚华
河北大学网络空间安全与计算机学院,河北 保定 071000
0 引言
无线传感器网络(wireless sensor network,WSN)通常由大量具有有限资源(包括有限计算能力、有限内存、有限电源和有限功率)的传感器节点组成[1]。每个传感器节点包括四个子系统,即传感子系统、通信子系统、计算子系统和电源子系统[2]。传感器节点具有监控物理环境的能力,已经广泛应用于工业、农业等行业及智能家居和人体可穿戴设备[3]。
随着无线传感器网络的日益普及,其安全性逐渐引起了公众的关注[3]。传感器节点之间的数据传输需要通过特定的加密技术来保证通信安全。目前的加密技术有非对称密钥加密技术和对称密钥加密技术。非对称密钥加密技术能量开销(包括存储开销、计算开销和通信开销)较大,所以它无法很好地适用于无线传感器网络。相对于非对称加密,对称密钥拥有更低的计算开销和通信开销,因此对称密钥加密技术在无线传感器网络得到广泛应用[4]。
为了减少无线传感器网络能量开销,提高网络安全性,学者们对对称密钥分配方案进行了研究。2016年,Selva等[5]针对前人方案安全性能随着受损节点数量的增加而降低的问题,提出了一种基于多项式和多元映射的三重密钥分配方案。2017年,Chakavarika等[6]提出了一种改进的节能密钥分发和管理方案。此方案在存储开销和计算开销方面是可扩展的,在密钥更新阶段引入加密的随机数提高了网络安全性。Messai等[7]针对网络的安全性随着时间下降的问题,提出了一种适用于多相无线传感器网络的密钥预分配方案——多相q-composite密 钥 方 案(multi-phaseq-composite keys scheme,MPQ)。该方案在q-composite密钥方案的基础上进行改进,增加了网络的自愈能力。Gandino等[8]针对q-composite方案的内存开销问题,提出了一种新的协议q-s-composite,提高了内存管理效率。2019年,Albakri等[9]提出了一种基于概率多项式的组密钥预分发方案(group key pre-distribution scheme,GKPS),显著降低了传感器遭受节点捕获攻击的概率,提高了无线传感器网络的安全性。2020年,Manasrah等[10]基于多项式池密钥预分配方案和分块逻辑单元分解算法,提出了一种高效的无线传感器网络密钥管理方案。该方案使用多个空间来获得共享密钥,确保任何两个通信节点在通信开始之前必须共享一个公共密钥,减少了预先分配给传感器节点的信息量。同年,Li等[11]针对文献[8]中qs-composite方案不能抵御节点复制攻击的缺点,提出了一种安全的随机密钥分配方案(secure random key distribution scheme,SRKD),将本地化算法与投票机制相结合,以支持恶意节点的检测和撤销,并进一步更改参数以抵御节点复制攻击。Harn等[12]针对无线传感器计算能力有限的问题,提出了一种新颖的密钥分配方案。其密钥分发协议只需要逻辑异或操作,相比其他方案,运算速度要快得多。
为了提高无线传感器网络的可管理性,延长网络的寿命,学者们提出了基于簇的密钥分配方案。2020年,Rehman等[13]利用多项式来实现有效的簇内密钥管理,并生成多项式来进行簇间密钥分配,通过减小密钥池的大小来延长网络的生存时间。2021年,Fang等[14]为了抵御内部攻击,提出了基于二项分布的轻量级信任管理方案(lightweight trust management scheme,LTMS),同时引入距离域、能量域、安全域和环境域,提出了基于动态维度权重的多维安全分簇路由(multidimensional secure clus⁃tered routing,MSCR)方案,实现了安全性、传输性能和能效之间的平衡。但是,在该方案中如果簇头被捕获,则簇内所有节点都会面临安全威胁。
为了解决上述问题且在连通性、能量消耗和安全性之间寻找平衡,本文将无线传感器所在区域划分为环形区域,提出了一种环形区域无线传感器网络的密钥管理方案。
1 本文方案
在本文方案中,簇间通信使用基于二元对称多项式的密钥分配方案;簇内的通信使用基于中国剩余定理的密钥分配方案。本方案使用分层式网络结构,并对簇头进行了隐藏。表1列出了本方案所用符号。
表1 本方案符号Table 1 Symbols of this scheme
密钥分配方案包括两个主要阶段:初始化阶段和执行阶段。
1.1 初始化阶段
1.1.1 网络拓扑
网络拓扑如图1所示。拓扑图中,每个圆之间的距离为r/2,其中r为节点通信半径。第一环为一个半径为r/2的圆。每个环都有标识符,为R1,R2,…,Rn。在环内沿逆时针划分区域。第二环有9个子区域,第三环有15个子区域,…,第n环有3·(2n-1)个子区域。并且每个子区域的标识符按逆时针为R2D1,R2D2,…,R2D9,…,RnD(3·(2n-1))。其中,D为子区域标识。若节点在径向边界线上,则统一属于最小子区域编号的区域。若节点在环向边界线上,则统一属于最小环编号的区域。若节点在径向和环向的交叉线上,则统一属于最小环编号且最小子区域编号的区域。
图1 网络拓扑Fig.1 Network topology
1.1.2 网络模型和协议安全假设
1)网络模型
本方案中,节点有三种类型:基站、簇头和普通传感器节点。部署网络后,网络按照轮数运行,所有传感器节点都已固定,都拥有自己的剩余能量、所在区域、节点ID,且ID各不相同,并且具有确定的传输范围和传输速率。所有节点的初始电池电量、内存存储大小、CPU处理能力、无线电传输范围都相同。它们部署在一个监控区域。
基站是静态的且值得信任,通信范围覆盖整个传感器网络,具有无限的计算、通信和存储能力,并已经存储了网络中所有节点的基本信息。此外,基站可以验证节点的安全性。
簇头负责从簇内成员处收集数据,并逐层转发给基站。普通传感器节点负责收集周围环境数据,并将数据发送给其邻居节点或簇头。
成员节点只接收本区域的消息,不能向其他区域的节点发送消息,同时也不接收来自外部区域的消息,如果发送或接收,则被视为恶意成员节点。只有簇头可以接收外部区域消息,并且可以向外部区域发送消息。
2)协议安全假设
在网络建立阶段,所有节点都不会被对手捕获,整个网络是安全的;一个子区域是一个簇,并且每个节点发送的消息总有一条路径可以到达基站;除了区域R1以外,簇头只能与本区域的节点及其他区域的簇头进行通信;R1区域的簇头可以和本区域节点、其他区域的簇头通信,并且可以和基站进行直接通信;所有节点(包括基站)只能以广播的形式进行通信。
1.1.3 密钥初始化阶段
1.1.3 .1 簇头指定和密钥部署阶段
节 点Si,j,g部 署 之 前 封 装 一 个 随 机 数ai,j,g、一 个独 立 的 种 子 密 钥mi,j,g、一 个 独 立 密 钥K i,j,g和 一 个 相同的初始密钥Kinit(其中,i代表环编号,j代表子区域编号,g代表节点在区域内的编号)。
所有节点同时开机,按照封装随机数的顺序使用数据包格式1(图2)广播ID,每个节点只接收本区域内的数据包,存储同区域其他节点的ID,加入ID列表,并回复确认消息。节点将自己的ID和所在区域标识发送至基站。基站将收到节点的ID和所在区域标识存储到列表中。
图2 数据包格式1 Fig.2 Packet format 1
1)簇头指定阶段。所有的簇头和备用簇头由基站随机指定,并验证其安全性,将簇头作为信任节点。基站为每个簇头生成新的ID(记作IDi,j)和簇头的初始密钥Kinitch。将E ki,j,g(IDi,j,Kinitch,Hello CH)广播至对应簇头,根据列表按环分批进行广播。首先广播第一环,然后逐步加大信号强度到最后一环。簇头对比数据包找到自己的区域标识并对比数据包中目的ID来接收发送给自己的消息。所以,只有簇头节点可收到并使用独立密钥Ki,j,g通过D ki,j,g(IDi,j,Kinitch,Hello CH)解密得到消息,知道自己是簇头。
2)密钥部署阶段。基站在每个簇中寻找种子密 钥 的 最 小 值min(mi,j,g)并 将min(mi,j,g)发 送 至 对应区域簇头,通知簇头广播自己的H(IDi,j),相邻区域簇头和本区域成员节点接收H(IDi,j)并将其存储。
基站在有限域GF(p)上生成大量二元t次对称多项式
其中,有限域的素数p应该足够大。每个多项式有两个变量(x,y)和两个整数系数t以及从GF(p)中随机选择的ace。基站用每个簇头的ID替换簇头所在 环 和 上 一 环 多 项 式 中 的x,生 成fr i(IDi,j,y)和fr i-1(IDi,j,y)。密 钥 分 发 中 心(KDC)将fr i(IDi,j,y)发送至第ri环和第r i-1环的所有簇头(第一环只存储fr1(ID1,1,y)),直到网络中除了第一环以外,所有的簇头都收到fr i(IDi,j,y)和fr i-1(IDi,j,y)。
1.1.3 .2 簇间密钥发现阶段
本阶段主要工作为:生成簇头之间的通信密钥KCH-CH。
属于不同环的相邻子区域的簇头可以建立通信密钥。但是,属于相同环的簇头不能建立通信密钥。假设CH1,1,CH2,1分别为第一环的第一个子区域的簇头和第二环的第一个子区域的簇头。CH1,1的ID为ID1,1,CH2,1的ID为ID2,1。每 个 簇头节点在密钥初始化阶段已收到多项式,如CH1,1收到fr1(ID1,1,y),CH2,1收到fr2(ID2,1,y)和fr1(ID2,1,y)。
以下为簇间公共密钥发现阶段步骤:
Step 1CH1,1使 用 数 据 包 格 式2(图3)广 播E Kinitch(ID1,1,N1,1),目的ID的哈希值为相邻区域簇头的哈希值;
图3 数据包格式2 Fig.3 Packet format 2
Step 2CH2,1收到消息,通过D Kinitch(ID1,1,N1,1)解密得到ID1,1和N1,1;
Step 3根据区域标识,将ID1,1带入对应环的多项式中,用ID1,1替换y,生成fr1(ID2,1,ID1,1);
Step 4CH2,1广播E Kinitch(ID2,1,N2,1);
Step 5CH1,1收到消息,通过D Kinitch(ID2,1,N2,1)解密得到ID2,1和N2,1;
Step 6根据区域标识,将ID2,1带入对应环的多 项 式 中,用ID2,1替 换y,生 成fr1(ID1,1,ID2,1)。所以 在 二 元对称 多 项 式f r i(x,y)中,fr1(ID2,1,ID1,1)=fr1(ID1,1,ID2,1);
Step 7CH1,1生成与CH2,1的通信密钥
KCH1,1-CH2,1=H(fr1(ID2,1,ID1,1)||max(ID1,1,ID2,1)||min(N1,1,N2,1))
Step 8CH1,1向CH2,1回复确认消息;
Step 9CH2,1生成与CH1,1的通信密钥
KCH2,1-CH1,1=H(fr1(ID2,1,ID1,1)||max(ID1,1,ID2,1)||min(N1,1,N2,1))
且KCH1,1-CH2,1=KCH2,1-CH1,1。
1.1.3 .3 簇内密钥建立阶段
本阶段主要工作为:利用中国剩余定理生成簇内成员节点与簇头的通信密钥kg。
中国剩余定理如下
其中,n为簇内成员节点的数量,kg为成员节点和簇头的通信密钥。mi,j,g为节点的种子密钥。kg由X和节点的种子密钥mi,j,g计算得到。根据中国剩余定理,kg是互素的,并且同余的,所以X有唯一解。
簇头根据在密钥初始化阶段收到的min(mi,j,g),随机生成n个(n为簇内成员节点的数量)互不相等的通信密钥kg,且kg≤min(mi,j,g)。将所有kg发送至基站。基站根据每个簇中所有成员节点的mi,j,g和kg利用(3)式计算出每个簇的X,并将X发送至对应区域的簇头节点。X由簇头节点广播至区域内所有成员节点。簇内所有成员节点根据X和mi,j,g计算自己与簇头的通信密钥kg。计算过程如下
1.1.3 .4 簇间密钥路径建立阶段
为了将数据路由到基站,以基站为根的簇头的定向虚拟骨干网(DVB)构建过程如下:
基站向第一环的簇头发送路由请求消息RREQ(包括自己的ID、等级)。基站的等级为0,即L(BS)=0,当第一环的CHv,j接收到请求消息,将自己的等级改为比基站高一级,即L(v)=L(BS)+1。并将基站作为自己的父节点,即PN(v)=BS。第一环的所有簇头指定为一级。递归地,CHv,j广播修改后的REEQ消息由它的ID、L(v)和Er(v)组成。如果CHu,j收到消息,并且它的级别L(u)等于或小于节点v的级别L(v),那么CHu,j直接丢弃该消息。否则,CHu,j将其 级 别 更 新 为比CHv,j的 级 别 多一个级别,即L(u)=L(v)+1,并将其设置为其父节点之一,即PN(u)=v。递归地,所有簇头广播RREQ,以完成定向虚拟骨干网的建立。
在定向虚拟骨干网中,一个簇头可能有多个父节点,因此通向基站的路径有多条。设v1,v2,v3,…,vp是属于集合PN(u)的一组簇头。在发送数据包之前,CHu,j计算比自己小一级别的邻居簇头的平均剩
1.2 执行阶段
1.2.1 簇头更换
如果簇头节点的能量低于能量阈值,则将备用簇头替换为簇头并选取新的备用簇头。
需要被更换的簇头(记作CHold)向基站发送簇头更换请求信息Change CH。基站通知备用簇头,将备用簇头充当为新的簇头(记作CHnew)。基站生成 一 个 随 机 数R,并 为CHnew生 成ID(new)i,j,计 算Kinitch-new=R⊕Kinitch,将CHold的种子密钥加入种子密钥列表,并对簇内所有节点的安全性进行验证。由于本方案侧重点并非恶意检测,所以本文将不再对恶意检测的区分以及是否需要定时检测进行详细说明。若发现恶意节点,则将恶意节点ID移除ID列表并通知簇内所有节点将其ID移除ID列表,直到区域中不存在恶意节点或者恶意节点ID已从所有节点的ID列表中移除才继续进行以下步骤。
基站删除列表中CHnew的种子密钥,将CHold的种子密钥加入列表,寻找发生簇头更换区域内种子密钥的最小值min(mi,j,g),并将min(mi,j,g)、ID(new)i,j和Kinitch-new发送至CHnew。将R发送给除CHnew以外所有簇头节点,簇头收到R后,计算Kinitch-new=R⊕Kinitch。基站根据CHnew的ID生成CHnew所在环和上一环的多项式fr1(ID(new)i,j,y)和fr1-1(ID(new)i,j,y),由KDC发 送 给CHnew。CHnew与邻居簇头交换ID和随机数生成新的簇间通信密钥kCH-CH-new,并随机生成n个(n为簇内成员节点的数量)互不相等的通信密钥kg,且kg≤min(mi,j,g),将所有kg发送至基站。基站根据发生簇头更换区域中所有成员节点的mi,j,g和kg利用(3)式计算出簇内Xnew,并将Xnew发送至CHnew。将H(ID(new)i,j)发送至簇内包括CHold在内的所有成员节点。CHnew将Xnew广播至簇内所有成员节点并通知簇内所有成员节点广播自己的ID,所有成员节点收到Xnew和ID后,回复确认消息并更新自己的ID列表,计算与CHnew的通信密钥kg。随后,CHnew进行备用簇头选举阶段。
在备用簇头选举阶段,所有成员节点根据接收信号强度计算本节点到簇内其他节点的距离之和Ds(g)。并将自己的剩余能量Er(g)、Ds(g)和担任过簇头的轮数rCH(g)发送至CHnew。CHnew寻找簇内节点最大剩余能量Emax、最小剩余能量Emin和最大距离Dmax,并计算簇内所有成员节点剩余能量因素节点之间距离因素D(g)=和担任过簇头的轮数因素R(g)=其中,rtotal表示网络运行过的轮数。CHnew为每个成员节点计算簇头选举参量值
其中,w1,w2,w3为权重,用来调整每个因素的重要程度,且w1+w2+w3=1。
权重的更新公式为
簇内节点的剩余能量两极分化越来越严重,则(6)式分子越来越大,导致能量因素所占比例也会变大。CHnew比较所有成员节点的Zg,选取具有最大Zg的节点作为备用簇头,并通知基站验证其安全性,作为信任节点。基站为CHold分配IDi,j,g并将其作为普通成员节点。
1.2.2 节点主动退出
1)成员节点退出
要主动退出的节点(记作Sleave)向自己所在区域的簇头广播自己的节点标识(记作IDleave)以及退出消息Leave。簇头收到消息后向基站发送IDleave和退出请求消息。基站将Sleave的种子密钥删除,并对簇内所有节点的安全性进行验证,然后进行以下步骤。
基站向簇头回复确认消息并通知簇头随机生成n个(n为簇内成员节点的数量)互不相等的通信密钥kg,且kg≤min(mi,j,g)。簇头将生成的所有kg发送至基站;基站根据簇内成员节点的mi,j,g和kg利用(3)式计算得到Xnew,并将Xnew发送至簇头。基站和簇头将IDleave移除ID列表。簇头将Xnew发送至簇内所有成员节点,并通知簇内成员节点将IDleave移除ID列表。成员节点收到Xnew后,计算新的kg。基站检查IDleave,若Sleave是备用簇头节点,基站向簇头发送执行备用簇头选举操作命令。由簇头执行备用簇头选举。若Sleave不是备用簇头节点,则不进行备用簇头选举。
2)簇头退出
要退出的簇头(记作CHleave)发送退出请求消息Leave至基站。基站删除种子密钥列表中CHnew和CHleave的种子密钥,然后执行簇头更换操作,将备用簇头替换要退出的簇头并选举新的备用簇头。
1.2.3 节点被捕或意外损坏
1)成员节点被捕或意外损坏
簇头定时检查区域内每个成员节点是否有消息回传。若没有,簇头向基站广播丢失节点的标识(记作IDloss)和节点丢失消息Loss。基站针对丢失节点执行簇内成员节点退出操作,更新kg。
2)簇头被捕或意外损坏
基站定时检查每个区域的簇头是否有消息回传。若没有,则基站通知备用簇头作为新的簇头。基站针对丢失簇头执行簇头退出操作,更新Kinitch、kCH-CH、kg并选举新的备用簇头。
1.2.4 节点加入
要加入网络的节点(记作Sjoin)向所在区域簇头发送Sjoin的节点标识(记作IDjoin)和加入请求Join。簇头收到消息后向基站发送IDjoin和节点加入请求Join。
基站对Sjoin所在簇内所有成员节点以及Sjoin进行安全性验证。若发现恶意节点是Sjoin,则禁止Sjoin加入网络;否则,删除恶意节点并进行以下步骤。
基站将IDjoin和Sjoin的种子密钥加入列表,寻找发 生节点加入区域内节点种子密钥的min(mi,j,g),并将min(mi,j,g)发送至簇头。簇头随机生成n个(n为簇内成员节点的数量)互不相等的通信密钥kg,且kg≤min(mi,j,g),并将生成的所有kg发送至基站。基站根据发生节点加入区域中所有成员节点的mi,j,g和kg利用(3)式计算出簇中新的Xnew,并将Xnew发送至簇头。将簇头ID的哈希值发送至Sjoin;簇头将Xnew发送至簇内所有成员节点并通知簇内所有成员节点广播自己的ID,所有成员节点收到Xnew和ID后,回复确认消息并更新自己的ID列表,计算与簇头的通信密钥kg。
2 方案分析与仿真
本节将对密钥分发的正确性、安全性、连通性和能量消耗四个部分进行详细的分析。本方案和文献[3]方案的实验环境都是基于Windows 10(64位)系统,硬件配置是Intel(R)Core(TM)i5-9400(2.90 GHz)处理器,8 GB内存,采用MATLAB进行仿真实验。本方案加密消息使用AES对称加密算法,且多项式中的系数ace从GF(p)中随机选择。仿真参数如表2所示。
表2 仿真参数Table 2 Simulation par ameter s
2.1 密钥分发的正确性
密钥分发的正确性分析主要是分析密钥分发阶段执行的正确性,即密钥分发阶段执行完毕之后是否达成了密钥分发阶段的目标。
节点在部署之前就已封装好Kinit和K i,j,g,Kinitch的 分 发消息由Ki,j,g进行加密,K i,j,g是节 点 独 立的密钥且只有基站和Si,j,g拥有,所以Kinitch只有指定的簇头节点可以解密得到;多项式由基站生成,由KDC用K i,j,g加密分发,只有指定的簇头节点可以解密得到,ID和随机数的交换用Kinitch加密,簇头可信且Kinitch是安全的,只有邻居簇头节点可以解密消息并生成KCH-CH;kg由节点独立的种子密钥和X计算得到,在寻找最小种子密钥之前,基站对簇内成员节点 进 行 安 全 性 验 证。保 证 了min(mi,j,g)的正确性,进而保证了kg的正确性。X由基站生成用独立密钥K i,j,g加密发送至簇头,由簇头用Kinit加密广播至簇内所有成员节点,成员节点不能接收其他区域数据包,只有本区域节点可以收到X,保证了X分发的正确性;每个阶段开始之前都会由基站对簇内成员节点进行安全性验证,选举备用簇头的参与者都是安全节点,保证了备用簇头选举过程的正确性。
2.2 安全性
2.2.1 鲁棒性
考虑到网络中可能存在恶意参与者,他们会通过向协议中输入非法数据或者非法执行协议等行为来对协议的执行过程造成威胁,进而获取有用信息或者影响协议执行。鲁棒性要求本方案在有恶意参与者的情况下能部分地正确执行,同时也要保证其他诚实节点所持有秘密信息的安全性。
本方案中所有节点都是以广播的形式进行通信,数据包中的源ID和目的ID都由特定的哈希函数处理得到。网络中除邻居区域的簇头以外,其他节点都没有簇头的ID,所以簇头对于除邻居簇头以外的所有节点都是保密的。假设簇内共有P个节点,理想状态下簇头被捕获的概率为所以从簇内所有节点中找到簇头是困难的。由于簇头的ID列表中存有其他簇头ID,则攻击者捕获簇头并从其ID列表中获得其他邻居簇头ID的概率为其中T为邻居簇头的数量。
成员节点和簇头的通信密钥kg由(4)式计算得出,其中mi,j,g为每个节点独立的种子密钥,对其他节点保密。即使成员节点中存在恶意参与者,但恶意参与者同簇头的通信密钥kg与其他成员节点的不同。所以,恶意参与者无法影响其他成员节点与簇头的通信,也无法冒充簇头与其他成员节点进行通信。假设簇内共有P个节点,根据(2)式可得,要想求出X,则必须捕获所有成员节点,即捕获(P-1)个节点。捕获的节点数小于P-1,恶意参与者无法得出未被捕获成员节点与簇头的通信密钥kg。
2.2.2 密钥分发的安全性
由于节点在部署之前就已封装好Kinit和K i,j,g,Kinitch的 分 发 消 息 由K i,j,g进行加密,K i,j,g是节点所 独有的密钥且簇头是可信的,保证了Kinitch分发的安全;KCH-CH由多项式、簇头ID和簇头生成的随机数经过特定哈希函数作用生成。多项式由基站生成,KDC用K i,j,g加密并分发,相邻簇头交换(包括ID和随机数)的消息由Kinitch加密,保证了KCH-CH生成的安全性;kg由节点独立的种子密钥和X计算得到。X由基站生成用K i,j,g加密发送至簇头,由簇头用Kinit加密广播至簇内所有成员节点,成员节点不能接收其他区域数据包,只有本区域节点可以收到X。所以,保证了X分发过程的安全性,进而保证了kg生成的安全性。
2.2.3 方案的安全性
在网络建立阶段,整个网络处于安全状态,所以只针对网络的执行阶段进行安全性分析。
由于本方案中所有节点都是以广播的形式进行通信,数据包中的源ID和目的ID都由特定的哈希函数处理得到。所以簇头对于所有节点都是保密的,从簇内所有节点中找到簇头是困难的;基站和簇头会定时检测簇头和簇内成员节点是否有消息回传,保证了整个网络的安全性;每个阶段开始之前都会由基站对簇内成员节点进行安全性验证,所以参与备用簇头选举的节点都是安全节点,即使有恶意节点捕获成员节点向簇头发送的能量距离等参考信息,但是由于恶意节点没有(5)式中的权重w1,w2,w3以及权重的更新公式,无法计算出Zg,所以备用簇头的选举过程是安全的;基站与特定节点之间的通信由独立密钥K i,j,g加密从而保证了安全性;簇头之间的通信由KCH-CH加密,由于簇头是可信的,所以簇头之间的通信是安全的;簇头和成员节点之间的通信由kg加密,密钥生成时,簇头将X分发至成员节点,由于mi,j,g为节点独立种子密钥,所以即使有恶意节点截获X,也无法计算出kg。如果某个成员节点被捕获,则攻击者只可得到被捕获的成员节点的kg、mi,j,g和X,由于每个成员节点kg都是独立的,只和成员节点封装的独立种子密钥有关,攻击者无法获得其他成员节点和簇头的通信密钥,所以无法影响簇内其他成员节点和簇头的通信。
2.3 连通性
在文献[3]方案中,每对节点都可以建立通信密钥,全局连通率为1。在本方案中,从簇内连通性来看,簇内所有成员节点都与所在子区域簇头建立独立簇内通信密钥,所以簇内所有成员节点可以和所在子区域簇头通信。由于每个子区域面积小于节点通信范围,成员节点可以与同区域内其他节点通信,所以局部连通率为1。从簇间连通性来看,由于不同环的簇头可以建立通信密钥,相同环的簇头不能建立通信密钥,簇头只能径向通信。所以,不同环相邻子区域的所有节点可以通信。相同环相邻子区域的所有节点不能通信。因此,本方案中全局连通率小于1。本方案的全局连通率与节点的数量有关,如图4所示,节点数量越多,连通率越大。
图4 本方案的连通性Fig.4 Connectivity of our method
2.4 能量消耗
对于无线通信,图5中显示了节点的简单通用能耗模型。接收kbits数据包的能量开销为Erk(k),发送kbits数据包的能量开销为ETX(k,d),计算公式分别如下
图5 能耗模型Fig.5 Energy consumption model
其中,Eelec是接收或发送1 bit消息的能量开销,εmp为多径衰落因子,d为通信距离,εmpd4是放大器放大每比特消息的能量开销。
下面将从存储、计算和通信三个方面分析网络的能量开销。
2.4.1 存储开销
假设网络中共有C个节点。则在文献[3]方案中,每个节点都要存储4个多项式、1个初始密钥和所有邻居节点ID,网络总存储开销为O(C2)。在本方 案 中,随 机 数ai,j,g、种 子 密 钥mi,j,g、成 员 节 点 和 簇头 的 通 信 密钥kg、独 立 密 钥K i,j,g、X、初始共享密钥Kinit以及簇头共享的初始密钥Kinitch各自都占用16 bits内存。每个对称二元多项式的系数占用log2pbits内存。所以每个多项式占用(t+1)log2pbits内存。在初始化阶段,每个节点都需要维护一个同区域节点ID列表(该列表记录了同区域内所有安全节点的ID)。假设每个ID占用16 bits内存,一个簇内共有P个节点,共有W个簇。所以,一个ID列表占用(P-1)⋅16 bits内存。假设每一位存储能量开销为Eb。
所有簇头的存储开销为
所有成员节点的存储开销为
所以,所有C个节点的存储总开销为
因此,本方案总存储开销为O(C2)。
由图6可知,当节点数量相同时,存储开销随着多项式次数t的增大而增大;当t相同时,存储开销随着节点数量的增大而增大。
图6 不同t值和节点数量对存储开销的影响Fig.6 T he impact of different t values and the number of nodes on storage overhead
2.4.2 计算开销
在文献[3]方案中,每对节点间建立一次通信,密钥需要进行8次多项式和两次哈希函数计算,网络总计算开销为O(C2)。在本方案中,假设一个多项式的计算开销为Ef,哈希函数的计算开销为Eh,一次乘法的计算开销为Emul,一次加法的计算开销为Eplus,一次模运算的计算开销为Emod。
计算二元对称多项式需要(t+1)2次乘法和t次加法,因此一个多项式的计算开销为
假设T KCH-CH为KCH-CH建立的次数,则簇头建立KCH-CH的计算总开销为
成员节点建立kg的计算总开销为
所以,所有C个节点的计算总开销为
因此,本方案总计算开销为O(C)。
由图7可以看出,与文献[3]方案相比,本方案计算开销受节点数量变化的影响较小,并且当节点数量相同时,本方案的计算开销小于文献[3]方案。
图7 计算开销对比Fig.7 Comparison of computational cost
2.4.3 通信开销
在文献[3]方案中,每对节点间建立一次通信密钥需要发送两次数据包和接收两次数据包,网络总通信开销为O(C2)。在本方案中,在簇头指定和密钥部署阶段,每个节点的通信开销为Erinit。
节点向其他节点发送kbits数据包的能量开销为ETr。节点向其他节点发送一个数据包的能量开销为
节点从其他节点接收kbits数据包的能量开销为ERe。节点从其他节点接收一个数据包的能量开销为
生成KCH-CH,节点之间需要建立3次通信,所以,生成KCH-CH的通信总开销为
成员节点建立kg,簇头需要发送两次和接收一次数据包,成员节点需要接收一次数据包。所以,生成kg的通信总开销为
假设每个簇头各自收到Q个数据包,则执行阶段的通信总开销为
所以,所有C个节点的通信总开销为
因此,本方案总通信开销为O(C)。
由图8可以看出,与文献[3]方案相比,本方案的通信开销更低,并且本方案通信开销受节点数量变化的影响较小。
图8 通信开销对比Fig.8 Communication overhead comparison
综上所述,网络的总能量开销为
表3给出了本方案与文献[3]方案的性能比较结果。从表3和实验结果可以得出,虽然本方案的全局连通率较低,但是本方案的通信开销和计算开销更小,并且本方案采用分层式网络结构增强了网络的可管理性和安全性。
表3 本方案与文献[3]方案的性能比较Table 3 Per for mance compar ison between this scheme and the Ref.[3]scheme
3 结语
本文提出了一种环形区域无线传感器网络的密钥管理方案。首先,该方案使用对称密钥技术,簇间为基于二元对称多项式的通信密钥分配,每环各分配一个二元对称多项式,显著节约传感器节点的通信和计算开销。簇内为基于中国剩余定理的通信密钥分配,使得每个成员节点和簇头的通信密钥各不相同,在减少存储空间的同时大大提升网络的鲁棒性。其次,该方案采用分层式网络结构,簇头负责从簇内成员处收集数据转发给基站,普通传感器节点负责收集周围环境数据,并将数据发送给簇头,提高了网络的效率和可管理性。最后,该方案充分利用数据包格式和传感器节点的广播特性,实现对簇头的隐藏,提高了网络的鲁棒性,保证了节点间的安全通信。实验结果表明,本方案具有更高的安全性和有效性。此外,与已有方案相比,本方案还具有更低的能量消耗。