新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的身份認證智能卡設計

        基于FPGA的身份認證智能卡設計

        作者: 時間:2011-11-02 來源:網絡 收藏
        軟件結構#e#

        本文引用地址:http://www.104case.com/article/150081.htm

          3 軟件結構

          的軟件結構主要包括頂層系統應用程序、PCI接口驅動程序和內部加密算法模塊三部份。其結構如圖2所示:

          3.1 認證系統頂層應用程序

          系統頂層的應用程序主要是提供給用戶一個GUI界面接口,以便用戶直接通過GUI接口進行相關操作,避免用戶直接調用底層驅動函數,方便用戶使用智能卡。頂層應用程序調用相應的智能卡驅動程序接口,發送相應的指令并從底層硬件獲得加密后數據,同時按照通信協議規定的數據格式和發送順序通過網絡傳送到遠程計算機系統。

          3.2 PCI接口驅動程序

          在windows操作系統下,執行于用戶態的應用程序不能直接訪問硬件,而必須通過調用執行于核心態的設備驅動程序提供的各種服務間接地對硬件資源進行訪問,從而確保系統的安全。設備驅動程序是提供給硬件設備連接到計算機系統的軟件接口,它使用戶應用程序可以用一種規范的方式訪問硬件,而不必考慮如何控制硬件。WDM設備驅動程序模型就是windows環境下設備驅動程序模型。

          目前常見的驅動開發軟件如NuMega公司的DriverStudio提供了封裝各種通用操作的驅動程序類庫以及大量參考代碼,方便用戶進行WDM驅動程序的,有效縮短了驅動程序開發周期。

          3.3 加密模塊

          是身份認證智能卡的核心部件,身份認證系統的數據加密、用戶身份信息碼驗證以及數據接口控制邏輯均在FPGA中完成。FPGA內部模塊結構如圖3所示:

        FPGA內部模塊結構如圖

          認證方提供的128 bit隨機數N經過State矩陣產生模塊分解為一個4×4的矩陣。當數據讀寫模塊從FLASH存儲器中讀出128 bit的共享加密密鑰K和S盒變換矩陣后,密鑰擴展模塊首先將128 bit的加密密鑰K按密鑰擴展算法產生一個擴展密鑰,再從擴展密鑰中選擇每輪運算的輪密鑰。在迭代控制模塊管理下,128 bit隨機數N經過ByteSub模塊、ShiftRow模塊、MixColumn模塊、AddRoundKey模塊多輪迭代運算,并在最后一輪運算結束后從AddRoundKey模塊輸出加密后的密文數據。PCI 9054接口模塊主要實現FPGA芯片和PCI9054本地總線之間的數據交換。FLASH接口模塊將用戶讀寫操作轉換為FLASH存儲器的讀寫操作時序。數據讀寫模塊負責向FLASH接口模塊發送數據讀寫和擦除信息。命令解釋模塊和其他所有模塊相連,完成用戶命令譯碼工作。所有模塊均在Verilog HDL語言的有限狀態機(FSM)控制下運行。

          4 總結

          FPGA的智能卡提供了一種新的身份認證方式,本文作者創新點如下:

          (1) 了一種FPGA的身份認證智能卡。身份信息加密運算均在智能卡內部完成,除加密結果外其他所有運算的中間狀態值均不會出現在計算機系統中,有效地提高了認證系統的安全性。

          (2) 利用Verilog HDL語言設計有限狀態機在FPGA中實現128 bit Rijndael算法。在系統時鐘頻率為50 MHz時測得智能卡加密速度達962.03 Mbits/s,在效率和速度上均優于軟件加密方式,并且可以方便地擴展到192 bit或256 bit密鑰,使用靈活。

          (3) 利用PCI 9054 實現FPGA與PCI總線之間的高速數據傳輸,降低了PCI接口設計的復雜性,保證大量并發認證請求服務下系統的性能。

          在智能卡的身份認證系統中,認證方和被認證方均采用同樣硬件結構的身份認證智能卡[6],FLASH內部存放相同的一組密鑰,可以根據需要靈活地選擇密鑰。在需要多方進行身份認證的系統中,可以在FLASH內部同時存放多組密鑰,對于不同的認證操作選擇與之對應的加密密鑰,利用一塊智能卡完成多方身份認證,具有廣闊的應用前景?;贔PGA的身份認證智能卡已在物流防偽系統中得到了應用,測試結果表明,該身份認證智能卡安全、可靠、高效。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绥棱县| 襄汾县| 中西区| 海林市| 定南县| 宣汉县| 大连市| 汝州市| 达孜县| 墨脱县| 隆尧县| 涿州市| 张家川| 泽库县| 墨竹工卡县| 土默特左旗| 无为县| 太康县| 灌云县| 阿克| 南充市| 南安市| 安国市| 和平县| 青浦区| 陕西省| 高淳县| 潞西市| 深泽县| 鹿邑县| 乌鲁木齐县| 东兴市| 灯塔市| 安义县| 宝鸡市| 大姚县| 横山县| 贡嘎县| 乌苏市| 岚皋县| 中江县|