安全通信系統的FPGA實現的方法
AES加解密算法通過硬件描述語言來實現,在該系統中采用VHDL語言編寫代碼。根據AES加解密算法的相似性,很多電路模塊可以共用,其占用資源可以盡可能的少。在該系統中采用密鑰長度和分組數據塊長度都為128bits,輸入信息都為字符型的數據,采用對字符加解密,因此,每一個字符都將對應其ASCII值輸入。AES加解密實現主要有4個模塊:控制模塊、AES加解密運算實現模、SBOX模塊、密鑰操作模塊,實現的框圖如圖3-2圖所示。
AES加解密模塊的實現經過ISE綜合后占用資源利用情況如表1所示。
表1 AES加解密資源利用表
圖4 AES加解密實現框圖
·接口模塊的實現
服務器端采用Spartan-3e平臺擴展了PS2接口、16X2的LCD液晶顯示,3個6針的通用擴展接口,這些接口方便了外設的連接和擴展。鍵盤在該系統中實現了單向通信,擴展接口模塊通過平臺通用擴展接口J1、J2、J3與外接設備進行信息交互。Spartan-3e平臺通過串口DTE和GSM模塊進行通信,將相應的信息通過短信的方式發送到指定手機中。
各個接口模塊通過EDK添加自定義IP的方式添加到OPB總線中,其中鍵盤、LCD、串口DTE使用中斷。驅動程序在自動生成的驅動程序模板基礎上完成各個模塊的驅動程序。
·網絡安全檢測及報警實現
服務器端通過添加EDK中網絡控制器IP核,移植LwIP網絡協議棧,實現基于SOCKET的網絡通信。服務器端收到客戶端請求時,對接收到的IP數據包進行解密,對請求的IP數據包進行分析,提取對應的ID信息和IP信息,由于該ID信息是經過md5算法產生的,因此該ID作為授權客戶的唯一ID,根據ID信息與授權的ID列表進行比較,若為授權ID,則根據客戶請求把相應的信息加密處理后發送至客戶端;若為非授權ID,則說明該網絡已存在非授權ID用戶,此網絡已經存在不安全性,則把提取的IP信息通過GSM網絡發送至指定接收端手機,達到網絡的實時檢測和報警功能。
·服務器端軟件實現
服務器端構建基于MicroBlaze處理器和Xilkernel操作系統的嵌入式系統,通過擴展PS2鍵盤,LCD液晶顯示屏等設備,實現具有良好的人機交互接口的系統。Xilkernel操作系統支持多線程操作,通過配置一些參數就可以靈活應用。雖然其沒有網絡系統,但可以通過移植LwIP協議棧就可以實現基于SOCKET的網絡通信。
應用程序的設計主要包括系統的初始化、系統對客戶端請求的處理、網絡安全監測及報警等。系統的初始化主要針對外設的初始化,LCD初始化工作:允許中斷函數microblaze_enable_interrupts(),初始化函數LCD INIT_LCD(),PS2 鍵盤初始化:初始化鍵盤函數init_kbd(),允許中斷函數enable_interrupt(),系統調用xilkernel_main()進入xilkernel,創建socket_thread。初始化lwip,并創建socket_app_thread。該線程主要是針對網絡參數設定,通過IP4_ADDR()函數設定ip、網關、子網掩碼。
當系統運行時,液晶顯示相關信息,當出現等待鍵盤輸入密鑰時,輸入16個字符密鑰,同時對密鑰進行密鑰確認。系統調用socket()函數創建socket,調用listen()函數開始監聽。
評論