楊亞君,陳 章
(1.上海科技大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201210;2.中國(guó)科學(xué)院 上海微系統(tǒng)與信息技術(shù)研究所,上海 200050;3.中國(guó)科學(xué)院大學(xué) 電子電氣與通信工程學(xué)院,北京 100049)
隨著集成電路設(shè)計(jì)復(fù)雜度和先進(jìn)制程節(jié)點(diǎn)制造成本的提高,集成電路制造全球化已成為主流的生產(chǎn)方式。這種設(shè)計(jì)和制造分離的模式在給設(shè)計(jì)公司帶來經(jīng)濟(jì)利益的同時(shí),也在多方面威脅著芯片的安全。硬件木馬,一種常見的威脅芯片安全的部件,通過在芯片設(shè)計(jì)、制造或使用過程中植入惡意的部件或監(jiān)測(cè)后門電路,改變芯片的功能或竊取用戶的信息。硬件木馬具有植入的隱藏性和難觸發(fā)性的特點(diǎn),這給芯片安全的研究和防護(hù)帶來了很大的挑戰(zhàn)。
傳統(tǒng)的硬件木馬的防護(hù)主要集中在硬件木馬的檢測(cè):反向工程[1]將制造好的芯片去封裝,并通過顯微成像技術(shù)獲得每層金屬層的連接信息,最后將恢復(fù)的電路與原始設(shè)計(jì)進(jìn)行比對(duì),從而判斷芯片是否被植入硬件木馬。然而這種方法對(duì)芯片具有破壞性,且代價(jià)昂貴。邏輯測(cè)試法[2-3]則通過產(chǎn)生一系列測(cè)試向量,試圖激活硬件木馬來判斷芯片是否有木馬植入。由于芯片密度的不斷增大和硬件木馬的隱藏性,找到激活硬件木馬的測(cè)試向量難度很大。側(cè)信道分析[4-5]被認(rèn)為是最有效的硬件木馬檢測(cè)方法。該方法通過收集芯片工作時(shí)泄露的功耗、時(shí)序、電磁及熱等旁路信息,并對(duì)該信號(hào)進(jìn)行放大分析,提取關(guān)鍵信息來判斷是否有硬件木馬植入。但該方法需要一個(gè)沒有被植入任何硬件木馬的純凈芯片做比對(duì),這通常被認(rèn)為很難獲取。
硬件木馬檢測(cè)技術(shù)在一定程度上保護(hù)了芯片的可靠性,但仍不能從根本上解決芯片安全問題。與此同時(shí),硬件木馬防范技術(shù),如電路模糊、實(shí)時(shí)監(jiān)控及分塊制造技術(shù),旨在提高電路設(shè)計(jì)或制造過程的安全性來對(duì)硬件木馬攻擊進(jìn)行防范。其中分塊制造[6-9]被認(rèn)為是最有效和有前景的。這種方式將芯片分成兩部分給不同的廠商制造,使任何一方廠商都不能獲得芯片完整的后端版圖信息,從而保證了制造過程中芯片的安全性。文獻(xiàn)[10]提出了基于分塊制造下的芯片設(shè)計(jì)流程,驗(yàn)證了分塊制造的可行性。然而近期的研究[11-13]表明,分塊制造本身是不安全的,依然存在硬件木馬攻擊的威脅?;诜謮K制造,筆者提出了兩種硬件木馬攻擊方法并分析了其有效性。
不同于傳統(tǒng)的芯片制造流程,即芯片全部由一家廠商制造,分塊制造在第i層金屬層(Mi)將芯片分成前序工藝(Front End Of Line,F(xiàn)EOL), 其包含晶體管和部分低層金屬連接層,和后序工藝(Back End Of Line,BEOL)兩部分,包含高層或全部金屬連接層。如圖1所示,前序工藝交由不可信的制造商生產(chǎn),后序工藝交由可信的制造商生產(chǎn),最后通過3D或硅中介集成[8,14]技術(shù)獲得最終的產(chǎn)品。分塊制造通過將部分或全部的金屬連接層(即Mi以上)放在可信任的廠商制造,使得攻擊者只能獲取部分甚至零連接信息,從而增加了芯片在制造過程中的安全性。顯然,分割層越低,越多的金屬連接層隱藏在后序工藝中,前序工藝泄露的信息越少,芯片的安全性越高。
圖1 分塊制造流程
文獻(xiàn)[11-13]分析了分塊制造下攻擊者利用前序工藝的部分信息恢復(fù)隱藏在后序工藝中電路連接的可能性。文獻(xiàn)[11]提出了多個(gè)利用了不同近似信息的近似攻擊方法,在分割層為M2時(shí),該方法最高可以使前序工藝中82%缺失了連接的電路節(jié)點(diǎn)找到其可能的連接。文獻(xiàn)[12]提出基于網(wǎng)絡(luò)流的攻擊方法,其進(jìn)一步綜合利用了近似信息和其他的物理信息,如后端布局布線的電容、時(shí)序限制等信息,當(dāng)變化不同的分割層時(shí),最高能恢復(fù)67%的隱藏連接。文獻(xiàn)[13]則提出基于機(jī)器學(xué)習(xí)的方法試圖恢復(fù)隱藏連接。但這些工作[11-13]均假設(shè)分割層為M2及以上,實(shí)際為了增加芯片的安全性,分割層也可以為M1。文獻(xiàn)[10]從理論上分析了當(dāng)分割層為M1時(shí),芯片幾乎是安全的:當(dāng)分割層為M1時(shí),所有的連接線都在后序工藝層生產(chǎn),攻擊者得不到任何連接信息,且只能看到成千上萬個(gè)沒有連接的獨(dú)立的門。然而,筆者提出的攻擊方法表明,當(dāng)分割層為M1時(shí),攻擊者仍然能利用其他的信息,如從集成電路輔助設(shè)計(jì)工具中提取有用的信息來實(shí)施硬件木馬的植入。
1.2.1 硬件木馬
圖2 典型的硬件木馬
通常硬件木馬包含兩部分:觸發(fā)電路和負(fù)載電路。當(dāng)觸發(fā)電路在特定輸入模式下被激活時(shí),負(fù)載電路即被激活,從而對(duì)原電路的功能造成影響。如圖2 顯示了對(duì)電路中某個(gè)特定門進(jìn)行硬件木馬植入的過程[15]:當(dāng)輸入A和B都為0時(shí),觸發(fā)電路被激活,導(dǎo)致原來的輸出C由0變?yōu)?1,實(shí)現(xiàn)了電路功能的改變。
1.2.2 攻擊模型
首先假設(shè)分塊制造在制造芯片時(shí)的分割層為M1,攻擊者想要在該電路的特定門(也稱為目標(biāo)門),即該特定門對(duì)應(yīng)在前序工藝版圖上的位置,植入硬件木馬。由于攻擊者在不可信的制造商中,其能夠獲得前序工藝的版圖,且不能從該版圖中獲得電路的任何連接信息,但能識(shí)別版圖中每個(gè)門的類型及正確地識(shí)別版圖中的輸入輸出管腳。最后,為了成功植入硬件木馬,攻擊者能夠花比較大的代價(jià)通過在設(shè)計(jì)公司的同伙獲得電路的門級(jí)網(wǎng)表。
圖3 問題描述示例
攻擊者同時(shí)獲得了電路的門級(jí)網(wǎng)表和前序工藝版圖的物理信息,其目標(biāo)為找到門級(jí)網(wǎng)表中的門在版圖中可能的位置,以便進(jìn)行硬件木馬的植入。以如圖3所示的電路為例,來形式化描述硬件木馬植入問題。圖3(a)為電路的門級(jí)網(wǎng)表,其中門集合Vn={1,2,3,4}。由于電路是在分割層為M1下制造的,攻擊者只能從獲得的前序工藝版圖看到一些沒有連接的門,如圖3(c)所示,版圖中門集合Vl={a,b,c,d}。攻擊者的目標(biāo)則為找到圖3(a)中的門在圖3(c)中可能匹配的門,即網(wǎng)表中的門與版圖中門的映射φ:Vn→Vl。其中,φ(Vn(i))表示網(wǎng)表中第i個(gè)門在版圖中可能的匹配。圖3(b)為該電路實(shí)際正確匹配時(shí)的版圖及連接。φc(1)=a,φc(2)=b,φc(3)=c,φc(4)=d。顯然對(duì)攻擊者,候選門φ并不一定是雙映射,即網(wǎng)表中的門可能會(huì)對(duì)應(yīng)版圖中多個(gè)與其同類型的門。因?yàn)楣粽咧恢腊鎴D中每個(gè)門的類型,但不知道其具體對(duì)應(yīng)于網(wǎng)表中的哪個(gè)門。因此,攻擊者認(rèn)為網(wǎng)表中每個(gè)門的初始匹配為版圖中所有與該門同類型的門,用φini(Vn(i))表示網(wǎng)表中第i個(gè)門的初始匹配。如圖3(c)中門{a,c,d}為與非類型,為異或類型,則有φini(2)=;φini(i)={a,c,d},i=1,3,4。假設(shè)攻擊者想要在與非類型的門‘1’中植入硬件木馬,在不知道門‘1’在版圖中正確位置的情況下,為保證成功,攻擊者可以在所有與非門中植入。這種情況把所有與非類型的門,即門集{a,c,d}都看做門‘1’的候選門來進(jìn)行硬件木馬植入。然而,隨著集成電路規(guī)模的增大,一個(gè)芯片中某種類型的門可能有成千上萬個(gè),這種植入木馬的方法代價(jià)很高,且植入的木馬容易被檢測(cè)到。因此攻擊者首先需要盡可能縮小目標(biāo)門的候選門,再對(duì)其候選門進(jìn)行選擇性木馬植入。
2.2.1 攻擊流程
圖4 攻擊流程
圖4為筆者提出的攻擊流程。首先,需要對(duì)網(wǎng)表和版圖中的門進(jìn)行分類和編號(hào),得到網(wǎng)表中每個(gè)門的初始匹配門集;其次,用某種攻擊方法找到網(wǎng)表和版圖中門的可能匹配;最后,綜合通過攻擊獲得的多個(gè)網(wǎng)表-版圖匹配解獲得網(wǎng)表中每個(gè)門的最終匹配門集,即對(duì)于網(wǎng)表中第i個(gè)門Vn(i)的初始匹配門集φini(Vn(i))中的第j個(gè)門Vl(j),如果存在至少一個(gè)解將門Vn(i)與門Vl(j)匹配,則門Vl(j)保留在φ(Vn(i))中;否則,將其從φ(Vn(i))中剔除。
以如圖3所示電路為例,假設(shè)最終通過某種攻擊方法獲得了N=5個(gè)匹配結(jié)果,每一個(gè)都代表一種可能的匹配,且門‘3’的N個(gè)匹配結(jié)果為{c,a,c,c,a},則綜合這N個(gè)結(jié)果后,門‘3’的最終候選門為{a,c}。顯然,攻擊之后門‘3’的候選門的數(shù)量相對(duì)于初始候選門{a,c,d}縮小了。這是由于門‘3’的N個(gè)匹配都不包含門‘d’,因此該門被剔除了。假設(shè)攻擊者原來想在門‘3’中植入硬件木馬,為保證成功植入,此時(shí)只需要在門{a,c}中植入,減小了其植入硬件木馬的代價(jià)和硬件木馬被檢測(cè)到的風(fēng)險(xiǎn)。網(wǎng)表-版圖的可能匹配,則可以通過利用集成電路后端設(shè)計(jì)過程中泄露的不同信息得到。下面分別介紹提出的兩種攻擊方法。
2.2.2 近似攻擊
文獻(xiàn)[11]利用集成電路輔助設(shè)計(jì)工具在對(duì)芯片進(jìn)行布局布線時(shí),使兩個(gè)相連的門盡量靠近,從而減小芯片總的線長(zhǎng)的特性(即近似信息),提出近似攻擊試圖恢復(fù)隱藏的連接。如圖5所示,網(wǎng)表中的門用下角標(biāo)n來表示,如圖5(a)中的門in1,表示為in1n,版圖中的門用下角標(biāo)l來表示,如圖5(b)中的門in1, 表示為in1l。同時(shí)約定第j個(gè)門的第i個(gè)管腳命名為pini,j,如圖5(a)中門‘2’的第1個(gè)管腳p1表示為pin1,2。用近似攻擊恢復(fù)隱藏連接的過程如圖5(b)中黑色實(shí)線部分所示。在沒有任何其他信息時(shí),近似攻擊認(rèn)為in1l和pin1,a相連,因?yàn)閜in1,a是離in1l最近的輸入管腳。
圖5 攻擊示例
然而,近似攻擊恢復(fù)出來的電路與實(shí)際的網(wǎng)表可能差別很大,如文獻(xiàn)[12]用近似攻擊恢復(fù)的隱藏連接正確率只有28.55%,因此不能直接用來找到目標(biāo)門在版圖中可能的位置。另一方面,近似攻擊只利用了局部的物理信息。實(shí)際上,盡管分割層為M1時(shí)攻擊者不能從版圖得到額外的連接信息,但仍可以從門級(jí)網(wǎng)表和集成電路輔助設(shè)計(jì)工具中提取更多有用的信息(如寄生電容和時(shí)序限制等),進(jìn)而提高攻擊的準(zhǔn)確度。
基于近似攻擊,筆者提出同時(shí)利用邏輯網(wǎng)表和近似信息的攻擊方法——基于電路節(jié)點(diǎn)線長(zhǎng)的近似攻擊(Proximity Attack Net-based, PANet),來找到網(wǎng)表-版圖的可能匹配。近似攻擊將集成電路輔助設(shè)計(jì)工具,在進(jìn)行后端布局時(shí)最小化總線長(zhǎng),從而使每個(gè)電路節(jié)點(diǎn)的線長(zhǎng)趨于最小的特點(diǎn)作為近似信息,同時(shí)結(jié)合門級(jí)網(wǎng)表的邏輯連接對(duì)版圖和網(wǎng)表進(jìn)行匹配。其中,電路節(jié)點(diǎn)的線長(zhǎng)用該節(jié)點(diǎn)包含的所有管腳圍成的矩形的半周長(zhǎng)作為其線長(zhǎng)的估計(jì)(Half Perimeter Wire Length,HPWL)。最后,在介紹近似攻擊詳細(xì)的步驟之前有兩點(diǎn)需要說明:首先同類型的管腳指其所屬門的類型和該管腳的位置都相同的管腳。如圖5(b),{pin1,a, pin1,e}是同類型的管腳,而{pin1,a, pin1,b}和{pin1,a, pin2,e}都不是同類型的管腳,因?yàn)樗鼈兯鶎匍T的類型和位置分別不相同;其次,由于攻擊者知道版圖中每個(gè)門的類型,任意一個(gè)管腳只能與其同類型的管腳進(jìn)行匹配,且對(duì)于一個(gè)門若其任意一個(gè)管腳與另一個(gè)門的管腳做了匹配,則這兩個(gè)管腳所屬的門和這兩個(gè)門剩余未匹配的管腳相互匹配。如圖5所示,假設(shè)pin1,1和pin1,a匹配,則門‘1’和門‘a(chǎn)’匹配,同時(shí){pin2,1, pin3,1}和{pin2,a,pin3,a}分別匹配。
用圖5中的電路來說明近似攻擊的攻擊過程。首先匹配輸入輸出門。由1.2.2節(jié)可知,攻擊者可以獲得門級(jí)網(wǎng)表,且輸入輸出門在版圖中的位置可以直接得到,即門{in1n,in2n,in3n,out1n}與門{in1l,in2l, in3l,out1l}分別匹配。之后每次隨機(jī)地選擇一個(gè)還存在未匹配管腳的電路節(jié)點(diǎn)(初始為任意輸入輸出管腳所在的電路節(jié)點(diǎn)),接下來對(duì)這個(gè)電路節(jié)點(diǎn)的所有未匹配的管腳依次用近似信息找到其在版圖中的位置,即近似攻擊把在版圖中使得該節(jié)點(diǎn)的線長(zhǎng)最短的同類型管腳看作是該管腳可能的匹配。如圖5(a)和5(b)虛線部分所示,假設(shè)初始選擇in2n,其所在電路節(jié)點(diǎn)為net2,且net2中未匹配的管腳有{pin2,1,pin1,5},近似攻擊首先對(duì)pin2,1進(jìn)行匹配,再對(duì)pin1,5進(jìn)行匹配。對(duì)于pin2,1,其可能匹配對(duì)象為其所有未匹配的同類型管腳,即{pin2,a, pin2,e}, 此時(shí)近似攻擊選擇pin2,a為其匹配的管腳,因其使得版圖中net2的線長(zhǎng)(in2l, pin2,a圍成的矩形的半周長(zhǎng))更短, 則門‘1’即與門‘a(chǎn)’匹配。接著匹配pin1,5,其可能的匹配對(duì)象為{pin1,b,pin1,c,pin1,d},同樣,當(dāng)把pin1,5匹配為pin1,d時(shí),net2的線長(zhǎng)最短(此時(shí)為in2l,pin2,a,pin1,d圍成的矩形),則門‘5’與門‘d’匹配。以上過程一直重復(fù),直至所有的門都匹配完成,即得到一個(gè)網(wǎng)表-版圖的可能匹配。
2.2.3 遺傳算法攻擊
圖6 GA攻擊流程
在對(duì)電路進(jìn)行布局布線時(shí),主要的目標(biāo)是最小化總線長(zhǎng),不同于PANet 利用了版圖的局部信息,基于遺傳算法的攻擊(Genetic Algorithm based attack, GA)通過最小化總線長(zhǎng)來獲得網(wǎng)表-版圖的可能匹配,即利用了全局連接信息。提出的基于遺傳算法的攻擊方法的攻擊流程如圖6所示。
(1)編碼和初始化種群。假設(shè)電路有|Vn|個(gè)門,則一個(gè)個(gè)體有|Vn|個(gè)基因片段。同時(shí),若第i個(gè)基因片段的值為j,即表示網(wǎng)表中第i個(gè)門Vn(i)與版圖中的第j個(gè)門Vl(j)匹配。因此,一個(gè)個(gè)體即表示一個(gè)可能的網(wǎng)表-版圖匹配。值得注意的是,由于一個(gè)網(wǎng)表-版圖匹配是雙映射,因此不存在版圖中的同一個(gè)門與網(wǎng)表中的兩個(gè)或多個(gè)門同時(shí)匹配,也即一個(gè)個(gè)體的所有基因都不相同。如圖5所示,|Vn|=5,則該電路的個(gè)體基因長(zhǎng)度為5,假設(shè)某個(gè)體的編碼為x={a,c,d,e,b},則表示網(wǎng)表中的門{1,2,3,4,5}分別與版圖中的門{a,c,d,e,b}匹配。最后隨機(jī)生成Ngroup個(gè)個(gè)體,即隨機(jī)產(chǎn)生Ngroup個(gè)可能的網(wǎng)表-版圖匹配作為初始種群。
(2)個(gè)體適應(yīng)度的計(jì)算。一個(gè)個(gè)體x表示一個(gè)可能的網(wǎng)表-版圖匹配,即一個(gè)可能的版圖布局,則根據(jù)網(wǎng)表的連接關(guān)系,該個(gè)體對(duì)應(yīng)的布局的總線長(zhǎng)可以表示為
(1)
其中,Nnet表示網(wǎng)表中電路節(jié)點(diǎn)的個(gè)數(shù)。為了最小化總線長(zhǎng),可用總線長(zhǎng)的倒數(shù)來表示該個(gè)體的適應(yīng)度ffitness,即
(2)
顯然,適應(yīng)度越大,該個(gè)體對(duì)應(yīng)的解的總線長(zhǎng)越短。
(3)產(chǎn)生下一代群體。為了保證每次迭代使得解朝全局最優(yōu)的方向進(jìn)行,主要通過三步來產(chǎn)生下一代群體:①保留上一代適應(yīng)度為前10%的個(gè)體直接作為下一代。②用輪盤賭的方法隨機(jī)選擇兩個(gè)個(gè)體作為父母進(jìn)行交叉,得到剩余90%的新個(gè)體。不同于一般的交叉過程,隨機(jī)選擇父母的部分基因片段進(jìn)行交換得到新的個(gè)體,交叉方法可定義為:每次首先隨機(jī)選擇一個(gè)類型的門,然后交換父母?jìng)€(gè)體中所有該類型的門對(duì)應(yīng)的基因來得到新個(gè)體。這種交叉方法既避免了獲得的新個(gè)體的基因出現(xiàn)重復(fù),又保證了新個(gè)體表示的網(wǎng)表-版圖匹配解中每個(gè)門只與其同類型的門匹配。如圖5中,假設(shè)兩個(gè)父母的基因型分別為P1={e,b,d,a,c},P2={e,b,c,a,d},且交叉時(shí)選擇的門類型為異或門,則此時(shí)父母需要進(jìn)行交叉的基因片段是基因型為異或門的所有基因,即基因型為{b,c,d}的基因片段,因此P1和P2交叉之后得到的新個(gè)體為Pnew={e,b,c,a,d}。③對(duì)新個(gè)體進(jìn)行變異。與交叉過程類似,為了保證變異之后的個(gè)體的基因不重復(fù),且其表示的匹配解中門只與其同類型的門匹配,每次以概率為Pmutating隨機(jī)選擇該個(gè)體中基因型對(duì)應(yīng)的門類型相同的兩個(gè)基因,進(jìn)行交換作為變異。例如對(duì)于新個(gè)體Pnew,假設(shè)選擇的是其第1個(gè)和第4個(gè)基因,顯然這兩個(gè)基因值滿足對(duì)應(yīng)的門類型相同,即分別對(duì)應(yīng)為門‘e’和門‘a(chǎn)’且都為與非門,因此新個(gè)體Pnew變異之后的基因?yàn)镻new={a,b,c,e,d}。
(4)迭代一定次數(shù)后,選擇該群體中適應(yīng)度最大的個(gè)體作為此次攻擊最終的匹配解。遺傳算法中判斷迭代停止的方式一般有兩種:①利用迭代差,即迭代前后適應(yīng)度的精度是否滿足預(yù)設(shè)的精度;②事先統(tǒng)計(jì)出進(jìn)化的次數(shù)。由于實(shí)驗(yàn)使用的基準(zhǔn)電路的規(guī)模差別較大,如果使用迭代差作為終止條件,則不能很好地權(quán)衡最優(yōu)解與算法運(yùn)行效率。而基準(zhǔn)電路有一定的共性,可以通過事先對(duì)某幾個(gè)電路進(jìn)行分析,統(tǒng)計(jì)得到每個(gè)基準(zhǔn)電路進(jìn)化的次數(shù)。因此,可用是否達(dá)到迭代次數(shù)Ng作為終止條件。
基于電路節(jié)點(diǎn)線長(zhǎng)的近似攻擊每次都隨機(jī)地從未完全匹配的電路節(jié)點(diǎn)中選擇一個(gè)進(jìn)行匹配,基于遺傳算法攻擊的解則跟種群的初始值有關(guān),因此兩種攻擊方法每次得到的解不同。同時(shí),每次運(yùn)行得到的解都是最有可能的匹配。因此為了使每個(gè)門的可能匹配門出現(xiàn),需要得到足夠多可能的匹配。3.2.1節(jié)顯示運(yùn)行次數(shù)N的值與基準(zhǔn)電路中門的類型和數(shù)量有關(guān),需要在實(shí)驗(yàn)中確定。
通常,連接正確恢復(fù)率可以衡量恢復(fù)隱藏連接的正確率,漢明距離可以衡量恢復(fù)出的電路功能與原功能的差距[7]。文中攻擊者的主要目標(biāo)是縮小網(wǎng)表中每個(gè)門的候選門,同時(shí)保證每個(gè)門的候選門盡可能包含其正確匹配的門。當(dāng)某個(gè)門的候選門數(shù)量很小,但其候選門不包含其正確匹配的門時(shí),對(duì)于想要在該門植入硬件木馬的攻擊者,該植入是無效的。顯然,連接正確恢復(fù)率和漢明距離都不能直接衡量文中提出的攻擊方法的準(zhǔn)確性和有效性。用文獻(xiàn)[16]提出的有效匹配門集比(Effective Mapped Set Ratio, EMSR)和匹配門集平均剪枝比(Average Mapped Set Pruning Ratio, AMSPR)來作為衡量指標(biāo)。有效匹配門集比fEMSR可表示為
(3)
其中,|Vn|為電路中門的個(gè)數(shù),φ(Vn(i))為網(wǎng)表中第i個(gè)門的候選門,φc(Vn(i))為網(wǎng)表中第i個(gè)門的正確匹配的門。若φ(Vn(i))包含φc(Vn(i)),則|φ(Vn(i))∩φc(Vn(i))|為1;否則,為0。有效匹配門集比衡量了攻擊的有效性,其值越大,攻擊者得到的有效候選門越多,攻擊越有效。
匹配門集平均剪枝比fAMSPR可表示為
(4)
其中,φini(Vn(i))為網(wǎng)表中第i個(gè)門的初始候選門。顯然,匹配門集平均剪枝比反應(yīng)了攻擊方法對(duì)初始門的剪枝效果,其值越大,攻擊方法得到的候選門的平均尺寸越小,攻擊越有效。
用ISCAS-85基準(zhǔn)電路[17]來驗(yàn)證提出的攻擊方法的有效性,其中用俄亥俄州立大學(xué)提供的開源工藝庫(kù)對(duì)該電路做綜合,用FastPlace3[18]對(duì)電路做布局。實(shí)驗(yàn)平臺(tái)為8 Intel Core i7-3770 CPU@3.4 GHz和24 GB內(nèi)存的Linux主機(jī)。
3.2.1 GA迭代次數(shù)和參數(shù)設(shè)定
圖7 遺傳算法目標(biāo)函數(shù)和適應(yīng)度與迭代次數(shù)
圖7為基準(zhǔn)電路c432b在用遺傳算法進(jìn)行匹配時(shí),其目標(biāo)函數(shù)和適應(yīng)度與迭代次數(shù)Ng的關(guān)系。隨著迭代次數(shù)的增加,種群的最優(yōu)個(gè)體的適應(yīng)度在增加,而總線長(zhǎng)在減少。當(dāng)達(dá)到一定的迭代次數(shù)時(shí),目標(biāo)函數(shù)值趨于穩(wěn)定。因此,為了減少單次遺傳算法攻擊運(yùn)行的時(shí)間,需要選擇合適的迭代次數(shù)Ng,這里選擇c432b的迭代次數(shù)為400,其他基準(zhǔn)電路的Ng值如表1所示。最后,為了使門的所有可能匹配門出現(xiàn)且消除不可能的門,每種攻擊方法需要運(yùn)行一定的次數(shù)N。若N太小,則正確的門可能不會(huì)出現(xiàn);若N太大,則會(huì)造成總體運(yùn)行時(shí)間的浪費(fèi)。實(shí)驗(yàn)結(jié)果顯示,N值與基準(zhǔn)電路中最大相同類型門的數(shù)量相關(guān),在實(shí)驗(yàn)中,N值與最大同類型門數(shù)量大致相同。
表1列出了實(shí)驗(yàn)中每個(gè)基準(zhǔn)電路的特性和一些參數(shù)的設(shè)定。
表1 基準(zhǔn)電路門特性和實(shí)驗(yàn)參數(shù)設(shè)置
3.2.2 攻擊效果
圖8 攻擊效果
得到基于電路節(jié)點(diǎn)線長(zhǎng)的近似攻擊和遺傳算法攻擊之后的N個(gè)網(wǎng)表-版圖匹配解,根據(jù)攻擊流程圖4,可以得到網(wǎng)表中每個(gè)門最終的候選門。最后由式(3)和式(4)可以計(jì)算得到每個(gè)基準(zhǔn)電路在兩種攻擊方法下的有效匹配門集比和匹配門集平均剪枝比,如圖8所示。圖8顯示,PANet和GA攻擊之后8個(gè)基準(zhǔn)電路候選門的有效匹配門集比的平均值分別為55.36%、78.62%,即攻擊之后最高有78.62%的候選門包含其正確匹配的門。兩種方法的匹配門集平均剪枝比分別為34.65%、26.91%,即候選門的平均剪枝率最高為34.65%,表明攻擊之后候選門的平均大小至少減少了1/3,極大地減少了攻擊者植入硬件木馬的代價(jià)。最后,兩種攻擊方法攻擊效果的差別在于利用了不同的物理信息。遺傳算法攻擊利用了全局信息即集成電路工具做布局時(shí)使電路的總線長(zhǎng)最小,而基于電路節(jié)點(diǎn)線長(zhǎng)的近似攻擊利用了局部近似信息,因此遺傳算法攻擊得到的門的候選門集范圍更大,準(zhǔn)確性更高。也證明了即使當(dāng)分割層為M1時(shí),分塊制造仍然是不安全的,攻擊者仍然可以利用其他的信息減小其植入硬件木馬的代價(jià),從而對(duì)芯片的安全性造成威脅。
筆者針對(duì)分塊制造下芯片可能遭受的安全問題,不同于前人提出的攻擊目標(biāo)主要為恢復(fù)電路的隱藏連接。筆者首先提出了新的攻擊模型:分塊制造的分割層為第1層金屬層,攻擊者可以獲得電路的門級(jí)網(wǎng)表,且其目標(biāo)為對(duì)電路中的特定門進(jìn)行硬件木馬植入。之后,針對(duì)這種攻擊模型提出了兩種攻擊方法來找到目標(biāo)門在版圖中的可能匹配,即基于電路節(jié)點(diǎn)線長(zhǎng)的近似攻擊和基于遺傳算法機(jī)制的遺傳算法攻擊。這兩種方法分別利用了集成電路設(shè)計(jì)工具對(duì)電路進(jìn)行后端設(shè)計(jì)時(shí)泄露的局部和全局連接信息。實(shí)驗(yàn)結(jié)果表明,這兩種攻擊方法可以有效地減小攻擊者植入硬件木馬的代價(jià),也證明了分塊制造本身在防護(hù)芯片遭受硬件木馬攻擊的安全性是不夠的。文中的不足在于,缺少相應(yīng)的防御機(jī)制來提高分塊制造防護(hù)芯片遭受硬件木馬攻擊的安全性,這也是今后需要研究的方向。