RC5加密算法在智能无线传感器中的应用

时间:2021-08-21 16:19:55
 
//><!-- <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script> //--><!
摘要:以STC12LE5410AD单片机为核心控制器,采用nRF905无线收发控制芯片,将传感器采集到的数据进行无线传输。在数据传输的过程中,为了保证其安全性,引入了适合于智能无线传感器节点的加密算法——RC5加密算法,并将该算法移植到自行设计的硬件平台中,实验结果表明RC5加密算法能够保证数据无线传输的安全性。
  
  关键词:智能无线传感器;RC5加密算法;安全性;无线传感器网络
  中图分类号:TN915文献标识码:B
  文章编号:1004373X(2008)0111503
  
  ApplicationofRC5EncryptionAlgorithminIntelligentWirelessSensor
  
  GUANXuezhong1,SUNShengyong1,GUOXiaoyong1,LIUChuanjia1,YANGJing2
  (1.DaqingPetroleumInstitute,Daqing,163316,China;2.DaqingPetroleumCorporation,Daqing,163414,China)
  
  Abstract:ThepaperadoptsSTC12LE5410ADmicrocontroller,realizesdatasendingbyusingnRF905wirelesscontroller.Intheprocessofdatasending,weintroduceRC5encryptionarithmeticfitforintelligentwirelesssensornode,andtransplantethearithmetictohardwareplatform,theexperimentresultsindicatethatRC5encryptionarithmeticcanensurethesecurityofwirelessdatasending.
  
  Keywords:intelligentwirelesssensor;RC5encryptionarithmetic;security;wirelesssensornetwork
  
  近年来,随着MEMS技术、数字通信技术和无线电射频技术(RF)的发展,智能无线通信技术得到了越来越广泛的应用。但由于数据是以无线的形式进行传输,在传输的过程中信息随时可能被非法窃听、篡改以及破坏,因此保证数据在无线传输时的安全性就显得尤为重要,数据加密技术便是保证数据安全性的一种重要手段。虽然目前已经存在许多成熟的加密算法,但是由于智能无线传感器节点自身的独特性,如:节点的能量、计算能力和存储空间极其有限、通信带宽较窄、传输距离较短等,使得大多数的加密算法都无法应用到智能无线传感器节点中。因此,如何选取合适的加密算法便成为关键。
  
  1RC5加密算法
  
  在对现存的大量加密算法(DES,AES,RSA等)进行充分研究的基础之上,我们引入了非常适合于智能无线传感器节点的加密算法——RC5加密算法。RC5是一个由RonRivest[RIVE94,RIVE95]研制的对称加密算法,他在设计方面有其独有的特性:RC5只使用在微处理器上常见的初等计算操作使其适合于硬件和软件实现;RC5基本操作每次对数据的整个字进行,所以他是一种快速的加密算法;一个字中的比特数是RC5中的一个参数,不同的字长会导致使用不同的算法,这使得他对不同字长的处理器有适应性;循环次数和密钥长度是RC5的可变参数,他们可以用来在更高的速度和更高的安全性之间做出折衷;RC5具有移位位数依赖于数据的移位操作,加强了该算法对分析的抵抗力;另外,RC5还具有结构简单易于实现和内存要求低的特点 [1]。
  1.1RC5的参数
  RC5是一个可定制的加密算法,是可变参数的分组密码算法。之所以这么说是因为RC5实际上是由3个参数确定的一组加密算法。具体参数如表1所示。
  
  因而,一个特定版本的RC5被记为RC5-w/r/b。例如,RC5-32/12/16具有32b的字节(64的明文和密文分组),加密和解密算法包含12个循环,密钥长度为16B(128b)。对于要求不同、节点能力不同的应用可以选择不同的定制参数,非常方便灵活。这里以RC5-32/10/5为例详细介绍RC5算法 [1,2]。
  1.2密钥扩展
  根据所设定的循环次数,RC5对秘密密钥进行一组复杂的操作后产生总共t个子密钥存储在数组S[0,1,…,t]以用于加密解密。每个循环使用2个子密钥,还有2个子密钥用于初始化,不属于任何循环的操作,这样就有t=2r 2。每个子密钥的长度是一个字长(w比特)。
  这其中用到两个常量Pw和Qw,Pw和Qw大小是一个字长,定义如下:
  
  使用可以选取的w值,这些常数如表2所示(十六进制表示):
  
  密钥扩展算法的第一步是将秘密钥K[0,1,…,b-1]放入另一个数组L[0,1,…,c-1]中,其中c=[b/u],u=w/8,即L数组中的元素大小为uw位,将u个连续字节的密钥顺序放入L中,先放入L中元素的低字节,再放入其高字节,若L[c-1]的高字节未满,则以0填充。当b=0,c=0时,c=1,L[0]=0。
  第二步是利用Pw,Qw将数组S初始化成一个固定的伪随机的数组,最后将用户密钥扩展到数组S中,密钥扩展算法如下所示:
  输入:用户密钥b字节预放入数组L[0,1,…,c-1];循环次数r;
  输出:w位的循环密钥S[0,1,…,2r 2];
  过程:
  数组S初始化:
  
  Rivest[RIVE94]认为上述密钥扩展函数有一定的单向性:从S推出K并不容易。
  1.3加密
  RC5使用3个基本操作(以及他们的逆操作):
  加法:记为 ,其逆操作为减法,记为-。
  逐位异或:这个操作记为⊕。
  循环左移:字x循环左移y比特被记为x<<>>y。
  RC5用2个w位的寄存器A和B存放输入的明文和输出的密文。将明文分成两个w位的两个部分存储在A,B中,这样加密算法的描述如下:
  输入:明文存放在寄存器A,B中,循环次数r,w位循环密钥S[0,1,…,2r 1];
  输出:密文存放在寄存器A,B中;
  过程:
  
  1.4解密
  由于是对称加密,解密是加密算法的逆过程,很容易从加密算法中导出过程。解密算法描述如下:
  输入:密文存放在寄存器A,B中,循环次数r,w位循环密钥S[0,1,…,2r 1];
  输出:明文存放在寄存器A,B中;
  过程:
  
  RC5的两个最显著的特征是算法的简单性和使用依赖于数据的循环移位。循环移位是算法仅有的非线性部分,Rivest觉得因为循环移位的多少依赖于通过算法的数据,线性和差分密码分析应该更困难。RC5的加密轮数是可变的,在6轮后,经过线性分析已经是安全的了。作者推荐的加密轮数至少是12轮,最好是16轮 [3,4]。
  [newpage]  2算法的实现
  
  根据以上算法的伪代码描述,由于RC5算法运用的都是基本的计算操作,在C语言环境下是比较容易实现的,我们借鉴文献[5]中给出的以w=32时的RC5算法的C语言源程序,因为这个程序出现很多问题不能够直接使用,几经修改与测试,最后又将该算法移植到KeilC环境下,从而达到了预期的效果。
  
  3硬件设计
  
  我们设计的智能传感器节点具有典型的无线传感器网络节点的特征,具体实物如图1所示,整个节点由4部分组成:电源部分、处理器部分、传感器部分、无线传输部分。下面分别介绍各个组成部分。
  
  3.1电源部分
  电源可以选择3V电池,本文做实验期间选用的是AC/DC电源模块,输入为220V交流电,输出为33V直流稳压电。
  3.2处理器部分
  采用STC12LE5410AD型号单片机作为核心处理器芯片。他是单时钟/机器周期的兼容8051内核单片机,是高速、低功耗的新一代8051单片机,全新的流水线/精简指令集结构,内部集成MAX810专用复位电路。
  运用查询方式按一定周期采集传感器测到的数据,进行加密/解密操作,通过SPI与nRF905进行数据和命令的通信。
  3.3传感器部分
  实验板主要配备的传感器有DS18B20温度传感器,人体热释红外传感器,离子式烟雾报警器。
  3.4无线传输部分
  无线传输部分的核心器件为nRF905无线收发控制芯片,该芯片是挪威NordicVLSI公司推出的单片射频收发器,工作电压为19~36V,32引脚QFN封装(5×5mm2),工作于433/868/915MHz三个ISM(工业、科学和医学)频段,频段之间的转换时间小于650μs。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加滤波器,ShockBurstTX/RX工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。4种工作模式可以根据需要,通过程序设定,操作简单、使用很方便 [6]。
  
  4算法测试
  
  在算法的实际测试过程中,我们使用了两块实验板,其中一块将传感器采集到的数据信息(明文)进行加密处理后(密文)通过nRF905发出去,另一块与PC机相连作为接收方将收到的密文进行解密处理,并将处理后的数据通过串口发送到PC机上。我们选取的RC5加密算法具体的版本为RC5-32/10/5,即字的大小为32b,循环轮数为10次,密钥K的字节个数为5个,这里选用的密钥为K[5]=″yhkwo″。待加密的数据字节个数为8个。
  
  5结语
  
  随着智能无线数据传输技术的日益发展,对无线数据传输安全性的要求也越来越高。本文在对大量现有加密算法深入研究的基础之上给出了适合于智能无线传感器特点的加密算法——RC5加密算法,并在自行设计的智能无线传感器节点上对算法进行了测试,从实验结果中可以看到该算法具有良好的安全性。
  
  参考文献
  [1]林琳,罗安.基于网络安全的数据加密技术的研究[J].现代电子技术,2004,27(11):101-103.
  [2]孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
  [3]迅通科技.nRF905数据使用手册[Z].
  [4]蔡皖东.网络与信息安全[M].西安:西北工业大学出版社,2004.
  [5]WilliamStallings.密码编码学与网络安全原理与实践[M].2版.杨明,胥光辉,齐望东,等译.北京:电子工业出版社,2001.
  [6]BruceSchneier.应用密码学——协议、算法与C源程序[M].吴世忠,祝世雄,张文政,等译.北京:机械工业出版社,2000.
  [7]李文仲,段朝玉.短距离无线数据通信入门与实战[M].北京:北京航空航天大学出版社,2006.
  [8]李红艳.无线传感器网络安全研究与分析[J].网络与信息安全,2006(6):44-46.
  [9]卢开澄.计算机密码学——计算机网络中的数据保密与安全[M].3版.北京
  :清华大学出版社,2003.
  
  注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
  (作者:关学忠 孙胜勇 郭小勇 刘传家 杨 静-字数:3401)