基于FPGA+USB接口的硬件加密系統(tǒng)
出處:畢進(jìn)軍 于志平 李 倫 發(fā)布于:2011-08-27 14:20:00
引言
隨著Internet和電子商務(wù)的蓬勃發(fā)展,基于Internet的商務(wù)活動(dòng)也日益頻繁,對(duì)信息安全提出了剛搞的要求,保護(hù)信息的安全是信息時(shí)代迫切需要解決的問題。數(shù)據(jù)加密目前仍是計(jì)算機(jī)系統(tǒng)對(duì)信息進(jìn)行保護(hù)的一種可靠的辦法。它利用密碼技術(shù)對(duì)信息進(jìn)行加密,實(shí)現(xiàn)信息隱蔽,從而起到保護(hù)信息的安全的作用。利用USB接口技術(shù),結(jié)合PC機(jī)(能獨(dú)立運(yùn)行、完成特定功能的個(gè)人計(jì)算機(jī)。個(gè)人計(jì)算機(jī)不需要共享其他計(jì)算機(jī)的處理、磁盤和打印機(jī)等資源也可以獨(dú)立工作。今天,個(gè)人計(jì)算機(jī)一詞則泛指所有的個(gè)人計(jì)算機(jī)、如桌上型計(jì)算機(jī)、筆記型計(jì)算機(jī)、或是兼容于IBM系統(tǒng)的個(gè)人計(jì)算機(jī)等)的結(jié)構(gòu)特點(diǎn),為基于PC平臺(tái)的數(shù)據(jù)加密系統(tǒng)提出了一種使用USB連接的解決方案。并指出了該方案現(xiàn)存的一些缺陷及改進(jìn)方法,以備今后系統(tǒng)的升級(jí)。
硬件加密可以采用標(biāo)準(zhǔn)的網(wǎng)絡(luò)管理協(xié)議,比如SNMP、CMIP等來進(jìn)行管理,也可以采用統(tǒng)一的網(wǎng)絡(luò)管理協(xié)議進(jìn)行管理。硬件加密是通過專用加密芯片或獨(dú)立的處理芯片等實(shí)現(xiàn)密碼運(yùn)算。將加密芯片、專有電子鑰匙、硬盤一一對(duì)應(yīng)到一起時(shí),加密芯片將把加密芯片信息、專有鑰匙信息、硬盤信息進(jìn)行對(duì)應(yīng)并做加密運(yùn)算,同時(shí)寫入硬盤的主分區(qū)表。這時(shí)加密芯片、專有電子鑰匙、硬盤就綁定在一起,缺少任何一個(gè)都將無法使用。經(jīng)過加密后硬盤如果脫離相應(yīng)的加密芯片和電子鑰匙,在計(jì)算機(jī)上就無法識(shí)別分區(qū),更無法得到任何數(shù)據(jù)。對(duì)于嵌入式系統(tǒng),可以通過掛載一個(gè)加密芯片(加密IC)來實(shí)現(xiàn)硬件加密,如加一個(gè)256位密鑰的AT88SA102S,這樣,在程序被復(fù)制的情況下,沒有加密芯片AT88SA102S,程序沒法運(yùn)行。對(duì)于AT88SA102S的樣片,可向廣州雙龍申請(qǐng),然后在自己的樣品中進(jìn)行測(cè)試。
在目前的計(jì)算機(jī)環(huán)境中,利用一些運(yùn)行在計(jì)算機(jī)內(nèi)部的加密協(xié)議進(jìn)行數(shù)據(jù)傳輸是較安全的。但是一旦微機(jī)連接到Internet上,在系統(tǒng)安全環(huán)節(jié)上就會(huì)形成一個(gè)脆弱的鏈接。在網(wǎng)絡(luò)上傳輸未加密的信息,極有可能讓黑客獲得如用戶密碼和帳號(hào)這樣的敏感信息?,F(xiàn)有的軟件加密方法遠(yuǎn)遠(yuǎn)不能滿足目前的需要。加密專用硬件設(shè)備是目前國(guó)際上的替代軟件加密的產(chǎn)品。使用加密硬件,就必須考慮計(jì)算機(jī)接口的問題。計(jì)算機(jī)的接口有許多種,如傳統(tǒng)的串口和并口。串口的數(shù)據(jù)傳輸率在115K~230Kbps,一般用來連接鼠標(biāo)和外置Modem。并口的數(shù)據(jù)傳輸率比串口快8倍,標(biāo)準(zhǔn)并口的數(shù)據(jù)傳輸率約為1Mbps,一般用來連接打印機(jī)、掃描儀等。早期的軟件狗(Software Dog,是一種計(jì)算機(jī)軟件的加密方式,是“硬件加密鎖”的俗稱)類加密硬件基本上都使用并口,不但極易與打印機(jī)沖突,而且容易被破解。所有加密狗的基本工作原理都是類似的:當(dāng)用戶啟動(dòng)或者使用軟件時(shí),軟件會(huì)聯(lián)絡(luò)軟件狗,并且讀取其中的數(shù)據(jù)。如果軟件狗返回正確的數(shù)據(jù)的話,軟件可以正常使用,否則軟件將會(huì)停止工作,并且向用戶顯示出錯(cuò)的提示。從這種原理我們可以看出,如果軟件狗要起到不錯(cuò)的加密效果,和被加密的軟件的設(shè)計(jì)是緊密相關(guān)的。一般來說,軟件讀取加密狗的次數(shù)越頻繁、傳輸?shù)臄?shù)據(jù)越復(fù)雜多樣、讀取數(shù)據(jù)的函數(shù)越多,破解加密狗的難度就會(huì)越大,保護(hù)效果也就越好。要想設(shè)計(jì)出更可靠更完善的加密硬件,必須采用新的計(jì)算機(jī)接口。
由于USB的諸多優(yōu)點(diǎn),市場(chǎng)上已經(jīng)出現(xiàn)了很多USB的加密產(chǎn)品,如帶加密功能的USB閃存、USB加密卡等。但這些產(chǎn)品多是簡(jiǎn)單的使用軟件進(jìn)行加密,而沒有結(jié)合FPGA技術(shù)形成完整的數(shù)據(jù)加密系統(tǒng)。為此,我們選擇了開發(fā)USB接口加密系統(tǒng)。本文將詳細(xì)闡述USB在數(shù)據(jù)加密系統(tǒng)中的應(yīng)用。
1 系統(tǒng)的總體設(shè)計(jì)方案
整體硬件結(jié)構(gòu)如圖1所示。下面概要介紹本系統(tǒng)的三大部分。

1.1 USB接口子系統(tǒng)設(shè)計(jì)
對(duì)于實(shí)現(xiàn)較復(fù)雜的加密方法,外置的MPU(Microprocessor Unit,微處理器,微機(jī)中的中央處理器(CPU)稱為微處理器,是構(gòu)成微機(jī)的部件,也可以說是微機(jī)的心臟。它起到控制整個(gè)微型計(jì)算機(jī)工作的作用,產(chǎn)生控制信號(hào)對(duì)相應(yīng)的部件進(jìn)行控制,并執(zhí)行相應(yīng)的操作)處理起來更方便,故本系統(tǒng)的USB接口電路采用微處理器加USB專用接口芯片來實(shí)現(xiàn)。USB專用接口芯片是美國(guó)國(guó)家半導(dǎo)體公司提供的樣片USBN9603。微處理芯片采用飛利浦公司的可基于系統(tǒng)編程的單片機(jī)P89C51RD2,它負(fù)責(zé)控制USBN9603芯片的狀態(tài)和讀寫USB節(jié)點(diǎn)的數(shù)據(jù),以及負(fù)責(zé)控制外部存儲(chǔ)器及其他功能設(shè)備。P89C51有3個(gè)加密位,用來保護(hù)固化的單片機(jī)軟件不可讀,從而保證系統(tǒng)不被仿制。本系統(tǒng)還使用了ATMEL公司的24C64作為存儲(chǔ)芯片。(注:愛特梅爾半導(dǎo)體成立于1984年,總部位于美國(guó)。是世界上半導(dǎo)體產(chǎn)品設(shè)計(jì)、制造和行銷的者,產(chǎn)品包括了微處理器、可編程邏輯器件、非易失性存儲(chǔ)器、安全芯片、混合信號(hào)及RF射頻集成電路。通過這些技術(shù)的組合,ATMEL生產(chǎn)出了各種通用目的及特定應(yīng)用的系統(tǒng)級(jí)芯片,以滿足當(dāng)今電子系統(tǒng)設(shè)計(jì)工程師不斷增長(zhǎng)和演進(jìn)的需求,ATMEL在系統(tǒng)級(jí)集成方面所擁有的知識(shí)和豐富的經(jīng)驗(yàn)使其產(chǎn)品可以在現(xiàn)有模塊的基礎(chǔ)上進(jìn)行開發(fā),保證的開發(fā)延期和風(fēng)險(xiǎn)。憑借業(yè)界廣泛的知識(shí)產(chǎn)權(quán)(IP)組合,Atmel提供電子系統(tǒng)完整的系統(tǒng)解決方案的廠商。 這使客戶能夠帶領(lǐng)他們與市場(chǎng)的電子產(chǎn)品的體積更小,更聰明,更符合成本效益比以往任何時(shí)候都通用的服務(wù)。 Atmel集成電路的主要集中在消費(fèi),工業(yè),安全,通信,計(jì)算和汽車市場(chǎng))24C64芯片包含有8KB可讀寫的Flash存儲(chǔ)器,在掉電時(shí)可以保存軟件開發(fā)商設(shè)置的初始口令以及用于存放關(guān)鍵數(shù)據(jù)及配置參數(shù)等信息,可以用于從硬件上對(duì)抗共享器共享,可以更加安全穩(wěn)定地實(shí)現(xiàn)軟件試用期和使用次數(shù)控制等功能。
1.2 軟件子系統(tǒng)設(shè)計(jì)
根據(jù)USB系統(tǒng)的組成,可以將軟件分成二大部分:主機(jī)端軟件和設(shè)備端軟件。主機(jī)端軟件由設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序組成。開發(fā)設(shè)備驅(qū)動(dòng)程序有專門的開發(fā)工具包,在編寫軟件驅(qū)動(dòng)程序時(shí)用到的主要工具有Windows98 DDK、DriverWorks和VC++6.0。Windows一般提供鼠標(biāo)、鍵盤等HID設(shè)備完整的主機(jī)端驅(qū)動(dòng)程序,但對(duì)于大部分用戶自己設(shè)計(jì)的硬件設(shè)備,需要在通用的底層驅(qū)動(dòng)程序的基礎(chǔ)上開發(fā)相應(yīng)的客戶驅(qū)動(dòng)程序。USB主機(jī)端軟件開發(fā)的主要任務(wù)就是調(diào)用USB驅(qū)動(dòng)程序接口、編寫設(shè)備驅(qū)動(dòng)程序和用戶接口的應(yīng)用程序軟件,并在軟件中加入反破解措施。
在各種反破解措施中,跟蹤分析方法的威力為強(qiáng)大,具體的跟蹤分析方法有靜態(tài)分析和動(dòng)態(tài)跟蹤破解法等。
(1)靜態(tài)分析方法。用反編譯工具軟件對(duì)受保護(hù)軟件進(jìn)行逆向分析,以求找出訪問外部加密硬件的代碼并進(jìn)行相應(yīng)的修改。本文介紹的USB加密系統(tǒng)中采用了API函數(shù)調(diào)用與SHELL外殼加密相結(jié)合的技術(shù),可以有效地對(duì)抗靜態(tài)分析方法。即使使用脫殼工具軟件后,外殼被破壞,內(nèi)部的加密函數(shù)的調(diào)用仍然能保證保護(hù)的有效性。
(2)動(dòng)態(tài)跟蹤破解法。要求使用者具有豐富的破解經(jīng)驗(yàn)。它使用調(diào)試分析工具軟件,跟蹤控制受保護(hù)軟件的整個(gè)運(yùn)行過程,找出它與加密接口間交互部分的判斷代碼并進(jìn)行修改,使其跳過對(duì)加密硬件的檢測(cè)或使檢測(cè)結(jié)果無效。對(duì)付這種破解方法,本方案使用了數(shù)據(jù)交換隨機(jī)噪聲技術(shù)和迷宮技術(shù),即在程序入口和出口之間包含大量無效判斷跳轉(zhuǎn)進(jìn)行干擾,動(dòng)態(tài)改變執(zhí)行次序,提升抗跟蹤能力。另外,USB加密系統(tǒng)內(nèi)部設(shè)有時(shí)間閘,各種操作必須在規(guī)定的時(shí)間內(nèi)完成。正常操作用時(shí)很短,而跟蹤過程用時(shí)較長(zhǎng),超過規(guī)定時(shí)間將返回錯(cuò)誤結(jié)果。
1.3 加密子系統(tǒng)設(shè)計(jì)
加密子系統(tǒng)的設(shè)計(jì)采用單片機(jī)加FPGA(Field Programmable Gate Array,即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物)模式,既可方便地用單片機(jī)完成對(duì)USB口的操作,又能利用FPGA速度快和保密性強(qiáng)等特點(diǎn)實(shí)現(xiàn)復(fù)雜的加密算法。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分?,F(xiàn)場(chǎng)可編程門陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及個(gè)模塊之間或模塊與I/O間的連接方式,并終決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并終決定了FPGA所能實(shí)現(xiàn)的功能, FPGA允許無限次的編程。
在加密系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中,主要是根據(jù)芯片的容量大小,選擇一種合適的加解密算法,將其在FPGA芯片中實(shí)現(xiàn),同時(shí)處理好與單片機(jī)的外部接口問題。根據(jù)FPGA的特性,在以后的使用中可以隨著加密算法的進(jìn)一步發(fā)展,采用動(dòng)態(tài)可重構(gòu)技術(shù),將新的加密算法重新配置在硬件中,實(shí)現(xiàn)新的加密技術(shù),故此加密裝置有很高的靈活性。本系統(tǒng)開發(fā)的EDA工具軟件采用XILINX公司的XILINX軟件包FOUNDATION4.1集成環(huán)境,硬件采用XILINX公司的SPARTAN系列FPGA芯片。
2 USB接口電路的開發(fā)
2.1 USB接口電路
電路設(shè)計(jì)采用模塊化的設(shè)計(jì)方法。本系統(tǒng)在電路有3個(gè)模塊:USB接口模塊、I2C總線(Inter-Integrated Circuit,是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡(jiǎn)單,器件封裝形式小,通信速率較高等優(yōu)點(diǎn))模塊和加密模塊。這樣不但可以提高開發(fā)效率,而且非常有利于系統(tǒng)的擴(kuò)展和升級(jí)。本文重點(diǎn)介紹了3個(gè)模塊的設(shè)計(jì)方法及電路的連接。在系統(tǒng)中,使用ATMEL的24C64作為存儲(chǔ)芯片,采用P89C51RD2單片機(jī)的P1口模擬I2C總線來實(shí)現(xiàn)MCU(Micro Control Unit,中文名稱為微控制單元,又稱單片微型計(jì)算機(jī)(Single Chip Microcomputer)或者單片機(jī),是指隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計(jì)算機(jī)的CPU、RAM、ROM、定時(shí)計(jì)數(shù)器和多種I/O接口集成在一片芯片上,形成芯片級(jí)的計(jì)算機(jī),為不同的應(yīng)用場(chǎng)合做不同組合控制)與24C64的連接。系統(tǒng)USB接口平臺(tái)的硬件電路設(shè)計(jì)框圖如圖2所示。

2.2 P89C51單片機(jī)與USBN9603的硬件連接設(shè)計(jì)
對(duì)USBN9603芯片的控制是通過向它的寄存器讀寫數(shù)據(jù)來實(shí)現(xiàn)的。它的每個(gè)寄存器都有相應(yīng)的地址映射,其地址范圍從0x00~0x3F,對(duì)應(yīng)58個(gè)寄存器(有6個(gè)地址保留)。USBN9603芯片相對(duì)于P89C51單片機(jī)來說更像是一片外部存儲(chǔ)器,當(dāng)USBN9603被片選后,讀寫某個(gè)寄存器的地址,就可以被訪問。P89C51單片機(jī)的P0口可以作為一個(gè)地址/數(shù)據(jù)復(fù)用的總線口,而USBN9603芯片的總線連接方式是可設(shè)定的。USBN9603的并行連接有2種工作模式:復(fù)用模式與非復(fù)用模式。本接口電路中只用到復(fù)用模式與P89C51單片機(jī)進(jìn)行接口。在這種模式下,MODE0接高電平,MODE1接低電平。MPU可以直接訪問寄存器DATAIN、DATAOUT和ADDR。圖3是USBN9603復(fù)用模式讀寫時(shí)序圖。根據(jù)圖3就可以將USBN9603的8位地址/數(shù)據(jù)總線直接與P89C51單片機(jī)的P0口相連及各自的“讀寫”引腳分別相連。如圖4所示。


在標(biāo)準(zhǔn)訪問模方式下,USBN9603的序列是首先將地址寫入ADDRESS寄存器,然后再讀取DATAOUT的數(shù)據(jù)或者寫入DATAIN數(shù)據(jù)。
3 設(shè)備驅(qū)動(dòng)程序的編制
驅(qū)動(dòng)程序的基本功能就是建立應(yīng)用程序與USB接口之間的數(shù)據(jù)通信。Windows 98和Windows 2000操作系統(tǒng)為USB總線提供了全面的支持,并且用WDM(Windows Device Mode)設(shè)備驅(qū)動(dòng)程序模型代替了VxD設(shè)備驅(qū)動(dòng)程序。WDM模型主要采用分層的方法,模仿面向?qū)ο蟮募夹g(shù)。先進(jìn)行邏輯上的“分層”,然后將標(biāo)準(zhǔn)的實(shí)現(xiàn)和低層細(xì)節(jié)“封裝”起來,形成“基類”。客戶程序通過“繼承”的方式來擴(kuò)展“基類”的功能,完成所需要的實(shí)現(xiàn)。WDM支持USBl.l協(xié)議,并為用戶開發(fā)自己的用戶驅(qū)動(dòng)程序提供USB驅(qū)動(dòng)程序接口USBDI。USB用戶驅(qū)動(dòng)程序通過USBDI訪問USB設(shè)備類驅(qū)動(dòng)程序。USB外設(shè)不占用端口或中斷等硬件資源,所有低層I/O都由USB設(shè)備類驅(qū)動(dòng)程序處理??蛻趄?qū)動(dòng)程序只關(guān)心數(shù)據(jù)傳輸類型、傳輸時(shí)序、傳輸管道以及如何處理數(shù)據(jù)等主要操作。USBDI就是為實(shí)現(xiàn)這一點(diǎn)而設(shè)計(jì)的軟件接口。
如圖5所示,Windows對(duì)構(gòu)成一個(gè)USB主機(jī)的不同軟件部分進(jìn)行了十分清楚的劃分。其中USB客戶軟件僅僅包含了用來控制不同USB外設(shè)的設(shè)備驅(qū)動(dòng)程序。USB設(shè)備驅(qū)動(dòng)程序會(huì)通過Windows所定義的一個(gè)軟件接口來同根集線器驅(qū)動(dòng)程序進(jìn)行通信。而USB根集線器驅(qū)動(dòng)程序則要通過USBDI來實(shí)現(xiàn)同通用串行總線驅(qū)動(dòng)程序(USBD)的通信。然后,USBD會(huì)選擇2種主控制器驅(qū)動(dòng)程序之一來同其下方的主控制器進(jìn)行通信。,主控制器驅(qū)動(dòng)程序會(huì)直接實(shí)現(xiàn)對(duì)USB物理總線的訪問。

在圖5中,主控制器驅(qū)動(dòng)程序處于USBD的下方,而根集線器卻位于USBD上方。在一個(gè)支持USB系統(tǒng)的主機(jī)中,都會(huì)有一個(gè)根集線器來提供2個(gè)USB端口。一個(gè)USB系統(tǒng)中的所有USB設(shè)備,包括USB功能設(shè)備和USB集線器都必須以直接接入或星型接入方式接入一個(gè)USB根集線器。在Windows環(huán)境中,所有的客戶驅(qū)動(dòng)程序都可以通過指向一個(gè)根集線器驅(qū)動(dòng)程序的接口來和所有接入的USB設(shè)備進(jìn)行通信。另外一種方法就是通過USBDI而直接同USBD進(jìn)行交互。
4 測(cè)試
下面以前文介紹的整個(gè)USB接口平臺(tái)為基礎(chǔ),給出USB加密系統(tǒng)原型版在Windows98操作系統(tǒng)中的測(cè)試。
測(cè)試分2步進(jìn)行,首先對(duì)USB接口平臺(tái)單獨(dú)測(cè)試,然后對(duì)整體測(cè)試。
測(cè)試的主機(jī)平臺(tái)為方正“文祥600”計(jì)算機(jī),操作系統(tǒng)的版本為Windows98第二版。首先確保硬件設(shè)備連接到PC的USB接口上,并且操作系統(tǒng)為Windows98,按照提示正確安裝驅(qū)動(dòng)程序。當(dāng)本設(shè)備接口連入PC機(jī)后,操作系統(tǒng)的系統(tǒng)USB總線驅(qū)動(dòng)程序立刻檢測(cè)到有新的USB設(shè)備加入。在與USB設(shè)備的0節(jié)點(diǎn)進(jìn)行通信獲得設(shè)備的基本信息后,操作系統(tǒng)將彈出窗口要求安裝驅(qū)動(dòng)程序。在驅(qū)動(dòng)程序正確安裝完成以后,在計(jì)算機(jī)的“系統(tǒng)屬性”中就可以看到結(jié)果,此時(shí)表示USB加密系統(tǒng)已經(jīng)被正確安裝。下面用DriverStudio自動(dòng)生成的DOS界面的應(yīng)用程序進(jìn)行測(cè)試。
當(dāng)應(yīng)用程序找到設(shè)備后,就可以執(zhí)行讀、寫2種操作。首先執(zhí)行寫功能:寫入6個(gè)字符,應(yīng)用程序提示寫入設(shè)備成功;然后執(zhí)行讀功能:將寫功能寫入的6個(gè)字符讀出,應(yīng)用程序提示從設(shè)備讀出了6個(gè)字符,并且讀出的字符與寫入的一致,這說明了USB接口部分讀、寫功能正常。
接下來是對(duì)系統(tǒng)進(jìn)行總體測(cè)試。打開以DOS應(yīng)用程序?yàn)榛A(chǔ)重新編制的Windows應(yīng)用程序,程序界面如圖6所示。左邊設(shè)備信息欄第1行顯示的“查找設(shè)備成功”,表示設(shè)備可以正常使用了。在“寫數(shù)據(jù)”窗口中,可以寫下任何文本內(nèi)容,在測(cè)試中我們寫下了“加密技術(shù)——讓世界更安全!”的字樣。然后點(diǎn)“寫入設(shè)備”按鈕,數(shù)據(jù)就被寫到USB加密板中,左側(cè)信息窗口出現(xiàn)對(duì)映的信息;再點(diǎn)擊“讀取數(shù)據(jù)”按鈕,在“讀數(shù)據(jù)”窗口中,顯示了由USB加密系統(tǒng)返回的密文,同樣左側(cè)信息窗口也出現(xiàn)對(duì)映的信息,這樣就完成了加密過程。

對(duì)信息進(jìn)行解密的操作過程與加密的過程相同。首先將密文復(fù)制到寫數(shù)據(jù)窗口中,點(diǎn)擊“寫入設(shè)備”按鈕,再點(diǎn)擊“讀取數(shù)據(jù)”按鈕,就可以看到明文“加密技術(shù)——讓世界更安全!”出現(xiàn)在讀數(shù)據(jù)窗口中(圖略)?!?/P>
以上過程證明了整個(gè)系統(tǒng)工作正常,可以完成向設(shè)備寫入明文數(shù)據(jù),USB設(shè)備接收到數(shù)據(jù)后再傳遞給加密接口進(jìn)行加密,形成密文,再傳送到USB設(shè)備,然后把數(shù)據(jù)讀取出來。解密功能也正常,解密后的明文與原始明文一致。
USB是一種全新的通用串行總線接口,是非常復(fù)雜的系統(tǒng),但了解這樣一個(gè)系統(tǒng),有助于了解當(dāng)今接口體系結(jié)構(gòu)的設(shè)計(jì)思想,對(duì)于理解其他的接口體系結(jié)構(gòu)很有好處。
本文提出的基于FPGA+USB接口的硬件加密系統(tǒng),由FPGA芯片通過硬件來完成數(shù)據(jù)加密過程,由高速傳輸總線進(jìn)行傳輸。具有處理速度快、實(shí)時(shí)性好、安全性高、靈活性強(qiáng)等優(yōu)點(diǎn),能夠較好的實(shí)現(xiàn)主機(jī)的硬件加密,具有廣泛的應(yīng)用前景。
參考文獻(xiàn):
[1]. USBN9603 datasheet http://m.58mhw.cn/datasheet/USBN9603_675540.html.
[2]. P89C51 datasheet http://m.58mhw.cn/datasheet/P89C51_1077993.html.
[3]. 24C64 datasheet http://m.58mhw.cn/datasheet/24C64_32293.html.
[4]. CPLD datasheet http://m.58mhw.cn/datasheet/CPLD_1136600.html.
[5]. P89C51RD2 datasheet http://m.58mhw.cn/datasheet/P89C51RD2_538905.html.
[6]. ROM datasheet http://m.58mhw.cn/datasheet/ROM_1188413.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(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埋盲孔設(shè)計(jì)與工藝適配核心技術(shù)規(guī)范
- 如何提高M(jìn)OSFET在惡劣環(huán)境下的可靠性?
- 繼電器觸點(diǎn)壽命及可靠性分析
- 可重構(gòu)濾波器技術(shù):滿足多標(biāo)準(zhǔn)通信系統(tǒng)的靈活需求
- 磁集成技術(shù)在小型化電源設(shè)計(jì)中的應(yīng)用
- 微帶線阻抗匹配設(shè)計(jì)與實(shí)操調(diào)試技巧
- 從S參數(shù)到實(shí)際元件:微帶線濾波器的設(shè)計(jì)與仿真流程
- IP67/IP68連接器設(shè)計(jì)解析
- 電源管理IC失效的常見原因
- MOSFET體二極管特性分析









