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