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

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



3.2 3DES輸入輸出模塊設(shè)計(jì)
  輸入輸出模塊主要為密碼運(yùn)算模塊提供密鑰、數(shù)據(jù)以及命令信息的模塊?刂菩盘栔饕ǎ翰僮鲿r(shí)鐘CLK、系統(tǒng)初始化INIT、寫使能WEN、讀使能REN、運(yùn)算完畢READY、DIN[31:0]、數(shù)據(jù)輸入、數(shù)據(jù)輸出DOUT[31:0]、端口選擇A[2:0]。當(dāng)INIT=1時(shí),將3DES模塊內(nèi)部所有寄存器復(fù)位并清零;當(dāng)A[2:0]=010, WEN=1時(shí),在CLK時(shí)鐘上升沿,將命令字由32位數(shù)據(jù)總線寫入芯片內(nèi)部命令寄存器;當(dāng)A[2:0]=001,WEN=1時(shí),在CLK時(shí)鐘上升沿,將128位的密鑰分四次由32-bit數(shù)據(jù)總線寫入芯片內(nèi)部密鑰寄存器;當(dāng)A[2:0]=000,WEN=1時(shí),在CLK時(shí)鐘上升沿將64位的數(shù)據(jù)分兩次由32位數(shù)據(jù)總線寫入芯片內(nèi)部輸入數(shù)據(jù)寄存器;每寫夠2個(gè)長字,3DES模塊開始運(yùn)算,運(yùn)算完畢后,READY變?yōu)楦唠娖剑敵鰯?shù)據(jù)分為兩組分別送入temporary_l和temporary_2兩個(gè)寄存器。3DES Quartus仿真波形如圖4所示。




4 密碼服務(wù)的PCI傳輸控制
  完成了密碼算法模塊后,還要設(shè)計(jì)一個(gè)接口控制模塊,將其連接到PCI接口模塊,以實(shí)現(xiàn)密碼模塊與PCI主機(jī)的通信連接。下面以3DES密碼模塊為例,介紹面向PCI傳輸?shù)拿艽a算法接口控制模塊的設(shè)計(jì)。圖5為該模塊的設(shè)計(jì)框圖,在PC機(jī)與加密卡的通信過程中,驅(qū)動(dòng)程序先將數(shù)據(jù)按32bit分組送入PCI中指定的IO存儲器地址中。一次加密服務(wù)流程如下:數(shù)據(jù)首先進(jìn)入輸入緩存模塊,分別將3DES密鑰Key1、Key2送入I/O地址70h,74h,78h,7ch;數(shù)據(jù)送入80h,84h;命令送入88h。待數(shù)據(jù)傳輸完畢,由驅(qū)動(dòng)程序向密碼算法模塊發(fā)送啟動(dòng)信號,在計(jì)數(shù)器模塊的控制下,命令、IV向量、密鑰、數(shù)據(jù)由緩存模塊依次進(jìn)入密碼運(yùn)算模塊;密碼運(yùn)算完畢后向PCI模塊發(fā)送ready信號,并把數(shù)據(jù)處理結(jié)果放入輸出緩存地址9ch和a0h中,驅(qū)動(dòng)程序在檢測的ready信號為高時(shí)從輸出緩存地址取走數(shù)據(jù)。




5 加密卡驅(qū)動(dòng)程序設(shè)計(jì)及系統(tǒng)測試
  PCI加密卡為主機(jī)提供加/解密服務(wù),并為應(yīng)用軟件提供相應(yīng)的軟件接口,主要包括用Visual C++開發(fā)的WDM驅(qū)動(dòng)程序和應(yīng)用程序編程接口函數(shù)庫兩個(gè)部分[4]。在Windows2000系統(tǒng)中可以使用多種驅(qū)動(dòng)程序,如虛擬設(shè)備驅(qū)動(dòng)程序(VDD)和內(nèi)核模式驅(qū)動(dòng)程序。其中,WDM驅(qū)動(dòng)程序是一種PnP驅(qū)動(dòng)程序,它遵循Windows2000即插即用協(xié)議的內(nèi)核模式驅(qū)動(dòng)程序,同時(shí)還遵循電源管理協(xié)議,并能在Windows98、Windows2000和Windows XP間實(shí)現(xiàn)源代碼級兼容。
  應(yīng)用程序與WDM通信時(shí),應(yīng)用程序先調(diào)用CreateFile函數(shù)打開設(shè)備,然后調(diào)用DeviceIoControl與WDM進(jìn)行數(shù)據(jù)通信,最后用CloseHandle關(guān)閉設(shè)備。主機(jī)應(yīng)用程序用Visual C++開發(fā)生成,主要包括系統(tǒng)的用戶界面設(shè)計(jì)、用于輸入用戶數(shù)據(jù)、顯示運(yùn)算后的結(jié)果數(shù)據(jù)、調(diào)用驅(qū)動(dòng)程序?qū)崿F(xiàn)某種功能。驅(qū)動(dòng)程序與應(yīng)用程序之間的通信分為同步方式和異步方式。若采用同步方式,則應(yīng)用程序調(diào)用DeviceIoControl函數(shù)時(shí)將被阻塞,等待PCI設(shè)備進(jìn)行數(shù)據(jù)處理,完成相應(yīng)操作,直到驅(qū)動(dòng)程序給應(yīng)用程序返回值后,應(yīng)用程序才會接著運(yùn)行。若采用異步方式,則應(yīng)用程序調(diào)用DeviceIoControl函數(shù)將立刻返回,不等待驅(qū)動(dòng)程序?qū)?shù)據(jù)的操作。這樣,如果在應(yīng)用程序退出之前,驅(qū)動(dòng)程序還沒完成I/O操作,就需要編寫超時(shí)取消I/O操作的代碼,確保在應(yīng)用程序退出之后正常關(guān)閉設(shè)備。異步方式相對比較復(fù)雜,考慮到設(shè)計(jì)中算法對時(shí)序要求高,所以本設(shè)計(jì)選擇同步方式實(shí)現(xiàn)計(jì)算機(jī)與PCI設(shè)備之間的通信。
  3DES加密算法和驅(qū)動(dòng)程序全部完成后,為了對整個(gè)加密卡的功能進(jìn)行驗(yàn)證,開發(fā)了一個(gè)文件加密服務(wù)程序?qū)用芸ㄟM(jìn)行測試。測試過程如下:
  第一步,系統(tǒng)安裝及初始化。首先將加密卡插入到PCI插槽中,將硬件設(shè)計(jì)下載到FPGA配置芯片后,重新上電,裝載驅(qū)動(dòng)程序,最后,啟動(dòng)應(yīng)用程序開始整個(gè)加密卡的測試工作。
  第二步,加密功能測試。輸入3DES的兩個(gè)加密初始密鑰Key1、Key2,選擇一個(gè)事先編輯的文本文件Plain.txt為待加密的明文數(shù)據(jù)。模式選擇為加密的情況下,所得密文數(shù)據(jù)輸出到Cipher.txt文件中。
  第三步,解密功能測試。為了便于比較,仍然選用Key1、Key2為3DES的兩個(gè)解密初始密鑰。導(dǎo)入Cipher.txt作為待解密的密文數(shù)據(jù),在模式選擇為解密的情況下,所得明文數(shù)據(jù)導(dǎo)出在Plain1.txt文件中。經(jīng)過比較,Plain.txt和Plain1.txt完全一致。
  上述測試結(jié)果表明,加密卡驅(qū)動(dòng)程序、PCI接口IP核能夠正確將應(yīng)用程序提供的數(shù)據(jù)傳輸給密碼算法模塊,密碼算法模塊正確完成加解密操作后,數(shù)據(jù)能正確通過PCI接口IP核、驅(qū)動(dòng)程序傳輸?shù)綉?yīng)用程序,即加密卡設(shè)計(jì)實(shí)現(xiàn)了預(yù)定的功能。下一步還要對系統(tǒng)的性能進(jìn)行測試,優(yōu)化系統(tǒng)結(jié)構(gòu)提高系統(tǒng)的性能。
  本文討論一個(gè)基于FPGA實(shí)現(xiàn)的PCI加密卡的設(shè)計(jì)與實(shí)現(xiàn)過程,以3DES算法為例重點(diǎn)討論了密碼算法及其與PCI接口模塊之間的數(shù)據(jù)傳輸實(shí)現(xiàn)方法,對包括驅(qū)動(dòng)程序在內(nèi)的加密卡進(jìn)行了功能測試。作為一個(gè)功能完善的加密卡,要為PC機(jī)提供數(shù)據(jù)加密、數(shù)據(jù)完整性、訪問控制等服務(wù),除了提供3DES加密算法以外,還需要支持AES等加密強(qiáng)度更高的對稱密碼算法、非對稱算法、散列算法、簽名驗(yàn)證算法等,這也是下一步要做的主(接上頁)
要工作。
參考文獻(xiàn)
[1] 成都天融信網(wǎng)絡(luò)安全技術(shù)有限公司.PCI加密卡[EB/OL].http://www.westsec.com.cn,2006.
[2] 劉建中,李清寶.基子PCI總線加密卡硬件設(shè)計(jì).電子技術(shù)應(yīng)用[J],2004,30(1):7-9.
[3] 劉紅,李勃,常青,等.基于IP核的PCI總線接口設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2006,32(6):6-9.
[4] 杜欣,馬秦生.PCI傳輸卡的WDM驅(qū)動(dòng)程序設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2003,29(12):22-24.

[1]



  • 上一篇: 基于CPLD控制的直流固態(tài)功率控制器的設(shè)計(jì)
  • 下一篇: 基于DSP和ST7920的液晶顯示模塊的實(shí)現(xiàn)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(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ī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

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

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