




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
精品文檔-下載后可編輯基于FPGA+USB接口的硬件加密系統(tǒng)引言
隨著Internet和電子商務(wù)的蓬勃發(fā)展,基于Internet的商務(wù)活動也日益頻繁,對信息安全提出了剛搞的要求,保護信息的安全是信息時代迫切需要解決的問題。數(shù)據(jù)加密目前仍是計算機系統(tǒng)對信息進行保護的一種可靠的辦法。它利用密碼技術(shù)對信息進行加密,實現(xiàn)信息隱蔽,從而起到保護信息的安全的作用。利用USB接口技術(shù),結(jié)合PC機(能獨立運行、完成特定功能的個人計算機。個人計算機不需要共享其他計算機的處理、磁盤和打印機等資源也可以獨立工作。今天,個人計算機一詞則泛指所有的個人計算機、如桌上型計算機、筆記型計算機、或是兼容于IBM系統(tǒng)的個人計算機等)的結(jié)構(gòu)特點,為基于PC平臺的數(shù)據(jù)加密系統(tǒng)提出了一種使用USB連接的解決方案。并指出了該方案現(xiàn)存的一些缺陷及改進方法,以備今后系統(tǒng)的升級。
硬件加密可以采用標準的網(wǎng)絡(luò)管理協(xié)議,比如SNMP、CMIP等來進行管理,也可以采用統(tǒng)一的網(wǎng)絡(luò)管理協(xié)議進行管理。硬件加密是通過專用加密芯片或獨立的處理芯片等實現(xiàn)密碼運算。將加密芯片、專有電子鑰匙、硬盤一一對應到一起時,加密芯片將把加密芯片信息、專有鑰匙信息、硬盤信息進行對應并做加密運算,同時寫入硬盤的主分區(qū)表。這時加密芯片、專有電子鑰匙、硬盤就綁定在一起,缺少任何一個都將無法使用。經(jīng)過加密后硬盤如果脫離相應的加密芯片和電子鑰匙,在計算機上就無法識別分區(qū),更無法得到任何數(shù)據(jù)。對于嵌入式系統(tǒng),可以通過掛載一個加密芯片(加密IC)來實現(xiàn)硬件加密,如加一個256位密鑰的AT88SA102S,這樣,在程序被復制的情況下,沒有加密芯片AT88SA102S,程序沒法運行。對于AT88SA102S的樣片,可向廣州雙龍申請,然后在自己的樣品中進行測試。
在目前的計算機環(huán)境中,利用一些運行在計算機內(nèi)部的加密協(xié)議進行數(shù)據(jù)傳輸是較安全的。但是一旦微機連接到Internet上,在系統(tǒng)安全環(huán)節(jié)上就會形成一個脆弱的鏈接。在網(wǎng)絡(luò)上傳輸未加密的信息,極有可能讓黑客獲得如用戶密碼和帳號這樣的敏感信息?,F(xiàn)有的軟件加密方法遠遠不能滿足目前的需要。加密專用硬件設(shè)備是目前國際上的替代軟件加密的產(chǎn)品。使用加密硬件,就必須考慮計算機接口的問題。計算機的接口有許多種,如傳統(tǒng)的串口和并口。串口的數(shù)據(jù)傳輸率在115K~230Kbps,一般用來連接鼠標和外置Modem。并口的數(shù)據(jù)傳輸率比串口快8倍,標準并口的數(shù)據(jù)傳輸率約為1Mbps,一般用來連接打印機、掃描儀等。早期的軟件狗(SoftwareDog,是一種計算機軟件的加密方式,是“硬件加密鎖”的俗稱)類加密硬件基本上都使用并口,不但極易與打印機沖突,而且容易被破解。所有加密狗的基本工作原理都是類似的:當用戶啟動或者使用軟件時,軟件會聯(lián)絡(luò)軟件狗,并且讀取其中的數(shù)據(jù)。如果軟件狗返回正確的數(shù)據(jù)的話,軟件可以正常使用,否則軟件將會停止工作,并且向用戶顯示出錯的提示。從這種原理我們可以看出,如果軟件狗要起到不錯的加密效果,和被加密的軟件的設(shè)計是緊密相關(guān)的。一般來說,軟件讀取加密狗的次數(shù)越頻繁、傳輸?shù)臄?shù)據(jù)越復雜多樣、讀取數(shù)據(jù)的函數(shù)越多,破解加密狗的難度就會越大,保護效果也就越好。要想設(shè)計出更可靠更完善的加密硬件,必須采用新的計算機接口。
由于USB的諸多優(yōu)點,市場上已經(jīng)出現(xiàn)了很多USB的加密產(chǎn)品,如帶加密功能的USB閃存、USB加密卡等。但這些產(chǎn)品多是簡單的使用軟件進行加密,而沒有結(jié)合FPGA技術(shù)形成完整的數(shù)據(jù)加密系統(tǒng)。為此,我們選擇了開發(fā)USB接口加密系統(tǒng)。本文將詳細闡述USB在數(shù)據(jù)加密系統(tǒng)中的應用。
1系統(tǒng)的總體設(shè)計方案
整體硬件結(jié)構(gòu)如圖1所示。下面概要介紹本系統(tǒng)的三大部分。
1.1USB接口子系統(tǒng)設(shè)計
對于實現(xiàn)較復雜的加密方法,外置的MPU(MicroprocessorUnit,微處理器,微機中的中央處理器(CPU)稱為微處理器,是構(gòu)成微機的部件,也可以說是微機的心臟。它起到控制整個微型計算機工作的作用,產(chǎn)生控制信號對相應的部件進行控制,并執(zhí)行相應的操作)處理起來更方便,故本系統(tǒng)的USB接口電路采用微處理器加USB專用接口芯片來實現(xiàn)。USB專用接口芯片是美國國家半導體公司提供的樣片USBN9603。微處理芯片采用飛利浦公司的可基于系統(tǒng)編程的單片機P89C51RD2,它負責控制USBN9603芯片的狀態(tài)和讀寫USB節(jié)點的數(shù)據(jù),以及負責控制外部存儲器及其他功能設(shè)備。P89C51有3個加密位,用來保護固化的單片機軟件不可讀,從而保證系統(tǒng)不被仿制。本系統(tǒng)還使用了ATMEL公司的24C64作為存儲芯片。(注:愛特梅爾半導體成立于1984年,總部位于美國。是世界上半導體產(chǎn)品設(shè)計、制造和行銷的者,產(chǎn)品包括了微處理器、可編程邏輯器件、非易失性存儲器、安全芯片、混合信號及RF射頻集成電路。通過這些技術(shù)的組合,ATMEL生產(chǎn)出了各種通用目的及特定應用的系統(tǒng)級芯片,以滿足當今電子系統(tǒng)設(shè)計工程師不斷增長和演進的需求,ATMEL在系統(tǒng)級集成方面所擁有的知識和豐富的經(jīng)驗使其產(chǎn)品可以在現(xiàn)有模塊的基礎(chǔ)上進行開發(fā),保證的開發(fā)延期和風險。憑借業(yè)界廣泛的知識產(chǎn)權(quán)(IP)組合,Atmel提供電子系統(tǒng)完整的系統(tǒng)解決方案的廠商。這使客戶能夠帶領(lǐng)他們與市場的電子產(chǎn)品的體積更小,更聰明,更符合成本效益比以往任何時候都通用的服務(wù)。Atmel集成電路的主要集中在消費,工業(yè),安全,通信,計算和汽車市場)24C64芯片包含有8KB可讀寫的Flash存儲器,在掉電時可以保存軟件開發(fā)商設(shè)置的初始口令以及用于存放關(guān)鍵數(shù)據(jù)及配置參數(shù)等信息,可以用于從硬件上對抗共享器共享,可以更加安全穩(wěn)定地實現(xiàn)軟件試用期和使用次數(shù)控制等功能。
1.2軟件子系統(tǒng)設(shè)計
根據(jù)USB系統(tǒng)的組成,可以將軟件分成二大部分:主機端軟件和設(shè)備端軟件。主機端軟件由設(shè)備驅(qū)動程序和應用程序組成。開發(fā)設(shè)備驅(qū)動程序有專門的開發(fā)工具包,在編寫軟件驅(qū)動程序時用到的主要工具有Windows98DDK、DriverWorks和VC++6.0。Windows一般提供鼠標、鍵盤等HID設(shè)備完整的主機端驅(qū)動程序,但對于大部分用戶自己設(shè)計的硬件設(shè)備,需要在通用的底層驅(qū)動程序的基礎(chǔ)上開發(fā)相應的客戶驅(qū)動程序。USB主機端軟件開發(fā)的主要任務(wù)就是調(diào)用USB驅(qū)動程序接口、編寫設(shè)備驅(qū)動程序和用戶接口的應用程序軟件,并在軟件中加入反破解措施。
在各種反破解措施中,跟蹤分析方法的威力為強大,具體的跟蹤分析方法有靜態(tài)分析和動態(tài)跟蹤破解法等。
(1)靜態(tài)分析方法。用反編譯工具軟件對受保護軟件進行逆向分析,以求找出訪問外部加密硬件的代碼并進行相應的修改。本文介紹的USB加密系統(tǒng)中采用了API函數(shù)調(diào)用與SHELL外殼加密相結(jié)合的技術(shù),可以有效地對抗靜態(tài)分析方法。即使使用脫殼工具軟件后,外殼被破壞,內(nèi)部的加密函數(shù)的調(diào)用仍然能保證保護的有效性。
(2)動態(tài)跟蹤破解法。要求使用者具有豐富的破解經(jīng)驗。它使用調(diào)試分析工具軟件,跟蹤控制受保護軟件的整個運行過程,找出它與加密接口間交互部分的判斷代碼并進行修改,使其跳過對加密硬件的檢測或使檢測結(jié)果無效。對付這種破解方法,本方案使用了數(shù)據(jù)交換隨機噪聲技術(shù)和迷宮技術(shù),即在程序入口和出口之間包含大量無效判斷跳轉(zhuǎn)進行干擾,動態(tài)改變執(zhí)行次序,提升抗跟蹤能力。另外,USB加密系統(tǒng)內(nèi)部設(shè)有時間閘,各種操作必須在規(guī)定的時間內(nèi)完成。正常操作用時很短,而跟蹤過程用時較長,超過規(guī)定時間將返回錯誤結(jié)果。
1.3加密子系統(tǒng)設(shè)計
加密子系統(tǒng)的設(shè)計采用單片機加FPGA(FieldProgrammableGateArray,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物)模式,既可方便地用單片機完成對USB口的操作,又能利用FPGA速度快和保密性強等特點實現(xiàn)復雜的加密算法。FPGA采用了邏輯單元陣列LCA(LogicCellArray)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(ConfigurableLogicBlock)、輸出輸入模塊IOB(InputOutputBlock)和內(nèi)部連線(Interconnect)三個部分?,F(xiàn)場可編程門陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16×1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動I/O,由此構(gòu)成了即可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及個模塊之間或模塊與I/O間的連接方式,并終決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并終決定了FPGA所能實現(xiàn)的功能,FPGA允許無限次的編程。
在加密系統(tǒng)的設(shè)計與實現(xiàn)中,主要是根據(jù)芯片的容量大小,選擇一種合適的加解密算法,將其在FPGA芯片中實現(xiàn),同時處理好與單片機的外部接口問題。根據(jù)FPGA的特性,在以后的使用中可以隨著加密算法的進一步發(fā)展,采用動態(tài)可重構(gòu)技術(shù),將新的加密算法重新配置在硬件中,實現(xiàn)新的加密技術(shù),故此加密裝置有很高的靈活性。本系統(tǒng)開發(fā)的EDA工具軟件采用XILINX公司的XILINX軟件包FOUNDATION4.1集成環(huán)境,硬件采用XILINX公司的SPARTAN系列FPGA芯片。
2USB接口電路的開發(fā)
2.1USB接口電路
電路設(shè)計采用模塊化的設(shè)計方法。本系統(tǒng)在電路有3個模塊:USB接口模塊、I2C總線(Inter-IntegratedCircuit,是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標準。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點)模塊和加密模塊。這樣不但可以提高開發(fā)效率,而且非常有利于系統(tǒng)的擴展和升級。本文重點介紹了3個模塊的設(shè)計方法及電路的連接。在系統(tǒng)中,使用ATMEL的24C64作為存儲芯片,采用P89C51RD2單片機的P1口模擬I2C總線來實現(xiàn)MCU(MicroControlUnit,中文名稱為微控制單元,又稱單片微型計算機(SingleChipMicrocomputer)或者單片機,是指隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計算機的CPU、RAM、ROM、定時計數(shù)器和多種I/O接口集成在一片芯片上,形成芯片級的計算機,為不同的應用場合做不同組合控制)與24C64的連接。系統(tǒng)USB接口平臺的硬件電路設(shè)計框圖如圖2所示。
2.2P89C51單片機與USBN9603的硬件連接設(shè)計
對USBN9603芯片的控制是通過向它的寄存器讀寫數(shù)據(jù)來實現(xiàn)的。它的每個寄存器都有相應的地址映射,其地址范圍從0x00~0x3F,對應58個寄存器(有6個地址保留)。USBN9603芯片相對于P89C51單片機來說更像是一片外部存儲器,當USBN9603被片選后,讀寫某個寄存器的地址,就可以被訪問。P89C51單片機的P0口可以作為一個地址/數(shù)據(jù)復用的總線口,而USBN9603芯片的總線連接方式是可設(shè)定的。USBN9603的并行連接有2種工作模式:復用模式與非復用模式。本接口電路中只用到復用模式與P89C51單片機進行接口。在這種模式下,MODE0接高電平,MODE1接低電平。MPU可以直接訪問寄存器DATAIN、DATAOUT和ADDR。圖3是USBN9603復用模式讀寫時序圖。根據(jù)圖3就可以將USBN9603的8位地址/數(shù)據(jù)總線直接與P89C51單片機的P0口相連及各自的“讀寫”引腳分別相連。如圖4所示。
在標準訪問模方式下,USBN9603的序列是首先將地址寫入ADDRESS寄存器,然后再讀取DATAOUT的數(shù)據(jù)或者寫入DATAIN數(shù)據(jù)。
3設(shè)備驅(qū)動程序的編制
驅(qū)動程序的基本功能就是建立應用程序與USB接口之間的數(shù)據(jù)通信。Windows98和Windows2000操作系統(tǒng)為USB總線提供了全面的支持,并且用WDM(WindowsDeviceMode)設(shè)備驅(qū)動程序模型代替了VxD設(shè)備驅(qū)動程序。WDM模型主要采用分層的方法,模仿面向?qū)ο蟮募夹g(shù)。先進行邏輯上的“分層”,然后將標準的實現(xiàn)和低層細節(jié)“封裝”起來,形成“基類”??蛻舫绦蛲ㄟ^“繼承”的方式來擴展“基類”的功能,完成所需要的實現(xiàn)。WDM支持USBl.l協(xié)議,并為用戶開發(fā)自己的用戶驅(qū)動程序提供USB驅(qū)動程序接口USBDI。USB用戶驅(qū)動程序通過USBDI訪問USB設(shè)備類驅(qū)動程序。USB外設(shè)不占用端口或中斷等硬件資源,所有低層I/O都由USB設(shè)備類驅(qū)動程序處理??蛻趄?qū)動程序只關(guān)心數(shù)據(jù)傳輸類型、傳輸時序、傳輸管道以及如何處理數(shù)據(jù)等主要操作。USBDI就是為實現(xiàn)這一點而設(shè)計的軟件接口。
如圖5所示,Windows對構(gòu)成一個USB主機的不同軟件部分進行了十分清楚的劃分。其中USB客戶軟件僅僅包含了用來控制不同USB外設(shè)的設(shè)備驅(qū)動程序。USB設(shè)備驅(qū)動程序會通過Windows所定義的一個軟件接口來同根集線器驅(qū)動程序進行通信。而USB根集線器驅(qū)動程序則要通過USBDI來實現(xiàn)同通用串行總線驅(qū)動程序(USBD)的通信。然后,USBD會選擇2種主控制器驅(qū)動程序之一來同其下方的主控制器進行通信。,主控制器驅(qū)動程序會直接實現(xiàn)對USB物理總線的訪問。
在圖5中,主控制器驅(qū)動程序處于USBD的下方,而根集線器卻位于USBD上方。在一個支持USB系統(tǒng)的主機中,都會有一個根集線器來提供2個USB端口。一個USB系統(tǒng)中的所有USB設(shè)備,包括USB功能設(shè)備和USB集線器都必須以直接接入或星型接入方式接入一個USB根集線器。在Windows環(huán)境中,所有的客戶驅(qū)動程序都可以通過指向一個根集線器驅(qū)動程序的接口來和所有接入的USB設(shè)備進行通信。另外一種方法就是通過USBDI而直接同USBD進行交互。
4測試
下面以前文介紹的整個USB接口平臺為基礎(chǔ),給出USB加密系統(tǒng)原型版在Windows98操作系統(tǒng)中的測試。
測試分2步進行,首先對USB接口平臺單獨測試,然后對整體測試。
測試的主機平臺為方正“文祥600”計算機,操作系統(tǒng)的版本為Windows98第二版。首先確保硬件設(shè)備連接到PC的USB接口上,并且操作系統(tǒng)為Windows98,按照提示正確安裝驅(qū)動程序。當本設(shè)備接口連入PC機后,操作系統(tǒng)的系統(tǒng)USB總線驅(qū)動程序立刻檢測到有新的USB設(shè)備加入。在與USB設(shè)備的0節(jié)點進行通信獲得設(shè)備的基本信息后,操作系統(tǒng)將彈出窗口要求安裝驅(qū)動程序。在驅(qū)動程序正確安裝完成以后,在計算機的“系統(tǒng)屬性”中就可以看到結(jié)果,此時表示USB加密系統(tǒng)已經(jīng)被正確安裝。下面用DriverStudio自動生成的DOS界面的應用程序進行測試。
當應用程序找到設(shè)備后,就可以執(zhí)行讀、寫2種操作。首先執(zhí)行寫功能:寫入6個字符,應用程序提示寫入設(shè)備成功;然后執(zhí)行讀功能:將寫功能寫入的6個字符讀出,應用程序提示從設(shè)備讀出了6個字符,并且讀出的字符與寫入的一致,這說明了USB接口部分讀、寫功能正常。
接下來是對系統(tǒng)進行總體測試。打開以DOS應用程序為基礎(chǔ)重新編制的Windows應用程序,程序界面如圖6所示。左邊設(shè)備信息欄第1行顯示的“查找設(shè)備成功”,表示設(shè)備可以正常使用了。在“寫數(shù)據(jù)”窗口中,可以寫下任何文本內(nèi)容,在測試中我們寫下了“加密技術(shù)——讓世界更安全!”的字樣。然后點“寫入設(shè)備”按鈕,數(shù)據(jù)就被寫到USB加密板中,左側(cè)信息窗口出現(xiàn)對映的信息;再點擊“讀取數(shù)據(jù)”按鈕,在“讀數(shù)據(jù)”窗口中,顯示了由USB加密系統(tǒng)返回的密文,同樣左側(cè)信息窗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 草原割草過程中的生態(tài)環(huán)境保護考核試卷
- 陶瓷潔具產(chǎn)品生命周期管理考核試卷
- 闌尾炎術(shù)后感染臨床管理要點
- 幼兒進餐環(huán)節(jié)衛(wèi)生保健規(guī)范
- 月如意深呼吸
- 疫情期間普外科診療管理策略
- Influenza-virus-IN-9-生命科學試劑-MCE
- 超神數(shù)學-高考數(shù)學總復習基礎(chǔ)篇(一輪)(練習冊)專題03不等式(含答案或解析)
- 內(nèi)部資料性出版物管理辦法
- 海豐縣鷺影禾香鄉(xiāng)村振興示范帶建設(shè)項目可行性研究報告
- J22J262 被動式超低能耗建筑節(jié)能構(gòu)造(九)(鋼絲網(wǎng)架珍珠巖復合保溫板)DBJT02-215-2022
- 常用英語趣味習慣用語
- 新編建筑施工扣件式鋼管腳手架安全技術(shù)規(guī)范
- html5設(shè)計論文參考文獻(范例50個),參考文獻
- 俄羅斯文學導論智慧樹知到答案章節(jié)測試2023年黑龍江大學
- 全國各大銀行及支行聯(lián)行號查詢
- 物業(yè)工程人員服務(wù)意識培訓
- 入庫單(標準范本)
- 蒂森克虜伯電梯MC2-C控制系統(tǒng)用戶手冊
- GB/T 7064-2008隱極同步發(fā)電機技術(shù)要求
- GB/T 3184-1993鉛鉻黃
評論
0/150
提交評論