當(dāng)前位置:首頁 > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]摘要:提出一種基于FPGA的PCI硬件加解密卡的設(shè)計(jì)方案,用硬件加解密取代了傳統(tǒng)的軟件加解密,將加解密模塊和PCI接口模塊集成在一個(gè)FPGA芯片內(nèi)實(shí)現(xiàn)。分析了PCI加解密卡的軟硬件的結(jié)構(gòu)和原理,詳細(xì)介紹了DESX加解密算法

摘要:提出一種基于FPGAPCI硬件加解密卡的設(shè)計(jì)方案,用硬件加解密取代了傳統(tǒng)的軟件加解密,將加解密模塊和PCI接口模塊集成在一個(gè)FPGA芯片內(nèi)實(shí)現(xiàn)。分析了PCI加解密卡的軟硬件的結(jié)構(gòu)和原理,詳細(xì)介紹了DESX加解密算法的原理、步驟和硬件實(shí)現(xiàn)、PCI接口模塊的IP核設(shè)計(jì)以及USB接口模塊的電路連接。系統(tǒng)硬件以FPGA為核心,使用QuartusII7.2軟件和VHDL語言設(shè)計(jì),軟件由DriverStudio2.7和VisualC++6-.0設(shè)計(jì)。采用192位密鑰的DESX分組對(duì)稱加解密算法來取代64位DES算法,密文和密鑰在專用硬件中存儲(chǔ),計(jì)算機(jī)內(nèi)只有明文,有效防止黑客攻擊,保護(hù)數(shù)據(jù)安全。設(shè)計(jì)采用邏輯綜合式取代時(shí)鐘驅(qū)動(dòng)級(jí)聯(lián)式來實(shí)現(xiàn)DESX算法,使加密一組數(shù)據(jù)的時(shí)間由16
個(gè)周期縮短為1個(gè)周期。
關(guān)鍵詞:DESX算法;硬件加解密;FPGA;PCI;USB

    數(shù)據(jù)加解密分為軟件加解密和硬件加解密兩種。目前,采用軟件加解密的方法對(duì)數(shù)據(jù)進(jìn)行加解密較為普遍,原因是軟件加解密方法實(shí)現(xiàn)起來較為簡(jiǎn)單和經(jīng)濟(jì),但其弱點(diǎn)是軟件加解密的明文、密文和密鑰都需要在計(jì)算機(jī)內(nèi)存儲(chǔ),容易被竊取、攻擊和破譯,難以應(yīng)用到需要高級(jí)保密的商業(yè)機(jī)密和軍事機(jī)密中。硬件加解密可以較好解決軟件加解密的不足。硬件加解密的密文和密鑰可以在專用硬件中存儲(chǔ),計(jì)算機(jī)內(nèi)只有明文,而且硬件加解密基于硬件層處理,CPU不參與加解密的執(zhí)行過程,不會(huì)占用系統(tǒng)資源。因此使用硬件加解密方法,更為安全可靠,是保證數(shù)據(jù)安全的根本方法,適用于軍事機(jī)密和高級(jí)商業(yè)機(jī)密。
    但同時(shí)硬件加解密實(shí)現(xiàn)起來較為困難,主要表現(xiàn)在其較高的生產(chǎn)成本、加解密的硬件實(shí)現(xiàn)、加解密速度的提高。以及在調(diào)試時(shí)不易做分級(jí)驗(yàn)證等。另外,在本PCI加解密卡的接口模塊設(shè)計(jì)中用到了復(fù)雜的USB、PCI協(xié)議,增加了開發(fā)的難度。

1 設(shè)計(jì)思想
    PCI硬件加解密卡是基于加解密器件和PCI總線技術(shù)的安全保密設(shè)備,為重要的計(jì)算機(jī)信息提供加密、解密、存儲(chǔ)和分發(fā)的功能,有效防止機(jī)密信息的截獲和破譯,可以應(yīng)用在需要高級(jí)保密級(jí)別的商業(yè)和軍事領(lǐng)域。系統(tǒng)采用硬件加密方式對(duì)數(shù)據(jù)進(jìn)行加密存儲(chǔ)和解密讀取。加解密過程在專用硬件中進(jìn)行,加密強(qiáng)度較高。系統(tǒng)最大特點(diǎn)是密鑰和密文均不在計(jì)算機(jī)中存儲(chǔ),而是存儲(chǔ)在專用硬件中,計(jì)算機(jī)中只存有明文,可有效防止竊取、攻擊和破譯。
    加密操作時(shí),PC機(jī)的明文數(shù)據(jù)通過PCI接口傳輸?shù)紽PGA內(nèi)的加解密模塊進(jìn)行硬件加密,加密后的密文通過USB接口送到密文載體中存儲(chǔ)和分發(fā)。解密操作時(shí),數(shù)據(jù)的傳輸過程相反。加解密算法采用DESX分組對(duì)稱密鑰加密算法.密鑰為192位二進(jìn)制數(shù),與傳統(tǒng)的DES相比,更為安全、可靠。密鑰存儲(chǔ)在PCI卡上的非易失存儲(chǔ)器(EEPROM)中,當(dāng)密鑰由于不再安全或者過期等原因需要更新時(shí),通過執(zhí)行相應(yīng)軟件來更新EEPROM上的密鑰信息,而不需要拆卸硬件。系統(tǒng)加密存儲(chǔ)和解密讀取的工作原理圖如圖l所示。

2 系統(tǒng)硬件結(jié)構(gòu)和實(shí)現(xiàn)
2.1 硬件結(jié)構(gòu)
    加解密卡為PC機(jī)PCI卡形式,通過PCI插槽與PC機(jī)相連,密文載體與PCI卡的USB接口相連。其硬件主要由三部分組成:加解密模塊、PCI接口模塊和USB接口模塊。其中,加解密模塊和PCI接口模塊在FPGA內(nèi)實(shí)現(xiàn),F(xiàn)PGA型號(hào)是EP1C12Q240C8,設(shè)計(jì)軟件為QuartusⅡ7.2,采用自頂向下(Top-Down)的實(shí)現(xiàn)方式,編輯語言為VHDL。
2.2 加解密算法的硬件實(shí)現(xiàn)
    硬件加解密是本系統(tǒng)的核心部分。DES算法在加解密和密鑰生成過程中全部使用邏輯運(yùn)算和查表運(yùn)算,F(xiàn)PGA在實(shí)現(xiàn)算法方面具有靈活性、物理安全性和比軟件更高的速度,而且可移植性好,便于升級(jí),因此FPGA已成為硬件實(shí)現(xiàn)DES算法的最佳選擇。
    DES算法的加密過程分為4步:初始置換、迭代過程、子密鑰生成和逆置換。DES算法16層加密變換框圖如圖2所示。


    若采用時(shí)鐘驅(qū)動(dòng)級(jí)聯(lián)式來實(shí)現(xiàn)DES算法,數(shù)據(jù)在時(shí)鐘的驅(qū)動(dòng)下從上一級(jí)的輸出送入下一級(jí)循環(huán)的輸入,那么對(duì)同一組數(shù)據(jù)完成加解密需要16輪時(shí)鐘循環(huán),至少需要16個(gè)時(shí)鐘周期才能完成,加解密時(shí)間長(zhǎng)。為了提高速度,采用了邏輯綜合式進(jìn)行DES設(shè)計(jì)。采用循環(huán)嵌套展開的方式完成16輪循環(huán)。利用編譯綜合器將16輪循環(huán)的整體邏輯結(jié)果用等效的邏輯電路來實(shí)現(xiàn),當(dāng)輸入數(shù)據(jù)和密鑰有效后,邏輯直接輸出16輪循環(huán)的邏輯結(jié)果,使加密一組數(shù)據(jù)的時(shí)間由16個(gè)周期縮短為1個(gè)周期,時(shí)間延遲僅僅取決于電路的邏輯延遲。這種方法的缺點(diǎn)是占用了較多的系統(tǒng)資源,而且開發(fā)過程中不易做分級(jí)驗(yàn)證。
    本系統(tǒng)使用的DESX算法是在DES基礎(chǔ)上改進(jìn)的加密算法。將DES的64位密鑰擴(kuò)展到192位,即使用3把64位的密鑰。KEYl、KEY2和KEY3對(duì)數(shù)據(jù)塊進(jìn)行3次加密,充分保證了數(shù)據(jù)的安全。DESX加密過程分為3個(gè)步驟:1)使用KEYl對(duì)數(shù)據(jù)塊做XOR運(yùn)算;2)使用KEY2對(duì)上一步的結(jié)果再做XOR運(yùn)算;3)使用KEY3對(duì)第二步的結(jié)果進(jìn)行DES加密從而得到密文。與DES和3DES相比,只做一次DES運(yùn)算。但密鑰長(zhǎng)度提高到192位,在保證安全性的前提下,最大限度提高了加解密的執(zhí)行效率。DESX的解密過程與加密過程相反,其加解密流程如圖3所示。圖4是對(duì)數(shù)據(jù)0x0123456789-ABCDEF進(jìn)行加密測(cè)試的仿真圖,其系統(tǒng)時(shí)鐘為50 MHz。


2.3 PCI接口模塊設(shè)計(jì)
    PCI接口模塊是PCI總線與加解密卡之間的轉(zhuǎn)換接口,也可認(rèn)為其主要功能是起一個(gè)橋梁作用,完成用戶設(shè)備與PCI總線之間的數(shù)據(jù)傳輸。從技術(shù)要求和成本方面考慮,以及本數(shù)據(jù)采集卡的特點(diǎn),可以將加解密模塊和PCI接口模塊在一個(gè)FPGA內(nèi)實(shí)現(xiàn),用戶可以按需要進(jìn)行配置,而且提高了系統(tǒng)集成度,可移植性好。
    PCI接口模塊采用自頂而下的設(shè)計(jì)方法,在數(shù)據(jù)流和控制流分析的基礎(chǔ)上,按照PCI接口的內(nèi)部邏輯功能及結(jié)構(gòu),分成幾個(gè)單獨(dú)的模塊,結(jié)構(gòu)清晰,便于單獨(dú)模塊的測(cè)試。在設(shè)計(jì)PCI接口模塊時(shí),需要考慮支持PCI總線協(xié)議中的有關(guān)內(nèi)容。PCI接口模塊可以只包含PCI-Slave(從PCI),也可以選擇同時(shí)包含PCI-Mater(主PCI)。其中,PCI-Slave是接口模塊必須的,PCI-Mater是可選的,但是如果實(shí)現(xiàn)PCI-Mater,則Arbiter(仲裁器)就是必須的。完整的PCI接口模塊電路如圖5所示。

    PCI接口模塊的核心設(shè)計(jì)分為時(shí)序控制和配置空間兩部分。時(shí)序控制部分保證了板卡能按正常的PCI時(shí)序工作,配置空間部分保證了PCI卡的即插即用功能。在時(shí)序控制程序中采用狀態(tài)機(jī)模型來實(shí)現(xiàn)不同時(shí)序的轉(zhuǎn)換,各種命令、數(shù)據(jù)交換、控制均在狀態(tài)機(jī)的管理下進(jìn)行工作。本設(shè)計(jì)中的狀態(tài)機(jī)主要由中斷應(yīng)答、突發(fā)讀操作、突發(fā)寫操作、配置讀操作、配置寫操作、I/O讀寫傳輸、存儲(chǔ)器讀寫傳輸?shù)?個(gè)部分組成,工作流程如圖6所示。


2.4 USB接口模塊設(shè)計(jì)
    本系統(tǒng)的USB選用CH375B,工作于USB-HOST主機(jī)方式,采用并行接口。在USB主機(jī)方式下,CH375B支持各種常用的USB全速設(shè)備,外部單片機(jī)需要編寫固件程序按照相應(yīng)的USB協(xié)議與USB設(shè)備通訊。USB接口模塊電路圖如圖7所示。


    CH375B并行接口信號(hào)線包括:8位雙向數(shù)據(jù)總線D7~DO、讀選通輸入引腳RD#、寫選通輸入引腳WR#、片選輸入引腳CS#、中斷輸出引腳INT#以及地址輸入引腳A0。CH375B的RD#和WR#可以分別連接到單片機(jī)的讀選通輸出引腳和寫選通輸出引腳,CS#由地址譯碼電路驅(qū)動(dòng),INT#輸出的中斷請(qǐng)求是低電平有效,可以連接到單片機(jī)的中斷輸入引腳,單片機(jī)使用中斷方式獲知中斷請(qǐng)求。當(dāng)WR#為高電平并且CS#和RD#及A0都為低電平時(shí),CH375B中的數(shù)據(jù)通過D7~DO輸出;當(dāng)RD#為高電平并且CS#和wR#以及A0都為低電平時(shí),D7~DO上的數(shù)據(jù)被寫入CH375B中;當(dāng)RD#為高電平并且CS#和WR#都為低電平而AO為高電平時(shí),D7~DO上的數(shù)據(jù)被作為命令碼寫入CH375B中。

3 軟件的設(shè)計(jì)與實(shí)現(xiàn)
    軟件主要分為驅(qū)動(dòng)程序和應(yīng)用程序兩部分,分別用DriverStudio和Visual C++開發(fā)。驅(qū)動(dòng)程序的設(shè)計(jì)關(guān)鍵是如何完成硬件操作?;竟δ馨ㄔO(shè)備的初始化、IO端口的讀寫操作、內(nèi)存讀寫操作、中斷的設(shè)置響應(yīng)和調(diào)用等部分。PCI卡插入主機(jī)時(shí),從設(shè)備中讀出產(chǎn)品ID(PlD)和廠商ID(VID),由這2個(gè)值來搜索匹配的inf文件,再由inf文件加載相應(yīng)的驅(qū)動(dòng)。應(yīng)用程序通過調(diào)用Win32 API函數(shù)CreatFile來打開設(shè)備,然后使用DeviceloControl與驅(qū)動(dòng)程序通信。在應(yīng)用程序退出前使用CloseHandle關(guān)閉設(shè)備。DeviceIoControl使用不同的IOCTL命令來調(diào)用驅(qū)動(dòng)程序完成不同的任務(wù)。

4 結(jié)束語
    經(jīng)測(cè)試,本PCI加解密卡數(shù)據(jù)加密存儲(chǔ)速度為612 KByte/s,解密讀取速度為630 KByte/s。FPGA使用情況:total logicelements 903l/12060(75%),total pin 84/173(49%)。在以后的設(shè)計(jì)中,應(yīng)重點(diǎn)解決系統(tǒng)加解密速度較慢的問題,另外,F(xiàn)PGA和USB的選型、加解密算法的優(yōu)化等有待改進(jìn)。
    本設(shè)計(jì)的創(chuàng)新點(diǎn)在于用硬件加解密方法取代了通常的軟件加解密方法,采用更為安全可靠的DESX算法來彌補(bǔ)DES算法的不足,使用了FPGA的IP軟核設(shè)計(jì)方法實(shí)現(xiàn)DESX加解密模塊和PCI接口模塊,提高了系統(tǒng)集成度,可移植性好,便于系統(tǒng)升級(jí)。在加解密速度方面,用邏輯綜合式取代時(shí)鐘驅(qū)動(dòng)級(jí)聯(lián)式,使加解密一組數(shù)據(jù)的時(shí)間由16個(gè)周期縮短為1個(gè)周期。本系統(tǒng)在需要高級(jí)保密的商業(yè)和軍事領(lǐng)域,有著較好的應(yīng)用前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉