• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于遺傳算法的抗網(wǎng)表逆向攻擊邏輯混淆方法

      2023-02-18 08:36:10趙毅強(qiáng)馬浩誠張啟智何家驥
      電子與信息學(xué)報 2023年1期
      關(guān)鍵詞:寄存器時序逆向

      趙毅強(qiáng) 蒯 鈞 馬浩誠 張啟智 高 雅 葉 茂 何家驥

      (天津大學(xué)微電子學(xué)院 天津 300072)

      1 引言

      隨著集成電路(Integrated Circuit, IC)工藝節(jié)點的不斷縮小,摩爾定律趨于失效,半導(dǎo)體產(chǎn)業(yè)已逐步進(jìn)入后摩爾時代。硅工藝技術(shù)逐漸逼近物理極限,使得不斷攀升的芯片性能、功耗、成本需求,已無法單純依靠提升工藝滿足,而要依賴于更為復(fù)雜與精巧的設(shè)計架構(gòu)與實現(xiàn)策略。知識產(chǎn)權(quán)核(Intellectual-Property core, IP core)的出現(xiàn),能夠在一定程度上緩解高昂的一次性工程成本與漫長的產(chǎn)品開發(fā)周期等問題。但是,基于逆向工程技術(shù)分析電路并獲取芯片原始設(shè)計,已成為一項越來越嚴(yán)重的硬件安全威脅,并以此衍生出IP竊取、IC過度生產(chǎn)、IC偽造、硬件木馬植入等諸多硬件安全問題。

      目前,針對逆向工程的防御技術(shù)主要分為IC偽裝技術(shù)與邏輯混淆技術(shù)。IC偽裝技術(shù),主要通過虛假連接等方式設(shè)計結(jié)構(gòu)相似但功能不同的邏輯單元,從而抵抗攻擊者基于物理版圖識別門級網(wǎng)表。邏輯混淆技術(shù),主要通過向門級網(wǎng)表中植入混淆單元,從而抵抗攻擊者基于門級網(wǎng)表識別邏輯功能,具體分為基于組合邏輯的邏輯混淆與基于時序邏輯的邏輯混淆。基于組合邏輯,Baumgarten等人[1]通過嵌入可重構(gòu)邏輯塊,混淆電路輸入到輸出的數(shù)據(jù)路徑。Dupuis等人[2]通過插入與門和或門,混淆網(wǎng)表低可控性節(jié)點。文獻(xiàn)[3,4]基于點函數(shù)或比較器邏輯實現(xiàn)邏輯混淆,以抵抗可滿足性檢查(SATisfiability checking, SAT)攻擊。文獻(xiàn)[5]采用基于反相器與多路選擇器的混淆單元,防止攻擊者通過識別單元結(jié)構(gòu)獲取密鑰,并結(jié)合物理不可克隆函數(shù)(Physical Unclonable Function, PUF)生成混淆密鑰。基于時序邏輯,Chakraborty等人[6]采用Harpoon策略向有限狀態(tài)機(jī)(Finite State Machine, FSM)中引入額外狀態(tài)以實現(xiàn)邏輯鎖定,從而保證電路在未解鎖時混淆FSM。Hu等人[7]基于FSM實現(xiàn)對電路不定時的多次認(rèn)證,從而指數(shù)提升針對SAT攻擊的抵抗屬性。文獻(xiàn)[8]針對不同F(xiàn)PGA的PUF響應(yīng)值生成特定的增強(qiáng)FSM,實現(xiàn)了按設(shè)備付費許可的邏輯混淆策略。張會紅等人[9]采用版圖偽裝、異或門混淆、FSM混淆等技術(shù),實現(xiàn)物理-邏輯-行為的3級協(xié)同混淆。

      然而,隨著近年來逆向工程技術(shù)的高速發(fā)展,基于門級網(wǎng)表的逆向技術(shù)為邏輯混淆帶來了新的挑戰(zhàn)。通過分析網(wǎng)表寄存器的拓?fù)溥B接關(guān)系與扇入扇出邏輯相似性,基于門級網(wǎng)表的逆向技術(shù)可以恢復(fù)寄存器傳輸級(Register-Transition Level, RTL)的詞級Reg型變量與變量間運算函數(shù)。文獻(xiàn)[10,11]通過分析寄存器連接與功能匹配度,實現(xiàn)數(shù)據(jù)通路詞級結(jié)構(gòu)的提取。文獻(xiàn)[12,13]基于位片識別與聚合,以及寄存器結(jié)構(gòu)匹配等方式,從非結(jié)構(gòu)化網(wǎng)表中提取移位寄存器、計數(shù)器、RAM、加法器等關(guān)鍵組件。文獻(xiàn)[14-16]基于寄存器輸入結(jié)構(gòu)的相似度區(qū)分狀態(tài)寄存器與數(shù)據(jù)寄存器,以分割電路控制邏輯,并進(jìn)一步恢復(fù)FSM。Albartus等人[17]采用基于數(shù)據(jù)流的網(wǎng)表分析技術(shù),通過結(jié)合控制信息與結(jié)構(gòu)信息的獨立度量結(jié)果,在任意展平的網(wǎng)表中提取詞級寄存器結(jié)構(gòu)。

      基于組合邏輯與FSM的混淆策略,可以很好地實現(xiàn)電路運算函數(shù)與狀態(tài)控制邏輯的混淆,然而其主要混淆了數(shù)據(jù)寄存器組間用于邏輯運算的組合邏輯、狀態(tài)寄存器組用于狀態(tài)切換的組合邏輯,對網(wǎng)表中寄存器網(wǎng)絡(luò)的拓?fù)溥B接關(guān)系沒有影響。逆向攻擊者依然可采用基于門級網(wǎng)表的逆向技術(shù)恢復(fù)RTL級寄存器詞級變量,從而非法獲取電路RTL設(shè)計架構(gòu)細(xì)節(jié),或識別敏感數(shù)據(jù)寄存器并嵌入惡意電路。

      本文提出一種基于遺傳算法的自動化邏輯混淆方法,通過分析寄存器拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu),篩選混淆節(jié)點對并創(chuàng)建冗余連接,從而混淆寄存器的拓?fù)湎嗨菩蕴卣?,可以在低面積開銷下,有效地抵抗逆向工具從門級網(wǎng)表中恢復(fù)RTL級詞級信息、控制邏輯與數(shù)據(jù)通路,實現(xiàn)良好的門級網(wǎng)表抗逆向攻擊效果。主要貢獻(xiàn)如下:

      第一,針對SM4電路網(wǎng)表正確逆向了其RTL級詞級信息,證明了網(wǎng)表逆向攻擊對電路存在安全威脅;第二,提出一種基于混淆寄存器拓?fù)浣Y(jié)構(gòu)的邏輯混淆方法,并證明了該方法抵抗網(wǎng)表逆向的有效性;第三,采用兩步式遺傳算法篩選混淆節(jié)點,提升了本文方法的混淆效率并降低了開銷。

      具體結(jié)構(gòu)安排如下:第2節(jié)介紹門級網(wǎng)表逆向工程的技術(shù)原理,第3節(jié)介紹本文提出的抗網(wǎng)表逆向的邏輯混淆方法,第4節(jié)通過實驗分析了本文方法的抗逆向效果、混淆效率、性能面積開銷與安全性,第5節(jié)對本文內(nèi)容進(jìn)行了總結(jié)。

      2 門級網(wǎng)表逆向工程技術(shù)原理

      2.1 門級網(wǎng)表拓?fù)浣Y(jié)構(gòu)

      在基于硬件描述語言(如Verilog)的正向設(shè)計流程中,設(shè)計者通常采用RTL級模型對數(shù)字電路進(jìn)行建模描述:通過定義多比特位寬詞級Reg型變量及變量間的運算函數(shù),將數(shù)字電路建模為控制邏輯與數(shù)據(jù)通路兩部分。通過翻譯、映射與優(yōu)化,邏輯綜合工具將RTL級設(shè)計模型轉(zhuǎn)換為門級網(wǎng)表描述:由組合邏輯門與寄存器連接而成的拓?fù)渚W(wǎng)表。RTL級描述中的詞級Reg型變量被綜合為由多個寄存器組成的寄存器組;變量間的轉(zhuǎn)換函數(shù)被綜合為由多個組合邏輯門組成的組合邏輯云。

      基于此,在門級網(wǎng)表中,數(shù)據(jù)通路體現(xiàn)為由多個組合邏輯云橋接的多個數(shù)據(jù)寄存器組,寄存器組實現(xiàn)數(shù)據(jù)的暫存,組合邏輯云實現(xiàn)數(shù)據(jù)間運算函數(shù)。如圖1(a)中,寄存器組a/b/c/d分別暫存其數(shù)據(jù)A/B/C/D,寄存器a/b與c間通過加法器邏輯橋接,寄存器c與d間通過乘法器邏輯橋接,實現(xiàn)數(shù)據(jù)A/B的求和、求和結(jié)果C取平方的數(shù)據(jù)流通路。

      控制邏輯為由單個狀態(tài)寄存器組與組合邏輯云實現(xiàn)的自反饋結(jié)構(gòu),寄存器組實現(xiàn)當(dāng)前狀態(tài)的保持,組合邏輯云實現(xiàn)狀態(tài)切換函數(shù),寄存器組輸出經(jīng)過組合邏輯云運算,結(jié)果返回寄存器組輸入端作為下個狀態(tài)。如圖1(b)中,寄存器組current_state保持當(dāng)前狀態(tài),狀態(tài)切換邏輯基于當(dāng)前狀態(tài)與輸入(in_a/in_b)運算得到下個狀態(tài)并返回寄存器組輸入端,實現(xiàn)3 bit位寬的有限狀態(tài)機(jī)。

      圖1 邏輯綜合與門級網(wǎng)表結(jié)構(gòu)

      相較于RTL級設(shè)計,由于門級網(wǎng)表中寄存器各自分立,丟失了分組信息,且往往存在復(fù)雜的數(shù)據(jù)交互關(guān)系與控制反饋環(huán)路,因此攻擊者無法通過直接查閱網(wǎng)表獲取高層次的設(shè)計信息。

      2.2 門級網(wǎng)表逆向方法

      為了恢復(fù)RTL級信息,門級網(wǎng)表逆向技術(shù)通過分析分立寄存器的拓?fù)溥B接相似性特征,對寄存器進(jìn)行聚類與合并,從而恢復(fù)寄存器組等高層次設(shè)計信息。一般基于如下相似性特征規(guī)則對網(wǎng)表進(jìn)行逆向分析,如圖2所示,其中圓形代表單個寄存器,箭頭代表寄存器間的組合邏輯連接路徑,且箭頭起始端寄存器被稱為箭頭末端寄存器的前序寄存器,末端寄存器被稱為起始端寄存器的后序寄存器:

      (1)有相同前序或后序寄存器的寄存器應(yīng)屬于同一個寄存器組,如圖2(a);

      (2)前序或后序寄存器處于同一寄存器組的寄存器應(yīng)屬于同一個寄存器組,如圖2(b);

      (3)相同組的寄存器,其前序寄存器或后序寄存器的數(shù)量是相近的,如圖2(c);

      (4)相同組的寄存器,其與前序寄存器或后序寄存器的間的組合邏輯函數(shù)是類似的,如圖2(c);

      (5)處于相同組的寄存器,數(shù)據(jù)應(yīng)該在同一時鐘周期同步到達(dá),若同一寄存器出現(xiàn)在兩個周期節(jié)拍中,則合并兩個節(jié)拍周期所有寄存器,并在子集內(nèi)部進(jìn)行2次分割,如圖2(d)。

      圖2 同組寄存器相似性特征分析規(guī)則

      為了避免逆向結(jié)果與單條特征產(chǎn)生過擬合,兩兩組合上述5條相似性特征從而得到10條聚類分析規(guī)則。分別執(zhí)行10條規(guī)則對寄存器進(jìn)行分析聚類,并對不同規(guī)則得到的所有聚類結(jié)果進(jìn)行多數(shù)投票,得到本次逆向結(jié)果。迭代地執(zhí)行該過程,直到聚類得到的寄存器組結(jié)果逐漸收斂,最終輸出逆向分析的寄存器組聚類結(jié)果,以及寄存器組間的連接關(guān)系,如圖3。

      圖3 門級網(wǎng)表逆向過程

      完成寄存器組恢復(fù)后,針對狀態(tài)寄存器組,分析其后續(xù)組合邏輯云以確定狀態(tài)切換函數(shù),并以復(fù)位狀態(tài)為初始狀態(tài),通過遍歷不同輸入下的下個狀態(tài)恢復(fù)完整狀態(tài)機(jī);針對數(shù)據(jù)寄存器組,分析組間組合邏輯云以確定數(shù)據(jù)運算函數(shù),分析寄存器組間連接關(guān)系以獲取數(shù)據(jù)流向圖,最終實現(xiàn)從門級網(wǎng)表到RTL級設(shè)計的完整逆向過程。

      3 基于遺傳算法的抗網(wǎng)表逆向邏輯混淆技術(shù)原理

      為了抵抗逆向工具從門級網(wǎng)表恢復(fù)RTL級詞級變量、數(shù)據(jù)通路與控制邏輯,本文提出一種基于遺傳算法的邏輯混淆方法,通過篩選不同寄存器組的扇入與扇出節(jié)點作為混淆節(jié)點對,并植入混淆單元以創(chuàng)建冗余連接,從而混淆寄存器拓?fù)渚W(wǎng)絡(luò),消除同組寄存器的相似性特征。

      具體步驟如下:

      (1)基于廣度優(yōu)先原則,對網(wǎng)表進(jìn)行遍歷,提取寄存器拓?fù)渚W(wǎng)絡(luò)與扇入扇出匯聚節(jié)點;

      (2)基于寄存器拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)與扇入扇出邏輯,采用遺傳算法篩選各寄存器組的扇出混淆點與扇入混淆點,并組成混淆節(jié)點對;

      (3)基于混淆節(jié)點對選取并植入混淆單元,創(chuàng)建扇出混淆點到扇入混淆點的邏輯通路,從而向寄存器拓?fù)渚W(wǎng)絡(luò)引入冗余連接,同時修改網(wǎng)表單元的實例化名稱以混淆語義信息,最終完成混淆網(wǎng)表的自動化生成。

      3.1 寄存器拓?fù)渚W(wǎng)絡(luò)與扇入扇出匯聚分析

      為了方便進(jìn)行后續(xù)的混淆對篩選與混淆單元植入,首先采用廣度優(yōu)先搜索算法,對網(wǎng)表進(jìn)行寄存器拓?fù)渚W(wǎng)絡(luò)分析。相較于深度優(yōu)先,廣度優(yōu)先搜索算法可以避免節(jié)點回溯操作,因此具有更快的處理速度。該算法以寄存器端口為起點,通過逐層向后遍歷并跳過該寄存器的扇出組合邏輯,從而得到該寄存器的后序寄存器與扇出邏輯節(jié)點。具體算法如下,流程圖如圖4所示:

      首先,選取待分析寄存器R。創(chuàng)建扇出邏輯節(jié)點集合L,并初始化為寄存器R的輸出節(jié)點;創(chuàng)建后序寄存器集合Or,并初始化為空;隨后,遍歷集合L,逐個選取邏輯節(jié)點N。針對邏輯節(jié)點N,遍歷其扇出邏輯單元集合Oc,逐個選取單元C:若該單元為寄存器(電路輸出端口也被視為寄存器),則將該寄存器添加到集合Or中;若該單元為組合邏輯門,則將該組合邏輯門的輸出節(jié)點添加到集合L中。最終,當(dāng)集合L中所有邏輯節(jié)點均被遍歷,存儲當(dāng)前集合Or為寄存器R的后序寄存器,存儲當(dāng)前集合L為寄存器R的扇出組合邏輯節(jié)點。

      同理,通過向前遍歷扇入組合邏輯得到該寄存器的前序寄存器與扇入邏輯節(jié)點。最終提取以寄存器為節(jié)點、以組合邏輯門為連接鏈的網(wǎng)狀拓?fù)浣Y(jié)構(gòu)。

      隨后針對每個寄存器組,計算各寄存器的扇入或扇出邏輯節(jié)點集合L之間是否存在重復(fù)節(jié)點,從而分析該組寄存器的扇出路徑或扇入路徑是否存在匯聚,并提取匯聚的扇入邏輯節(jié)點或扇出邏輯節(jié)點。通過篩選匯聚節(jié)點,并在后續(xù)混淆節(jié)點篩選過程中優(yōu)先選取匯聚節(jié)點,可以有效提高單個混淆節(jié)點對引入的冗余連接數(shù),從而提升混淆效率并降低面積開銷。

      如圖4示例所示,通過省略圖5(a)所示的門級網(wǎng)表結(jié)構(gòu)中的組合邏輯門,最終得到圖5(b)中由寄存器間連接關(guān)系構(gòu)成的寄存器拓?fù)渚W(wǎng)絡(luò),圖5(b)中黑色圓點即表示不同寄存器間數(shù)據(jù)路徑的匯聚節(jié)點,匯聚點A即為寄存器a與寄存器b的扇出邏輯路徑匯聚點。

      圖4 寄存器拓?fù)渚W(wǎng)絡(luò)提取算法

      圖5 寄存器拓?fù)渚W(wǎng)絡(luò)與匯聚節(jié)點提取效果

      3.2 基于遺傳算法篩選混淆節(jié)點對

      為了混淆同組寄存器的相似性特征,采用如下混淆策略:

      首先選取兩個寄存器組,并在第1個組中選取扇出邏輯節(jié)點、第2個組中選取扇入邏輯節(jié)點,組成一個混淆節(jié)點對。然后通過將節(jié)點對中的扇出邏輯節(jié)點連接到扇入邏輯節(jié)點上,則可創(chuàng)建兩個寄存器組間的冗余連接,如圖6所示。迭代地重復(fù)上述步驟,以向所有寄存器組引入冗余連接,使得每組的任意兩個寄存器之間:前序寄存器數(shù)量、后序寄存器數(shù)量、前序寄存器歸屬的寄存器組、后序寄存器歸屬的寄存器組均不相同,以達(dá)成混淆同組寄存器相似性特征的結(jié)果。

      圖6 篩選混淆節(jié)點對并創(chuàng)建冗余連接

      由于混淆節(jié)點對的選取,顯著影響著混淆的效果與效率。為了提升混淆效果并降低開銷,采用遺傳算法進(jìn)行混淆對的篩選。遺傳算法通過模擬遺傳學(xué)機(jī)理與自然選擇的進(jìn)化過程,進(jìn)行最優(yōu)解搜索。其首先在求解空間中生成一個初始種群,基于評價函數(shù)選擇對環(huán)境適應(yīng)度更高的個體,然后通過交叉與變異產(chǎn)生子代。不斷重復(fù)選擇、交叉、變異的過程,直到種群的適應(yīng)度達(dá)到目標(biāo)閾值,則輸出適應(yīng)度最高的個體作為最優(yōu)解求解結(jié)果。遺傳算法主要用于求解離散變量的組合最優(yōu)化問題,因此很適合在網(wǎng)表中篩選混淆節(jié)點對。

      本方法兩步遞進(jìn)式地采用遺傳算法進(jìn)行混淆節(jié)點對篩選,縮小求解空間大小,從而提升算法性能。

      第1步:針對每組寄存器,分別在扇入與扇出邏輯節(jié)點中篩選匯聚節(jié)點作為混淆節(jié)點,使得在給定混淆節(jié)點數(shù)量N下,各寄存器所連接的混淆節(jié)點差異最大化,其中差異采用評價函數(shù)E1進(jìn)行評估。采用的評價函數(shù)E1如下所示,函數(shù)值越小,代表差異越大,混淆效果越理想,具體為

      其中,F(xiàn)i為混淆后該組第i個寄存器的扇入或扇出混淆節(jié)點集合;O為N個混淆節(jié)點中出現(xiàn)重復(fù)節(jié)點的個數(shù),通過與懲罰因子Punish相乘,淘汰出現(xiàn)重復(fù)節(jié)點的求解結(jié)果。本文中遺傳算法搜索評價函數(shù)的最小值,因此Punish使用正值10000。混淆節(jié)點個數(shù)N取決于該寄存器組中寄存器數(shù)量M,應(yīng)滿足如式(2)的關(guān)系,以使評價函數(shù)結(jié)果存在收斂為理想最優(yōu)值的最優(yōu)解

      第2步:基于找到的各組混淆節(jié)點,選取扇入混淆節(jié)點與扇出混淆節(jié)點得到混淆節(jié)點對,使得混淆后同組寄存器間的前序/后序寄存器數(shù)量、前序/后序寄存器所屬的寄存器組差異最大化,其中差異采用評價函數(shù)E2進(jìn) 行評估。采用的評價函數(shù)E2如式(3)所示,函數(shù)值越小,代表差異越大,混淆效果越理想,具體為

      其中,Ui為混淆后第i個寄存器的前序或后序寄存器數(shù)量,Vi為第i個寄存器的前序或后序寄存器所屬的寄存器組集合。

      3.3 混淆單元設(shè)計與網(wǎng)表自動化混淆

      完成混淆節(jié)點對的篩選后,通過向網(wǎng)表中植入混淆單元,以完成冗余連接的創(chuàng)建。為了不影響電路原始功能,且避免逆向攻擊者通過識別混淆結(jié)構(gòu)攻破混淆,本文設(shè)計了多種混淆單元,具有不同的密鑰位寬、正確密鑰值與邏輯門類型,如圖7所示。其中,圖7(a)、圖7(b)為兩種不同結(jié)構(gòu)的密鑰為單比特0的混淆單元;圖7(c)為密鑰為兩比特00的混淆單元;圖7(d)、圖7(e)為兩種不同結(jié)構(gòu)的密鑰為單比特1的混淆單元;圖7(f)為密鑰為兩比特11的混淆單元。

      圖7 混淆單元邏輯結(jié)構(gòu)

      每個混淆單元都存在密鑰輸入端,當(dāng)該輸入端被置為正確密鑰時,引入的冗余連接被屏蔽,使得電路處于正常工作狀態(tài)。除密鑰輸入端外,每個混淆單元存在原始節(jié)點輸入端與冗余節(jié)點輸入端。通過將混淆單元植入到原始節(jié)點處,則可創(chuàng)建由冗余節(jié)點到原始節(jié)點后序寄存器的冗余邏輯路徑。此外,不同的混淆單元具備不同的組合邏輯結(jié)構(gòu),通過隨機(jī)選取不同的混淆單元,可以避免攻擊者通過識別特定混淆結(jié)構(gòu)從而定位并刪除植入的邏輯混淆單元。在網(wǎng)表的自動化混淆過程中,針對每個混淆節(jié)點對,以節(jié)點對中扇入混淆節(jié)點為原始節(jié)點、扇出混淆節(jié)點為冗余節(jié)點,隨機(jī)選取混淆單元進(jìn)行植入。完成混淆單元植入后,隨機(jī)修改各寄存器的實例化單元名,以隱藏網(wǎng)表中的語義信息,最終輸出混淆后的網(wǎng)表。

      4 實驗與結(jié)果分析

      本文選定SM4國密算法電路,對其進(jìn)行門級網(wǎng)表逆向、邏輯混淆與混淆效果評估?;赟MIC 180 nm工藝,使用Design compiler工具對RTL級設(shè)計進(jìn)行邏輯綜合,獲得門級網(wǎng)表。采用VCS工具對門級網(wǎng)表進(jìn)行仿真以驗證電路的邏輯功能正確性。采用文獻(xiàn)[17]中開源逆向工具DANA進(jìn)行網(wǎng)表逆向攻擊。網(wǎng)表規(guī)模為200000門級,具有129059個邏輯單元,其中寄存器數(shù)量為2432。

      4.1 抗網(wǎng)表逆向效果評估

      為了評估本文混淆方法的抗網(wǎng)表逆向效果,使用該方法混淆原始設(shè)計網(wǎng)表,并分別對原始網(wǎng)表與混淆后的網(wǎng)表進(jìn)行逆向攻擊,最終評估其逆向結(jié)果的正確程度差異。針對網(wǎng)表逆向的效果評估,本文基于標(biāo)準(zhǔn)化互信息(Normalized Mutual Information, NMI)指標(biāo)進(jìn)行分析。該指標(biāo)被廣泛應(yīng)用于聚類問題的效果評估,也是當(dāng)前主流的網(wǎng)表逆向工具評估逆向效果的主要指標(biāo)[14-17]。該指標(biāo)值域為[0, 1],值越高代表聚類結(jié)果越準(zhǔn)確。

      在評估過程中,以真實正確的寄存器分組情況作為標(biāo)準(zhǔn)集GT,以逆向網(wǎng)表得到的寄存器分組情況作為評估集P,通過分析標(biāo)準(zhǔn)集與評估集的相關(guān)度,并采用信息熵完成歸一化,最終得到網(wǎng)表逆向結(jié)果的正確度指標(biāo),具體公式為

      其中,CGT為標(biāo)準(zhǔn)集中的寄存器組個數(shù),CP為評估集中寄存器組個數(shù),Nij為標(biāo)準(zhǔn)集中第i組與評估集中第j組的重復(fù)元素個數(shù),N為所有Nij之和,Ni?為Nij矩陣中第i行之和,N?j為Nij矩陣中第j列之和。

      對SM4電路的原始網(wǎng)表進(jìn)行逆向分析,其評估集P如圖8所示:輸入密鑰、32個輪密鑰所對應(yīng)的共計33個寄存器組被完整地恢復(fù)在綠色區(qū)域,輸入明文、32個輪密文、輸出密文所對應(yīng)的共計34個寄存器組被完整地恢復(fù)在藍(lán)色區(qū)域。該結(jié)果與標(biāo)準(zhǔn)集GT完全一致,寄存器組間的數(shù)據(jù)流向與運算函數(shù)可以得到清晰完整的識別。同時,NMI評估值為1,表明所有的寄存器都得到了正確的分組。因此,對于未經(jīng)混淆的該原始網(wǎng)表,逆向工具實現(xiàn)了理想的逆向效果,寄存器分組與電路數(shù)據(jù)流向得到了正確且完整的恢復(fù)。

      圖8 SM4國密算法電路 網(wǎng)表逆向分析結(jié)果

      采用本文混淆方法對原始網(wǎng)表進(jìn)行混淆,通過植入280個混淆單元引入280條冗余連接,混淆引入的額外開銷為0.216%。對混淆后網(wǎng)表進(jìn)行逆向分析,結(jié)果如圖9所示。相較于標(biāo)準(zhǔn)集GT的67個寄存器組,網(wǎng)表寄存器在評估集P中被錯誤地聚類為362個寄存器組,擴(kuò)大了4.4倍;寄存器組間的拓?fù)溥B接條數(shù)由126條變?yōu)榱?870條,擴(kuò)大了61.46倍,寄存器組間的拓?fù)溥B接復(fù)雜度得到了指數(shù)提升。同時,NMI評估值為0.542,2432個寄存器中2048個(84.2%)發(fā)生了錯誤的聚類:即逆向得到的每個寄存器組中,各寄存器在標(biāo)準(zhǔn)集GT中都屬于不同的寄存器組。只有輸入明文、輸入密鑰、輸出密文3個寄存器組,共384個寄存器,因與輸入輸出端口直接相連而被逆向工具恢復(fù)。因此,經(jīng)本文方法混淆后,寄存器的分組信息完全被隱藏,寄存器組間拓?fù)鋸?fù)雜度也得到指數(shù)提升。

      圖9 SM4國密算法電路 抗逆向效果分析

      4.2 混淆效率與面積評估

      由于傳統(tǒng)基于組合邏輯或有限狀態(tài)機(jī)的邏輯混淆方法不會創(chuàng)建寄存器間的冗余連接,對于詞級寄存器組逆向不具備混淆效果,因此,為了比較并評估本文混淆方法的混淆效率與面積開銷,分別使用本文混淆方法、以及隨機(jī)混淆方法對網(wǎng)表進(jìn)行混淆,并進(jìn)行逆向攻擊。隨機(jī)混淆方法隨機(jī)地從網(wǎng)表中選取邏輯節(jié)點并創(chuàng)建冗余連接。如圖10為逆向攻擊結(jié)果的NMI值與面積開銷的曲線圖。面積開銷通過植入的邏輯單元個數(shù)進(jìn)行定量表征?;煜释ㄟ^曲線斜率表征。

      圖10 面積開銷與混淆效率分析

      隨著混淆開銷的增加,NMI值不斷降低,并最終逐漸收斂。對于隨機(jī)混淆方法,當(dāng)植入單元個數(shù)達(dá)到579時,NMI值逐漸收斂為0.65,面積開銷為0.3874%;而本文方法在植入單元個數(shù)達(dá)到280時,NMI值收斂為0.54,面積開銷為0.216%??蓪⒈疚姆椒ɑ煜蕯M合為0.0016428/每單元,隨機(jī)方法混淆效率擬合為0.0006045/每單元,因此本文方法效率為隨機(jī)方法的2.718倍。同時如表1所示,相較于隨機(jī)混淆方法,隨著混淆效果的提升,本文方法的面積開銷優(yōu)勢逐漸凸顯。當(dāng)NMI值為0.65時,本文方法面積開銷為169,隨機(jī)混淆面積開銷為579,開銷降低了70.8%。此外,對比兩種方法的NMI收斂值,本文混淆方法相較于隨機(jī)混淆方法下降16.9%,因而具有更好的的混淆效果。

      表1 面積開銷對比

      4.3 性能開銷評估

      數(shù)字電路性能主要體現(xiàn)為電路可正常工作的最高時鐘頻率,其主要受限于電路中時序關(guān)鍵路徑(即寄存器與寄存器間的延遲最大的連接通路)的延遲。延遲越高,電路最高時鐘頻率越低。在本文混淆方法中,混淆單元被植入原有的時序路徑中,同時混淆單元也引入了新的時序路徑。采用Design compiler或Primetime工具,對混淆后的門級網(wǎng)表進(jìn)行時序分析。分析混淆單元對原始時序路徑的影響,提取網(wǎng)表中含有混淆單元的時序關(guān)鍵路徑:其中混淆單元延遲為0.42 ns,其余單元時序延遲為18.93 ns,則混淆單元對部分時序路徑引入的時序性能開銷最大為2.21%。

      分析混淆單元引入的時序路徑,當(dāng)混淆密鑰被賦值為正確值后,可等待多個周期再執(zhí)行電路的正常功能,因此該時序路徑并不影響電路運行的實際性能。在數(shù)字開發(fā)流程中,可以直接使用如寬松的多周期路徑時序約束、或直接禁用該條路徑的時序弧(timing arc),以禁止EDA工具分析優(yōu)化該條路徑的時序?qū)傩?,從而避免該條路徑的時序影響。

      此外,針對文中算法的性能,隨著電路規(guī)模的逐漸增大,基于建立時間對寄存器間的組合邏輯延遲的時序約束,電路規(guī)模的增加體現(xiàn)為寄存器組與組合邏輯云數(shù)量的增加,單個組合邏輯云的邏輯門數(shù)量規(guī)模不變。而本文提出的拓?fù)浞治雠c混淆節(jié)點對篩選算法針對單個組合邏輯云進(jìn)行逐個分析,因此隨著電路規(guī)模的逐漸增大,本文算法的時間開銷線性增加。

      4.4 密鑰安全性分析

      邏輯混淆密鑰,主要受到暴力攻擊、故障敏化攻擊與SAT攻擊。暴力攻擊通過窮舉所有可能的密鑰值并判斷電路功能是否正常,從而獲取正確密鑰。而本文設(shè)計提出的每個混淆單元均可引入至少1 bit密鑰,因此僅在100個邏輯門的硬件開銷下,密鑰搜索空間可達(dá)2100,不可接受的時間開銷將使暴力攻擊不再現(xiàn)實。

      故障敏化攻擊通過尋找特定輸入模式,使單比特輸出值的正確性只對單比特密鑰敏感,從而根據(jù)單比特輸出結(jié)果獲取該比特密鑰的正確值[18]。而本文方法通過創(chuàng)建寄存器拓?fù)渚W(wǎng)絡(luò)的冗余連接,可明顯提升密鑰各比特間的相關(guān)性,從而使得各輸出位均受多比特密鑰值影響,指數(shù)提升攻擊需要搜索的密鑰空間。針對SM4電路進(jìn)行實驗,結(jié)果分析表明,當(dāng)基于本文方法植入門數(shù)量為390時,各密鑰輸出節(jié)點的扇入路徑中所存在的密鑰比特數(shù)平均為43.49,最大值為180,因而能較好地抵抗故障敏化攻擊。此外,當(dāng)植入門數(shù)量為150時,隨機(jī)混淆方案對應(yīng)的密鑰比特數(shù)平均值為10.62,本文混淆方法為24.08,相較于隨機(jī)混淆方法提升1.27倍,因而相較于隨機(jī)混淆,本文混淆方法在提升密鑰相關(guān)度時具有更高的效率。

      SAT攻擊將求解組合邏輯電路密鑰的問題視作求解布爾函數(shù)的可滿足性問題,通過正確輸入輸出對迭代排除錯誤密鑰集合,以最終獲取正確密鑰。針對時序邏輯電路,SAT攻擊需通過創(chuàng)建電路副本展開時序反饋環(huán)路,從而將時序邏輯電路展開為等效的組合邏輯電路[19]。目前,如文獻(xiàn)[7]等已提出了相關(guān)的基于時序邏輯混淆的不定時多次認(rèn)證方案,可針對SAT攻擊實現(xiàn)指數(shù)的安全性提升。然而,基于時序邏輯混淆的抗SAT攻擊方案依然存在一定的不足之處。第一,流水線的電路結(jié)構(gòu)可以被簡化,從而降低SAT攻擊需展開的時序周期輪數(shù),縮減展開后電路的布爾函數(shù)復(fù)雜度與等效密鑰位寬。而本文方法創(chuàng)建的冗余連接可引入大量時序反饋環(huán)路,從而破壞流水線結(jié)構(gòu)特征。針對全流水線SM4加密電路的實驗結(jié)果表明,在未經(jīng)混淆的全流水線結(jié)構(gòu)中不存在時序反饋環(huán)路,而經(jīng)本文方法植入390個混淆單元后,除首末級外的共2048個寄存器中,2022個寄存器處于時序反饋環(huán)路中,流水線結(jié)構(gòu)破壞比率為98.73%。第二,攻擊者可基于狀態(tài)寄存器恢復(fù)電路有限狀態(tài)機(jī)[20],以獲取解鎖過程狀態(tài)跳轉(zhuǎn)路徑對應(yīng)的激勵序列。而本文方法混淆了狀態(tài)寄存器與數(shù)據(jù)寄存器,且引入的時序反饋環(huán)路將使得部分?jǐn)?shù)據(jù)寄存器在混淆狀態(tài)下并入狀態(tài)寄存器反饋環(huán)路,消除了同組寄存器的相似性特征與扇入扇出特征,因而無法通過恢復(fù)電路有限狀態(tài)機(jī)的方式攻破基于時序邏輯的混淆策略。如4.1節(jié)實驗結(jié)果分析表明,在植入門數(shù)量為280時,寄存器網(wǎng)絡(luò)拓?fù)鋸?fù)雜度提升61.46倍,NMI評估值下降46%,狀態(tài)寄存器特征得到了有效混淆。

      5 結(jié)束語

      針對傳統(tǒng)邏輯混淆方法無法混淆寄存器間拓?fù)潢P(guān)系的局限性,本文提出一種基于遺傳算法的邏輯混淆方法,通過創(chuàng)建冗余連接,混淆詞級寄存器相似性特征,從而抵抗網(wǎng)表逆向技術(shù)恢復(fù)RTL級詞級Reg變量、控制邏輯與數(shù)據(jù)通路。針對SM4基準(zhǔn)電路的實驗中,本文方法使得逆向結(jié)果的正確度下降46%,拓?fù)鋸?fù)雜度提高61.46倍,開銷僅為0.216%。同時,相較于隨機(jī)混淆方法,本文方法混淆效率提升為2.718倍,面積降低70.8%,因此能為超大規(guī)模芯片在低面積開銷水平下提供有效的網(wǎng)表逆向防護(hù)。

      猜你喜歡
      寄存器時序逆向
      時序坐標(biāo)
      逆向而行
      基于Sentinel-2時序NDVI的麥冬識別研究
      Lite寄存器模型的設(shè)計與實現(xiàn)
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      逆向解答
      一種毫米波放大器時序直流電源的設(shè)計
      電子制作(2016年15期)2017-01-15 13:39:08
      逆向工程技術(shù)及應(yīng)用
      DPBUS時序及其設(shè)定方法
      河南科技(2014年15期)2014-02-27 14:12:36
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      崇仁县| 贡嘎县| 三河市| 云和县| 炉霍县| 手游| 阳泉市| 绍兴县| 孟州市| 青浦区| 万安县| 武陟县| 德清县| 马鞍山市| 翁源县| 利川市| 兴山县| 新安县| 明溪县| 临江市| 河西区| 玉门市| 安义县| 根河市| 肇州县| 潍坊市| 商都县| 文成县| 习水县| 闻喜县| 岗巴县| 大名县| 宣城市| 安平县| 阿克| 岳池县| 绩溪县| 乐陵市| 通江县| 社会| 华阴市|