馮雁軍 張建國(guó)等
摘要:本文闡述基于FPGA設(shè)計(jì)實(shí)現(xiàn)加密產(chǎn)品的優(yōu)勢(shì),并以實(shí)際產(chǎn)品說(shuō)明FPGA在信源全系統(tǒng)復(fù)合加密方面的應(yīng)用。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/article/146817.htm
關(guān)鍵詞:加密技術(shù);FPGA;硬件防克??;整機(jī)加密
加密相關(guān)技術(shù)的簡(jiǎn)介
加密技術(shù)包括兩個(gè)元素:算法和密鑰。算法是將普通的文本與一串?dāng)?shù)字(密鑰)的結(jié)合,產(chǎn)生不可理解的密文的步驟,密鑰是用來(lái)對(duì)數(shù)據(jù)進(jìn)行編碼和解碼的一種算法。在安全保密中,可通過(guò)適當(dāng)?shù)拿荑€加密技術(shù)和管理機(jī)制來(lái)保證網(wǎng)絡(luò)的信息通訊安全。密鑰加密技術(shù)的密碼體制分為對(duì)稱(chēng)密鑰體制和非對(duì)稱(chēng)密鑰體制兩種。相應(yīng)地,對(duì)數(shù)據(jù)加密的技術(shù)分為兩類(lèi),即對(duì)稱(chēng)加密(私人密鑰加密)和非對(duì)稱(chēng)加密(公開(kāi)密鑰加密)。對(duì)稱(chēng)加密以數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,Data Encryption Standard)算法為典型代表,非對(duì)稱(chēng)加密通常以RSA(Rivest Shamir AdI eman)算法為代表。對(duì)稱(chēng)加密的加密密鑰和解密密鑰相同,而非對(duì)稱(chēng)加密的加密密鑰和解密密鑰不同,加密密鑰可以公開(kāi)而解密密鑰需要保密。
對(duì)稱(chēng)加密技術(shù)
對(duì)稱(chēng)加密技術(shù)又稱(chēng)私鑰加密技術(shù),就是加密密鑰能夠從解密密鑰中推算出來(lái),反過(guò)來(lái)也成立。大多數(shù)對(duì)稱(chēng)算法中,加、解密的密鑰是相同的,這些算法也稱(chēng)秘密密鑰算法或單密鑰算法。用這種加密技術(shù)通信時(shí),信息發(fā)送方用加密算法E把明文M加密,得到密文C后,然后把密文通過(guò)通信網(wǎng)絡(luò)發(fā)送給接收方,接收方在接收到密文C后,通過(guò)解密算法D進(jìn)行解密,重新得到原明文M,達(dá)到密碼通信的目的。目前廣泛采用的對(duì)稱(chēng)加密技術(shù)之一是數(shù)據(jù)加密標(biāo)準(zhǔn)DES。傳統(tǒng)信息加密產(chǎn)品面臨的問(wèn)題
當(dāng)前市場(chǎng)上存在的加密產(chǎn)品可分為幾大類(lèi):
第一類(lèi)是硬件加密產(chǎn)品。這類(lèi)產(chǎn)品的大致原理是通過(guò)主要以ARM為核心,外接加密芯片構(gòu)造而成的SOC系統(tǒng)。首先,由于加密芯片的實(shí)現(xiàn)的功能單一,不能夠?qū)崿F(xiàn)多種算法:其次,由于外接的加密芯片暴露在外,容易檢測(cè)加密芯片的管腳信號(hào),通過(guò)示波器容易知曉加解密的結(jié)構(gòu):而且這樣的結(jié)構(gòu)設(shè)計(jì)其處理速度遠(yuǎn)遠(yuǎn)不能滿(mǎn)足批量或者大文件的數(shù)據(jù)處理需求:硬件容易被克隆。
另一類(lèi)則是軟件產(chǎn)品。通過(guò)以加密算法為核心,通過(guò)編程實(shí)現(xiàn)算法,然后對(duì)文件進(jìn)行加密。由于在加密大數(shù)據(jù)的時(shí)候,加密速度很慢,而且使用軟件處理的方式會(huì)占用很多電腦的資源,難以達(dá)到人們的預(yù)期,而且網(wǎng)上有著很多的破解軟件,常用的加密算法都有對(duì)應(yīng)的解密軟件,使得加密后的數(shù)據(jù)容易被暴力破解。
基于FPGA實(shí)現(xiàn)信源加密的優(yōu)點(diǎn)
FPGA簡(jiǎn)介
目前以硬件描述語(yǔ)言(Verilog或VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過(guò)簡(jiǎn)單的綜合與布局,快速的燒錄至FPGA(Field Programmable Gate Array)上進(jìn)行測(cè)試,是現(xiàn)代IC設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯器件可以被用來(lái)實(shí)現(xiàn)一些基本的邏輯門(mén)電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的器件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。
系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過(guò)可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。
基于FPGA設(shè)計(jì)的加密產(chǎn)品的優(yōu)點(diǎn)
隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展和電子商務(wù)的日趨頻繁,對(duì)加密技術(shù)提出了更高的要求。從整體發(fā)展趨勢(shì)來(lái)看,密碼裝置應(yīng)該作為外接在主機(jī)串口或并口的一個(gè)硬件設(shè)備或是一塊插卡,具有速度快、低時(shí)延的特點(diǎn)?;贔PGA實(shí)現(xiàn)的加密技術(shù)與以往的主流硬件實(shí)現(xiàn)方式(如DSP芯片、單片機(jī)等)相比,具有低成本、高速度、微功耗、微小封裝尺寸以及保密性強(qiáng)等優(yōu)點(diǎn)。美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)協(xié)會(huì)(NIST)在對(duì)高級(jí)加密標(biāo)準(zhǔn)AES的候選算法進(jìn)行評(píng)判時(shí),就將能否在智能卡上實(shí)現(xiàn)作為一個(gè)很重要的標(biāo)準(zhǔn)。另一個(gè)明顯的優(yōu)點(diǎn)在于:在對(duì)時(shí)間代價(jià)和空間代價(jià)的取舍上,基于FPGA實(shí)現(xiàn)的加密技術(shù)提供了多種實(shí)現(xiàn)方案,分別對(duì)時(shí)間代價(jià)和空間代價(jià)有不同的偏重,有利于在各種應(yīng)用環(huán)境中進(jìn)行優(yōu)化,
由于FPGA的可配置性,F(xiàn)PGA能夠?qū)崿F(xiàn)大多數(shù)加密算法,同時(shí)使用全硬件加密處理,并行處理數(shù)據(jù),加密速度也非常快,加密結(jié)構(gòu)是被設(shè)計(jì)在FPGA內(nèi)部,結(jié)構(gòu)不易于被獲取,再將密碼與FPGA芯片DNA序列號(hào)綁定在一起,硬件不能被克隆,使其安全性能大大提高。
以深圳市振華微電子有限公司的加密產(chǎn)品為例,可體現(xiàn)基于FPGA實(shí)現(xiàn)的產(chǎn)品的處理速度,安全性能及其靈活性等等。
基于FPGA實(shí)現(xiàn)的5款加解密產(chǎn)品,根據(jù)其性能需求,選用不同的型號(hào)FPGA芯片:以帶有PCIE接口的產(chǎn)品為例,其加/解密速度根據(jù)選用的算法不同,其處理速度范圍達(dá)到300Mbps-7SOMbps。
其安全性能方面,在FPGA內(nèi)部實(shí)現(xiàn)AES、3DES這算法,密碼的組成由三部分組成,第一部分是電腦主板以及CPU的序列號(hào),第二部分是FPGA的DNA序列號(hào),第三部分是用戶(hù)保存的密碼,這樣安排密碼,可把產(chǎn)品、電腦、用戶(hù)都綁定起來(lái),三者缺一不可。對(duì)數(shù)據(jù)、密碼的處理方面,利用FPGA的靈活性,把數(shù)據(jù)、密碼的字節(jié)序混亂起來(lái)處理,更增加其安全性能。用戶(hù)更是可以定制自己的加密算法,更靈活和安全。
用同一塊FPGA芯片根據(jù)不同的應(yīng)用場(chǎng)合,可以設(shè)計(jì)為不同的產(chǎn)品,如振華微電子的PCIE加密產(chǎn)品以及整機(jī)加密產(chǎn)品(硬盤(pán)),這些都是利用了FPGA設(shè)計(jì)靈活,處理速度快等等特點(diǎn)。在PCIE產(chǎn)品中,實(shí)現(xiàn)了PCIE接口總線控制器,整機(jī)加密產(chǎn)品在一塊FPGA內(nèi)實(shí)現(xiàn)了PCIE接口控制器,USB控制器,SATA控制器以及兩種硬核加密算法。
振華微電子的產(chǎn)品適用于各種場(chǎng)合,如普通PC機(jī)、服務(wù)器(包括云服務(wù)器)等等。這些產(chǎn)品都針對(duì)信源進(jìn)行加密,保護(hù)本地信息不被泄露,信源包括本地用戶(hù)的任何存儲(chǔ)在硬盤(pán)里面的數(shù)據(jù)、文檔、可執(zhí)行文件及程序等等。
基于FPGA實(shí)現(xiàn)信源加密技術(shù)的應(yīng)用
由于FPGA加密技術(shù)有著上述諸多的優(yōu)點(diǎn),使得其應(yīng)用面非常廣泛,可以對(duì)一些重要的文件,例如license等進(jìn)行加密,也可以對(duì)整個(gè)硬盤(pán)進(jìn)行加密。在軍事領(lǐng)域的應(yīng)用中,不但對(duì)信息的保密性、一致性等方面要求高,更要求有很高的時(shí)效性,而FPGA加密技術(shù)能夠滿(mǎn)足這方面的要求。
FPGA即現(xiàn)場(chǎng)可編程邏輯器件,其特性已經(jīng)決定了它的可擴(kuò)展性和靈活性,適用于處理要求快速、安全的場(chǎng)合。尤其在信息安全領(lǐng)域,更是需要這樣的實(shí)現(xiàn)器件。
為了方便敘述,以振華微電子的整機(jī)加密模組作為實(shí)例說(shuō)明,圖1是整機(jī)加密模組的功能原理圖。
電腦的硬盤(pán)掛載在整機(jī)加密模組下,任何寫(xiě)進(jìn)去硬盤(pán)的數(shù)據(jù)文檔、系統(tǒng)文件、應(yīng)用程序都是經(jīng)過(guò)這個(gè)模組加密的,存在硬盤(pán)里面的數(shù)據(jù)都是密文(包括操作系統(tǒng)、程序等);當(dāng)用戶(hù)需要使用電腦時(shí),需先把USB key插在整機(jī)加密模組的USB口(而不是電腦主板的USB,主板的USB口容易被監(jiān)控、跟蹤),然后開(kāi)啟電源,當(dāng)整機(jī)加密模組檢測(cè)到正確的USB key時(shí),才會(huì)啟用解密,并對(duì)從硬盤(pán)里面讀出來(lái)的密文進(jìn)行解密,電腦才能啟用;當(dāng)用戶(hù)使用完畢電腦,關(guān)機(jī),拔出USB key,即可放心離開(kāi)。
如果整個(gè)加密模組、硬盤(pán)甚至整臺(tái)電腦都丟失,只要USB key在用戶(hù)手上,用戶(hù)也不用擔(dān)心,因?yàn)檎麢C(jī)加密模組以及電腦主板是綁定在一起的,而且存硬盤(pán)里面的密文數(shù)據(jù)字節(jié)序更是被隨機(jī)打亂,黑客獲得被隨機(jī)打亂字節(jié)序的密文,他能干什么呢?密文是經(jīng)過(guò)256bit的AES加密的,在當(dāng)前破解256bit的AES,還只是奢望。
用戶(hù)也不用擔(dān)心USB key被克隆,USB key也是基于FPGA實(shí)現(xiàn)的,這個(gè)FPGA的DNA序列也是全世界獨(dú)一無(wú)二的,這里面的key有三重保護(hù):①被加密,且字節(jié)序隨機(jī)打亂:②跟唯一的FPGA DNA綁定:③DNA先經(jīng)過(guò)加密后才跟key綁定,保證別人無(wú)法知道key到底是跟什么綁定在一起。以上三點(diǎn)做到USB key無(wú)法被克隆。用戶(hù)只需要隨身帶著USB key,使用電腦時(shí),插上USB key;不使用時(shí)把USB key帶走。當(dāng)然對(duì)于監(jiān)管更嚴(yán)格的場(chǎng)所,可以把信源使用者跟usB key擁有者區(qū)分開(kāi)。
基于FPGA的特性,實(shí)現(xiàn)信源的加密產(chǎn)品,具有:靈活、安全性能高、處理速度快等特點(diǎn)。這正是FPG牘現(xiàn)信源加密的優(yōu)勢(shì)所在。