摘 要:基于無線Zigbee巡檢儀在無線傳輸過程中,信息極易受到安全威脅。為了避免這種情況,本文根據AES的原理和算法,研制出適合單片機應用的AES加密算法,并將其應用在無線Zigbee巡檢儀上。通過實驗證明,發送端可以將明文加密,接收端可以成功解密。本文提出的算法簡單,需要的硬件資源少,為AES的算法在嵌入式的應用提供參考價值。
關鍵詞:AES;Zigbee;無線巡檢儀
無線巡檢儀[1]是一種通過沿著規定的路線巡查、記錄并通過無線實時發送巡查結果的儀器,其巡查的物理量可以為儀表的溫濕度、設備的使用情況、被監護人員的生理情況、環境監測參數等,廣泛應用在熱工、電爐、化工、冶金、機械制造、紡織、造紙、電力等行業。本無線zigbee[2]巡檢儀主要應用于設備的巡檢上,由于無線設備信道公開性,其信息容易受到截獲、篡改,重放等威脅[3],對于重要的、敏感的數據必須要加密,本文采用AES算法對敏感數據進行加密,防止中途被竊聽,如果再加上數字簽名技術等技術[4],就可以有效防范其他無線攻擊。
1 AES加密算法
1.1 AES算法整體描述
設字節c它由ai生成的。其中a是GF(28)域中的生成元。欲求c的乘法逆。只需要找到a255-i即可。在數組E中可以由c查出生成元a的冪指數i。c-1的冪指數255-i。所以c-1=L[255-i]。
對每一個字節byte根據以上內容得到乘法逆,作仿射變換得到數組S。即為Sbox。
2 AES算法在無線巡檢儀上的實現
2.1 無線巡檢儀系統結構
無線巡檢儀是一種通過沿著規定的路線巡查、記錄并通過無線實時發送巡查結果的儀器,同時必須帶有鍵盤和顯示器等人機交互部件,存儲部件、無線收發部件。
目前,應用zigbee技術大致有兩種方案,第一種方案就是直接采用Zigbee芯片,如TI公司的CC2430[6]、Freescale的5139[7]芯片,開發電路板,這種方案適用于要求自己定制zigbee和大規模量產;另一種方案,就是直接利用zigbee模塊,嵌入到現有的系統中,為已有的系統添加無線傳輸方式。本巡檢儀綜合考慮到原有系統的兼容和后續升級性,采用后一種方案。
整個無線巡檢儀的主要部件有:
核心器件C8051F340[8]是完全集成的混合信號片上系統型MCU,具有高達48MI/s速率、流水線結構的8051兼容微控制器內核:全速、非侵入式的在線調試接口;共有1 KB FIFO RAM的USB功能控制器;電源穩壓器;帶有模擬多路器的10位200KS/s的單端/差分ADC;精確校準的12MHz內部振蕩器和4倍時鐘乘法器;多達64KB的片內Flash存儲器;4352字節片內RAM;具有5個捕捉/比較模塊和看門狗定時器功能的可編程計數器/定時器陣列;3.3V工作電壓,功耗低且帶有片內上電復位、VDD監視器和時鐘丟失檢測器;容許5V輸入的多達40個I/O端口。滿足了系統的要求。
無線收發部分采用技術上成熟的zigbee無線數傳模塊,其主核心芯片采用FreeScale的5139芯片,再加上功率放大電路,增加了發射距離,在空曠距離可以達到3km,滿足一般巡檢系統的要求。該模塊配置成點對點通訊,這樣巡檢儀就可以將巡檢結果實時發送到數據中心。
2.2 AES算法在C8051F340上的實現
本巡檢系統有多種數據包,如結果上傳包、結果ACK包,巡檢路線版本號以及用于Ping網絡的數據包,各種包的長度和內容也不同,因此對數據包進行AES加解密帶來一定的挑戰。由于AES必須以最小16個字節為單位分塊加解密的,對于不長度不夠可以用隨機數填充,我們以結果上傳包為例,說明如何對其進行AES加解密的。下圖說明其加/解密流程:
解密過程于類似。在上述圖中,加密塊長度為128比特,剛好等于16個字節長度,當其數據包的最后一塊不夠16個字節時,可以用隨機數補齊。由以上AES算法,使用C語言在單片機C8051F340上實現。整個算法可以分為3大部分,加密、解密和密鑰擴展。加密模塊將明文加密為密文;解密將密文變為明文;密鑰擴展將密鑰擴展為數組,用于加密或者解密。
AES算法多應用于PC機上,對于應用在單片機上用的很少。在C8051F340上,分別對加密和解密、密鑰擴展進行分析,其消耗的時間和空間如表1所示。
2.3 實驗結果
本文從AES的加解密理論,依次進行SubBytes、ShiftRows和AddRoundKey操作,將明文加密和解密。然后從無線巡檢儀的硬件資源情況,通過軟件來實現AES的加密和解密,完成了數據的無線加密傳輸;通過截取的無線數據說明,數據的內容已經被正確加密;接收端也能正常解密,還原初始數據,證明其有效性。本文提供的AES加密算法及在無線巡檢儀中的應用技術,為嵌入式設備應用加密技術提供了參考價值。
[參考文獻]
[1]田國鈺,黃海洋.基于ZigBee的無線巡檢儀的研究[J].信息技術,2010,5:181-183.
[2]任秀麗,于海斌.ZigBee無線通信協議實現技術的研究[J].計算機工程與應用,2007,43(6):143-145.
[3]王良民,李菲,熊書明,張建明.無線傳感器網絡內部攻擊檢測方法研究[J].計算機科學,2011,38(4):97-99.
[4]王曉峰,張璟,王尚平.多重數字簽名方案及其安全性證明[J].計算機學報,2008,31(1):176-183.
[5]趙雪梅.AES加密算法的實現及應用[J].常熟理工學院學報.2010, 24(2):105-110.
[6]Texas Instrument.CC2430 Data Sheet[EB/OL].http://www.ti.com/paramsearch/docs/parametricsearch.tsp?family=wirelessfamilyId=936sectionId=646tabId=2736uiTemplateId=WLS_PRDSRCH_T,2013-05-13.
[7]NXP Jennic.JN5139 Data Sheet[EB/OL].http://www.jennic.com/download_file.php?supportFile=JN-DS-JN5139MO-1v6.pdf, 2013-05-13.
[8]SiliconLab.C8051F340 Data Sheet[EB/OL].http://www.silabs.com/products/mcu/Pages/8-Bit-Microcontrollers.aspx,2013-05-13.