可加密USB存儲(chǔ)設(shè)備設(shè)計(jì)與應(yīng)用
出處:王 鵬1, 呂志剛1, 黃 健2 發(fā)布于:2011-08-23 19:49:30
摘 要:基于FPGA的可加密USB存儲(chǔ)設(shè)備的設(shè)計(jì)過程,介紹了FPGA芯片EP1C3T100、USB接口芯片AU6983等各個(gè)模塊的功能及硬件電路設(shè)計(jì)。FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的FPGA.因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于ASIC的芯片上。具有實(shí)時(shí)性好、安全性高等優(yōu)點(diǎn)。
USB移動(dòng)存儲(chǔ)設(shè)備,由于其容量大、使用方便等優(yōu)點(diǎn)得到廣泛的應(yīng)用。但隨著電子資料和電子信息的不斷增多,USB移動(dòng)存儲(chǔ)設(shè)備的使用可能會(huì)造成存儲(chǔ)的重要信息或私密文件被竊取,使個(gè)人資料的存儲(chǔ)變得越來越不安全,導(dǎo)致頻繁出現(xiàn)無法挽回的損失和不堪設(shè)想的后果。而加密 USB存儲(chǔ)設(shè)備的出現(xiàn)則可以有效防止個(gè)人或企業(yè)數(shù)據(jù)經(jīng)由U盤泄露。
雖然現(xiàn)在很多廠商推出的各種U盤產(chǎn)品均提供了加密功能以提高數(shù)據(jù)的安全性,但很多均停留于軟件加密層面,不僅需要另外安裝軟件,而且數(shù)據(jù)安全性也打了折扣,在某程度上仍不能防范數(shù)據(jù)被盜竊。本文選擇FPGA芯片對(duì)U盤進(jìn)行硬件加密[1].
1 系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)組成
系統(tǒng)主要由兩部分組成:PC機(jī)與USB存儲(chǔ)設(shè)備。USB存儲(chǔ)設(shè)備由USB接口芯片、FPGA芯片、Flash芯片、電源電路組成。系統(tǒng)原理框圖如圖1所示。

1.2 系統(tǒng)工作原理
基于FPGA的加密USB存儲(chǔ)設(shè)備,在Flash與USB接口芯片之間加1個(gè)FPGA芯片用于各種加密算法的實(shí)現(xiàn),通過FPGA將存入Flash中的數(shù)據(jù)進(jìn)行加密、解密。將主設(shè)備上需要加密的數(shù)據(jù)通過USB接口發(fā)送到FPGA加密芯片,加密數(shù)據(jù)產(chǎn)生后,給出標(biāo)志信號(hào),然后輸出加密好的數(shù)據(jù)。
FPGA芯片是系統(tǒng)的,主要實(shí)現(xiàn)3個(gè)主要功能:
?。?)用于實(shí)現(xiàn)加密過程中的Flash讀寫時(shí)序控制,包括輸入的數(shù)據(jù)加密、加密算法的模式選擇等。
(2)用于加密算法的實(shí)現(xiàn),需要加密的數(shù)據(jù)通過USB接口發(fā)送到FPGA芯片,F(xiàn)PGA芯片根據(jù)控制信號(hào)判讀是否需要對(duì)數(shù)據(jù)加密,如果需要加密則運(yùn)行加密算法,加密數(shù)據(jù)產(chǎn)生后,輸出加密好的數(shù)據(jù),并且輸出標(biāo)志信號(hào)。
?。?)實(shí)現(xiàn)與USB接口芯片進(jìn)行數(shù)據(jù)通信。FPGA和USB之間的通信通過8 bit數(shù)據(jù)總線加上若干控制信號(hào)實(shí)現(xiàn),只要FPGA產(chǎn)生符合USB輸入/輸出時(shí)序的脈沖,即可實(shí)現(xiàn)兩者之間的通信[2-3].
2 系統(tǒng)硬件設(shè)計(jì)
設(shè)備的部分是FPGA芯片。加密、解密功能通過FPGA設(shè)計(jì)工具中硬件描述語言進(jìn)行描述,在集成軟件環(huán)境下進(jìn)行編譯、調(diào)試及綜合,使用專用電纜將程序代碼存儲(chǔ)在FPGA芯片中,一旦USB設(shè)備與PC機(jī)相連,F(xiàn)PGA芯片中的算法程序會(huì)對(duì)寫入Flash芯片中的數(shù)據(jù)進(jìn)行加密或解密。
2.1 FPGA接口設(shè)計(jì)
本設(shè)計(jì)中選用的FPGA芯片為EP1C3T100,其中為100個(gè)管腳封裝,I/O的電源為3.3 V,內(nèi)核電壓為1.5 V,只有1個(gè)鎖相環(huán)(PLL),2個(gè)專用全局時(shí)鐘輸入管腳CLK0、CLK1,5個(gè)雙重用途時(shí)鐘管腳DPCLK.所有管腳中有一些是專用配置管腳。其中,nCSO、DATA0、DCLK、ASDI是與配置芯片EPCS4相連的;TCK、TDO、TMS、TDI等管腳則與JTAG相連。
帶有直接FPGA接口的微控制器幾乎所有的外圍都有DMA通道,有幾個(gè)DMA通道專用于FPGA的接口。多通道外圍DMA控制器( PDC )支持該DMAs,像其他兩種方法一樣,在FPGA、外設(shè)和存儲(chǔ)器之間傳輸數(shù)據(jù)時(shí)通過CPU卸荷。這避免了普通ARM7的帶寬限制,它被只有4萬比特每秒(Mbps)數(shù)據(jù)傳輸速率完全壟斷。
FPGA 是SRAM型的可編程邏輯器件,通過JTAG就可以直接把代碼固化在片子里面。FPGA到片子中的代碼存放在RAM里,所以斷電后這些代碼即刻消失?;贘TAG模式的易失性,F(xiàn)PGA就需要非易失性存儲(chǔ)器用來存放代碼,每次上電后把代碼從配置芯片讀入FPGA 然后運(yùn)行。本設(shè)計(jì)選用ALTERA公司配套的AS模式的配置存儲(chǔ)器EPCS4,成本比較低,并且很容易配置。
2.2 Flash芯片接口設(shè)計(jì)
FLASH 芯片是應(yīng)用非常廣泛的存儲(chǔ)材料,與之容易混淆的是RAM芯片,我們經(jīng)常在有關(guān)IT的文章里面談到這兩種芯片。由于它們的工作條件與方式不一樣,決定它們性能和用途也有差異。
本設(shè)計(jì)選用三星公司的NAND Flash芯片K9G8G08U0M,容量為1 GB.NAND Flash 的數(shù)據(jù)以bit 的方式保存在存儲(chǔ)單元,每頁2 KB+64 B,每128頁形成1個(gè)塊,1塊就是256 KB+8 KB.
2.3 USB接口設(shè)計(jì)
USB是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊。USB接口支持設(shè)備的即插即用和熱插拔功能。USB接口可用于連接多達(dá)127種外設(shè),如鼠標(biāo)、調(diào)制解調(diào)器和鍵盤等。USB是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯(lián)合提出的,自1996年推出后,已成功替代串口和并口,并成為當(dāng)今個(gè)人電腦和大量智能設(shè)備的必配的接口之一。從1994年11月11日發(fā)表了USB V0.7版本以后,USB版本經(jīng)歷了多年的發(fā)展,到現(xiàn)在已經(jīng)發(fā)展為3.0版本。
本設(shè)計(jì)中USB接口芯片采用安國公司的AU6983,其芯片質(zhì)量和可靠性較高,該芯片多可以接2片F(xiàn)lash芯片。接口電路如圖2所示。

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

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

本文介紹了一種具有數(shù)據(jù)實(shí)時(shí)自動(dòng)加密的USB存儲(chǔ)設(shè)備設(shè)計(jì)過程,開創(chuàng)了USB安全通信的新領(lǐng)域。本系統(tǒng)以大規(guī)??删幊踢壿婩PGA為平臺(tái),用Verilog HDL硬件描述語言實(shí)現(xiàn)數(shù)據(jù)加密,但在本系統(tǒng)中使用的FPGA芯片能夠進(jìn)行大量邏輯運(yùn)算,非常適合作為加密算法的硬件載體。用硬件實(shí)現(xiàn)加密算法,并且封裝到芯片中,不易被外部攻擊者讀取或更改,有較高的物理安全性。
安全性、可靠性相對(duì)較高的USB存儲(chǔ)設(shè)備將會(huì)對(duì)金融、通信等領(lǐng)域提供很大的幫助。因此,基于FPGA的硬件加密是極具研究意義的,它能夠提高U盤的安全性、可靠性,同時(shí)也不會(huì)影響U盤的讀寫速度。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識(shí)介紹2025/8/29 16:58:56
- SQL核心知識(shí)點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識(shí)2025/6/18 16:30:52
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









