自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
一種基于FPGA的PCI加密卡設(shè)計(jì)
一種基于FPGA的PCI加密卡設(shè)計(jì)
 更新時(shí)間:2008-8-3 16:35:48  點(diǎn)擊數(shù):18
【字體: 字體顏色


    摘 要: 利用FPGA設(shè)計(jì)實(shí)現(xiàn)了一種基于PCI總線接口的純硬件加密卡,為PC機(jī)提供加密、簽名等服務(wù)。對(duì)采用VHDL描述的PCI接口IP軟核及其應(yīng)用方法進(jìn)行了分析;采用VHDL設(shè)計(jì)了3DES、MD5等算法模塊,并設(shè)計(jì)了其與PCI接口IP核之間的通信控制模塊;利用Quartus II進(jìn)行仿真、綜合后,下載到加密卡上的FPGA配置芯片,將上述各個(gè)模塊集成在一片F(xiàn)PGA上予以實(shí)現(xiàn);最后,采用VC++為加密卡設(shè)計(jì)了驅(qū)動(dòng)程序和測(cè)試程序,并對(duì)整個(gè)加密卡工作進(jìn)行了功能測(cè)試。
關(guān)鍵詞: PCI總線 3DES算法 FPGA


  PCI加密卡是基于加解密芯片和PCI總線卡技術(shù)實(shí)現(xiàn)的安全保密設(shè)備,為計(jì)算機(jī)提供數(shù)據(jù)加密、數(shù)據(jù)完整性、數(shù)字簽名、訪問(wèn)控制等安全功能,可用于計(jì)算機(jī)文件保護(hù)、電子郵件系統(tǒng)安全保密、辦公自動(dòng)化安全保密、數(shù)據(jù)庫(kù)保護(hù)、網(wǎng)絡(luò)加密等。主要用于帶PCI插槽的臺(tái)式PC機(jī)和工作站, 在防火墻、VPN加密機(jī)等方面具有極為廣泛的應(yīng)用前景[1][2]
  PCI加密卡的數(shù)據(jù)加密分為軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)兩種方式,軟件實(shí)現(xiàn)是指在PCI配置嵌入式微處理器或DSP芯片實(shí)現(xiàn)加密算法;硬件實(shí)現(xiàn)是指采用密碼算法芯片實(shí)現(xiàn)加/解密、簽名算法,具有處理速度快,安全性好的特點(diǎn)。在上述硬件實(shí)現(xiàn)中,PCI總線接口可以采用專門(mén)的接口芯片,例如PCI9054實(shí)現(xiàn);也可以采用PCI接口IP核在密碼專用芯片中實(shí)現(xiàn)。本文采用一片Altera的Cyclone 系列FPGA實(shí)現(xiàn)了加解密算法和PCI接口,并為加密卡開(kāi)發(fā)了WDM驅(qū)動(dòng)程序,設(shè)計(jì)了一個(gè)能為PC機(jī)提供數(shù)據(jù)加密、數(shù)據(jù)完整性、訪問(wèn)控制等安全功能的PCI加密卡。
1 系統(tǒng)硬件架構(gòu)設(shè)計(jì)
  整個(gè)PCI加密卡硬件以一片F(xiàn)PGA為中心,配以FPGA配置芯片、時(shí)鐘等模塊構(gòu)成。PCI接口、3DES、MD5算法等全部在FPGA內(nèi)部實(shí)現(xiàn)。整個(gè)加密卡的硬件結(jié)構(gòu)如圖1所示,系統(tǒng)主要設(shè)計(jì)任務(wù)在FPGA內(nèi)部的邏輯功能完成,包括:PCI接口模塊、控制模塊、輸入輸出緩存模塊和數(shù)據(jù)加密模塊。PCI接口模塊由IP軟核實(shí)現(xiàn),主要功能是控制和實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸;控制模塊主要控制PCI接口與數(shù)據(jù)加密模塊之間的數(shù)據(jù)傳輸;輸入輸出緩存模塊主要用于寄存由PCI接口模塊輸入后等待處理的數(shù)據(jù),以及系統(tǒng)內(nèi)部運(yùn)算后等待輸出的數(shù)據(jù)結(jié)果;數(shù)據(jù)加密模塊主要包含硬件實(shí)現(xiàn)后的加密算法,用于對(duì)輸入的數(shù)據(jù)進(jìn)行加解密運(yùn)算。




  在各個(gè)主要模塊中,密碼運(yùn)算模塊的速度將直接影響到整個(gè)加密系統(tǒng)的工作效率。此外,由于控制模塊的主要功能是控制輸入輸出緩存中的數(shù)據(jù)依次進(jìn)入加密模塊,同時(shí),根據(jù)加密模塊反饋的狀態(tài)信息發(fā)出相應(yīng)的控制信息,所以,控制模塊的設(shè)計(jì)在整個(gè)加密設(shè)備的設(shè)計(jì)實(shí)現(xiàn)中十分重要。
2 PCI接口IP核及其應(yīng)用方法
  PCI總線接口有兩種設(shè)計(jì)方案,一是采用專門(mén)的PCI接口芯片(例如PCI9054或PCI9052)實(shí)現(xiàn),二是采用PCI接口IP核在密碼專用芯片中實(shí)現(xiàn)[3]。本加密卡采用第二種方案,由VHDL描述的軟核下載到FPGA中實(shí)現(xiàn)。該P(yáng)CI接口IP核符合標(biāo)準(zhǔn)的PCI2.2協(xié)議,支持I/O操作、配置讀、寫(xiě)操作、總線BUS_MASTER讀、BUS_MASTER寫(xiě)以及DMA中斷方式和DMA數(shù)據(jù)傳輸方式。該IP核設(shè)計(jì)主要采用有限狀態(tài)機(jī)實(shí)現(xiàn),包括中斷應(yīng)答、突發(fā)讀操作、突發(fā)寫(xiě)操作、配置讀操作、配置寫(xiě)操作、I/O讀寫(xiě)傳輸、存儲(chǔ)器讀寫(xiě)傳輸7個(gè)狀態(tài)機(jī)組成。其工作流程如圖2所示。收到幀開(kāi)始信號(hào)(#FRAM信號(hào)為低)后,根據(jù)PCI總線C/BE[3..0]上的命令,分別進(jìn)入7個(gè)狀態(tài)機(jī)中的一個(gè)。操作結(jié)束后,主機(jī)發(fā)出幀結(jié)束信號(hào)(#FRAM為信號(hào)低),進(jìn)入等待狀態(tài),進(jìn)入下個(gè)操作。




  利用該P(yáng)CI接口IP核完成加密卡設(shè)計(jì),必須先確定數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方式。該P(yáng)CI接口IP核支持兩個(gè)256K字節(jié)的I/O空間;支持一個(gè)4M字節(jié)的PCI內(nèi)存空間。在PCI的數(shù)據(jù)傳輸中,主要依靠I/O讀、I/O寫(xiě)、存儲(chǔ)器讀、存儲(chǔ)器寫(xiě)等操作完成數(shù)據(jù)傳輸。I/O讀、寫(xiě)命令用來(lái)從一個(gè)映射到I/O地址空間的設(shè)備中讀、寫(xiě)數(shù)據(jù)。存儲(chǔ)器讀、寫(xiě)命令用來(lái)從一個(gè)映射到存儲(chǔ)器地址空間的設(shè)備讀、寫(xiě)數(shù)據(jù)。在加密卡初期設(shè)計(jì)中,數(shù)據(jù)都被映射到I/O地址空間進(jìn)行操作。系統(tǒng)工作的基本過(guò)程如下:數(shù)據(jù)從PC機(jī)進(jìn)入PCI接口模塊,先存入PCI接口模塊中指定的I/O存儲(chǔ)單元中;在控制模塊的控制下,依次進(jìn)入密碼算法模塊,數(shù)據(jù)經(jīng)過(guò)處理后輸出到輸出緩存之中,由驅(qū)動(dòng)程序?qū)⑦\(yùn)算結(jié)果傳輸給應(yīng)用程序。
  確定了數(shù)據(jù)傳輸方式后,下一步的工作是完成加密算法模塊設(shè)計(jì),并設(shè)計(jì)適當(dāng)?shù)慕涌诳刂颇K,按照事先確定的數(shù)據(jù)傳輸方式將其連接到PCI接口模塊。
3 密碼算法模塊設(shè)計(jì)
  密碼算法模塊是整個(gè)加密卡設(shè)計(jì)的核心,其設(shè)計(jì)的優(yōu)劣直接關(guān)系到加密卡的性能和安全性。下面以3DES算法為例,介紹密碼算法模塊的設(shè)計(jì)方法。
3.1 3DES算法模塊設(shè)計(jì)
  本設(shè)計(jì)采用兩個(gè)密鑰的3DES,該加密方案使用兩個(gè)不同的密鑰Key1和Key2對(duì)明文進(jìn)行三次DES或DES-1變換,加密函數(shù)采用加密-脫密-加密序列:
  
  兩個(gè)密鑰的三重DES的有效密鑰長(zhǎng)度是112位。在本設(shè)計(jì)中采用了密碼分組鏈接方式(CBC)。在這種方案中,加密算法的輸入是當(dāng)前的明文分組和前邊的密文分組的異或,對(duì)每個(gè)分組使用相同的密鑰。從效果上看,將明文分組序列的處理連接起來(lái)了。每個(gè)明文分組的加密函數(shù)的輸入與明文分組之間不再有固定的關(guān)系,因此,64bit的重復(fù)模式不再會(huì)暴露。
  3DES密碼硬件模塊為控制模塊和數(shù)據(jù)路徑設(shè)計(jì)兩部分?刂颇K產(chǎn)生數(shù)據(jù)通路需要的控制信號(hào)序列,保證數(shù)據(jù)處理單元正確有序地工作。數(shù)據(jù)路徑用來(lái)實(shí)現(xiàn)信息傳送和密碼變換的數(shù)據(jù)處理單元。3DES算法設(shè)計(jì)采用迭代結(jié)構(gòu),由初始置換電路IP、多路選擇電路L_MUX和R_MUX、32-bit L鎖存器、32-bit R鎖存器、擴(kuò)展置換E處理電路、S盒數(shù)據(jù)代替電路、P盒置換電路及末置換IP-1電路構(gòu)成。其運(yùn)算電路如圖3所示。


  • 上一篇: 基于CPLD控制的直流固態(tài)功率控制器的設(shè)計(jì)
  • 下一篇: 基于DSP和ST7920的液晶顯示模塊的實(shí)現(xiàn)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1