由于无线传感器网络节点具有配备能源少、计算能力低、存储资源有限等特点,传统的密码算法不能直接应用于无线传感器网络。为此我们设计了一种适用于无线传感器网络的分组加密算法,该加密算法采用扩展整数耦合帐篷混沌映射作为密钥生成器,分组长度为8bit,加密算法结构由4轮Feistel运算和首尾2次位置换运算构成。另外还改善了已有算法的安全性能并拥有更高的计算速度,更适合在WSN节点上实现。
一、扩展整数耦合帐篷映射密钥序列生成器
帐篷映射定义为:
其中i为迭代步数,参数α∈(0,1)。当参数α=0.5时,帐篷映射为满映射。设计算机字长为疙,则可将帐篷映射由实数运算等价转化为整数运算:
式(2)中的乘2运算可用向左移位的操作实现。为了改善整数帐篷映射的性能,实现延长最小周期和避免不动点的目的,对整数帐篷映射进行扩展,扩展后的帐篷映射定义如下:
当i为偶数时:
当i为奇数时:
由于扩展后的整数帐篷映射依然存在短周期现象,影响其安全性能,作为密钥序列生成器,需要对扩展整数帐篷映射进一步优化,打破扩展整数帐篷映射所固有的短周期现象,改善整数帐篷映射的遍历性,使系统的迭代序列具有良好的随机性,采用映像格子的并行迭代和双向耦合方式,构造如下的扩展耦合整数帐篷映射模型:
其中,i为迭代步效,j为格点标号(若总格点数为5.则j=0,1,2,3,4,当j=0时,j+1=1,j-1=4),“<<<"表示循环左移。该映射系统继承了耦合映射格子模型的混淆和扩散特性,克服了扩展整数帐篷映射对序列分布特性的影响。取格点个数为4个,格点字长为32bit,在随机选取一组初始状态变量的情况下对式(4)进行12000次迭代,其生成结果的分布情况如图1所示。由图1可以看出该映射模型生成序列具有良好的均匀分布特性。
二、无线传感器网络加密算法
1、无线传感器网络加密算法构造
为了增强加密数据的安全性,采用位置换和Feistel结构进行加密。由于WSN数据包通常数据很少,所以采用8bit加密分组以避免额外冗余字节引入,防止多余的能源消耗。加密算法结构如图2所示。
对输入的8bit明文分组先进行单字节位置变换,然后将数据分成高低各4bit分别存入Lr,Rr,(其中,r为Feistel加密的轮次),再进行4轮Feistel结构加密,单轮Feistel加密过程可以表示为:
其中r,Lr,T均为4 bit,最后一轮Feistel加密不进行高低半字节换位,最后一轮Feistel加密结束后再对由Lr,Rr,组成的8bit数据进行一次单字节位置变换。
密钥生成采用由扩展整数耦合帐篷映射构成的密钥生成器,密钥序列长度为128 bit。由4个32 bit长度的格点值组成。将4个格点的初始值作为种子密钥,为了使密钥序列充分混淆,在加密之前先进行4轮预迭代,之后每轮迭代生成的4个32 bit格点值作为子密钥组成密钥Kci,(其中f表示要加密的明文分组序数)。即:
其中单轮Feistel加密密钥K1(i)、K2(i)、K3(i)、K4(i)分别为从K(i)由低到高截取的8 bit值,即:
对每一个明文分组进行加密之前,都需要由密钥生成器进行一轮迭代生成一个新的密钥,用于对该明文分组进行加密。
单字节位置换变换为:第0位与第6位交换;第1位与第3位交换,第2位与第5位交换;第4位与第7位交换,即:
加密函数“f”的结构如图3所示。
将输入的Rr,4 bit数据扩展为8 bit(其高低2 bit分别作为扩展后高低4 bit的低2位,其他位补0),扩展后的8 bit数据与该轮密钥kr(i)异或后再进行8 bit整数混沌运算(fc),即:
将计算产生的8 bit数据的高低4 bit进行异或生成输出T。由于T的生成与输入数据有关,且fc运算为非线性运算,提高了算法的安全性。
由于Feistel为对称结构,所以解密算法结构与加密算法相同,但是轮密钥kr(i)的输入顺序相反,即。加密时输入轮密钥顺序为K1(i)、K2(i)、K3(i)、K4(i),则解密时输入轮密钥顺序为K4(i)、K3(i)、K2(i)、K1(i)。
2、无线传感器网络加密算法分析
非线性扩散特征的统计分析能够反映出密码算法的混淆和扩散程度,通过对算法完备性、雪崩效应和严格雪崩效应准则的统计分析,可在概率上验证构造的密码算法是否满足非线性扩散性的要求。其中完备性是指函数输出的任一bit都与输入的所有bit有关;雪崩效应是指改变输入数据任意一bit都应导致输出的平均半数bit位发生变化;严格雪崩效应是指任意改变输入数据的一bit都将导致输出数据的每一bit以1/2的概率发生改变。
设加密算法输入字长为n bit。输出字长为m bit。输入的样本空间为X,则完备性程度(dc)、雪崩效应程度(da)及严格雪崩效应程度(dn)的度量分别为:
其中,aij表示X中只改变输入第i bit导致输出第歹bit变化的个数,bij表示X中改变输入第ibit的输出与原输出之间的差分汉明重量为j的个数,#{*}表示集合的势。
若映射为随机变换,za/2为标准正态分布的a/2分位点,可得如下结论:
(1)测试样本量#X至少应为nm(za/2)2;
(2)若dc=1,da≈1,d2a≈1,则说明密码算法满足非线性扩散的基本要求;
(3),置信区间:
(4),置信区间:
在试验中,取输入长度n= 128bit,输出长度m=128 bit,在显著水平a=0.05下,通过计算可得如下结果:
(1)za/2=1.92,取样本容量为65 000;
(2)E{da}=0.999 723,其置信区间为(0.999 664,0.999 782);
(3)E{dm)=0.996 870,其置信区间为(0.996 811,0.996 929);
先对序列密钥生成算法进行分析,对4个格点取65 000次随机32 bit种子密钥进行计算,以种子密钥作为输入,迭代相应轮数后的序列作为输出,表1给出了对密钥生成算法的分析结果。由表1可以看出,经过8轮迭代后密钥生成算法的统计量dr,da,dm分别落入各自的置信区间,满足非线性扩散性的基本要求。可见,扩展整数耦合帐篷映射生成序列与各元素出现几率相等的真随机序列基本一致。
为了分析加密过程中Feistel结构轮数对算法安全性的影响,对种子密钥进行4轮密钥序列预迭代,设定明文长度为128 bit,对明文分别进行1~4轮Feistel加密实验,并分别计算各统计量,其结果如表2所示。由表2可知,对种子密钥进行4轮预先迭代并且对每个8 bit分组进行4轮Feistel加密的结构具有很好的完备性和雪崩效应,满足严格雪崩效应准则,安全性能已经满足要求。
作为对比,提出的类似算法进行分析,该算法采用整数化Logistic混沌迭代和线形同余计算作为密钥生成算法,分组长度为8 bit,并采用4轮Feistel加密。设定明文长度为128 bit,计算文献中算法的密钥生成算法的统计量da,dc,dm,并在进行4轮密钥序列预迭代的情况下,对明文进行1—4轮Feistel加密,计算其统计量da,dc,dm。结果分别见表3、表4。
从表3可知,整数Logistic混沌迭代的完备性度量以从第7轮开始满足非线性扩散的要求,其雪崩效应度量比从第6轮开始进入置信区间,但是严格雪崩效应度量dda始终无法进入其置信区间,不满足非线性扩散的基本要求。可见,整数Logistic混沌映射生成序列与各元素出现几率相等的真随机序列是有差别的,采用扩展耦合整数帐篷映射作为密钥序列生成算法提高了密钥序列的安全性能。
整数Logistic映射在生成密钥序列的过程中需要进行32 bit整数的乘方运算、大数乘法运算和对(2的32次方 -1)的取模运算,这会加重传感器节点的计算负担,而采用扩展整数耦合帐篷映射在生成密钥序列的过程中只需要进行移位和加法运算,这无疑会加快密码算法的运行速度,更适于在计算能力和能源都十分有限的传感器节点上实现。为了进行对比,分别用2种密码算法对相同长度的明文进行加密,表5给出了2种算法的计算速度比较,可以明显看出笔者所设计算法在运行速度上的优势。
小知识之无线传感器网络
无线传感器网络就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。传感器、感知对象和观察者构成了无线传感器网络的三个要素。