《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 面向CGRCA配置比特流的硬件木馬攻擊防護(hù)方法
面向CGRCA配置比特流的硬件木馬攻擊防護(hù)方法
2019年電子技術(shù)應(yīng)用第9期
劉 敏1,嚴(yán)迎建1,南龍梅1,2
1.解放軍信息工程大學(xué),河南 鄭州450001;2.復(fù)旦大學(xué) 專用集成電路與系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,上海200433
摘要: 針對(duì)可重構(gòu)設(shè)備配置比特流易遭受硬件木馬攻擊的問(wèn)題,提出了基于認(rèn)證加密硬件安全引擎的防護(hù)方法。首先,通過(guò)研究CGRCA的結(jié)構(gòu)及配置過(guò)程,詳細(xì)分析了系統(tǒng)面臨的安全威脅,并給出面向未加密原始配置流的硬件木馬攻擊流程和植入方法。針對(duì)該攻擊流程,研究提出基于改進(jìn)CCM認(rèn)證加密機(jī)制的防護(hù)方法,該方法對(duì)原始配置流進(jìn)行部分加密和認(rèn)證,硬件層面采用資源復(fù)用的雙安全引擎進(jìn)行解密和認(rèn)證,確保配置比特流的完整性和真實(shí)性。仿真實(shí)驗(yàn)證明,該防護(hù)方法能以較小的面積和時(shí)間開(kāi)銷,抵御面向配置流的潛在硬件木馬攻擊威脅,實(shí)現(xiàn)對(duì)配置比特流的保護(hù)。
中圖分類號(hào): TN406
文獻(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.
A hardware Trojan attack protection method for CGRCA configuration bitstream
Liu Min1,Yan Yingjian1,Nan Longmei1,2
1.The PLA′s Information Engineering University,Zhengzhou 450001,China; 2.State Key Laboratory of Applied Integrated Circuits and Systems,F(xiàn)udan University,Shanghai 200433,China
Abstract: A protection method based on authentication and encryption hardware security engine is proposed as the reconfigurable device configuration bitstream is vulnerable to hardware Trojan attacks. Firstly, the security threats of system are analyzed in detail and the possible hardware attack process and implantation method for unencrypted original configuration flow are proposed, via researching on the structure and configuration process of coarse-grained reconfigurable cryptographic array(CGRCA). Aiming at the attack process, a protection method based on advanced CCM authentication and encryption is proposed. The method partially encrypts and authenticates the original configuration bitstream in software, and uses a dual security engine for decryption and authentication on the hardware to ensure the integrity and authenticity of the configuration bitstream. The experimental results show that the protection method can protect the configuration bit stream by protecting the configuration flow from potential hardware Trojan attack threat with small area and time overhead.
Key words : hardware Trojan protection;coarse-grained reconfigurable cryptographic array;configuration bitstream protection;dual hardware security engine

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所示。

wdz3-t1.gif

    如圖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所示。

wdz3-t2.gif

wdz3-t3.gif

    圖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為兩類硬件木馬的示意圖。

wdz3-t4.gif

    圖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所示。

wdz3-t5.gif

    圖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≤wdz3-t5-x1.gif),密鑰為K,加密過(guò)程生成中間值為Si,其中i的取值范圍是[0,wdz3-t5-x1.gif],認(rèn)證過(guò)程生成的中間值為Yj,其中j的取值范圍也是[0,wdz3-t5-x1.gif],最終加密得到密文數(shù)據(jù)為C,則基于CTR模式下的加密過(guò)程的定義式如式(1)所示:

     wdz3-gs1.gif

    式中,wdz3-gs1-x1.gif表示不小于實(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)所示:

     wdz3-gs2.gif

    由定義可知,在標(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所示。

wdz3-t6.gif

    改進(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;

    具體步驟如下:

wdz3-t6-x1.gif

    為了正確解密和驗(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所示。

wdz3-t7.gif

    為了保證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所示。

wdz3-t8.gif

wdz3-t9.gif

    硬件實(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)證工作。因此硬件安全引擎的最大吞吐量為:

    wdz3-4-s1.gif

    其中,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ù)部分信息。

wdz3-t10.gif

wdz3-t11.gif

wdz3-b1.gif

    為了對(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é)果。

wdz3-b2.gif

    表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所示。

wdz3-b3.gif

    從表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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。