文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190190
中文引用格式: 劉敏,嚴(yán)迎建,南龍梅. 面向CGRCA配置比特流的硬件木馬攻擊防護(hù)方法[J].電子技術(shù)應(yīng)用,2019,45(9):39-45.
英文引用格式: Liu Min,Yan Yingjian,Nan Longmei. A hardware Trojan attack protection method for CGRCA configuration bitstream[J]. Application of Electronic Technique,2019,45(9):39-45.
0 引言
粗粒度可重構(gòu)陣列(CGRA)[1]兼具通用處理器(GPP)和專用集成電路(ASIC)的優(yōu)勢(shì),在計(jì)算機(jī)視覺(jué)、信號(hào)處理和密碼運(yùn)算等數(shù)據(jù)密集型應(yīng)用上,展現(xiàn)了強(qiáng)大的優(yōu)勢(shì)和潛力[1-2]。近年來(lái),基于CGRA的粗粒度可重構(gòu)密碼陣列(CGRCA)[2]在密碼處理領(lǐng)域發(fā)展十分迅速。與傳統(tǒng)密碼芯片相比,CGRCA是專門(mén)面向密碼算法高速實(shí)現(xiàn)而設(shè)計(jì)的CGRA,具有可重構(gòu)、并行度高和效率高的特點(diǎn)。隨著芯片產(chǎn)業(yè)全球化的不斷推進(jìn),CGRCA也遭受硬件木馬(Hardware Trojan Horse,HTH)[1,3-4]攻擊的潛在威脅。
硬件木馬是對(duì)硬件電路的惡意修改或添加以達(dá)成攻擊者的目的。CGRCA依賴配置流實(shí)現(xiàn)可重構(gòu)[5],當(dāng)前針對(duì)可重構(gòu)設(shè)備配置流的硬件木馬檢測(cè)和防護(hù)技術(shù),主要通過(guò)認(rèn)證和編碼實(shí)現(xiàn),大多集中在FPGA領(lǐng)域,難以直接移植應(yīng)用于CGRCA。如文獻(xiàn)[1]面向CGRCA提出基于動(dòng)態(tài)規(guī)劃的安全配置方案,側(cè)重于硬件木馬容忍,無(wú)法防護(hù)攻擊配置流的硬件木馬。文獻(xiàn)[6]提出一種基于軟錯(cuò)誤容忍的編碼技術(shù),以保護(hù)基于SRAM的配置存儲(chǔ)器,但難以防護(hù)惡意硬件木馬。文獻(xiàn)[7]、文獻(xiàn)[8]提出采用AES-GCM和AES-CMAC模式對(duì)FPGA配置流進(jìn)行加密認(rèn)證保護(hù),但難以直接移植于CGRCA。
針對(duì)已有工作的不足,為了對(duì)CGRCA配置流進(jìn)行保護(hù),本文提出基于認(rèn)證和加密安全引擎的硬件木馬攻擊防護(hù)方法。首先,綜合分析了CGRCA結(jié)構(gòu)及其配置特點(diǎn),總結(jié)了面向CGRCA未加密原始配置流的安全漏洞,并給出了可能的攻擊流程和植入方法。其次,針對(duì)該攻擊流程,本文提出了基于改進(jìn)CCM安全引擎的硬件木馬防護(hù)措施,以軟硬結(jié)合的形式實(shí)現(xiàn)對(duì)配置流完整性和真實(shí)性的保護(hù),并通過(guò)資源復(fù)用進(jìn)一步優(yōu)化了面積開(kāi)銷。
1 CGRCA結(jié)構(gòu)分析
1.1 CGRCA結(jié)構(gòu)分析
CGRCA采用數(shù)據(jù)流加配置流驅(qū)動(dòng)[2],主要由配置網(wǎng)絡(luò)、控制網(wǎng)絡(luò)和數(shù)據(jù)網(wǎng)絡(luò)三部分組成[9]。CGRCA的硬件結(jié)構(gòu)如圖1所示。
如圖1所示,配置網(wǎng)絡(luò)由配置解析器和4個(gè)配置頁(yè)面組成,通過(guò)配置可重構(gòu)物理資源,完成對(duì)數(shù)據(jù)網(wǎng)絡(luò)和控制網(wǎng)絡(luò)的重構(gòu)??刂凭W(wǎng)絡(luò)經(jīng)配置網(wǎng)絡(luò)配置后,產(chǎn)生數(shù)據(jù)網(wǎng)絡(luò)所需控制信號(hào),以支持?jǐn)?shù)據(jù)網(wǎng)絡(luò)的正確運(yùn)算。數(shù)據(jù)網(wǎng)絡(luò)是CGRCA的主要運(yùn)算部分,其核心是針對(duì)密碼運(yùn)算設(shè)計(jì)的2D-mesh結(jié)構(gòu)可重構(gòu)處理單元陣列(Reconfigurable Processing Unit Array,RPUA)。數(shù)據(jù)網(wǎng)絡(luò)經(jīng)配置網(wǎng)絡(luò)配置后,能夠組成特定密碼運(yùn)算所需的結(jié)構(gòu),在控制網(wǎng)絡(luò)支持下,完成對(duì)數(shù)據(jù)的加解密操作。
1.2 CGRCA配置情況分析
下文以規(guī)模為8×8的CGRCA陣列為對(duì)象,分析其配置情況。單個(gè)規(guī)模8×8的陣列由4個(gè)規(guī)模4×4的小陣列組成,其中單個(gè)RPU為最小運(yùn)算單元和最小配置單元。在具體配置時(shí),陣列實(shí)際配置信息來(lái)自于陣列外部FIFO,其大小取決于具體映射的密碼算法。所有配置信息采用層次化存儲(chǔ)方式存儲(chǔ)在配置網(wǎng)絡(luò)中,其配置網(wǎng)絡(luò)分為三層,包括單元配置存儲(chǔ)UCM、局部配置存儲(chǔ)LCM和全局配置存儲(chǔ)GCM,如圖2所示。配置網(wǎng)絡(luò)中單元配置存儲(chǔ)UCM負(fù)責(zé)單個(gè)RPU單元單個(gè)配置頁(yè)面的配置信息寄存,每個(gè)RPU單元的配置信息由4個(gè)UCM共同負(fù)責(zé)。局部配置存儲(chǔ)LCM負(fù)責(zé)陣列的配置信息存儲(chǔ),全局配置存儲(chǔ)GCM負(fù)責(zé)陣列的配置信息存儲(chǔ)和4個(gè)小陣列的共享存儲(chǔ)。具體配置比特文件由包頭和配置信息塊組成,其組織形式如圖3所示。
圖3中,包頭將配置信息分成不同的模塊。包頭包含配置信息塊的分發(fā)和轉(zhuǎn)移信息,配置信息塊則代表具體配置任務(wù)。CGRCA在配置時(shí),首先,在配置端完成從算法DFG圖到配置比特流的轉(zhuǎn)換,接著通過(guò)JTAG端口將外部配置流文件傳輸?shù)紺GRCA的輸入FIFO,然后由CGRCA配置端口寫(xiě)入CGRCA陣列存儲(chǔ)器內(nèi),最后,配置解析器解析配置流文件,通過(guò)不同單元配置信息的分發(fā)和轉(zhuǎn)移來(lái)完成配置。配置信息在分發(fā)和轉(zhuǎn)移時(shí),都以1個(gè)配置頁(yè)面為最小單元,從而能實(shí)現(xiàn)單個(gè)RPU的單時(shí)鐘周期配置。
2 面向CGRCA配置流的硬件木馬攻擊威脅
2.1 面向CGRCA配置流的硬件木馬分類
面向配置流進(jìn)行硬件木馬攻擊,通常通過(guò)不可信的EDA工具、不可信的傳輸信道或者不可信的使用者實(shí)施。其攻擊對(duì)象是CGRCA配置流,其主要手段是直接修改配置信息比特流文件。與FPGA配置流的硬件木馬[5]類似,根據(jù)硬件木馬電路與原始電路在CGRCA的占用資源是否重疊,可以分為資源相關(guān)型硬件木馬(RDH)和資源無(wú)關(guān)型硬件木馬(RIH)兩類。圖4為兩類硬件木馬的示意圖。
圖4(a)為未受到硬件木馬攻擊時(shí),含有6個(gè)節(jié)點(diǎn)的原始DFG圖映射到陣列上的情況。資源相關(guān)型硬件木馬是指插入的硬件木馬電路與原始電路在CGRCA上占用的資源部分或者完全重疊。此時(shí),硬件木馬電路與原始電路不獨(dú)立,而是以某種方式相互連接。如圖4(b)中,RDH型硬件木馬的觸發(fā)電路與節(jié)點(diǎn)C所在單元重合。資源無(wú)關(guān)型攻擊是指插入的硬件木馬電路與原始電路在CGRCA上占用的資源無(wú)重疊。資源無(wú)關(guān)型硬件木馬通常不會(huì)影響到原始電路功能,和原始電路功能彼此獨(dú)立。如圖4(c)中,RIH型硬件木馬電路的觸發(fā)單元和有效載荷均不與原始電路相連。考慮到CGRCA主要用于實(shí)現(xiàn)密碼算法,因此對(duì)攻擊者而言,其主要目的是竊取密鑰或者破壞原始電路邏輯功能。RIH型硬件木馬雖然插入簡(jiǎn)單,但是不能破壞原始功能,無(wú)法完成上述攻擊目的。因此,本文側(cè)重討論資源相關(guān)型硬件木馬(RDH型)攻擊。
2.2 RDH型硬件木馬攻擊流程
RDH型硬件木馬插入較為復(fù)雜,需要攻擊者熟悉配置比特流與CGRCA架構(gòu)連接之間的相關(guān)性。對(duì)于攻擊者而言,即便配置比特流是可獲得的,要成功實(shí)施RDH型攻擊,仍然存在兩個(gè)主要問(wèn)題:首先,攻擊者必須熟悉配置比特流的結(jié)構(gòu);其次,必須在大量原始比特流中找到對(duì)應(yīng)攻擊比特?,F(xiàn)有可重構(gòu)設(shè)備的比特流均采用專有文件格式[10],并沒(méi)有公開(kāi)文獻(xiàn)分析比特流與硬件資源的對(duì)應(yīng)關(guān)系。因此,即使攻擊者完全獲取到比特流,如何識(shí)別和攻擊未知設(shè)計(jì)中的關(guān)鍵部件也是巨大的挑戰(zhàn)。而通過(guò)分析CGRCA的結(jié)構(gòu)特征可知,CGRCA中的關(guān)鍵加密部件包含密鑰處理單元RKB和非線性部件RSB。假設(shè)攻擊者掌握原始比特流中對(duì)應(yīng)包頭信息,則針對(duì)特定的RKB和RSB進(jìn)行攻擊是完全可行的。
為成功實(shí)施攻擊,攻擊者首先利用原始比特流文件,通過(guò)搜索應(yīng)RKB對(duì)應(yīng)包頭信息,找到原始陣列平臺(tái)中的密鑰處理單元配置流信息,然后通過(guò)修改關(guān)鍵數(shù)據(jù)流以針對(duì)性地插入硬件木馬,導(dǎo)致最終結(jié)果出錯(cuò)。因此,硬件木馬攻擊的輸入為原始配置信息流文件和硬件木馬數(shù)據(jù)庫(kù),關(guān)鍵步驟為特定資源搜索和比特流修改,其攻擊流程如圖5所示。
圖5中,Golden.bin文件表示與原始映射設(shè)計(jì)對(duì)應(yīng)的二進(jìn)制文件,HT.bin文件表示硬件木馬對(duì)應(yīng)的二進(jìn)制文件。硬件木馬修改程序首先采用資源搜索子程序識(shí)別出配置比特流中的關(guān)鍵資源,若找到關(guān)鍵資源,則順序搜索選定硬件木馬數(shù)據(jù)庫(kù)中的硬件木馬,再通過(guò)比特流修改子程序?qū)υ嘉募M(jìn)行修改,得到篡改比特流文件Modifiedgolden.bin。如果未找到特定資源或合適的硬件木馬,則退出程序不做修改。資源搜索子程序的目標(biāo)是利用原始配置比特流識(shí)別出關(guān)鍵資源塊,比特流修改子程序的目標(biāo)是利用硬件木馬數(shù)據(jù)庫(kù)修改關(guān)鍵資源數(shù)據(jù)流數(shù)據(jù)。
根據(jù)上述攻擊流程可知,無(wú)安全機(jī)制的保護(hù)時(shí),配置比特流易遭受硬件木馬攻擊。攻擊者能成功實(shí)施攻擊的一個(gè)重要原因,在于Golden.bin文件和最終輸入的Modifiedgolden.bin文件之間不存在校驗(yàn)機(jī)制,導(dǎo)致應(yīng)用者不能保證最終配置流就是正確的配置流。
3 面向配置流的硬件木馬防護(hù)方法
為了使對(duì)手難以通過(guò)直接修改比特流來(lái)插入硬件木馬,防止配置流出現(xiàn)錯(cuò)誤或被惡意篡改,可重構(gòu)設(shè)備在配置時(shí)必須對(duì)配置比特流真實(shí)性和完整性進(jìn)行保護(hù)?,F(xiàn)有文獻(xiàn)主要有校驗(yàn)[5,10]和認(rèn)證[7-8]兩類方法,前者通常在比特流中添加校驗(yàn)碼,采用的線性函數(shù)可以相對(duì)容易地偽造,且難以檢測(cè)惡意篡改[12]。后者的安全基礎(chǔ)是認(rèn)證加密算法,不僅能對(duì)比特流進(jìn)行加密和認(rèn)證,同時(shí)能實(shí)現(xiàn)比特流信息防篡改,因此本文采用認(rèn)證加密的方式。
3.1 標(biāo)準(zhǔn)CCM模式原理
早期認(rèn)證加密主要存在三種模式[5]:加密后認(rèn)證(Encrypt-Then-MAC,ETM),認(rèn)證后加密(MAC-Then-Encrypt,MTE)以及加密并認(rèn)證(MAC-And-Encrypt,MAE),但這些模式難以保證安全性。公鑰密碼(PKC)和哈希消息認(rèn)證碼(HMAC)理論上適用于比特流認(rèn)證和加密,但是其硬件成本較高[5],考慮到實(shí)現(xiàn)的安全性和硬件實(shí)現(xiàn)效率,本文采用國(guó)際標(biāo)準(zhǔn)化組織和 NIST收錄的CCM模式[13]進(jìn)行加密認(rèn)證。CCM加密認(rèn)證分別采用計(jì)數(shù)模式(Counter,CTR)和CBC-MAC模式,均為前向反饋模式,因此其加解密函數(shù)相同,適用于資源受限、安全要求高的CGRCA應(yīng)用場(chǎng)景。
標(biāo)準(zhǔn)CCM模式同時(shí)具有加密和認(rèn)證的功能,是CTR加密模式和CBC_MAC認(rèn)證模式的組合。下面對(duì)CCM模式下的部分變量進(jìn)行定義。設(shè)輸入明文數(shù)據(jù)為長(zhǎng)度為Plen的字符串P,采用格式化函數(shù)分塊以后的字符串表示為Bj(1≤j≤),密鑰為K,加密過(guò)程生成中間值為Si,其中i的取值范圍是[0,],認(rèn)證過(guò)程生成的中間值為Yj,其中j的取值范圍也是[0,],最終加密得到密文數(shù)據(jù)為C,則基于CTR模式下的加密過(guò)程的定義式如式(1)所示:
式中,表示不小于實(shí)數(shù)x的最小整數(shù),||代表拼接運(yùn)算,MSBx(y)表示取y數(shù)的高x位,CTR(x)代表第x個(gè)計(jì)數(shù)塊,計(jì)數(shù)塊的值由隨機(jī)數(shù)Nounce和計(jì)數(shù)器共同決定,T是由CBC_MAC模式生成的認(rèn)證碼。
基于CBC_MAC模式下的認(rèn)證過(guò)程的定義式如式(2)所示:
由定義可知,在標(biāo)準(zhǔn)CCM模式下,加密和認(rèn)證過(guò)程采用相同的密鑰,這導(dǎo)致在硬件實(shí)現(xiàn)時(shí),一旦攻擊者獲取了密鑰,將導(dǎo)致所有密文和認(rèn)證碼均失效。同時(shí),標(biāo)準(zhǔn)CCM采用格式化函數(shù)統(tǒng)一處理數(shù)據(jù),并對(duì)處理后的所有數(shù)據(jù)進(jìn)行加密。而對(duì)于陣列配置文件而言,不同配置文件的數(shù)據(jù)量由實(shí)際算法確定,其采用包頭+數(shù)據(jù)的形式,若采用全部加密,數(shù)據(jù)量可能較大,導(dǎo)致加密時(shí)間過(guò)長(zhǎng),因此數(shù)據(jù)統(tǒng)一處理無(wú)法直接應(yīng)用于陣列配置流的加密。
基于以上分析,本文提出的改進(jìn)CCM安全機(jī)制對(duì)標(biāo)準(zhǔn)CCM模式進(jìn)行如下調(diào)整:(1)加密和認(rèn)證過(guò)程采用不同密鑰;(2)數(shù)據(jù)加密認(rèn)證前,首先進(jìn)行預(yù)處理,將包頭與數(shù)據(jù)分離,僅對(duì)數(shù)據(jù)部分進(jìn)行加密認(rèn)證。將調(diào)整后的認(rèn)證加密過(guò)程嵌入到原始配置流程中。
3.2 改進(jìn)CCM機(jī)制原理
為了實(shí)現(xiàn)對(duì)配置比特流文件的保護(hù),防止其被篡改,改進(jìn)CCM安全機(jī)制采用軟硬結(jié)合的方式,分別建立了基于加密認(rèn)證的配置安全保護(hù)機(jī)制和基于解密驗(yàn)證的硬件安全防護(hù)結(jié)構(gòu),其安全配置保護(hù)機(jī)制和硬件安全防護(hù)結(jié)構(gòu)如圖6所示。
改進(jìn)CCM安全機(jī)制首先在基于加密認(rèn)證的配置安全保護(hù)下,通過(guò)軟件方式對(duì)生成的配置比特流進(jìn)行部分加密并生成消息認(rèn)證碼,保證配置流難以被篡改。其次,在配置比特流加載到配置端口前,采用基于驗(yàn)證的硬件安全結(jié)構(gòu)對(duì)其進(jìn)行解密和認(rèn)證,保證配置流的任何篡改都能被發(fā)現(xiàn)。
基于加密認(rèn)證的配置安全保護(hù)流程在原始配置流程中添加了加密和認(rèn)證的步驟,首先定義配置安全保護(hù)流程的先決條件和涉及參數(shù)。
先決條件:128位AES分組密碼算法;加密密鑰K1;認(rèn)證密鑰K2;預(yù)處理函數(shù)f(x);格式化函數(shù)g(x);計(jì)數(shù)塊生成函數(shù)h(x);后處理函數(shù)p(x);生成認(rèn)證碼長(zhǎng)度Tlen。
輸入:隨機(jī)數(shù)N;長(zhǎng)度為Plen的配置流數(shù)據(jù)P;
輸出:加密密文C;
具體步驟如下:
為了正確解密和驗(yàn)證配置流文件,本文設(shè)計(jì)了圖6右側(cè)的基于解密驗(yàn)證的硬件安全防護(hù)端,其中陰影部分為包含了兩個(gè)并行AES核以及一個(gè)異或非驗(yàn)證門(mén)的硬件安全引擎。與軟件安全配置流程對(duì)應(yīng),安全雙引擎的兩個(gè)AES核采用不同的密鑰并行工作,一個(gè)核用于解密,一個(gè)核用于認(rèn)證。其數(shù)據(jù)處理過(guò)程與加密認(rèn)證過(guò)程相逆,此處不再贅述。
本方案中的加密步驟采用部分加密,即僅對(duì)配置流中的配置信息塊進(jìn)行加密,相比于全部加密,其優(yōu)勢(shì)在保持安全性的同時(shí)使得開(kāi)銷更低。同時(shí),加密和認(rèn)證使用不同的密鑰,能夠避免漏洞,進(jìn)一步保證系統(tǒng)的安全性。在實(shí)際操作過(guò)程中,操作者可以通過(guò)配置選擇信號(hào)選擇是否進(jìn)行身份驗(yàn)證,若不使用身份驗(yàn)證,可以采用全0替換計(jì)算好的認(rèn)證碼。
3.3 改進(jìn)CCM硬件實(shí)現(xiàn)
本文提出的防護(hù)方法采用軟硬結(jié)合的方式,在安全配置流程的配合下,采用改進(jìn)AES-CCM模式實(shí)現(xiàn)對(duì)配置流數(shù)據(jù)的加密認(rèn)證。在硬件實(shí)現(xiàn)時(shí),兩個(gè)采用前向反饋模式的AES核并行執(zhí)行操作,極大減小數(shù)據(jù)處理時(shí)間,通過(guò)共享S盒查找表和密鑰生成模塊,進(jìn)一步節(jié)省面積開(kāi)銷。
改進(jìn)CCM安全機(jī)制在實(shí)現(xiàn)時(shí),兩個(gè)AES核并行工作,其中解密引擎CORE1以CTR模式工作的AES作為數(shù)據(jù)加密方式,對(duì)去掉包頭的信息塊進(jìn)行解密。認(rèn)證引擎CORE2以CBC-MAC模式工作的AES對(duì)去除MAC的數(shù)據(jù)部分進(jìn)行認(rèn)證,CTR和CBC_MAC并行工作原理如圖7所示。
為了保證CMAC認(rèn)證過(guò)程和CTR解密過(guò)程是并行執(zhí)行的,本文調(diào)整了解密塊數(shù)據(jù)生成的順序。首先通過(guò)認(rèn)證塊B0和解密密文塊C1生成B1,再依次生成Bi(2≤i≤n-1),并生成驗(yàn)證碼T。同時(shí),通過(guò)CTR(0)生成S(0),與密文低Tlen位異或得到傳送過(guò)來(lái)的驗(yàn)證碼,最后將傳送驗(yàn)證碼與計(jì)算驗(yàn)證碼進(jìn)行異或驗(yàn)證,得到驗(yàn)證信號(hào)valid。具體時(shí)序如圖8所示。在生成CMAC時(shí)的具體硬件結(jié)構(gòu)示意如圖9所示。
硬件實(shí)現(xiàn)時(shí),為了提高加密和驗(yàn)證的速度,基于CTR-CMAC模式的雙引擎架構(gòu)使用4個(gè)32位AES實(shí)現(xiàn)128位AES運(yùn)算進(jìn)行解密和身份驗(yàn)證。在使用CBC-MAC模式完成認(rèn)證的同時(shí),使用CTR模式執(zhí)行解密過(guò)程,對(duì)于一組128位的數(shù)據(jù)至少需要12個(gè)時(shí)鐘周期才能完成解密和驗(yàn)證工作。因此硬件安全引擎的最大吞吐量為:
其中,fmax為最大工作頻率,block為分組數(shù)據(jù)長(zhǎng)度,T為分組處理時(shí)鐘周期數(shù),吞吐量單位為Mb/s。
4 評(píng)估與驗(yàn)證
為了對(duì)硬件木馬防護(hù)方法進(jìn)行驗(yàn)證和評(píng)估,本文以規(guī)模8×8的CGRCA陣列為目標(biāo)電路進(jìn)行仿真實(shí)驗(yàn)。首先,采用C語(yǔ)言編程實(shí)現(xiàn)了2.2節(jié)中描述的硬件木馬可能攻擊流程,挑選典型密碼算法AES算法、SMS4算法和A5/1算法的無(wú)流水配置文件,作為Golden.bin文件。同時(shí),分別設(shè)計(jì)如圖10、圖11示意的組合觸發(fā)功能修改型(C型)和時(shí)序觸發(fā)功能修改型(S型)硬件木馬,建立CGRCA硬件木馬數(shù)據(jù)庫(kù),并面向CGRCA生成相應(yīng)HT.bin文件。該數(shù)據(jù)庫(kù)包含20種硬件木馬,為便于結(jié)果檢測(cè),均為功能修改型硬件木馬。表1列舉了硬件木馬數(shù)據(jù)庫(kù)部分信息。
為了對(duì)本文的設(shè)計(jì)方案進(jìn)行驗(yàn)證,采用C++在配置端實(shí)現(xiàn)了安全配置流程,并采用硬件描述語(yǔ)言Verilog HDL在CGRCA中搭建硬件雙安全引擎架構(gòu),按照攻擊流程對(duì)CGRCA配置流實(shí)施攻擊。為了驗(yàn)證防護(hù)效果,將硬件木馬通過(guò)配置流分別插入到原始電路和防護(hù)電路中進(jìn)行多次實(shí)驗(yàn),將防護(hù)前后的平均硬件木馬攻擊成功率RS、平均正確輸出比例APCO[1]作為指標(biāo)進(jìn)行對(duì)比,表2為待測(cè)電路防護(hù)前后的對(duì)比結(jié)果。
表2以插入硬件木馬的個(gè)數(shù)標(biāo)識(shí)待測(cè)電路,如AES(CS5/5)指在原始電路上插入5個(gè)C型木馬和5個(gè)S型木馬。硬件木馬攻擊成功率RS為對(duì)配置流進(jìn)行硬件木馬攻擊后,成功并實(shí)現(xiàn)邏輯功能修改的概率。正確輸出比例APCO是指錯(cuò)誤輸出個(gè)數(shù)占總輸出個(gè)數(shù)的比例。表2的結(jié)果表明,在不同的待測(cè)電路上,插入不同種類和數(shù)量的硬件木馬后,防護(hù)后的電路均能有效降低硬件木馬攻擊成功率,并提高平均正確輸出比例。為了進(jìn)一步評(píng)估防護(hù)方法的性能,將本文架構(gòu)的硬件實(shí)現(xiàn)結(jié)果與現(xiàn)有文獻(xiàn)的加密驗(yàn)證結(jié)構(gòu)AES-CCM[16]、AES-GCM[7,17]、AES-SHA[7]進(jìn)行對(duì)比,對(duì)比指標(biāo)包括面積、頻率、吞吐率和效率,其中效率的計(jì)算方式為吞吐率與面積的比值,具體對(duì)比結(jié)果如表3所示。
從表3可以看出,本文所用硬件結(jié)構(gòu)在綜合效率上優(yōu)于文獻(xiàn)[7]、[16]和[17]中的結(jié)構(gòu),同時(shí)本文采用的結(jié)構(gòu)能達(dá)到最高的吞吐率。在所選的三項(xiàng)指標(biāo)上,本文與文獻(xiàn)[7]的GCM結(jié)構(gòu)性能比較接近,但是本文在實(shí)現(xiàn)加密認(rèn)證的同時(shí),首次提出了將其應(yīng)用于CGRCA配置流的硬件木馬防護(hù)。綜合來(lái)看,本文結(jié)構(gòu)有較好的優(yōu)越性。軟件安全配置流程保證了CGRCA配置流難以被篡改,雙安全引擎的構(gòu)造可實(shí)現(xiàn)對(duì)配置流的解密和認(rèn)證,分塊加密增加了硬件處理速度,共享AES加密核進(jìn)一步減小了硬件面積開(kāi)銷,提高了硬件結(jié)構(gòu)的整體效率。
5 結(jié)論
隨著CGRA越來(lái)越多地應(yīng)用于各領(lǐng)域,面向CGRA的安全防護(hù)至關(guān)重要。硬件木馬作為主要安全威脅之一,能對(duì)無(wú)校驗(yàn)機(jī)制的CGRCA配置流實(shí)施攻擊。本文首先詳細(xì)分析了CGRCA的結(jié)構(gòu)及其配置過(guò)程,得出了配置過(guò)程中可能的攻擊流程和攻擊方法。然后,針對(duì)這種可能的攻擊,提出了一種有效的硬件木馬防護(hù)方案,采用軟件上的安全配置流程,結(jié)合硬件上共享S盒的雙AES安全引擎,實(shí)現(xiàn)對(duì)配置流數(shù)據(jù)的完整性和真實(shí)性的保護(hù)。該防護(hù)方法效率高,面積開(kāi)銷小,同時(shí)對(duì)現(xiàn)有配置過(guò)程影響較小,適合工程實(shí)踐。
參考文獻(xiàn)
[1] Liu Leibo,Zhou Zhuoquan,Wei Shaojun,et al.DRMaSV:enhanced capability against hardware trojans in coarse grained reconfigurable architectures[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2017,37(4):782-795.
[2] 李遠(yuǎn)銘,嚴(yán)迎建,李偉.基于粗粒度可重構(gòu)密碼陣列的AES算法映射實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2018(3):304-308.
[3] XIAO K,F(xiàn)ORTE D,JIN Y,et al.Hardware trojans:lessons learned after one decade of research[J].ACM Transactions on Design Automation of Electronic Systems,2016,22(1):1-23.
[4] AGRAWAL D,BAKTIR S,KARAKOYUNLU D,et al.Trojan detection using IC fingerprinting[C].IEEE Symposium on Security and Privacy.IEEE Computer Society,Berkeley,USA,2007:296-310.
[5] CHAKRABORTY R S,SAHA I,PALCHAUDHURI A,et al.Hardware trojan insertion by direct modification of FPGA configuration bitstream[J].IEEE Design & Test,2013,30(2):45-54.
[6] AHILAN A,DEEPA P.Modified decimal matrix codes in FPGA configuration memory for multiple bit upsets[C].IEEE International Conference on Computer Communication and Informatics,2015:1-5.
[7] HORI Y,KATASHITA T,SAKANE H,et al.Bitstream protection in dynamic partial reconfiguration systems using authenticated encryption[J].IEICE Transactions on Information & Systems,2013,E96-D(11):2333-2343.
[8] SAAR D.Security for volatile FPGAs[D].University of Cambridge,2009.
[9] 陳韜,羅興國(guó),李校南,等.一種基于流處理框架的可重構(gòu)分簇式分組密碼處理結(jié)構(gòu)模型[J].電子與信息學(xué)報(bào),2014,36(12):3027-3034.
[10] SWIERCZYNSKI P,F(xiàn)YRBIAK M,KOPPE P,et al.FPGA trojans through detecting and weakening of cryptographic primitives[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2015,34(8):1236-1249.
[11] Xilinx Inc.Virtex-II platform FPGA user guide(v2.2)[DB/OL].(2012-07-xx)[2019-02-25].http://www.xilinx.com/support/documentation/virtex-ii.htm.
[12] SALMANI H,TEHRANIPOOR M,KARRI R.On design vulnerability analysis and trust benchmark development[C].IEEE International Conference on Computer Design(ICCD),2013.
[13] DRIMER S.Authentication of FPGA bitstreams:why and how[C].International Conference on Reconfigurable Computing:Architectures,Tools and Applications.Springer-Verlag,2007:73-84.
[14] DWORKIN M.Recommendation for block cipher modes of operation:the CMAC mode for authentication[DB/OL].[2019-02-25].https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38b.pdf.
[15] PARELKAR M.Authenticated encryption in hardware[D].George Mason University,2005.
[16] ABDELLATIF K M,CHOTIN-AVOT R,MEHREZ H.Protecting FPGA bitstreams using authenticated encryption[C].IEEE International New Circuits and Systems Conference,2013:1-4.
[17] PHAN T T D,HOANG V P,DAO V L.An efficient FPGA implementation of AES-CCM authenticated encryption IP core[C].IEEE Information and Computer Science,2016:202-205.
作者信息:
劉 敏1,嚴(yán)迎建1,南龍梅1,2
(1.解放軍信息工程大學(xué),河南 鄭州450001;2.復(fù)旦大學(xué) 專用集成電路與系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,上海200433)