高可靠FPGA通信系統(tǒng)
在工業(yè)控制領(lǐng)域,利用ZigBee和傳感器網(wǎng)絡(luò),使得數(shù)據(jù)的自動采集、分析和處理變得更加容易,作為決策輔助系統(tǒng)的重要組成部分,ZigBee無線傳感器網(wǎng)絡(luò)在無線數(shù)據(jù)采集及監(jiān)控等領(lǐng)域得到了廣泛應用。無線傳感器數(shù)據(jù)采集都需通過網(wǎng)關(guān)傳輸至控制中心,在這個過程中信息傳輸?shù)陌踩灾饾u成為人們關(guān)注的焦點。因此,設(shè)計一種安全可靠的通信解決方案顯得尤為重要。
信息安全的解決方案目前主要集中于采取單一的措施來保證信息的安全性,針對各種攻擊手段,防范措施主要集中于信息加密技術(shù)、安全交換機技術(shù)、防火墻技術(shù)、認證技術(shù),入侵檢測技術(shù)等,這些技術(shù)從不同的方面對安全性提供了較好的保障,但各有缺點和不足,這將成為網(wǎng)絡(luò)防護的軟肋,因此,本文也嘗試性地提出了一種集數(shù)據(jù)加密技術(shù)和訪問控制策略于一體的信息安全解決方案。
1.1 加密算法的分析
AES加密算法作為新一代的分組迭代加密算法,其采取對稱密鑰,數(shù)據(jù)塊的分組長度和密鑰長度分別可選擇128位、192位、256位。AES加密算法具有安全性,靈活性等特點。RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。但RSA加密算法的缺點主要有:密鑰的產(chǎn)生繁瑣,受到素數(shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密?;煦缂用芩惴ㄒ话阕鳛閿?shù)字語音信息等的加密,在實際加密應用過程中其精度和保密性方面都存在著缺陷,因此,不適宜于該系統(tǒng)的加解密算法選擇。
1.2 加密算法的抗攻擊能力分析
在高級加密算法的選擇過程中,算法本身的安全性能將是一個重要的評判依據(jù)。因此,我們針對目前已有的各種密碼攻擊手段,分析了AES加密算法的抗攻擊能力等性能指標。
強力攻擊是一種常見的攻擊策略,主要包括窮盡密鑰搜索攻擊、字典攻擊、查表攻擊等手段,這些攻擊的復雜度只依賴于分組長度和密鑰長度,且它們的復雜程度是隨著密鑰長度增加成指數(shù)增長的。對于AES加密算法,密鑰長度最小為128位,若每秒鐘能夠完成2個密鑰的搜索,則要完成AES的密鑰搜索,至少需要時間大約為149萬億年,在時間上就無法攻擊AES加密算法,因此,AES加密算法在很長一段時間還將對強力攻擊保持很好的安全性。
代數(shù)計算攻擊是一種新的分組密碼攻擊方法,在代數(shù)計算攻擊中,攻擊者利用密碼的輸入,輸出對來構(gòu)造多項式。用簡單的代數(shù)表達式對整個Rijndael算法進行描述,引用表達式如下:
代數(shù)計算攻擊的基本思想是用足夠多的明密文對利用拉格朗日插值公式得到密碼算法的一個近似多項式逼近,因此要想對Rijndael算法進行代數(shù)計算攻擊等價于將式(1-1)用多項式來展開,而在式(1-1)中要想消去一層子結(jié)構(gòu),就涉及到構(gòu)造S - 盒的所有運算,由S - 盒表達式的復雜性可知,想通過對式(1-1)的多項式展開后進行攻擊是不可行的。
1.3 支撐硬件選擇
鑒于AES加密算法的特點以及算法的抗攻擊性能,因此,本文選用其作為加密應用技術(shù)。加密算法可以通過軟硬件實現(xiàn),由于算法本身的靈活性,效率高,用軟件實現(xiàn)比較簡單、方便,但同時也帶來一些問題,使算法的速度、安全性等都在某種程度上受到了影響。AES算法的硬件實現(xiàn)不僅具有快的速度而且占用的資源也將減少。因此,AES加密算法硬件實現(xiàn)能夠提供更快的速度和安全性。
XILINX作為全球領(lǐng)先的FPGA提供商,其生產(chǎn)的Spartan系列FPGA具有高性價比,能夠?qū)崿F(xiàn)低成本的嵌入式處理平臺,支持商用串行(SPI)和并行(BPI)Flash 存儲器與平臺 Flash,每秒高達 91 億次的乘累加(MAC)運算,因此采用Spartan系列FPGA作為AES加密算法實現(xiàn)的硬件載體。因此,基于Spartan-3e平臺能夠很好的構(gòu)建一個SOC系統(tǒng)。
1.4 支撐硬件選擇
本系統(tǒng)主要的目標在于“針對ZigBee無線傳感器網(wǎng)絡(luò)中,端到端控制過程中存在的安全隱患和信息邪路問題,自主設(shè)計了一套基于FPGA平臺的高可靠通信系統(tǒng)”。該系統(tǒng)主要由三部分組成:ZigBee無線傳感器網(wǎng)絡(luò),服務器端,客戶端。如圖1.1所示。
服務器端采用XILINX公司的Spartan-3e開發(fā)平臺,在該平臺上構(gòu)建基于MicrBlaze處理器和Xilkernel操作系統(tǒng)的嵌入式系統(tǒng)。當服務器端收到經(jīng)過AES加密的請求IP數(shù)據(jù)包時,在服務器端,信息需要經(jīng)過AES解密處理,根據(jù)解密后信息分析并提取請求方的ID信息和IP信息,客戶端的ID信息是唯一的授權(quán)證號。
客戶端同樣采用XILINX公司的Spartan-3e開發(fā)平臺,但該系統(tǒng)中只需要定制AES加解密IP、鍵盤IP、LCD IP并添加EDK中自帶的網(wǎng)絡(luò)控制器IP??蛻舳俗鳛檎麄€系統(tǒng)的控制中心,當需要采集信息時,客戶端通過鍵盤把自己的授權(quán)ID信息經(jīng)md5加密后形成自己的加密ID,指令信息和加密ID信息經(jīng)過AES加密后發(fā)送至服務器端,當服務器端響應其請求后,視其身份權(quán)限做出相應處理。
2 系統(tǒng)實現(xiàn)
2.1 ZigBee無線傳感器網(wǎng)絡(luò)的實現(xiàn)
ZigBee無線傳感器基于IEEE802.15.4技術(shù)標準和ZigBee網(wǎng)絡(luò)協(xié)議而設(shè)計的無線數(shù)據(jù)傳輸網(wǎng)路,該網(wǎng)絡(luò)由若干個ZigBee終端節(jié)點和一個中心節(jié)點構(gòu)成一個星型網(wǎng)絡(luò),終端節(jié)點主要負責各個傳感器模塊的信息采集和傳送,ZigBee終端節(jié)點采用CC2430模塊,傳感器模塊采用51單片機控制,通過擴展串口與采集模塊相連,其主要負責接收和處理采集數(shù)據(jù)。中心節(jié)點主要用于接收各個終端節(jié)點的上傳數(shù)據(jù),并對其進行壓縮處理后通過擴展接口傳送至服務器端。
2.2 系統(tǒng)服務器端、客戶端的實現(xiàn)
AES加解密算法通過硬件描述語言來實現(xiàn),在該系統(tǒng)中采用VHDL語言編寫代碼。根據(jù)AES加解密算法的相似性,很多電路模塊可以共用。根據(jù)系統(tǒng)的需要,采用對字符加密,因此,每一個字符都將對應其ASCII值輸入。AES實現(xiàn)框圖如圖2.2圖所示。
圖2.2 AES加解密實現(xiàn)框圖
2.2.2 監(jiān)測及報警實現(xiàn)
服務器端通過添加EDK中網(wǎng)絡(luò)控制器IP核,移植LwIP網(wǎng)絡(luò)協(xié)議棧,實現(xiàn)基于SOCKET的網(wǎng)絡(luò)通信。服務器端收到客戶端請求時,對接收到的IP數(shù)據(jù)包進行解密,對請求的IP數(shù)據(jù)包進行分析,提取對應的ID信息和IP信息,由于該ID信息是經(jīng)過md5加密算法加密的,因此該ID作為授權(quán)客戶的唯一ID,根據(jù)ID信息與授權(quán)的ID列表進行比較,若為授權(quán)ID,則根據(jù)客戶請求把相應的信息加密處理后發(fā)送至客戶端;若為非授權(quán)ID,則說明該網(wǎng)絡(luò)已存在非授權(quán)ID用戶,此網(wǎng)絡(luò)已經(jīng)存在不安全性,則把提取的IP信息通過GSM網(wǎng)絡(luò)發(fā)送至指定接收端手機,達到網(wǎng)絡(luò)的實時檢測和報警功能。
2.2.3 應用軟件的實現(xiàn)
服務器端的應用程序的設(shè)計主要包括系統(tǒng)的初始化、系統(tǒng)對客戶端請求的處理、網(wǎng)絡(luò)安全監(jiān)測及報警等。整個服務器端的軟件設(shè)計流程圖如圖2.3圖所示??蛻舳说膽贸绦虻脑O(shè)計也包括系統(tǒng)的初始化,客戶請求的處理及解密處理,服務器端返回的信息處理??蛻舳塑浖鞒虉D如圖2.4圖所示。
3 系統(tǒng)測試及分析
系統(tǒng)整體測試,根據(jù)系統(tǒng)的可能應用領(lǐng)域進行綜合測試。系統(tǒng)初始化后,根據(jù)LCD顯示的提示信息,輸入加解密鑰16個字符,在密鑰確認信息提示后再次輸入加解密密鑰,在本次通信過程中將采用該密鑰對信息進行加解密處理。當客戶端需要采集信息時,發(fā)送采集指令,服務器端響應請求把傳感器網(wǎng)絡(luò)采集的信息加密后發(fā)送至客服端,客戶端把信息解密后顯示在LCD液晶顯示屏上,這一次的采集任務正確完成,當需要再次采集時,客戶端只要發(fā)送指令就可以再次采集了。
系統(tǒng)分別在實驗室和戶外進行測試,每隔1分鐘采集一次數(shù)據(jù),表4.1記錄了10次數(shù)據(jù)采集的處理情況。經(jīng)過多次測試和接收數(shù)據(jù)表明:該系統(tǒng)具有良好的穩(wěn)定性和高可靠性。