文獻(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ī)視覺、信號(hào)處理和密碼運(yùn)算等數(shù)據(jù)密集型應(yīng)用上,,展現(xiàn)了強(qiáng)大的優(yōu)勢(shì)和潛力[1-2],。近年來,基于CGRA的粗粒度可重構(gòu)密碼陣列(CGRCA)[2]在密碼處理領(lǐng)域發(fā)展十分迅速。與傳統(tǒng)密碼芯片相比,,CGRCA是專門面向密碼算法高速實(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ù),,主要通過認(rèn)證和編碼實(shí)現(xiàn),大多集中在FPGA領(lǐng)域,,難以直接移植應(yīng)用于CGRCA,。如文獻(xiàn)[1]面向CGRCA提出基于動(dòng)態(tài)規(guī)劃的安全配置方案,側(cè)重于硬件木馬容忍,,無法防護(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ù),,并通過資源復(fù)用進(jìn)一步優(yōu)化了面積開銷,。
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è)配置頁面組成,,通過配置可重構(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í)際配置信息來自于陣列外部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è)配置頁面的配置信息寄存,每個(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)換,接著通過JTAG端口將外部配置流文件傳輸?shù)紺GRCA的輸入FIFO,,然后由CGRCA配置端口寫入CGRCA陣列存儲(chǔ)器內(nèi),,最后,配置解析器解析配置流文件,,通過不同單元配置信息的分發(fā)和轉(zhuǎn)移來完成配置,。配置信息在分發(fā)和轉(zhuǎn)移時(shí),都以1個(gè)配置頁面為最小單元,,從而能實(shí)現(xiàn)單個(gè)RPU的單時(shí)鐘周期配置,。
2 面向CGRCA配置流的硬件木馬攻擊威脅
2.1 面向CGRCA配置流的硬件木馬分類
面向配置流進(jìn)行硬件木馬攻擊,通常通過不可信的EDA工具,、不可信的傳輸信道或者不可信的使用者實(shí)施,。其攻擊對(duì)象是CGRCA配置流,其主要手段是直接修改配置信息比特流文件,。與FPGA配置流的硬件木馬[5]類似,,根據(jù)硬件木馬電路與原始電路在CGRCA的占用資源是否重疊,可以分為資源相關(guān)型硬件木馬(RDH)和資源無關(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所在單元重合,。資源無關(guān)型攻擊是指插入的硬件木馬電路與原始電路在CGRCA上占用的資源無重疊,。資源無關(guān)型硬件木馬通常不會(huì)影響到原始電路功能,和原始電路功能彼此獨(dú)立,。如圖4(c)中,,RIH型硬件木馬電路的觸發(fā)單元和有效載荷均不與原始電路相連??紤]到CGRCA主要用于實(shí)現(xiàn)密碼算法,,因此對(duì)攻擊者而言,其主要目的是竊取密鑰或者破壞原始電路邏輯功能,。RIH型硬件木馬雖然插入簡(jiǎn)單,,但是不能破壞原始功能,無法完成上述攻擊目的,。因此,,本文側(cè)重討論資源相關(guān)型硬件木馬(RDH型)攻擊,。
2.2 RDH型硬件木馬攻擊流程
RDH型硬件木馬插入較為復(fù)雜,需要攻擊者熟悉配置比特流與CGRCA架構(gòu)連接之間的相關(guān)性,。對(duì)于攻擊者而言,,即便配置比特流是可獲得的,要成功實(shí)施RDH型攻擊,,仍然存在兩個(gè)主要問題:首先,,攻擊者必須熟悉配置比特流的結(jié)構(gòu);其次,,必須在大量原始比特流中找到對(duì)應(yīng)攻擊比特?,F(xiàn)有可重構(gòu)設(shè)備的比特流均采用專有文件格式[10],并沒有公開文獻(xiàn)分析比特流與硬件資源的對(duì)應(yīng)關(guān)系,。因此,,即使攻擊者完全獲取到比特流,如何識(shí)別和攻擊未知設(shè)計(jì)中的關(guān)鍵部件也是巨大的挑戰(zhàn),。而通過分析CGRCA的結(jié)構(gòu)特征可知,,CGRCA中的關(guān)鍵加密部件包含密鑰處理單元RKB和非線性部件RSB。假設(shè)攻擊者掌握原始比特流中對(duì)應(yīng)包頭信息,,則針對(duì)特定的RKB和RSB進(jìn)行攻擊是完全可行的,。
為成功實(shí)施攻擊,攻擊者首先利用原始比特流文件,,通過搜索應(yīng)RKB對(duì)應(yīng)包頭信息,,找到原始陣列平臺(tái)中的密鑰處理單元配置流信息,然后通過修改關(guān)鍵數(shù)據(jù)流以針對(duì)性地插入硬件木馬,,導(dǎo)致最終結(jié)果出錯(cuò),。因此,硬件木馬攻擊的輸入為原始配置信息流文件和硬件木馬數(shù)據(jù)庫,,關(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ù)庫中的硬件木馬,再通過比特流修改子程序?qū)υ嘉募M(jìn)行修改,,得到篡改比特流文件Modifiedgolden.bin,。如果未找到特定資源或合適的硬件木馬,則退出程序不做修改,。資源搜索子程序的目標(biāo)是利用原始配置比特流識(shí)別出關(guān)鍵資源塊,,比特流修改子程序的目標(biāo)是利用硬件木馬數(shù)據(jù)庫修改關(guān)鍵資源數(shù)據(jù)流數(shù)據(jù)。
根據(jù)上述攻擊流程可知,,無安全機(jī)制的保護(hù)時(shí),,配置比特流易遭受硬件木馬攻擊。攻擊者能成功實(shí)施攻擊的一個(gè)重要原因,,在于Golden.bin文件和最終輸入的Modifiedgolden.bin文件之間不存在校驗(yàn)機(jī)制,,導(dǎo)致應(yīng)用者不能保證最終配置流就是正確的配置流。
3 面向配置流的硬件木馬防護(hù)方法
為了使對(duì)手難以通過直接修改比特流來插入硬件木馬,,防止配置流出現(xiàn)錯(cuò)誤或被惡意篡改,,可重構(gòu)設(shè)備在配置時(shí)必須對(duì)配置比特流真實(shí)性和完整性進(jìn)行保護(hù)。現(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,加密過程生成中間值為Si,,其中i的取值范圍是[0,,],認(rèn)證過程生成的中間值為Yj,,其中j的取值范圍也是[0,,],最終加密得到密文數(shù)據(jù)為C,,則基于CTR模式下的加密過程的定義式如式(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)證過程的定義式如式(2)所示:
由定義可知,在標(biāo)準(zhǔn)CCM模式下,,加密和認(rèn)證過程采用相同的密鑰,,這導(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í)間過長(zhǎng),,因此數(shù)據(jù)統(tǒng)一處理無法直接應(yīng)用于陣列配置流的加密。
基于以上分析,,本文提出的改進(jìn)CCM安全機(jī)制對(duì)標(biāo)準(zhǔn)CCM模式進(jìn)行如下調(diào)整:(1)加密和認(rèn)證過程采用不同密鑰,;(2)數(shù)據(jù)加密認(rèn)證前,首先進(jìn)行預(yù)處理,,將包頭與數(shù)據(jù)分離,,僅對(duì)數(shù)據(jù)部分進(jìn)行加密認(rèn)證。將調(diào)整后的認(rèn)證加密過程嵌入到原始配置流程中。
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ù)下,通過軟件方式對(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)證門的硬件安全引擎,。與軟件安全配置流程對(duì)應(yīng),安全雙引擎的兩個(gè)AES核采用不同的密鑰并行工作,,一個(gè)核用于解密,,一個(gè)核用于認(rèn)證。其數(shù)據(jù)處理過程與加密認(rèn)證過程相逆,,此處不再贅述,。
本方案中的加密步驟采用部分加密,即僅對(duì)配置流中的配置信息塊進(jìn)行加密,,相比于全部加密,,其優(yōu)勢(shì)在保持安全性的同時(shí)使得開銷更低。同時(shí),加密和認(rèn)證使用不同的密鑰,,能夠避免漏洞,,進(jìn)一步保證系統(tǒng)的安全性。在實(shí)際操作過程中,,操作者可以通過配置選擇信號(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í)間,,通過共享S盒查找表和密鑰生成模塊,,進(jìn)一步節(jié)省面積開銷。
改進(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)證過程和CTR解密過程是并行執(zhí)行的,,本文調(diào)整了解密塊數(shù)據(jù)生成的順序,。首先通過認(rèn)證塊B0和解密密文塊C1生成B1,再依次生成Bi(2≤i≤n-1),,并生成驗(yàn)證碼T,。同時(shí),通過CTR(0)生成S(0),,與密文低Tlen位異或得到傳送過來的驗(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í)行解密過程,,對(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語言編程實(shí)現(xiàn)了2.2節(jié)中描述的硬件木馬可能攻擊流程,,挑選典型密碼算法AES算法、SMS4算法和A5/1算法的無流水配置文件,,作為Golden.bin文件,。同時(shí),分別設(shè)計(jì)如圖10,、圖11示意的組合觸發(fā)功能修改型(C型)和時(shí)序觸發(fā)功能修改型(S型)硬件木馬,建立CGRCA硬件木馬數(shù)據(jù)庫,,并面向CGRCA生成相應(yīng)HT.bin文件,。該數(shù)據(jù)庫包含20種硬件木馬,為便于結(jié)果檢測(cè),,均為功能修改型硬件木馬,。表1列舉了硬件木馬數(shù)據(jù)庫部分信息。
為了對(duì)本文的設(shè)計(jì)方案進(jìn)行驗(yàn)證,,采用C++在配置端實(shí)現(xiàn)了安全配置流程,,并采用硬件描述語言Verilog HDL在CGRCA中搭建硬件雙安全引擎架構(gòu),按照攻擊流程對(duì)CGRCA配置流實(shí)施攻擊,。為了驗(yàn)證防護(hù)效果,,將硬件木馬通過配置流分別插入到原始電路和防護(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ù)。綜合來看,,本文結(jié)構(gòu)有較好的優(yōu)越性,。軟件安全配置流程保證了CGRCA配置流難以被篡改,雙安全引擎的構(gòu)造可實(shí)現(xiàn)對(duì)配置流的解密和認(rèn)證,,分塊加密增加了硬件處理速度,,共享AES加密核進(jìn)一步減小了硬件面積開銷,提高了硬件結(jié)構(gòu)的整體效率,。
5 結(jié)論
隨著CGRA越來越多地應(yīng)用于各領(lǐng)域,,面向CGRA的安全防護(hù)至關(guān)重要。硬件木馬作為主要安全威脅之一,,能對(duì)無校驗(yàn)機(jī)制的CGRCA配置流實(shí)施攻擊,。本文首先詳細(xì)分析了CGRCA的結(jié)構(gòu)及其配置過程,得出了配置過程中可能的攻擊流程和攻擊方法,。然后,,針對(duì)這種可能的攻擊,提出了一種有效的硬件木馬防護(hù)方案,,采用軟件上的安全配置流程,,結(jié)合硬件上共享S盒的雙AES安全引擎,實(shí)現(xiàn)對(duì)配置流數(shù)據(jù)的完整性和真實(shí)性的保護(hù),。該防護(hù)方法效率高,,面積開銷小,,同時(shí)對(duì)現(xiàn)有配置過程影響較小,適合工程實(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)