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