WSN是一种节点资源受限的无线网络,其链路层安全策略的轻量化研究适合于各种应用环境的WSN系统,且效果显著。结合序列密码和分组密码各自的优势,提出了一种新型轻量的WSN链路层加密算法——TinySBSec。

WSN链路层加密算法设计

1、TinySec协议分析

TinyOS是一个基于组件(component-based)的开源操作系统,由UC Berkeley(加州大学伯克利分校)开发,专为存储器受限制的WSN设计。TinySec则同样是UC Berkeley为WSN开发设计的一款可运行于TinyOS的WSN链路加密协议。

该协议采用的是对称分组密码,加密算法可以是RC5或是Skipjack算法。其加密算法的工作模式为CBC模式,是一种拥有反馈机制的工作模式。每组密文不仅依赖于其明文,也依赖于上一密文分组(第1组密文依赖于初始向量IV)。

CBC模式的数学语言表示如下:

WSN链路层加密算法

CBC模式能增加攻击者篡改消息的难度,以尽可能简单的运算,达到一定的安全性能,而且并不会增加太多额外的能量损耗。正是基于这一优点,其他的一些WSN链路层加密协议,如WSNSec和Con-tikiSec也使用CBC工作模式。

TinyOS的链路层协议有3种数据包结构:Tiny.OS packet format、TinySec-Auth packet format和Ti-nySec.AE packet formato其中TinyOS packet format是TinyOS默认的数据包结构,没有加密和MAC(消息认证码),只有CRC检验数据的完整性;TinySec-Auth是只带MAC认证的数据包结构,Data是未加密的明文;TinySec-AE则是既有MAC认证,同时Data也被加密保护的数据包结构。3种数据包结构如图l所示。

WSN链路层加密算法

TinySec采用的RC5和Skipjack加密算法、CBG-MAC以及CBC密码工作模式都没有明显的漏洞,且对资源的占用也控制的较好,似乎就是专为WSN量身定做的最合适的链路层加密协议。事实上,TinySec同样具有一些缺点,例如无密钥更新机制,需要人工进行密钥的更新。当然,这可以通过密钥管理协议进行完善,但对于WSN这种短报文且明文重复率较高的数据特点,需要经常更换密钥以保障数据的安全性,这便对系统的整体能耗增加了额外的负担。而本文提出的TinySBSec链路加密算法,则拥有一种子密钥的自动更新机制,来解决这一问题。

2、TinySBSec框架设计

TinySBSec采用序列密码与分组密码相结合的方式,从而简化节点进行加密/解密时的计算复杂度和计算量。从形式上讲,finySBSec依然是一种分组密码算法,采用的是CBC工作模式,所以,TinySBSec的数据包结构,依然沿用TinySec-AE packet format如图1(c)所示,这样的设计尽可能的减小了对原TinyOS的其他协议算法的影响,具有更高的通用性。

虽然使用序列密码的加密方式能够极大的减少节点加密/解密的计算量,但却会导致严重的安全缺陷。为了解决序列密码在WSN链路层加密应用中的致命缺陷,本协议采用分组密码的形式,结合序列密码在产生子密钥和加密方面的优势,针对一些可能的安全漏洞进行了优化和设计。协议的加密/解密流程图如图2所示。

WSN链路层加密算法

从图2中可以得知,TinySBSec的加密和解密流程,相较标准的分组密码体制,增加了“交织/解交织”部分。需要说明的是,算法中引入交织并非是为了提供安全性上的增益,而是为了解决新算法在WSN应用中可能遇到的安全缺陷。考虑到WSN的消息内容有很强的“规范性”及“重复性”,若仅采用异或加密与分组密码的结合加密算法,将很容易遭到暴力破解。引入交织,结合CBC模式的特性,可以较有效的规避这一问题。

而且,每个分组进行加密时,所使用的密钥也是不同于标准分组密码那样的单一密钥,并且在不同的2个报文加密时,子密钥也会相应进行更新(非密钥管理方案形式的密钥更新)。

在进行TinySBSec协议的设计过程中,WSN的报文一般具有很强的“规范性”和“重复性”,而且种子密钥的长度一般不会很长。若单纯采用异或加密,会增加被暴力破解的风险。所以,TinySBSec采用明文交织和“伪一组一密”这2种技术,与分组密码CBC模式相结合,保证密码系统的安全性。

在加密前,明文先进行交织处理。交织这一概念源于通信原理,为了确保数据流在信道中某一块的丢失不会导致整个信息的无法还原,采用交织方法将原数据的块分散到传输信号的各个部分,在接收端再通过解交织以及纠错码进行信号还原。在这里,利用交织可以将数据位分散分布的特点,使得分析者在分析时,除非能猜测出完整的明文(或至少是明文的大部分位),否则,无法通过简单的异或破解出加密密钥。而且,即使破译出了加密密钥,由于TinySBSec的子密钥自更新机制,破译者依然无法获得种子密钥T。

此外,TinySBSec的子密钥还具有自动更新机制,这进一步提高了密码的安全性,因为“一次一密加密系统”是最安全的一种加密方式,虽然本算法并非严格意义上的“一次一密”,但却能提供相当的功能,且不需要为此负担额外的密钥更新能耗,而这正适合WSN的链路层加密。以往的WSN链路加密协议不采用一次一密,是因为频繁的密钥更新,会给系统的计算和功耗带来极大的影响,不适合WSN这种轻量级的网络应用a而TinySBSec的子密钥自动更新,不需要通过WSN的密钥管理协议实现,恰好弥补了一次一密体制在WSN应用中的先天缺点。

TinySBSec采用CBC分组加密模式,加密/解密部分采用的是序列密码加密,因此加密及解密计算用异或表示,每组明文加密都采用独立的密钥Ki。加密及解密计算的数学表达式可以表述为:

WSN链路层加密算法

其中,Co =IV,i=l,2,…,290 TinySBSec采用8 bit(即lbyte)的分组长度,每个分组加密时都有对应的独立密钥,报文格式与TinyOS一样,默认支持最多为29 byte长的数据。

3、子密钥生成算法

TinySBSec是一种序列密码加密,分组密码链接形式的加密协议,其子密钥生成算法采用RC4框架的改进型序列密码算法。RC4算法原型具有易实现、速度快(大约是DES的10倍左右)、安全性好等优点,适合移植到WSN的应用中。通过结合在本文12节中提出的“伪一组一密”的CBC分组加密模式,作为序列密码的RC4也能在WSN中进行工作,并保证一定的安全性。而为了进一步保证。rinySB-Sec的安全性能,本文对RC4算法进行进一步的修改,提高其序列输出的随机性,并且防止一些针对RC4算法特征的破解。

这种改进型的密钥序列生成算法采用128 byte长的种子密钥r,在RC4原型的伪随机子密码生成算法( PRGA)中,加入了Logistic混沌映射算法,以此增强子密钥序列的随机性。LogisLic混沌映射模型如下:

WSN链路层加密算法

改进算法中的Logistic初始值Xo采用的是7位的无符号二进制数,其精度为1/128,即可精确到小数点后2位。在对算法进行改进的过程中,发现Lo-gistic混沌映射在初始值Xo变化很小时,其初始几轮迭代值差异很小,如图3所示。

WSN链路层加密算法

从图3可见,在小数点后2位精度的情况下,初始值五的微小变化导致的前4轮迭代值相差很小。所以,在算法中使用Logistic时,先进行4轮预迭代,以保证加人Logistic混沌映射的有效性。

改进后的子密钥序列生成算法如下:

u=4;x=[tIV mod 16]/128;

for Z=1:4

x=u*x*(1-x)

end

i =j = dx = O ;

forround = 1: (Len/8)

i= ( i+ I ) mod256 ;

j= (j+S[ i] ) mod256 ;

dx =x * 256 ;

swap ( S[ i], S[jJ ) ;

t = ( S[ i] +S[j ] +dx ) mod256;

K[ round]=S[t];

end

其中,u=4即Logistic映射的控制参数p,Len/8表示分组数量。

从算法中可以看到,PRGA中插入的Log18tic映射的初始值XO,是由种子密钥r的第IV个元素的模16值确定的(因为种子密钥长为16 byte)。由于IV中包含计数器Ctr,所以IV的更新会带动初始值Xo的更新,达到子密钥序列自动更新的效果。在最后产生子密钥时,加入Logistic迭代值,可以在增加输出子密钥序列随机性的情况下,避免破坏RC4原算法的结构,防止弱密钥情况的发生。

新算法充分利用了Tiny'OS数据报文的元素,实现了混沌映射在密钥生成算法中,保持加密/解密过程的同步o正如算法所描述的,PRGA中插入的Logistic映射的初始值XO,与初始向量IV(8 bit)有关。初始向量IV是消息头(IV= Dest ll AM ll Len llSrc ll Ctr)的8bit摘要。凭此,在解密时,节点能够有效地进行同步解密。

该算法的安全优势在于,克服了序列密码原本的周期性重复问题,且破译者进行破译时,无法获得必需的Logistic映射初始值Xo,因为Xo需要通过种子密钥r获得。从理论上讲,子密钥自更新机制对于暴力破解也有很强的防御能力,新的子密钥序列生成算法具有足够的安全性,并且比原RC4的PRGA算法更安全。

小知识之WSN

无线传感器网络(Wireless Sensor Networks, WSN)是一种分布式传感网络,它的末梢是可以感知和检查外部世界的传感器。WSN中的传感器通过无线方式通信,因此网络设置灵活,设备位置可以随时更改,还可以跟互联网进行有线或无线方式的连接。通过无线通信方式形成的一个多跳自组织网络。