《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的可加密USB存儲設備設計
基于FPGA的可加密USB存儲設備設計
王 鵬1, 呂志剛1, 黃 健2
1. 西安工業(yè)大學 電子信息工程學院信息通信系, 陜西 西安710032;2. 西安科技大學 通信學
摘要: 基于FPGA的可加密USB存儲設備的設計過程,介紹了FPGA芯片EP1C3T100、USB接口芯片AU6983等各個模塊的功能及硬件電路設計。對AES加密算法作了詳細說明,并對硬件FPGA實現(xiàn)進行了設計和優(yōu)化。該設備由FPGA芯片通過硬件來完成數(shù)據(jù)加密過程,由高速傳輸總線進行數(shù)據(jù)傳輸。具有實時性好、安全性高等優(yōu)點。
Abstract:
Key words :

摘  要:  基于FPGA的可加密USB存儲設備的設計過程,介紹了FPGA芯片EP1C3T100USB接口芯片AU6983等各個模塊的功能及硬件電路設計。對AES加密算法作了詳細說明,并對硬件FPGA實現(xiàn)進行了設計和優(yōu)化。該設備由FPGA芯片通過硬件來完成數(shù)據(jù)加密過程,由高速傳輸總線進行數(shù)據(jù)傳輸。具有實時性好、安全性高等優(yōu)點。
關鍵詞: FPGA; USB接口; AES算法; 數(shù)據(jù)加密

    USB移動存儲設備,由于其容量大、使用方便等優(yōu)點得到廣泛的應用。但隨著電子資料和電子信息的不斷增多,USB移動存儲設備的使用可能會造成存儲的重要信息或私密文件被竊取,使個人資料的存儲變得越來越不安全,導致頻繁出現(xiàn)無法挽回的損失和不堪設想的后果。而加密 USB存儲設備的出現(xiàn)則可以有效防止個人或企業(yè)數(shù)據(jù)經(jīng)由U盤泄露。
    雖然現(xiàn)在很多廠商推出的各種U盤產(chǎn)品均提供了加密功能以提高數(shù)據(jù)的安全性,但很多均停留于軟件加密層面,不僅需要另外安裝軟件,而且數(shù)據(jù)安全性也打了折扣,在某程度上仍不能防范數(shù)據(jù)被盜竊。本文選擇FPGA芯片對U盤進行硬件加密[1]。
1 系統(tǒng)設計
1.1 系統(tǒng)組成

   系統(tǒng)主要由兩部分組成:PC機與USB存儲設備。USB存儲設備由USB接口芯片、FPGA芯片、Flash芯片、電源電路組成。系統(tǒng)原理框圖如圖1所示。


1.2 系統(tǒng)工作原理
    基于FPGA的加密USB存儲設備,在Flash與USB接口芯片之間加1個FPGA芯片用于各種加密算法的實現(xiàn),通過FPGA將存入Flash中的數(shù)據(jù)進行加密、解密。將主設備上需要加密的數(shù)據(jù)通過USB接口發(fā)送到FPGA加密芯片,加密芯片根據(jù)控制信號的信息分析出應該采用何種加密算法,加密數(shù)據(jù)產(chǎn)生后,給出標志信號,然后輸出加密好的數(shù)據(jù)。
    FPGA芯片是系統(tǒng)的核心,主要實現(xiàn)3個主要功能:
    (1)用于實現(xiàn)加密過程中的Flash讀寫時序控制,包括輸入的數(shù)據(jù)加密、加密算法的模式選擇等。
    (2)用于加密算法的實現(xiàn),需要加密的數(shù)據(jù)通過USB接口發(fā)送到FPGA芯片,F(xiàn)PGA芯片根據(jù)控制信號判讀是否需要對數(shù)據(jù)加密,如果需要加密則運行加密算法,加密數(shù)據(jù)產(chǎn)生后,輸出加密好的數(shù)據(jù),并且輸出標志信號。
    (3)實現(xiàn)與USB接口芯片進行數(shù)據(jù)通信。FPGA和USB之間的通信通過8 bit數(shù)據(jù)總線加上若干控制信號實現(xiàn),只要FPGA產(chǎn)生符合USB輸入/輸出時序的脈沖,即可實現(xiàn)兩者之間的通信[2-3]。
2 系統(tǒng)硬件設計
    設備的核心部分是FPGA芯片。加密、解密功能通過FPGA設計工具中硬件描述語言進行描述,在集成軟件環(huán)境下進行編譯、調(diào)試及綜合,使用專用下載電纜將程序代碼下載存儲在FPGA芯片中,一旦USB設備與PC機相連,F(xiàn)PGA芯片中的算法程序會對寫入Flash芯片中的數(shù)據(jù)進行加密或解密。
2.1  FPGA接口設計
    本設計中選用的FPGA芯片為EP1C3T100,其中為100個管腳封裝,I/O的電源為3.3 V,內(nèi)核電壓為1.5 V,只有1個鎖相環(huán)(PLL),2個專用全局時鐘輸入管腳CLK0、CLK1,5個雙重用途時鐘管腳DPCLK。所有管腳中有一些是專用配置管腳。其中,nCSO、DATA0、DCLK、ASDI是與配置芯片EPCS4相連的;TCK、TDO、TMS、TDI等管腳則與JTAG相連。
    FPGA 是SRAM型的可編程邏輯器件(不是ROM型可編程器件CPLD),通過JTAG就可以直接把代碼固化在片子里面。FPGA下載到片子中的代碼存放在RAM里,所以斷電后這些代碼即刻消失。由于可用來調(diào)試FPGA,所以能夠在系統(tǒng)運行時或系統(tǒng)運行之前的任意時刻內(nèi),為所有的輸入、輸出管腳更新I/O標準。在調(diào)試階段采用JTAG模式?;贘TAG下載模式的易失性,F(xiàn)PGA就需要非易失性存儲器用來存放代碼,每次上電后把代碼從配置芯片讀入FPGA 然后運行。本設計選用ALTERA公司配套的AS模式的配置存儲器EPCS4,成本比較低,并且很容易配置[4]。
2.2  Flash芯片接口設計
    本設計選用三星公司的NAND Flash芯片K9G8G08U0M,容量為1 GB。NAND Flash 的數(shù)據(jù)以bit 的方式保存在存儲單元,每頁2 KB+64 B,每128頁形成1個塊,1塊就是256 KB+8 KB。
2.3  USB接口設計
    本設計中USB接口芯片采用安國公司的AU6983,其芯片質(zhì)量和可靠性較高,該芯片最多可以接2片F(xiàn)lash芯片。接口電路如圖2所示。

2.4  電源電路設計
    USB接口提供5 V電源,F(xiàn)PGA的I/O電源是3.3 V,內(nèi)核的電壓是1.5 V。使用2個LDO,1個將5 V轉到3.3 V;另1個將3.3 V轉為1.5 V,加上一些濾波電容,板上的其他外設電源均是3.3 V。另外有3.3 V的電源指示燈,表示電源是否正常。另有防反插二極管,防止電源反插,對器件造成損壞。
    LT1086能更好地提供高效率1.5 A電流,其所有的內(nèi)部電路設計將輸入、輸出端之間的壓降控制在1 V左右,起到穩(wěn)壓作用。LT1587-1.5是1個低壓差三端穩(wěn)壓器,有固定的1.5 V的輸出電壓和3 A輸出電流的性能。
3 系統(tǒng)軟件設計
    各種功能通過在FPGA設計工具中用Verilog HDL語言進行描述,在集成軟件環(huán)境Quartus II中進行編譯、調(diào)試及綜合,使用專用下載電纜將程序代碼下載到FPGA芯片中。在系統(tǒng)工作前,先檢查設備是否連接好之后,開始FPGA芯片及配置芯片的初始化。根據(jù)用戶需要進行讀操作或寫操作,如果檢測到寫信號線有效時,則還需要判斷此時寫數(shù)據(jù)還是寫命令,如果是寫數(shù)據(jù),則啟動加密功能,并存入Flash;如果是寫命令,則不能啟動加密功能。如果檢測到讀信號線有效時,也需要判斷此時是讀數(shù)據(jù)還是讀命令或讀Flash的ID,如果是讀數(shù)據(jù),即啟動解密功能,并從Flash中讀出數(shù)據(jù);而是讀命令,則不能啟動解密功能。系統(tǒng)軟件流程圖如圖3所示。


    對于加密算法的選擇,目前常見的加密算法主要有DES和AES 2種。DES出現(xiàn)得比較早,資源豐富、算法成熟。但是AES作為新一代的數(shù)據(jù)加密標準,其安全性、效率明顯高于DES,同時由于AES算法的簡潔性,對內(nèi)存的需求非常低,使得它的實現(xiàn)更為容易。綜合各方面考慮,在本設計方案中采用AES算法[5-7]。
4  調(diào)試與仿真
    本文中的設計使用Verilog HDL語言進行功能仿真和功能驗證,利用Quartus II可以對源程序進行驗證和綜合。其加密程序的仿真結果如圖4所示。圖中,I/O1是輸入的數(shù)據(jù),I/O2是經(jīng)過加密后輸出的數(shù)據(jù)。


    本文介紹了一種具有數(shù)據(jù)實時自動加密的USB存儲設備設計過程,開創(chuàng)了USB安全通信的新領域。本系統(tǒng)以大規(guī)??删幊踢壿婩PGA為平臺,用Verilog HDL硬件描述語言實現(xiàn)數(shù)據(jù)加密,由于加密算法中大量使用了復雜的按位運算,而通常這類運算不適合在通用處理器上運行,但在本系統(tǒng)中使用的FPGA芯片能夠進行大量邏輯運算,非常適合作為加密算法的硬件載體。用硬件實現(xiàn)加密算法,并且封裝到芯片中,不易被外部攻擊者讀取或更改,有較高的物理安全性。
    安全性、可靠性相對較高的USB存儲設備將會對金融、通信等領域提供很大的幫助。因此,基于FPGA的硬件加密是極具研究意義的,它能夠提高U盤的安全性、可靠性,同時也不會影響U盤的讀寫速度。
參考文獻
[1]  Altera. Pin Information for the cyclone  EP1C3T100 device    version 1.5[S]. 2006.
[2]  NIST. Advanced encryption standard(AES)[M]. Federal Information Processing Standards Publication,2001
[3]  莫林利.基于FPGA模式的USB接口數(shù)據(jù)加密系統(tǒng)的設計與實現(xiàn)[J]. 計算機與現(xiàn)代化, 2005(2).
[4]  呂振,程千里,馬艷南.基于FPGA+USB接口的硬件加密系統(tǒng)[D].遼寧工程技術大學電氣與控制工程學院, 2007.
[5]  趙彬,謝濤.基于FPGA的身份認證智能卡設計[J].微計算機信息, 2006(8).
[6]  鄭志安,夏國榮.基于FPGA的高級數(shù)據(jù)加密AES中的字節(jié)替換設計[J].電子設計工程,2005(8).
[7]  李雪梅,路而紅,歐海文.AES算法的快速硬件設計與實現(xiàn)[J].電子技術應用,2006,32(5).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。