基于混沌RC4算法的WSN安全技术研究
2014-12-27严隽薇同济大学中国上海201804
吴 佳 刘 敏 严隽薇(同济大学,中国 上海201804)
0 引言
通常物联网的架构分为感知层、网络层与应用层。其中,网络层与应用层的安全问题可以参照普通以太网,相关的研究也取得了很大的成果。感知层的通常采用无线传输,电池供电;具有计算能力弱,存储空间小,电量有限,部署环境恶劣等特点。所以研究感知层安全问题的是解决工业物联网安全问题的难点与重点。WSN与RFID技术作为感知层技术的核心,其安全问题就是感知层的安全问题,本文主要研究WSN的安全问题。
无线传感网的安全可以归结到数据及其传输过程的安全,数据加密技术是保证数据安全最主要的手段,为了保证数据的秘密性、完整性和确定性,目前可以把加密算法分成两类:对称加密技术和非对称加密技术。常见的对称加密技术有DES,AES等;非对称加密技术有RSA,ECC等。非对称加密保密性较好,不需要保护密钥,但算法复杂,加密时间长,速度慢,不适合用于资源有限的无线传感网。
RC4是一种对称加密算法,由Rivest在1987提出,是目前最流行的流密码之一。由于它极其简单的结构和良好的安全强度受到了广泛的欢迎。RC4加密算法是一种流加密算法,算法简单,加密速度快,适合用于资源有限的无线传感网,但是,RC4存在弱密钥的缺陷,相关密钥容易产生相似输出,难以抵御选择明文攻击。
Andrew Roos在[1]中最早找出了一类在输出序列中可以引起某种偏差的弱密钥。Grosul和Wallach发现,如果密钥长度接近2n字节,RC4算法对于相关密钥攻击是脆弱的另外,Mantin和Mironov都分析了KSA的输出值的分布情况[2]。
针对以上缺点,改进RC4算法的研究也有很多。史文俊等人提出一种在RC4加密算法PGRA阶段引入混沌映射的方案,改变了弱密钥缺点,扩大了原算法的密钥空间,增加了算法的安全性;杨吉云深入分析的混沌密码在WSN中的应用,提出了一种基于Feistel结构的混沌分组加密算法,在加密的同时利用混沌Hash函数产生消息认证码[3]。刘宴兵等在WEP协议中引入混沌系统,将经过Logistic映射得到的混沌序列作为RC4算法的种子密钥,提高密钥的随机性,增加破译难度[4]。
本文提出一种在KSA阶段引入混沌信号的方法来解决RC4弱密钥、相关密钥的问题。
1 混沌RC4加密方案
1.1 Logistic映射
混沌系统是指一种看似随机的确定性系统,类似于随机现象。由于混沌系统对初值敏感,能产生扩散和混乱效果的特性,所以非常适合用于密码算法[5]。
Logistic映射是一种常用的简单的混沌映射,一维Logistic映射表示为:
其中,0≤μ≤4,Xn是第n次迭代的值,Xn+1是第(n+1)次迭代的值,μ为参数,当μ=4时,称为满映射。
1.2 RC4加密算法
RC4算法是一个以分组长度n为参数的二元加法流密码体制,该算法非常简单,包括两个部分[6]:
(1)KSA(Key Scheduling Algorithm密钥调度算法),由输入的随机密钥K(典型长度为64或128比特)生成一个元素0,1,…,N-1组成的初始排列S{0,1,…,N-l},一般为256;
(2)PRGA(Pseudo Random Generation Algorithm伪随机密钥序列生成算法),PRGA借由KSA产生的S生成伪随机密钥序列,最终与明文相异或产生密文。
伪代码表示为[6]:
1.3 结合混沌的改进RC4加密算法
本文提出,在RC4算法的KSA部分,添加混沌信号来增加流密码的随机性和遍历性等性质。
算法依然分为密钥调度算法(KSA)和PRGA两部分;PRGA部分步骤不变,KSA分为以下几步:
(1)种子密钥K通过以下方法初始化为X0,作为混沌映射的输入;
外部密钥K包含128位(16个字节),用位流表示为:
我们将K分为两部分K1,K2;每一部分包含64位(8个字节),用位流表示为:
然后计算两个位流
然后用实数值X01和X02计算出初始值X0
(2)X0作为Logistic映射的初值
本文中取μ=4,在经过一定迭代次数后,得到的Xn。
(3)因为Logistic映射的到的Xn∈0,[]1 ,需要将其转换到[0,256]区间中:
(4)将转换的temp存储到U[i](i=0,1,…255),多次执行混沌映射,知道U填满。
(5)构造初始S[i](i=0,1,…255),其中元素从0开始依次递增:
(6)将S盒与U及种子密钥K进行混合置换操作:
S先与混沌得到的U进行混合置换操作,然后与种子密钥进行混合置换,保证了S中每一个元素都得到了执行,起到了很好的混乱与扩散的效果。
以上步骤得到加入了混沌的S盒,然后就用伪随机数生成算法PRGA得到密钥流,与明文异或得到密文。
图1 加密算法结构
混沌RC4的解密算法与加密算法过程一样,只是最后用生成的伪随机序列与密文进行异或。
2 算法分析
参照[7-8]的分析方法,本文从密钥敏感性、平衡性、字符频率以及性能四个方面对混沌加密算法进行分析。
2.1 密钥敏感性分析
RC4算法具有线性相关、弱密钥、相关密钥等缺陷,具体表现在密文序列对密钥敏感度低,相关密钥容易产生相似输出。本文通过采用相似的密钥(ahsnglid7395909与ahsnglid7395908)对同一明文进行加密,分析密文序列的相似性,实验结果如下:
图2 用ahsnglid7395909加密后密文
图3 用ahsnglid7395908加密后密文
从结果分析来看,密文完全不同,由此可以看出,混沌RC4算法对密钥的敏感性很高,该算法很好的克服了RC4弱密钥,相关密钥的缺陷。
2.2 平衡性分析
若产生的密文是随机的,将具有较好的‘0’、‘1’平衡,即得到的密文中‘0’、‘1’的个数应该差不多,本文对生成的序列进行统计分析,结果如下:
表1
从上表可以看出,‘0’、‘1’个数相差不多,并且随着明文长度的增加,两者之间的数量也在接近,说明了密文具有良好的‘0’、‘1’平衡性。
2.3 字符频率统计分析
字符频率也能反映密文的随机性,是分析破译密码的有效信息,若密文是随机的,则密文序列每个字符的ASCII码在[0,256]区间中应该是均与分布的。
下面对分别用RC4算法和混沌RC4算法统计加密后序列的ASCII码值的频率,实验结果如下:
图4 明文ASCII码频率统计
图5 混沌RC4与RC4密文ASCII码频率统计
从图中可以看出,混沌RC4密文序列相较与RC4算法更加平均,说明混沌RC4算法具有更好的扩散效果。
2.4 性能分析
无线传感器的资源有限,算法执行速度,所需存储空间是衡量算法效果的重要指标,本文将主要从加密时间、内存空间两方面对其进行性能分析。对以下算法本文均采用128位密钥,RC5进行典型的12迭代,输入字长为32位。
表2
结果如表所示,RC4算法执行速度最快,混沌RC4算法虽然变量空间最大,但执行速度比RC5算法快。
3 总结
本文提出了一个基于RC4流加密和混沌Logistic映射的WSN加密算法,实验结果表明,该算法,该算法可以作为一个用于资源有限的WSN数据加密的替代算法,因为该算法:(1)具有较快的加密速度,降低电量消耗;(2)有很好的安全性,解决了RC4算法弱密钥、相关密钥等缺陷。
[1]Andrew Roos.A class of weak keys in the RC4 stream cipher[OL].http://marcel.Wanda.ch/Archive/WeakKeys,Post in sci.encrypt,September 2004.
[2]Grosul and D·Wallach.A related key cryptanalysis of RC4,TechReport[R].TR-00-358,Department of Computer Science,Rice University,June 2000.
[3]杨吉云.混沌密码在无线传感网络安全中的应用研究[D].重庆大学,2007.
[4]刘宴兵.基于混沌的RC4流加密算法[J].计算机工程,2011,37(2).
[5]陈帅.无线微传感器网络混沌加密理论及其关键技术研究[D].重庆:重庆大学,2006.
[6]耿嘉,曹秀英.一种攻击RC4-WEP类密码的改进方法[J].通信学报,2004,25(1):ll-21.
[7]许连杰.基于混沌加密无线传感器网络安全技术研究[D].哈尔滨工业大学,2013.
[8]Ginting,R.U,Dillak,R.Y.Digital color image encryption using RC4 stream cipher and chaotic logistic map [C]//.International Conference Information Technology and Electrical Engineering(ICITEE).2013:101-5.