??? 摘? 要: 設(shè)計了一種高安全性的便攜式USB存儲加密系統(tǒng),。該系統(tǒng)基于嵌入式USB主機CH375設(shè)計,,采用智能卡實現(xiàn)人機安全認證和密鑰的安全存儲,采用反熔絲型FPGA 芯片AX250高速實現(xiàn)3DES算法,,能夠在完全脫離PC機的情況下對USB存儲設(shè)備中的文件進行加解密,,具有很高的安全性和整體性,并可滿足野外或移動應(yīng)用的需求,。?
??? 關(guān)鍵詞: USB存儲加密,; 嵌入式USB主機; 智能卡,; 安全認證,; 反熔絲型FPGA
?
??? 日益增加的信息安全要求,需對USB移動存儲設(shè)備中的個人隱私或敏感信息進行加解密,。傳統(tǒng)的USB存儲加密系統(tǒng)基于PC機,。PC機是USB拓撲結(jié)構(gòu)中的主機(Host),加解密時明文和密文必須經(jīng)過PC機,,PC機的軟硬件安全性給文件的加解密留下了很大的安全隱患,。因此,傳統(tǒng)的USB存儲加密系統(tǒng)安全性較低,,且不能滿足野外或移動應(yīng)用的需求,。基于嵌入式設(shè)計的本系統(tǒng),,可以完全脫離PC機工作,,并且采用智能卡、反熔絲型FPGA實現(xiàn)USB文件安全,、高速的加解密,,提高了系統(tǒng)的安全性和整體性能,,提供了便攜使用性,具有較高的實用價值和良好的應(yīng)用前景,。?
1 系統(tǒng)總體結(jié)構(gòu)?
??? 系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示,。系統(tǒng)由智能卡和加密機兩大部分構(gòu)成,,智能卡通過ISO 7816接口與加密機相連,。加密機主要由51單片機、嵌入式USB主機,、FPGA,、智能卡接口電路、電源電路和按鍵,、LED等人機交互接口電路構(gòu)成,。嵌入式USB主機作為USB拓撲結(jié)構(gòu)中的主機(Host),完成USB存儲設(shè)備的訪問管理和USB文件的讀寫,。USB文件的加解密由FPGA高速實現(xiàn)3DES算法來完成,。智能卡實現(xiàn)系統(tǒng)的安全管理。智能卡接口電路實現(xiàn)ISO 7816接口到并行接口的轉(zhuǎn)換,。51單片機通過并行總線與嵌入式USB主機,、FPGA和智能卡接口電路相連,負責(zé)整個系統(tǒng)的管理和控制,。?
?
?
2 系統(tǒng)安全性設(shè)計?
??? 安全性是加密系統(tǒng)一項至關(guān)重要的性能指標(biāo),。本系統(tǒng)從以下幾方面進行了嚴密的安全性設(shè)計,確保系統(tǒng)的高安全性,。?
2.1 工作模式?
??? 基于嵌入式USB主機設(shè)計,,實現(xiàn)可完全脫離PC機運行的嵌入式工作模式,從而消除了PC機軟硬件安全隱患,,提高了系統(tǒng)的安全性,。?
2.2 安全認證?
??? 安全認證包括加密機與智能卡之間的設(shè)備認證和智能卡與操作者之間的身份認證。?
??? 設(shè)備認證通過對比加密機和智能卡中存放的設(shè)備認證碼來實現(xiàn),。每個加密機與唯一一個智能卡配對使用,,均存放著相同的設(shè)備認證碼,且不同的加密機和智能卡有不同的設(shè)備認證碼,,通過對比各自存放的設(shè)備認證碼可對智能卡的合法性進行認證,。?
??? 身份認證通過智能卡的口令驗證實現(xiàn),只有輸入正確的智能卡口令才能通過口令驗證,,從而對操作者的合法性進行認證,。?
??? 在安全認證過程中,任何一個認證若不通過加密機,,則結(jié)束操作,。因此只有當(dāng)密碼機,、唯一與之配對的智能卡和正確的智能卡口令三個要素同時具備時,才能通過認證,。缺乏其中任何一個要素,,認證都將失敗,加密機結(jié)束操作,,從而使系統(tǒng)的安全性大大提高,。?
2.3 加解密算法的安全性?
??? 加解密算法的安全性包括算法自身的安全性以及算法存放和調(diào)用的安全性。?
??? 本系統(tǒng)的加解密算法選用3DES算法,。3DES算法的密鑰長度為168位,,用窮舉搜索結(jié)果攻擊密文需要測試2 168次,可以有效克服窮舉攻擊,,并且增強了抗差分分析和線性分析能力,,具有極其強大的安全性[1]。?
??? 算法存放和調(diào)用的安全性依賴于器件自身具有的安全防護能力,。本系統(tǒng)選用ACTEL公司反熔絲型FPGA芯片AX250存放和調(diào)用算法,。反熔絲型FPGA不需要專門的編程芯片,且具有編程內(nèi)容不可讀,、運行時不能改的性能,,可有效地保護算法,從而提高系統(tǒng)的安全性,。?
2.4 密鑰的安全性?
??? 本系統(tǒng)選用智能卡實現(xiàn)密鑰的安全存放和調(diào)用,。智能卡中集成了微處理器、存儲單元以及芯片操作系統(tǒng)COS(Chip Operating System),,從而構(gòu)成一個完整的計算機系統(tǒng),。它不僅具有數(shù)據(jù)存儲功能,同時還具有命令處理和數(shù)據(jù)安全保護等功能,,因此安全性大大增強,。本系統(tǒng)選用智能卡作為密鑰存放的介質(zhì),密鑰的調(diào)用受卡內(nèi)COS操作系統(tǒng)的安全保護,,利用智能卡自身的物理安全機制和COS操作系統(tǒng)的安全體系為密鑰的存放和調(diào)用提供雙重的安全保證,。?
2.5 其他安全防范措施?
??? (1)設(shè)備認證碼的存放和調(diào)用受AX250和智能卡的保護,避免外部訪問,。?
??? (2) 加密機與智能卡可分離存放,,減少失密的可能。?
??? (3)在系統(tǒng)開機時對算法和密鑰聯(lián)合運行的正確性進行自檢,,防止加解密錯誤,。?
3 系統(tǒng)硬件設(shè)計?
3.1 51單片機電路設(shè)計?
??? 51單片機選用CYGNAL公司的C8051F023。C8051F023是完全集成的系統(tǒng)級SoC芯片,,具有25 MIPS的CIP-51內(nèi)核,,內(nèi)部資源豐富,、功耗低、可提高系統(tǒng)的可靠性和便攜性,。?
??? 單片機電路原理如圖2所示,。C8051F023外接25 MHz晶振,程序執(zhí)行速度可高達25 MIPS,。為提高數(shù)據(jù)通信速率,,單片機通過8位非復(fù)用并行總線與嵌入式USB主機、FPGA和智能卡接口電路通信,。因外部所需地址空間較少,,單片機采用線選的方式進行片選,,A15片選USB主機,,端口地址范圍為6000H~7FFFH;A14片選FPGA,,端口地址范圍為A000H~BFFFH,;A13片選智能卡接口電路,端口地址范圍為C000H~DFFFH,。?
?
?
3.2 嵌入式USB主機電路設(shè)計?
??? 嵌入式USB主機選用CH375,。CH375是一款USB通用接口芯片,支持Host主機方式和Slave設(shè)備方式,,主機端點輸入和輸出緩沖區(qū)各為64 B,。在Host主機方式下支持各種常用的USB全速設(shè)備,外部處理器可以方便地通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信[2],。?
??? 嵌入式USB主機電路原理如圖3所示,。TXD管腳接地,CH375通過并行接口與C8051F023通信,。地址輸入線A0連接至單片機的地址線A0,,當(dāng)A0為高電平時選擇命令端口,可以寫入命令,;當(dāng)A0為低電平時選擇數(shù)據(jù)端口,,可以讀寫數(shù)據(jù),因此CH375命令端口的訪問地址為6XX1H或7XX1H,,數(shù)據(jù)端口的訪問地址為6XX0H或7XX0H,。中斷請求INT連接到單片機的中斷輸入/INT0。V3管腳接3.3 V,,選擇工作電壓為3.3 V,,從而與接口的C8051F023保持電平兼容。接插件J201為通用USB插座,,外接待加解密的USB存儲設(shè)備,。
?
?
3.3? FPGA電路設(shè)計?
??? FPGA選用反熔絲型FPGA芯片AX250,。該芯片除具有較高的安全性,還具有資源豐富,、速度快,、功耗低、抗輻射能力強和耐高低溫等優(yōu)點,,可大幅提高系統(tǒng)的整體性能[3],。?
??? FPGA電路原理如圖4所示。AX250通過8位并行接口與單片機C8051F023通信,。內(nèi)部工作電壓VCC PL接1.5 V,,保證芯片低功耗運行。外部IO電壓VCC IB接3.3 V,,保持與C8051F023電平兼容,。AX250的時鐘由晶振CRY301輸入,時鐘頻率根據(jù)FPGA內(nèi)部程序邏輯綜合后的時鐘頻率而定,,系統(tǒng)最終實現(xiàn)的頻率為33 MHz,。因單片機只有兩個外部中斷,F(xiàn)PGA與智能卡接口電路共用同一個中斷為智能卡接口電路的中斷請求,。系統(tǒng)在FPGA中設(shè)置一中斷標(biāo)志寄存器,,當(dāng)FPGA或智能卡接口電路請求中斷時會分別置對應(yīng)的中斷標(biāo)志位為1,單片機通過查詢中斷標(biāo)志寄存器即可確定的中斷源,。?
?
?
3.4智能卡接口電路設(shè)計?
??? 智能卡接口電路選用Philips公司的TDA8007,。TDA8007能夠提供兩個滿足ISO7816 標(biāo)準(zhǔn)的智能卡接口,并通過并行總線與微處理器通信,,可實現(xiàn)ISO7816接口到8位并行接口的轉(zhuǎn)換,。TDA8007 內(nèi)部集成的電源管理功能允許TDA8007的供電范圍可達2.7~6.0 V,并且通過電源管理可以給智能卡提供5.0 V,、3.0 V及1.8 V電源,,以適合不同工作電壓的智能卡應(yīng)用[4]。?
??? 智能卡接口電路原理如圖5所示,。工作電壓選擇3.3 V,,保持與接口的C8051F023電平兼容。并行總線接口為非復(fù)用方式,,ALE信號接高電平,,AD0~AD3與單片機A0~A3相連。中斷請求連至FPGA,,與FPGA共用單片機的同一中斷,。接插件J401為智能卡ISO7816接口插座。?
?
?
4 系統(tǒng)軟件設(shè)計?
4.1 單片機C8051F023軟件設(shè)計?
??? C8051F023是本系統(tǒng)的控制核心,負責(zé)管理及協(xié)調(diào)系統(tǒng)其他各部分的工作,,程序流程圖如圖6所示,。其中與USB有關(guān)的操作由單片機控制CH375完成,,自檢、安全認證和數(shù)據(jù)加解密等操作由單片機控制智能卡和FPGA完成,。?
?
?
4.2 3DES算法的實現(xiàn)?
??? 3DES算法用硬件描述語言VHDL編程實現(xiàn),,算法實現(xiàn)的整體結(jié)構(gòu)框架如圖7所示。加解密密鑰K1,、K2,、K3存儲在密鑰存儲RAM中,經(jīng)子密鑰產(chǎn)生模塊產(chǎn)生三組子密鑰SUBK1,、SUBK2,、SUBK3,分別提供給3個DES模塊,。待加解密數(shù)據(jù)存儲在輸入FIFO中,,在控制模塊的控制下每次讀取64位送到DES模塊1,經(jīng)DES模塊1,、DES模塊2和DES模塊3處理完后,,把加解密的結(jié)果送到輸出FIFO中,從而完成一組數(shù)據(jù)的3DES加解密,。
?
?
??? 此設(shè)計采用循環(huán)全部打開和流水線結(jié)構(gòu)來設(shè)計單個的DES模塊。循環(huán)打開后,,實現(xiàn)DES模塊的全部16輪圈函數(shù)便級聯(lián)在一起,,上一圈函數(shù)的輸出作為下一圈函數(shù)的輸入,然后在每輪的中間加上寄存器來實現(xiàn)流水線,,從而最多可有16個數(shù)據(jù)分組被同時執(zhí)行圈函數(shù)運算,,流水線的各個圈函數(shù)以重疊并行的方式工作[5]。這樣,,在理想的流水線操作情況下,,完成一個數(shù)據(jù)分組的DES運算相當(dāng)于只需1個時鐘,每個DES模塊的加解密速度提高近16倍,。同理,,3個DES模塊之間的級聯(lián)也采用流水線結(jié)構(gòu)來設(shè)計。通過采用三級流水,可以使3個DES模塊同時并行工作,,從而進一步提高3DES算法的加解密速度,。?
5 結(jié)果測試?
5.1 安全認證測試?
??? 在以下幾種情況下使用本系統(tǒng)對USB存儲設(shè)備進行加解密:?
??? (1)不插入智能卡,只使用加密機,。?
??? (2)使用不配對的加密機,、智能卡。?
??? (3)使用配對的加密機,、智能卡,,但不輸入或輸入錯誤的智能卡口令,。?
??? 測試結(jié)果顯示,以上3種情況下系統(tǒng)均不能通過安全認證,,加密機停止操作,,無法完成USB存儲設(shè)備的加解密。?
5.2 保密數(shù)據(jù)的安全性測試?
??? 通過多種訪問途徑或接口方式,,嘗試從系統(tǒng)外部訪問智能卡和FPGA中存放的密鑰,、算法和設(shè)備認證碼等保密數(shù)據(jù),結(jié)果顯示均失敗,,保密數(shù)據(jù)無法被外部訪問,。?
5.3 加解密性能測試?
??? 加解密性能測試包括準(zhǔn)確性測試和速度測試。使用本系統(tǒng)對U盤中100個不同大小的文件進行加密操作,,將得到的密文與正確的密文進行對比,;再將得到的密文進行解密操作,將得到的明文與原有文件進行對比,。結(jié)果顯示全部正確,,系統(tǒng)具有很高的加解密準(zhǔn)確性。記錄下各文件加解密的時間,,測得系統(tǒng)的平均加解密速度為355 kb/s,,系統(tǒng)具有較快的加解密速度。?
??? 本文采用嵌入式USB主機CH375,、智能卡和反熔絲型FPGA芯片AX250設(shè)計并實現(xiàn)了一種高安全性的便攜式USB存儲加密系統(tǒng),。該系統(tǒng)可以完全脫離PC機工作,安全性高,、便攜性好,、加解密速度快、整體性能良好,。?
參考文獻?
[1] 吉杰,林洽欣.用三重DES加密.NET數(shù)據(jù)庫連接字符串[J].計算機工程與設(shè)計,2007,28(4):817-819.?
[2] 李海軍.基于USB總線接口芯片CH375的虛擬儀器設(shè)計[J].三峽大學(xué)學(xué)報(自然科學(xué)版),2005,27(2):168-170.?
[3] 卿輝,肖紅躍.反熔絲FPGA在密碼芯片設(shè)計中的運用[J]. 通信技術(shù),2001(1):62-63.?
[4] 飛利浦半導(dǎo)體公司.TDA8007 Multiprotocol smart card?interface [EB/OL] . http://www.semiconductors.philips.com/products/TDA8007.html.?
[5] 王簡瑜,張魯國.基于FPGA實現(xiàn)DES算法的性能分析[J]. 微計算機信息,2007,23(3-2):217-218.