?

Zigbee平臺上的RSA算法實現及性能分析

2014-10-21 14:22嚴疆文添藝
數字化用戶 2014年20期
關鍵詞:通信安全性能分析

嚴疆 文添藝

【摘 要】Zigbee新作為一種新興的低成本,低功耗,近距離,雙向通信網絡技術,在物聯網飛速發展的進程中得到了廣泛的應用。隨著應用范圍越來越廣泛,ZigBee網絡的數據安全也變得原來越重要。目前,在ZigBee平臺上,尚未有非對稱加密算法的相關研究,本文給出了在cc2530平臺上,實現RSA算法的過程,并給出了收集的相關運行數據。最后,本文給出了運行的結果和分析數據。

【關鍵詞】通信安全 Zigbee 非對稱加密算法 性能分析

引言

基于IEEE 802.15.4無線技術的ZigBee,被廣泛應用于工業,家庭,醫療等對數據率和QoS要求不高,但覆蓋面積較大的無線通信場合之中。隨著基于ZigBee的應用實例越來越多,其數據的安全性也變得越來越重要。作為ZigBee實現方式之一的ZStack雖然自帶了一套基于AES128加密解密算法,但在互聯網應用之中,普遍認為非對稱加密技術比對稱加密算法更為優越。所以實現一套基于非對稱秘鑰的加密算法變得非常具有參考意義。

一、利用RSA算法的加密體系

在cc2530平臺上,我們實現了簡單的RSA加密解密算法,并根據對于該算法的統計信息,試探性地探討在ZigBee系列的小型嵌入式芯片上,在不使用協處理器的情況下,RSA算法的性能。整個算法的實現是基于ZStack平臺進行的。算法在Windows平臺下開發后進行結果驗證。最后移植到ZStack平臺上進行相關數據的收集。

二、實現過程

為方便對多種加密長度運行結果進行采樣,必須將算法實現在長度可變的整形數據結構基礎之上。所以在實現過程中,建立了一個長度可變的簡易整形數據結構。

由于硬件資源有限,必須在設計和實現上,權衡安全性和性能開銷。開銷主要分為兩方面:占用的內存空間大小及運算時間。

三、內存占用的統計過程及方法

為統計使用內存,對內存分配及釋放函數(ZStack上為osal_mem_alloc及osal_mem_free,在Windows下為malloc及free)進行封裝。統計整個加密解密過程中,占用內存空間的高峰值,所分配的最大內存塊等信息。在PC端運行算法時,由于統計結果小于ZStack預計的動態管理內存的范圍32768Bytes[4],所以直接寫入,試運行。但由于頻繁地申請和釋放用來保存臨時結果的內存塊,導致內存嚴重碎片化,致使ZStack無法分配出更大的內存空間而導致算法無法正常進行。所以更改方案為:將表示整數的內存塊長度進行統一,并利用對象池技術來復用所分配到的內存塊。

在優化的過程中,通過分析對象池所統計的信息,確定了算法分配的最多內存塊數量。然后,通過將內存塊聲明為全局靜態變量,來減少調用內存管理功能的開銷,以此優化整體性能。最后采用覆蓋方法,實現內存塊的復用,減少內存空間的占用。

在分配靜態內存空間時,需要重新調整XDATA布局。因為動態管理的內存空間是在編譯時設定好的,無法在運行時改變 [4],所以在實現算法過程中,將ZStack代碼的OnBoard.h文件中的INT_HEAP_LEN從3027改為2048。以此減少動態管理內存所占用的空間,以增加靜態變量所占用空間。

四、運算時間統計過程及方法

運算占用時間,通過在運算前后獲得系統時鐘(在ZStack上為osal_getSystemClock),計算差值來獲得。值得注意的是osal_getSystemClock本身僅僅返回uint32_t類型的, osal_systemClock數值,并不會自動更新系統時鐘。所以在每次獲得系統時鐘之前,必須主動更新系統時鐘(即主動調用osalTimeUpdate)。

對于MUC,RSA加密位數不宜過長。初次測試采取很小的64位加密。在節點A對明文進行加密,加密后,發送加密統計信息和密文到節點B。節點B進行解密并對解密過程進行統計,在核對解密結果是否和明文一致后,將核對結果和所有統計信息通過串口發送到PC進行數據處理。

五、算法偽代碼

由于被加密的數據長度是不確定的,所以應先對被加密數據進行分塊,不滿一塊的,填零補齊。然后對每塊依次進行加密,返回加密數據。

六、生成秘鑰

八、解密算法的偽代碼

九、運行結果

在實現中,大數的長度是在宏中定義的,為44字節。整個實現中,一共使用了34個大數,總共占用的靜態內存空間為34*sizeof(bn),即1496字節。

根據收集到的數據,可以計算出:平均加密耗時為1819.96ms,平均解密耗時為8371.66ms。

十、結論

根據初步收集的數據,在加密位數很低的情況下(相對于普遍使用的1024位加密解密而言),耗時過長。由于cc2530附帶AES協處理器,所以,對比于AES128的100ms以下的耗時[1],RSA算法在沒有協處理器的情況下,不宜在8051芯片上進行大量數值計算的應用意義并不是很大。雖然cc2530使用的是加強的8051微處理器,但在計算性能上仍有所欠缺。

在實際應用中,應對較短的數據(如秘鑰)進行RSA加密解密操作?;蛟谟嬎隳芰Ω鼜姷男酒线\算,然后由cc2530進行數據傳輸。

加強ZigBee對于非對稱加密算法支持程度,引入協處理器,將會稱為一種較為可取的解決方案。

參考文獻:

[1]黃太波,趙華偉,潘金秋,聶培堯,楊澤軍.ZigBee協議棧的安全體系綜述[J].山東科學,2012,25(2):59-66.

[2]謝琦,趙森,仇婷婷. ZigBee消息在應用層的安全機制研究[J].計算機應用與軟件,2013,30(8):311-313.

[3]楊斌.基于AES的ZigBee標準安全機制分析[J].計算機工程與科學,2010,32(7):42-45.

[4]Texas Instruments, Inc.. Application Note: Heap Memory Management[Z]. San Diego, California USA:Texas Instruments, Inc.,2010.

猜你喜歡
通信安全性能分析
部隊通信中的網絡安全防護與管理
自動控制系統的優劣評價分析
網絡安全態勢量化評估模型
網絡安全態勢感知國內外研究現狀
淺析電力系統通信安全措施
DCS控制系統在生產線物料運輸工作的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合