基于FPGA的身份認證智能卡設計
3 智能卡軟件結構
身份認證智能卡的軟件結構主要包括頂層身份認證系統應用程序、PCI接口驅動(dòng)程序和FPGA內部加密算法模塊三部份。其結構如圖2所示:
3.1 認證系統頂層應用程序
系統頂層的應用程序主要是提供給用戶(hù)一個(gè)GUI界面接口,以便用戶(hù)直接通過(guò)GUI接口進(jìn)行身份認證相關(guān)操作,避免用戶(hù)直接調用底層驅動(dòng)函數,方便用戶(hù)使用智能卡。頂層應用程序調用相應的智能卡驅動(dòng)程序接口,發(fā)送相應的指令并從底層硬件獲得加密后數據,同時(shí)按照通信協(xié)議規定的數據格式和發(fā)送順序通過(guò)網(wǎng)絡(luò )傳送到遠程計算機系統。
3.2 PCI接口驅動(dòng)程序
在windows操作系統下,執行于用戶(hù)態(tài)的應用程序不能直接訪(fǎng)問(wèn)硬件,而必須通過(guò)調用執行于核心態(tài)的設備驅動(dòng)程序提供的各種服務(wù)間接地對硬件資源進(jìn)行訪(fǎng)問(wèn),從而確保系統的安全。設備驅動(dòng)程序是提供給硬件設備連接到計算機系統的軟件接口,它使用戶(hù)應用程序可以用一種規范的方式訪(fǎng)問(wèn)硬件,而不必考慮如何控制硬件。WDM設備驅動(dòng)程序模型就是windows環(huán)境下設備驅動(dòng)程序模型。
目前常見(jiàn)的驅動(dòng)開(kāi)發(fā)軟件如NuMega公司的DriverStudio提供了封裝各種通用操作的驅動(dòng)程序類(lèi)庫以及大量參考代碼,方便用戶(hù)進(jìn)行WDM驅動(dòng)程序的設計,有效縮短了驅動(dòng)程序開(kāi)發(fā)周期。
3.3 FPGA加密模塊
FPGA是身份認證智能卡的核心部件,身份認證系統的數據加密、用戶(hù)身份信息碼驗證以及數據接口控制邏輯均在FPGA中完成。FPGA內部模塊結構如圖3所示:
認證方提供的128 bit隨機數N經(jīng)過(guò)State矩陣產(chǎn)生模塊分解為一個(gè)4×4的矩陣。當數據讀寫(xiě)模塊從FLASH存儲器中讀出128 bit的共享加密密鑰K和S盒變換矩陣后,密鑰擴展模塊首先將128 bit的加密密鑰K按密鑰擴展算法產(chǎn)生一個(gè)擴展密鑰,再從擴展密鑰中選擇每輪運算的輪密鑰。在迭代控制模塊管理下,128 bit隨機數N經(jīng)過(guò)ByteSub模塊、ShiftRow模塊、MixColumn模塊、AddRoundKey模塊多輪迭代運算,并在最后一輪運算結束后從AddRoundKey模塊輸出加密后的密文數據。PCI 9054接口模塊主要實(shí)現FPGA芯片和PCI9054本地總線(xiàn)之間的數據交換。FLASH接口模塊將用戶(hù)讀寫(xiě)操作轉換為FLASH存儲器的讀寫(xiě)操作時(shí)序。數據讀寫(xiě)模塊負責向FLASH接口模塊發(fā)送數據讀寫(xiě)和擦除信息。命令解釋模塊和其他所有模塊相連,完成用戶(hù)命令譯碼工作。所有模塊均在Verilog HDL語(yǔ)言設計的有限狀態(tài)機(FSM)控制下運行。
4 總結
基于FPGA的智能卡提供了一種新的身份認證方式,本文作者創(chuàng )新點(diǎn)如下:
(1) 設計了一種基于FPGA的身份認證智能卡。身份信息加密運算均在智能卡內部完成,除加密結果外其他所有運算的中間狀態(tài)值均不會(huì )出現在計算機系統中,有效地提高了認證系統的安全性。
(2) 利用Verilog HDL語(yǔ)言設計有限狀態(tài)機在FPGA中實(shí)現128 bit Rijndael算法。在系統時(shí)鐘頻率為50 MHz時(shí)測得智能卡加密速度達962.03 Mbits/s,在效率和速度上均優(yōu)于軟件加密方式,并且可以方便地擴展到192 bit或256 bit密鑰,使用靈活。
(3) 利用PCI 9054 實(shí)現FPGA與PCI總線(xiàn)之間的高速數據傳輸,降低了PCI接口設計的復雜性,保證大量并發(fā)認證請求服務(wù)下系統的性能。
在基于智能卡的身份認證系統中,認證方和被認證方均采用同樣硬件結構的身份認證智能卡[6],FLASH內部存放相同的一組密鑰,可以根據需要靈活地選擇密鑰。在需要多方進(jìn)行身份認證的系統中,可以在FLASH內部同時(shí)存放多組密鑰,對于不同的認證操作選擇與之對應的加密密鑰,利用一塊智能卡完成多方身份認證,具有廣闊的應用前景?;贔PGA的身份認證智能卡已在物流防偽系統中得到了應用,測試結果表明,該身份認證智能卡安全、可靠、高效。
評論