<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

作者: 時(shí)間:2011-11-02 來(lái)源:網(wǎng)絡(luò ) 收藏
軟件結構#e#

本文引用地址:http://dyxdggzs.com/article/150081.htm

  3 軟件結構

  的軟件結構主要包括頂層系統應用程序、PCI接口驅動(dòng)程序和內部加密算法模塊三部份。其結構如圖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 加密模塊

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

FPGA內部模塊結構如圖

  認證方提供的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的身份認證智能卡已在物流防偽系統中得到了應用,測試結果表明,該身份認證智能卡安全、可靠、高效。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 設計 智能卡 身份認證 FPGA 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>