<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è) > 嵌入式系統 > 設計應用 > 基于PCI總線(xiàn)加密卡硬件設計

基于PCI總線(xiàn)加密卡硬件設計

作者: 時(shí)間:2012-04-14 來(lái)源:網(wǎng)絡(luò ) 收藏

PCI是基于加解密芯片和卡技術(shù)實(shí)現的安全保密設備,為計算機提供數據加密、數據完整性、數字簽名、訪(fǎng)問(wèn)控制等安全功能,可用于計算機文件保護、電子郵件系統安全保密、辦公自動(dòng)化安全保密、數據庫保護、網(wǎng)絡(luò )加密等。主要用于帶PCI插槽的臺式PC機和工作站, 在防火墻、VPN加密機等方面具有極為廣泛的應用前景[1][2]。

PCI的數據加密分為軟件實(shí)現和硬件實(shí)現兩種方式,軟件實(shí)現是指在PCI配置嵌入式微處理器或DSP芯片實(shí)現加密算法;硬件實(shí)現是指采用密碼算法芯片實(shí)現加/解密、簽名算法,具有處理速度快,安全性好的特點(diǎn)。在上述硬件實(shí)現中,接口可以采用專(zhuān)門(mén)的接口芯片,例如PCI9054實(shí)現;也可以采用PCI接口IP核在密碼專(zhuān)用芯片中實(shí)現。本文采用一片Altera的Cyclone 系列FPGA實(shí)現了加解密算法和PCI接口,并為開(kāi)發(fā)了WDM驅動(dòng)程序,設計了一個(gè)能為PC機提供數據加密、數據完整性、訪(fǎng)問(wèn)控制等安全功能的PCI加密卡。

1 系統硬件架構設計

整個(gè)PCI加密卡硬件以一片FPGA為中心,配以FPGA配置芯片、時(shí)鐘等模塊構成。PCI接口、3DES、MD5算法等全部在FPGA內部實(shí)現。整個(gè)加密卡的硬件結構如圖1所示,系統主要設計任務(wù)在FPGA內部的邏輯功能完成,包括:PCI接口模塊、控制模塊、輸入輸出緩存模塊和數據加密模塊。PCI接口模塊由IP軟核實(shí)現,主要功能是控制和實(shí)現數據的雙向傳輸;控制模塊主要控制PCI接口與數據加密模塊之間的數據傳輸;輸入輸出緩存模塊主要用于寄存由PCI接口模塊輸入后等待處理的數據,以及系統內部運算后等待輸出的數據結果;數據加密模塊主要包含硬件實(shí)現后的加密算法,用于對輸入的數據進(jìn)行加解密運算。


  在各個(gè)主要模塊中,密碼運算模塊的速度將直接影響到整個(gè)加密系統的工作效率。此外,由于控制模塊的主要功能是控制輸入輸出緩存中的數據依次進(jìn)入加密模塊,同時(shí),根據加密模塊反饋的狀態(tài)信息發(fā)出相應的控制信息,所以,控制模塊的設計在整個(gè)加密設備的設計實(shí)現中十分重要。

  2 PCI接口IP核及其應用方法


  接口有兩種設計方案,一是采用專(zhuān)門(mén)的PCI接口芯片(例如PCI9054或)實(shí)現,二是采用PCI接口IP核在密碼專(zhuān)用芯片中實(shí)現[3]。本加密卡采用第二種方案,由VHDL描述的軟核下載到FPGA中實(shí)現。該PCI接口IP核符合標準的PCI2.2協(xié)議,支持I/O操作、配置讀、寫(xiě)操作、總線(xiàn)BUS_MASTER讀、BUS_MASTER寫(xiě)以及DMA中斷方式和DMA數據傳輸方式。該IP核設計主要采用有限狀態(tài)機實(shí)現,包括中斷應答、突發(fā)讀操作、突發(fā)寫(xiě)操作、配置讀操作、配置寫(xiě)操作、I/O讀寫(xiě)傳輸、存儲器讀寫(xiě)傳輸7個(gè)狀態(tài)機組成。其工作流程如圖2所示。收到幀開(kāi)始信號(#FRAM信號為低)后,根據PCI總線(xiàn)C/BE[3..0]上的命令,分別進(jìn)入7個(gè)狀態(tài)機中的一個(gè)。操作結束后,主機發(fā)出幀結束信號(#FRAM為信號低),進(jìn)入等待狀態(tài),進(jìn)入下個(gè)操作。


  利用該PCI接口IP核完成加密卡設計,必須先確定數據傳輸的實(shí)現方式。該PCI接口IP核支持兩個(gè)256K字節的I/O空間;支持一個(gè)4M字節的PCI內存空間。在PCI的數據傳輸中,主要依靠I/O讀、I/O寫(xiě)、存儲器讀、存儲器寫(xiě)等操作完成數據傳輸。I/O讀、寫(xiě)命令用來(lái)從一個(gè)映射到I/O地址空間的設備中讀、寫(xiě)數據。存儲器讀、寫(xiě)命令用來(lái)從一個(gè)映射到存儲器地址空間的設備讀、寫(xiě)數據。在加密卡初期設計中,數據都被映射到I/O地址空間進(jìn)行操作。系統工作的基本過(guò)程如下:數據從PC機進(jìn)入PCI接口模塊,先存入PCI接口模塊中指定的I/O存儲單元中;在控制模塊的控制下,依次進(jìn)入密碼算法模塊,數據經(jīng)過(guò)處理后輸出到輸出緩存之中,由驅動(dòng)程序將運算結果傳輸給應用程序。

  確定了數據傳輸方式后,下一步的工作是完成加密算法模塊設計,并設計適當的接口控制模塊,按照事先確定的數據傳輸方式將其連接到PCI接口模塊。

  3 密碼算法模塊設計

  密碼算法模塊是整個(gè)加密卡設計的核心,其設計的優(yōu)劣直接關(guān)系到加密卡的性能和安全性。下面以3DES算法為例,介紹密碼算法模塊的設計方法。


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

關(guān)鍵詞: PCI總線(xiàn) 加密卡 PCI9052

評論


相關(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>