摘 要:以STC12LE5410AD單片機為核心控制器,采用nRF905無線收發控制芯片,將傳感器采集到的數據進行無線傳輸。在數據傳輸的過程中,為了保證其安全性,引入了適合于智能無線傳感器節點的加密算法——RC5加密算法,并將該算法移植到自行設計的硬件平臺中,實驗結果表明RC5加密算法能夠保證數據無線傳輸的安全性。
關鍵詞:智能無線傳感器;RC5加密算法;安全性;無線傳感器網絡
中圖分類號:TN915 文獻標識碼:B
文章編號:1004373X(2008)0111503
Application of RC5 Encryption Algorithm in Intelligent Wireless Sensor
GUAN Xuezhong1,SUN Shengyong1,GUO Xiaoyong1,LIU Chuanjia1,YANG Jing2
(1.Daqing Petroleum Institute,Daqing,163316,China;2.Daqing Petroleum Corporation,Daqing,163414,China)
Abstract:The paper adopts STC12LE5410AD microcontroller,realizes data sending by using nRF905 wireless controller.In the process of data sending,we introduce RC5 encryption arithmetic fit for intelligent wireless sensor node,and transplante the arithmetic to hardware platform,the experiment results indicate that RC5 encryption arithmetic can ensure the security of wireless data sending.
Keywords:intelligent wireless sensor;RC5 encryption arithmetic;security;wireless sensor network
近年來,隨著MEMS技術、數字通信技術和無線電射頻技術(RF)的發展,智能無線通信技術得到了越來越廣泛的應用。但由于數據是以無線的形式進行傳輸,在傳輸的過程中信息隨時可能被非法竊聽、篡改以及破壞,因此保證數據在無線傳輸時的安全性就顯得尤為重要,數據加密技術便是保證數據安全性的一種重要手段。雖然目前已經存在許多成熟的加密算法,但是由于智能無線傳感器節點自身的獨特性,如:節點的能量、計算能力和存儲空間極其有限、通信帶寬較窄、傳輸距離較短等,使得大多數的加密算法都無法應用到智能無線傳感器節點中。因此,如何選取合適的加密算法便成為關鍵。
1 RC5加密算法
在對現存的大量加密算法(DES,AES,RSA等)進行充分研究的基礎之上,我們引入了非常適合于智能無線傳感器節點的加密算法——RC5加密算法。RC5是一個由Ron Rivest[RIVE94,RIVE95]研制的對稱加密算法,他在設計方面有其獨有的特性:RC5只使用在微處理器上常見的初等計算操作使其適合于硬件和軟件實現;RC5基本操作每次對數據的整個字進行,所以他是一種快速的加密算法;一個字中的比特數是RC5中的一個參數,不同的字長會導致使用不同的算法,這使得他對不同字長的處理器有適應性;循環次數和密鑰長度是RC5的可變參數,他們可以用來在更高的速度和更高的安全性之間做出折衷;RC5具有移位位數依賴于數據的移位操作,加強了該算法對分析的抵抗力;另外,RC5還具有結構簡單易于實現和內存要求低的特點[1]。
1.1 RC5的參數
RC5是一個可定制的加密算法,是可變參數的分組密碼算法。之所以這么說是因為RC5實際上是由3個參數確定的一組加密算法。具體參數如表1所示。
因而,一個特定版本的RC5被記為RC5-w/r/b。例如,RC5-32/12/16具有32 b的字節(64的明文和密文分組),加密和解密算法包含12個循環,密鑰長度為16 B(128 b)。對于要求不同、節點能力不同的應用可以選擇不同的定制參數,非常方便靈活。這里以RC5-32/10/5為例詳細介紹RC5算法[1,2]。
1.2 密鑰擴展
根據所設定的循環次數,RC5對秘密密鑰進行一組復雜的操作后產生總共t個子密鑰存儲在數組S[0,1,…,t]以用于加密解密。每個循環使用2個子密鑰,還有2個子密鑰用于初始化,不屬于任何循環的操作,這樣就有t=2r+2。每個子密鑰的長度是一個字長(w比特)。
這其中用到兩個常量Pw和Qw,Pw和Qw大小是一個字長,定義如下:
使用可以選取的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。
第二步是利用Pw,Qw將數組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<<
RC5用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]。
2 算法的實現
根據以上算法的偽代碼描述,由于RC5算法運用的都是基本的計算操作,在C語言環境下是比較容易實現的,我們借鑒文獻[5]中給出的以w=32時的RC5算法的C語言源程序,因為這個程序出現很多問題不能夠直接使用,幾經修改與測試,最后又將該算法移植到Keil C環境下,從而達到了預期的效果。
3 硬件設計
我們設計的智能傳感器節點具有典型的無線傳感器網絡節點的特征,具體實物如圖1所示,整個節點由4部分組成:電源部分、處理器部分、傳感器部分、無線傳輸部分。下面分別介紹各個組成部分。
3.1 電源部分
電源可以選擇3 V電池,本文做實驗期間選用的是AC/DC電源模塊,輸入為220 V交流電,輸出為33 V直流穩壓電。
3.2 處理器部分
采用STC12LE5410AD型號單片機作為核心處理器芯片。他是單時鐘/機器周期的兼容8051內核單片機,是高速、低功耗的新一代8051單片機,全新的流水線/精簡指令集結構,內部集成MAX810專用復位電路。
運用查詢方式按一定周期采集傳感器測到的數據,進行加密/解密操作,通過SPI與nRF905進行數據和命令的通信。
3.3 傳感器部分
實驗板主要配備的傳感器有DS18B20溫度傳感器,人體熱釋紅外傳感器,離子式煙霧報警器。
3.4 無線傳輸部分
無線傳輸部分的核心器件為nRF905無線收發控制芯片,該芯片是挪威Nordic VLSI公司推出的單片射頻收發器,工作電壓為19~36 V, 32引腳QFN封裝(5×5 mm2),工作于433/868/915 MHz三個ISM(工業、科學和醫學)頻段,頻段之間的轉換時間小于650 μs。 nRF905由頻率合成器、接收解調器、功率放大器、晶體振蕩器和調制器組成,不需外加濾波器, Shock Burst TX/RX工作模式,自動處理字頭和CRC(循環冗余碼校驗),使用SPI接口與微控制器通信,配置非常方便。4種工作模式可以根據需要,通過程序設定,操作簡單、使用很方便[6]。
4 算法測試
在算法的實際測試過程中,我們使用了兩塊實驗板,其中一塊將傳感器采集到的數據信息(明文)進行加密處理后(密文)通過nRF905發出去,另一塊與PC機相連作為接收方將收到的密文進行解密處理,并將處理后的數據通過串口發送到PC機上。我們選取的RC5加密算法具體的版本為RC5-32/10/5,即字的大小為32 b,循環輪數為10次,密鑰K的字節個數為5個,這里選用的密鑰為K[5]=″y h k w o″。待加密的數據字節個數為8個。
5 結 語
隨著智能無線數據傳輸技術的日益發展,對無線數據傳輸安全性的要求也越來越高。本文在對大量現有加密算法深入研究的基礎之上給出了適合于智能無線傳感器特點的加密算法——RC5加密算法,并在自行設計的智能無線傳感器節點上對算法進行了測試,從實驗結果中可以看到該算法具有良好的安全性。
參 考 文 獻
[1]林琳,羅安.基于網絡安全的數據加密技術的研究[J].現代電子技術,2004,27(11):101-103.
[2]孫利民,李建中,陳渝,等.無線傳感器網絡[M].北京:清華大學出版社,2005.
[3]迅通科技.nRF905數據使用手冊[Z].
[4]蔡皖東.網絡與信息安全[M].西安:西北工業大學出版社,2004.
[5]William Stallings.密碼編碼學與網絡安全原理與實踐[M].2版.楊明,胥光輝,齊望東,等譯.北京:電子工業出版社,2001.
[6]Bruce Schneier.應用密碼學——協議、算法與C源程序[M].吳世忠,祝世雄,張文政,等譯.北京:機械工業出版社,2000.
[7]李文仲,段朝玉.短距離無線數據通信入門與實戰[M].北京:北京航空航天大學出版社,2006.
[8]李紅艷.無線傳感器網絡安全研究與分析[J].網絡與信息安全,2006(6):44-46.
[9]盧開澄.計算機密碼學——計算機網絡中的數據保密與安全[M].3版.北京
:清華大學出版社,2003.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”