0 引言
USB 總線因其具有高速度,、即插即用,、功耗低等特點,,深受廣大用戶的青睞,。但USB 規(guī)范本身并未考慮數(shù)據(jù)傳輸時的安全性問題,,所以它的安全性能低,,不適合用來傳輸安全性 要求較高的信息,。本文在研究USB2.0 規(guī)范以及應用密碼學等安全防護技術的基礎上,提出 一個基于ASIC 的整體解決方案,。目的是用硬件描述語言設計一個既符合USB2.0 規(guī)范,,同 時又可以將流經(jīng)該接口芯片的數(shù)據(jù)進行自動加密的專用集成電路。最后,,對所設計的系統(tǒng)在 FPGA 上進行驗證,,給出系統(tǒng)在FPGA 上所耗用的資源以及性能參數(shù),對得到的數(shù)據(jù)進行分 析,。
1 相關知識
1.1 USB 簡介
從USB1.0 版本發(fā)布到2.0 版本,,中間經(jīng)歷了多次版本更新。從1998 年7 月的Windows98 開始,,USB 外圍設備開始陸續(xù)出現(xiàn),,同時也成為最受歡迎的接口.它的優(yōu)點為:容易使用、傳輸速度快,、低價位,、低能耗、高穩(wěn)定性,、操作系統(tǒng)支持,、外圍設備的支持、有彈性.缺點為:缺乏對數(shù)據(jù)安全性的考慮,、缺乏對舊硬件的支持,、點對點的通信、速度的限制,、距離的 限制、硬件的錯誤或故障,、協(xié)議的復雜性,、版權費,。
1.2 AES 簡介
1.2.1 原理及起源
AES(Advanced Encryption Standard)是由美國國家標準與技術研究所于1997 年提出征集該算法的公告并最終選定了兩個比利時研究者Vincent Rijmen 和Joan Daemen 發(fā)明的 Rijndael)算法,并于2001 年正式發(fā)布了AES 標準,。
1.2.2 AES 工作流程
Rijndael 算法本質(zhì)上是一種對稱分組密碼體制,,采用代替/轉換網(wǎng)絡,每輪由三層組成:線性混合層確保多輪之上的高度擴散,;非線性層由16 個S 盒并置起到混淆的作用,;密鑰加 密層將子密鑰層異或到中間狀態(tài)。Rijndael 是一個迭代分組密碼,,其分組長度和密鑰長度都 是可變的,,只是為了滿足AES 的要求才限定處理的分組大小為128 位。而密鑰長度為128 位,、192 位或256 位,,相應的迭代輪數(shù)Nr 為10 輪、12 輪,、14 輪,。可以抵御強大和實時的攻擊,。
2 系統(tǒng)解決方案
2.1 系統(tǒng)原理
本文主要目的是要設計一個既符合USB2.0 規(guī)范的數(shù)據(jù)接收和發(fā)送,,又可以對接收到的數(shù)據(jù)進行自動加密的專用集成電路的設計,并將所設計的系統(tǒng)用FPGA 對其進行功能驗證,。
該系統(tǒng)由兩大模塊組成:USB 模塊和AES 加密模塊,。 系統(tǒng)結構如圖1 所示:
其中,USB 模塊實現(xiàn)流經(jīng)數(shù)據(jù)依照USB2.0 規(guī)范進行接收和發(fā)送,。將要發(fā)送的數(shù)據(jù)進行裝配,、 打包處理,并對接收到的數(shù)據(jù)包進行分解,,在存儲器接口與優(yōu)先級判別模塊的處理之后將數(shù) 據(jù)存入外部存儲器 (SSRAM)或通過WISHBONE 接口電路與外圍設備進行通訊,;AES 加密 模塊負責對接收到的數(shù)據(jù)進行加密處理,密鑰封裝在芯片中的存儲器中,。
2.1.1 USB 接口模塊原理
該模塊實現(xiàn)了符合USB2.0 規(guī)范的數(shù)據(jù)處理以及不同的外設與計算機的互連和數(shù)據(jù)通 信,。 該模塊的主要功能包括:
(1) 完全支持 USB2.0 規(guī)范,提供全速模式和高速模式,,其數(shù)據(jù)率分別為12Mbit/s 和 480Mbit/s,。
(2) 支持 WISHBONE 接口電路和該模塊之間采用DMA 方式進行數(shù)據(jù)通信。
(3) 模塊的掛起/恢復功能,。 該模塊結構如圖2 所示,。其中。PHY 模塊負責將數(shù)據(jù)發(fā)送到與USB 連接器相連的計算 機,,或接收來自計算機的數(shù)據(jù),;UTMI(數(shù)據(jù)通用收發(fā)宏單元接口)與PL(協(xié)議層)模塊及內(nèi)部 數(shù)據(jù)存儲器,、控制寄存器相連負責保持通信數(shù)據(jù)的格式符合USB2.0 規(guī)范中的協(xié)議格式; WISHBONE(主接口電路)是內(nèi)部數(shù)據(jù)存儲器,、控制寄存器與外部設備之間的通信橋梁,。
2.1.2 AES 模塊原理
該模塊負責將USB 模塊接收并解包的數(shù)據(jù)進行加密然后將加密后的數(shù)據(jù)存入外部存儲器或通過WISHBONE 接口電路送到外圍設備中。
該模塊結構圖如圖3 所示,。它主要包括數(shù)據(jù)位寬變換模塊和AES 加密單元,。在USB 模 塊數(shù)據(jù)接收和處理的位寬為8,而AES 加密模塊中,,明文和密鑰的位寬為128,,所以在USB 模塊將接收來的數(shù)據(jù)包解包后所獲得的數(shù)據(jù)不能直接加密,需要進行位寬調(diào)整后才可以加 密,。數(shù)據(jù)位寬變換模塊的功能就是將PL 解包后的8 位數(shù)據(jù)連接成128 位后再送入AES 加密 單元,;AES 加密單元將送入的128 位明文與密鑰存儲器中的密鑰進行十輪AddRoundkey、 SubBytes,、ShiftRows,、MixColumns 變換后完成明文加密,并將加密后的數(shù)據(jù)(密文)送入外 部存儲器或通過WISHBONE 接口電路送到外圍設備中,。
2.2 性能分析
本文采用Stratix 系列的EP1S10F484C5 芯片對該系統(tǒng)進行驗證,。
2.2.1 USB2.0 模塊的性能分析
下表為USB 模塊綜合后的性能參數(shù):
2.2.2 AES 模塊的性能分析
當輸入信息={32 43 f6 a8 88 5a 30 8d 31 31 98 a2 e0 37 07 34},輪數(shù)Nr=10,,加 密密鑰={2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c},,加密結果={39 25 84 1d 02 dc 09 fb dc 11 85 97 19 6a 0b 32},經(jīng)檢驗該結果是正確的,,完全符合AES 加密算法,。
下表為AES 加密算法綜合后的數(shù)據(jù):
2.2.3 整個系統(tǒng)的性能分析
下表為系統(tǒng)綜合后的性能參數(shù):
由以上綜合結果分析可以得出,該系統(tǒng)在FPGA 上進行驗證是完全可行的,,而且它的頻 率可以達到336.02MHz,,完全可以實現(xiàn)USB480Mbits/s 的傳輸速度。
2.3 系統(tǒng)實施的必要性和可行性分析
該系統(tǒng)的主要目的是設計一個可以對數(shù)據(jù)進行自動加密的USB2.0 接口芯片,常規(guī)的USB 接口芯片是不帶加密功能的,。而現(xiàn)今USB 的應用領域中有很大一部分需要對所傳輸?shù)臄?shù)據(jù)進 行加密,。對安全性要求特別高,所以制作一個既符合USB2.0 規(guī)范,又可對數(shù)據(jù)進行自動加密 處理的專用集成電路在應用上將會有很大的應用空間.制作這樣的集成電路很有必要.
FPGA 是一種可重構硬件,它既具有硬件的安全性和高速性又有軟件的靈活性和易維護性,,已經(jīng)成為分組密碼算法硬件實現(xiàn)的熱點研究方向,;另外FPGA 研發(fā)的啟動開銷比ASIC 要小,F(xiàn)PGA 從設計到投入市場的周期很短,,F(xiàn)PGA 芯片重配置和擴充十分方便,,它能夠商定 所需的密碼算法,更換的密碼算法可以適時配置到目標設備中。當前,,F(xiàn)PGA 芯片的容量不 斷的增大,,片內(nèi)還有內(nèi)嵌存儲器,這就使查找表和變換操作可以很容易的實現(xiàn),,因此在百萬 門的FPGA 中實現(xiàn)本文所提系統(tǒng)是可行的。
3 系統(tǒng)優(yōu)勢分析
提高USB 數(shù)據(jù)通訊可靠性的措施基本上可以分為兩種:一種經(jīng)過計算機軟件處理,,對數(shù) 據(jù)進行加密,;另一種方法是在硬件的層面上對數(shù)據(jù)直接加密。其中軟件處理實現(xiàn)起來較簡單,, 但軟件加密處理速度比硬件加密慢許多,,如果需要對大量數(shù)據(jù)進行實時加密,軟件處理將會 消耗太多的時間,,不適合數(shù)據(jù)的實時加密和通訊,。相反,用硬件的方法來解決,,在速度方面 將獲得較理想的實時加密通訊的效果,。
另外,由于加密算法中都大量使用了復雜的按位運算,,而通常這類運算不適合在通用處 理器上運行,,因此用軟件來實現(xiàn)必然會帶來效率低下的問題,而加密芯片體系結構是針對加 密算法的結構特征專門設計的,,采用了一些特殊的優(yōu)化技術(如流水線和查找表等),,可以 極大地提高數(shù)據(jù)的流量并減少密鑰的生成時間;另外軟件只能提供有限的物理安全,,尤其在 密鑰的存儲方面,。而用硬件實現(xiàn)加密算法及與之相關的密鑰生成過程,并且封裝到芯片中,, 因為它們不易被外部攻擊者讀取或更改,,會有較高的物理安全性。因此基于硬件的密碼算法 就受到業(yè)界的普遍關注,可以完全勝任整個系統(tǒng)的安全保密工作,。
由以上分析可知,,該系統(tǒng)采用硬件處理加密和USB 通訊,可以在滿足USB2.0 規(guī)范的數(shù) 據(jù)傳輸?shù)幕A上,,極大地提高系統(tǒng)的安全性,。
4 結論
綜上所述, 通過研究對USB 通訊安全性的需求,開發(fā)一個具有數(shù)據(jù)實時自動加密的USB 設備控制器可以開創(chuàng)USB 安全通信的新領域,而且,現(xiàn)在市面上大多數(shù)器件的外圍接口的都 支持USB,如果可以開發(fā)一塊保密性高而又不影響原有USB 通訊高速率,、簡單易用的芯片將 會受到廣大用戶的青睞.