麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種防止利用掃描鏈攻擊集成電路芯片的動態混淆掃描鏈結構的制作方法

文檔序號:11112014閱讀:923來源:國知局
一種防止利用掃描鏈攻擊集成電路芯片的動態混淆掃描鏈結構的制造方法與工藝

本發明涉及一種防止利用掃描鏈攻擊集成電路芯片的動態混淆掃描鏈結構,更確切的說,是一種適用于防止在供應鏈中攻擊者利用掃描鏈路攻擊集成電路芯片的動態混淆掃描鏈路結構,屬于集成電路芯片知識產權及安全性保護技術領域。



背景技術:

集成電路(integrated circuit)是一種微型電子器件或部件。它是經過氧化、光刻、擴散、外延、蒸鋁等半導體制造工藝,把構成具有一定功能的電路所需的半導體、電阻、電容等元件及它們之間的連接導線全部集成在一小塊硅片上,然后焊接封裝在一個管殼內的電子器件;其中所有元件在結構上已組成一個整體,使電子元件向著微小型化、低功耗、智能化和高可靠性方面邁進了一大步。集成電路具有體積小,重量輕,引出線和焊接點少,壽命長,可靠性高,性能好等優點,同時成本低,便于大規模生產。集成電路按其功能、結構的不同,可以分為模擬集成電路、數字集成電路和數/模混合集成電路三大類。

隨著集成電路制造工藝的不斷進步,集成電路芯片內部的邏輯單元數目劇增,而集成電路芯片的引腳個數卻被大大限制,為了盡可能的測試集成電路,以保證產品質量,在集成電路芯片中通常采用可測試性(DFT,Design for Testability)設計技術。該技術通過在芯片原始設計中插入各種用于提高芯片可測試性的硬件邏輯,使得芯片變得容易測試,從而大幅度降低測試成本。掃描設計是一種當前工業界廣泛采用的可測試性設計技術,它可以獲得很高的故障覆蓋率,實際上已經成為現代芯片設計流程中必不可少的環節。這種設計的基本思想是將待測電路內部的寄存器單元改造為可掃描的寄存器單元(即掃描單元),并分組串接在一起構成掃描鏈。在測試狀態下從測試設備傳輸過來的測試激勵逐拍進入掃描鏈中的掃描觸發器,全部掃描觸發器單元填充完畢后電路進入正常功能狀態,捕獲電路狀態值,捕獲到的觸發器狀態值稱為測試響應,測試響應將被串行的移出掃描觸發器到達芯片引腳,通過和已存儲的期望結構進行比較,確定芯片是否包含故障。

通過掃描鏈,測試者可以快速準確的得到集成電路芯片中每一個寄存器存儲的值。因此,通過掃描鏈,攻擊者可以獲取芯片中的密鑰、芯片的內部結構等信息,或者操控芯片。經過對現有的技術文獻進行檢索發現,已經有學者利用掃描鏈成功攻破了現有的多種加密算法新芯片。如2005年D.Mukhopadhyay等人在Asian Test Symposium(亞洲測試會議)發表了“Cryptoscan:A secured scan chain architecture(加密掃描:一種安全的掃描鏈結構)”,其中提到通過在功能模式下運行集成電路芯片,然后將其切換到測試模式下獲得每個寄存器存儲的值,來獲取流密碼加密芯片的密鑰。B.Yang等人于2004年在International Test Conference(國際測試會議)上發表的“Scan based side channel attack on dedicated hardware implementations of data encryption standard(針對數據加密標準進行的基于掃描鏈的測信道攻擊)”,展示了利用掃描鏈攻擊專用于數據加密標準(DES)芯片以獲取其密鑰的方法。D.Hely等人于2004年在International Online Testing Symposium(國際線上測試會議)上發表了“Scan design and secure chip(掃描設計和安全芯片)”,其中指出,在已知集成電路芯片某些結構功能的條件下,攻擊者可以通過掃描輸入非法控制信號來干擾芯片的正常工作。

由于以上所述的基于掃描鏈的攻擊,保證安全的進行掃描測試已經成為設計者和工廠非常關注的問題,許多對策被提了出來。如D.Hely等人于2006年在International Online Testing Symposium(國際線上測試會議)上發表了“Secure scan techniques:a comparison(安全掃描技術對比)”中提到通過精心設計的測試控制器,當集成電路芯片進入測試模式時,所有的寄存器和存儲器中的值會被清零。2009年M.Inoue等人在European Test Symposium(歐洲測試研討會)上發表的“Partial scan approach for secret information protection(通過部分掃描來保護敏感信息)”,展示了改變掃描鏈結構,來混淆掃描輸入輸出向量,保護敏感信息。G.Sengar等人于2007年在IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems(計算機輔助設計集成電路和系統)上發表了“Secured flipped scan-chain model for crypto-architecture(用于加密結構中的安全觸發掃描鏈)”,其中通過在掃描鏈中插入反相器來混淆掃描鏈的結構,防止攻擊者得到掃描鏈的具體結構。但是隨著新技術的不斷發展,這些方法都存在被攻破的可能性。

目前基于掃描鏈的攻擊有如下幾種:

暴力攻擊(Brute Force Attack):通過遍歷的手段,猜測芯片內部的敏感信息所保存的位置以及值,經過不斷嘗試從而得到想要的數據。

普通差分攻擊(Differential Attack):通過在普通模式下輸入不同的測試激勵,并運行集成電路芯片一段時間后,切換到測試模式,掃描輸出響應數據,比較輸出的測試響應,定位關鍵的觸發器位置,來獲取某些敏感信息。

僅測試模式下的差分攻擊(Test Mode Only Differential Attack):因為某些集成電路芯片在由普通模式切換到測試模式時,會把所有的寄存器和存儲器的值都清零,普通差分攻擊無法起作用,因此近年有人提出了僅測試模式下的差分攻擊。在測試模式下,通過輸入全為0和只有一位為1的測試向量,比較測試響應輸出,觀測值發生變化的寄存器的位置,以此定位某些包含敏感信息的寄存器,進而獲取敏感信息,如密鑰等。

復位攻擊(Resetting Attack):對于某些通過混淆掃描鏈來保護掃描信息的方法,使用復位攻擊,將所有的寄存器值都清零,然后掃描輸出,可以初步判斷某些混淆方法的結構。

沖刷攻擊(Flushing Attack):通過不斷向掃描鏈中掃描輸出特定測試向量,如全為1或者全為0,根據掃描輸出的值,來判斷掃描鏈是否被混淆以及混淆的方法。

位識別攻擊(Bit-Role Identification Attack):某些掃描鏈保護結構,以掃描鏈中的一些寄存器作為關鍵位,只有這些寄存器的值滿足一定條件時,才能正常進行掃描測試。位識別攻擊就是針對這種保護措施,攻擊者根據設計者給出的正確的測試向量,依次改變測試向量中的某一位,若所改變的恰好是關鍵位的寄存器,則輸出的測試響應會發生較大的改變。依據這一方法,可以確定所有的關鍵位,進而破解對掃描鏈的保護。

由于大規模集成電路芯片中掃描鏈的數目可能遠多余芯片外部管腳的數目,因此通常會把測試向量和響應進行壓縮,節約外部端口的需求。外部掃描輸入的測試向量首先經過芯片內部的解壓器,將被壓縮的測試向量解壓到每條掃描鏈上;每條掃描鏈的測試響應經過一個壓縮器后由外部管腳輸出。因為壓縮器和解壓器對本發明結構的影響可以忽略,因此在本發明中不予以討論。

一般來說,集成電路綜合工具會自動平衡集成電路芯片中掃描鏈的長度,使得所有掃描鏈的長度盡可能接近。

線性反饋移位寄存器(Linear feedback shift register,LFSR)是指給定前一狀態的輸出,將該輸出的線性函數再用作輸入的移位寄存器。異或運算是最常見的單比特線性函數:對寄存器的某些位進行異或操作后作為輸入,再對寄存器中的各比特進行整體移位。賦給寄存器的初始值叫做“種子”,因為線性反饋移位寄存器的運算是確定性的,所以,由寄存器所生成的數據流完全決定于寄存器當時或者之前的狀態。線性反饋移位寄存器可以用來生成偽隨機數。



技術實現要素:

本發明的目的是設計了一種防止利用掃描鏈攻擊集成電路芯片的動態混淆掃描鏈結構,更確切的說,是一種適用于防止在供應鏈中攻擊者利用掃描鏈攻擊集成電路芯片以獲取集成電路芯片的知識產權或者敏感信息的動態混淆掃描鏈結構。該結構內嵌在集成電路中,能夠混淆集成電路芯片中的掃描鏈結構,從而測試者拿到的輸入激勵和輸出響應都是經過混淆的,攻擊者難以得知真正的測試輸入輸出以及掃描鏈結構,達到保護集成電路芯片的目的。

本發明所設計的一種防止利用掃描鏈攻擊集成電路芯片的動態混淆掃描鏈結構,所述的集成電路芯片包含N條掃描鏈,掃描鏈1E1、掃描鏈1E2……掃描鏈1EX……掃描鏈1EN,它們共同構成一個掃描鏈集合{1E1,1E2...1EN},即掃描鏈集合1E;

所述的動態混淆掃描鏈結構,其特征在于:

集成電路芯片的動態混淆掃描鏈結構由控制單元(1A),線性反饋移位寄存器(1B),遮蔽鏈(1C)和異或門集合(1D)構成。

控制單元(1A)由時鐘控制模塊(10C)、n比特寄存器(10A)和n比特測試向量計數器(10B)構成,控制單元(1A)對輸入集成電路芯片的測試向量數目進行計數,當輸入的測試向量的數目達到p組時,就輸出一個混淆密鑰更新信號給線性反饋移位寄存器(1B)模塊,以更改整個混淆結構的混淆密鑰。

線性反饋移位寄存器(1B)是一個λ位的線性反饋移位寄存器構成的,該線性反饋移位寄存器由控制單元(1A)輸出的混淆密鑰更新信號驅動,輸出λ位的混淆密鑰,此密鑰是一0、1構成的序列。

遮蔽鏈(1C)由若干串聯在一起的觸發器、兩種類型的與門(A類和B類)構成,觸發器和A類與門的數目等于掃描鏈集合(1E)中最長的掃描鏈的長度,B類與門的數目等于掃描鏈集合(1E)中掃描鏈的數目N。遮蔽鏈(1C)的作用為防止因為復位攻擊而泄露混淆密鑰,混淆密鑰經過遮蔽鏈(1C)轉變為經保護的混淆密鑰,輸入到掃描鏈集合(1E)中。當集成電路芯片遭受復位攻擊時,經保護的混淆密鑰均置零,掃描鏈集合(1E)未被混淆,攻擊者無法得到混淆結構的信息,只有其掃描輸入一組測試向量后,混淆結構才正常工作,此時攻擊者亦無法得到混淆密鑰的信息。

異或門集合(1D)包含M個異或門,即異或門1D1、異或門1D2……異或門1DX、異或門1DX+1……異或門1DM,它們共同構成異或門集合1D={1D1,1D2......1DM},這些異或門分別插入到掃描鏈集合{1E1,1E2...1EN}中的每條掃描鏈中,且受到經保護的混淆密鑰控制,每位混淆密鑰控制一個或者多個異或門,當該位密鑰為高電平時,經過受控異或門的信號就會發生翻轉,即被混淆,否則不翻轉,即不混淆。

其中,時鐘控制模塊(10C)由一個反相器、一個控制觸發器和一個與門構成,掃描控制信號經過反相器輸入到控制觸發器的數據輸入端和與門的一個輸入端,控制觸發器的輸出與與門的另一個輸入端相連接,控制觸發器的時鐘為功能時鐘(功能時鐘為集成電路芯片處于正常工作狀態下所使用的時鐘,頻率一般高于掃描時鐘)。

其中,遮蔽鏈(1C)的觸發器相互串聯,每個觸發器的輸出都與一個A類與門的一個輸入端口連接;每個A類與門的另一個端口作為遮蔽鏈(1C)的輸入端口,與線性反饋移位寄存器(1B)的輸出端口相連接,成一一對應的關系;第1個觸發器的輸入端口連接在電源上,即當芯片處于掃描測試狀態下,且有掃描時鐘時,該等觸發器輸出的值按照時鐘的節拍依次變為高電平;在掃描鏈集合1E中的每條掃描鏈輸出端口均放置一個B類與門,掃描鏈的輸出數據均需經過B類與門才能輸出到外部管腳,所有B類與門的另一個輸入端口與遮蔽鏈(1C)中最后一個觸發器的輸出相連接,即受到觸發器鏈中最后一個觸發器的控制。

其中,遮蔽鏈(1C)的輸出為位的經保護的混淆密鑰,每一位經保護的密鑰都連接到一個異或門的一個輸入端,其中α為異或門在每條掃描鏈中的插入比例,N為掃描鏈的總條數,λ是掃描鏈集合1E中掃描鏈的最大長度;任意一個異或門(1DX)都被隨機插入到掃描鏈相鄰兩個掃描單元之間,異或門(1DX)一個輸入端口接前一個掃描單元的輸出端口,另一個輸入端口接一位經保護的混淆密鑰,異或門(1DX)的輸出接后一個掃描單元的輸入端口。若異或門(1DX)被插入到掃描鏈的末端,則異或門(1DX)一個輸入端口接所插入掃描鏈的最后一個掃描單元的輸出端口,另一個輸入端口接一位經保護的混淆密鑰,異或門(1DX)的輸出接B類與門的一個輸入端口;若異或門(1DX)被插入到掃描鏈的起始位置,則異或門(1DX)一個輸入端口接所插入掃描鏈的掃描輸入端口,另一個輸入端口接一位經保護的混淆密鑰,異或門(1DX)的輸出接所插入掃描鏈的第一個掃描單元的輸入端口。

其中,本發明所述的結構能夠應用于數字集成電路和數/模混合集成電路。

本發明設計的一種防止利用掃描鏈攻擊集成電路芯片的動態混淆掃描鏈結構的優點在于:

①所提出的結構可以保護集成電路芯片免受基于掃描鏈的非破壞芯片式的攻擊,同時還能保證芯片的可測試性和測試向量輸入的靈活性。

②所提出的結構可以防止芯片內部敏感信息(如加密芯片中的密鑰,芯片中的知識產權等)被惡意用戶竊取,如供應鏈中的生產和測試廠商。

③所提出的結構所需要的額外面積和功耗很低,對原有集成電路芯片的設計及測試流程影響很小,同時不會增加測試時間。

附圖說明

圖1是本發明設計的集成電路芯片動態混淆掃描鏈結構的總體示意圖。

圖2是本發明設計運行時內部信號的時序圖。

圖3A是本發明設計受到普通差分攻擊時各信號的時序圖。

圖3B是本發明設計防止僅測試模式下的差分攻擊的示意圖。

圖3C是本發明設計受到復位攻擊時各信號的時序圖。

圖3D是本發明設計受到沖刷攻擊時各信號的時序圖。

圖4是本發明設計中插入不同數目異或門時,原始測試響應于混淆后的測試響應之間的漢明距離的示意圖。

具體實施方式

下面將結合附圖和實施例對本發明做進一步的詳細說明。

對于集成電路的編程控制采用了Synopsys公司的Design Compiler2014,Primetime2014和ICCompiler2014軟件。Design Compiler是Synopsys公司的邏輯綜合優化工具,可以把硬件描述語言(HDL)描述的電路綜合為跟工藝相關的門級電路。并且根據用戶的設計要求,在時序和面積,時序和功耗上取得最佳的效果。它可以接受多種輸入格式,如硬件描述語言、原理圖和網表等,并產生多種性能報告,在縮短設計時間的同時提高讀者設計性能。PrimeTime是Synopsys公司的靜態時序和功耗分析軟件,常被用來分析大規模、同步、數字ASIC的時序以及靜態動態功耗。IC Compiler是Synopsys公司下一代布局布線系統,通過將物理綜合擴展到整個布局和布線過程以及簽核驅動的設計收斂,來保證卓越的質量并縮短設計時間。上一代解決方案由于布局、時鐘樹和布線獨立運行,有其局限性。IC Compiler的擴展物理綜合(XPS)技術突破了這一局限,將物理綜合擴展到了整個布局和布線過程。IC Compiler采用基于TCL的統一架構,實現了創新并利用了Synopsys公司的若干最為優秀的核心技術。作為一套完整的布局布線設計系統,它包括了實現下一代設計所必需的一切功能,如物理綜合、布局、布線、時序、信號完整性(SI)優化、低功耗、可測性設計(DFT)和良率優化。

參見圖1所示,本發明所設計的一種防止利用掃描鏈攻擊集成電路芯片的動態混淆掃描鏈結構,可內嵌在現有集成電路芯片上,并對原有集成電路芯片的掃描鏈進行混淆。線性反饋移位寄存器(1B)產生的混淆密鑰經過遮蔽鏈(1C)的保護后,輸入到不同的異或門(1D),對掃描鏈進行混淆。每條掃描鏈包含的異或門的數目和位置各不相同,因而其對應的經保護的混淆密鑰也各不相同。控制模塊(1A)控制混淆密鑰的更新周期,每輸入p組測試向量,混淆密鑰更新一次。本發明設計的集成電路芯片動態混淆掃描鏈結構簡單,易于集成到現有的集成電路芯片中,同時能夠有效的混淆測試數據,防止常見的基于掃描鏈的攻擊。

(一)線性反饋移位寄存器(1B):

線性反饋移位寄存器(1B)是用來產生λ位的混淆密鑰(λ是掃描鏈集合1E中掃描鏈的最大長度),其作用是混淆掃描測試的輸入輸出向量。混淆密鑰受到遮蔽鏈(1C)的保護。線性反饋移位寄存器(1B)由控制模塊(1A)驅動,當控制模塊發出混淆密鑰更新信號時,線性反饋移位寄存器(1B)的輸出才發生變化。線性反饋移位寄存器(1B)的初始種子值存儲在芯片內部的只讀存儲器中,由存儲器寫控制信號控制,當開始測試以后,在該信號的控制下,種子的值被載入到線性反饋移位寄存器(1B)中。

(二)遮蔽鏈(1C)和異或門集合(1D):

參見圖1所示,遮蔽鏈(1C)包含λ個觸發器,λ個A類與門和N個B類與門。其中λ個觸發器相互串聯,由掃描控制信號控制的掃描時鐘驅動;每個觸發器的輸出都與一個A類與門的一個輸入端口連接;每個A類與門的另一個端口作為遮蔽鏈(1C)的輸入端口,與線性反饋移位寄存器(1B)的輸出端口相連接,成一一對應的關系。第1個觸發器(觸發器1)的輸入端口連接在電源(VDD)上,即當芯片處于掃描測試狀態(掃描控制信號為高電平)下,且有掃描時鐘時,這λ個觸發器輸出的值按照時鐘的節拍依次變為高電平。在掃描鏈集合1E中的每條掃描鏈輸出端口均放置一個B類與門,掃描鏈的輸出數據均需經過B類與門才能輸出到外部管腳,所有B類與門的另一個輸入端口與遮蔽鏈(1C)中第λ個觸發器(觸發器λ)的輸出相連接,即受到觸發器鏈中最后一個觸發器的控制。

遮蔽鏈(1C)的輸出為位的經保護的混淆密鑰,每一位經保護的密鑰都連接到一個異或門的一個輸入端,其中α為異或門在每條掃描鏈中的插入比例,N為掃描鏈的總條數。任意一個異或門(1DX)都被隨機插入到掃描鏈相鄰兩個掃描單元之間,異或門(1DX)一個輸入端口接前一個掃描單元的輸出端口,另一個輸入端口接一位經保護的混淆密鑰,異或門(1DX)的輸出接后一個掃描單元的輸入端口。若異或門(1DX)被插入到掃描鏈的末端,則異或門(1DX)一個輸入端口接所插入掃描鏈的最后一個掃描單元的輸出端口,另一個輸入端口接一位經保護的混淆密鑰,異或門(1DX)的輸出接B類與門的一個輸入端口;若異或門(1DX)被插入到掃描鏈的起始位置,則異或門(1DX)一個輸入端口接所插入掃描鏈的掃描輸入端口,另一個輸入端口接一位經保護的混淆密鑰,異或門(1DX)的輸出接所插入掃描鏈的第一個掃描單元的輸入端口。

需要指出,遮蔽鏈中第i個A類與門(即連接在觸發器i的輸出端口的A類與門),其輸出端口所連接的M個異或門(即這M個異或門都受到第i個A類與門輸出的經保護的混淆密鑰控制)都應當處于掃描鏈中第i個掃描單元與第i+1個掃描單元之間。

遮蔽鏈(1C)設計的目的為:1)防止線性反饋移位寄存器(1B)輸出的混淆密鑰因復位攻擊而泄露;2)防止攻擊者有意的掃描輸入某些值。遮蔽鏈(1C)可起到:1)在復位之后,鎖定掃描鏈前λ位輸出,使其均為“0”(低電平);2)在復位之后,當第i個掃描時鐘到來之時,解鎖第i位混淆密鑰,使得掃描鏈中第i位的值有可能被混淆。混淆的條件為:1)掃描鏈第i個與第i+1個掃描單元之間插入了異或門;2)遮蔽鏈(1C)輸入到該異或門的值為1,此時由第i個掃描單元輸出到第i+1個掃描單元的值將會發生翻轉,即被混淆。

遮蔽鏈(1C)和異或門集合(1D)具體的工作過程如下所示:

當集成電路芯片整體復位之后,芯片內部所有的寄存器、觸發器的值都變為0。由于遮蔽鏈(1C)中的λ個觸發器輸出也均為0,因此所有A類和B類與門的輸出也都為0,即混淆密鑰不能施加在掃描鏈中,掃描鏈的輸出都被鎖定為0。之后,集成電路芯片切換到掃描測試模式,當掃描控制信號為高電平時,芯片在掃描時鐘的驅動下開始掃描輸入輸出數據,同時遮蔽鏈(1C)中的λ個觸發器輸出按照時鐘的節拍依次變為1,直到第λ個掃描時鐘周期,遮蔽鏈(1C)中所有的觸發器輸出均為1,此時遮蔽鏈(1C)中的A類和B類與門都不再起作用,混淆密鑰可以施加在掃描鏈中,同時掃描鏈的輸出不再被鎖定。在這個過程中,第i個掃描時鐘周期時,遮蔽鏈(1C)中第i個觸發器(觸發器i)的輸出變為1,第i位混淆密鑰可以通過遮蔽鏈(1C),掃描鏈集合(1E)中的掃描鏈第i個掃描單元有可能被混淆。在λ個掃描時鐘周期以后,掃描鏈中的每一位只要符合混淆條件,都可能被混淆。

將一條掃描鏈表示為a={a1,a2,...,aλ}(ai=1,0|i=1,2,...,λ),其中ai表示掃描鏈中第i個掃描單元,若第i個掃描單元之后插入了異或門,且遮蔽鏈(1C)輸入到該異或門的值為1,則ai=1,否則ai=0。設在原來的測試輸入向量(即未插入掃描混淆結構時)為P={P1,P2,...Pλ}(Pi=1,0|i=1,2,...,λ),當存在混淆結構時,混淆后的測試向量為SP={SP1,SP2,...SPλ}(SPi=1,0|i=1,2,...,λ),則二者的關系為同理,設原來的測試輸出響應為R={R1,R2,...Rλ}(Ri=1,0|i=1,2,...,λ),當存在混淆結構時,混淆后的輸出響應為SR={SR1,SR2,...SRλ}(SRi=1,0|i=1,2,...,λ),其二者之間的關系為依據上述關系以及已知的混淆密鑰(只有設計者知道混淆密鑰),設計者可以對原來未經混淆的測試輸入向量和輸出響應進行混淆,然后將混淆后的測試向量和輸出響應交付給制造者,制造者使用混淆后的測試數據進行測試,將掃描輸出的響應與已知的響應進行比對,判斷集成電路芯片是否存在故障。制造者只能知道芯片是否存在故障,而無法根據測試向量以及響應來獲取芯片的其他敏感信息,從而達到保護芯片的目的。其余攻擊者由于無法得知芯片中的混淆密鑰,以及異或門的插入位置,也無法獲取有用的信息。

(三)控制模塊(1A)

本發明設計中的控制模塊(1A)由n比特寄存器(10A)、n比特測試向量計數器(10B)和時鐘控制模塊(10C)構成。其中,時鐘控制模塊(10C)由一個反相器、一個控制觸發器和一個與門構成,掃描控制信號經過反相器輸入到控制觸發器的數據輸入端和與門的一個輸入端,控制觸發器的輸出與與門的另一個輸入端相連接,控制觸發器的時鐘為功能時鐘(功能時鐘為集成電路芯片處于正常工作狀態下所使用的時鐘,頻率一般高于掃描時鐘)。

集成電路芯片在處于測試模式時,其測試流程為:1)使掃描控制信號為高電平,然后通過外部管腳,掃描輸入配置芯片內部掃描鏈中的寄存器的值;2)使掃描控制信號為低電平,芯片進行正常運行一個或幾個時鐘周期;3)使掃描控制信號為高電平,掃描輸出各個掃描鏈中的值,即測試響應,同時輸入下一組測試向量,對掃描鏈重新進行配置。如此不斷循環,即可完成測試。

利用上述原理,當掃描控制信號為高電平,即掃描輸入輸出狀態時,時鐘控制模塊(10C)中的與門的兩個輸入均為低電平,則與門的輸出也為低電平,即時鐘控制模塊(10C)的輸出為低電平;當掃描控制信號由高電平變為低電平,芯片處于正常運行狀態,即意味著已經輸入了一組測試向量,此時與門的兩個輸入端均為高電平,與門輸出由低電平翻轉為高電平,產生一個上升沿,n比特測試向量計數器(10B)內部計數值加一。此設計的優點在于,當掃描控制信號值發生變化之后,必須提供一個時鐘上升沿,才能改變時鐘控制模塊(10C)的輸出值,因為時鐘控制模塊(10C)中的時鐘為芯片運行所用時鐘,因此經過一個時鐘周期之后,芯片內部的寄存器的值會發生一定運算,從而產生變化,防止攻擊者單純改變掃描控制信號的值,而不提供時鐘給芯片,從而探索混淆結構的密鑰及其更新周期。

在實際工作過程中,首先進行系統初始化,從芯片內部的只讀非易失性存儲器中讀取控制混淆結構的控制向量,該控制向量包含線性反饋移位寄存器(1B)λ位的種子和n位的值p,p被加載進n比特寄存器(10A)中,決定了混淆密鑰的更新周期,當n比特測試向量計數器(10B)的計數值到達p,即測試者向集成電路芯片輸入勒p組測試向量后,控制模塊(1A)發出混淆密鑰更新信號給線性反饋移位寄存器(1B),使其更新混淆密鑰。這一設計的目的在于在實際生產測試中,設計者的測試向量往往不能一次性交付給制造者,這個特性為設計者更新測試向量提供了一定得靈活性同時保證了安全性,即不同批次的測試向量可以使用不同的混淆密鑰。

(四)集成電路芯片動態混淆掃描鏈結構工作時序圖

圖2展示了所發明的集成電路芯片動態混淆掃描鏈結構具體的時序圖。在復位初始化之后,混淆密鑰1生成(如波形(c)所示),同時每輸入p組測試向量,控制模塊(1A)就產生一個混淆密鑰控制信號(如波形(f)所示),混淆密鑰就就變化一次。同時,在復位之后,由遮蔽鏈(1C)輸出的經保護的混淆密鑰隨著掃描時鐘,按時鐘周期一位一位的產生,在λ個掃描時鐘周期之后全部產生保持不變,直到混淆密鑰發生變化(如波形(g)所示)。另外,在復位之后,所有的掃描鏈在前λ個掃描時鐘周期的輸出均為0,即被遮蔽鏈(1C)中的B類與門鎖定,波形(h)展示了任一掃描鏈1EX的掃描輸出。

如上文所述,本發明所提出的集成電路芯片動態混淆掃描鏈結構可以在被集成到現有的集成電路芯片中,不影響原有的測試流程,同時可保護芯片不受基于掃描鏈的攻擊。

實施例1

應用本發明設計的集成電路芯片動態混淆掃描鏈結構進行測試:

本發明所提出的集成電路芯片動態混淆掃描鏈結構被插入到了若干測試電路中,如OpenSPARCT2處理器中的FGU(Floating Point and Graphic Unit,浮點運算和圖像處理模塊)模塊,ITC’99中最大的電路b19,一個128位的AES加密模塊,和Gaisler芯片中的Leon processor、Leon3s和VGA-LCD模塊中,所有的測試電路在綜合時設置的功能時鐘為100MHz,掃描時鐘為10MHz,其掃描鏈的最大長度為64(即λ=64),需要指出,由于集成電路芯片中的掃描單元的數目不一定是64的整數倍,綜合工具會自動平衡各掃描鏈的長度,使其最大長度為64,且各掃描鏈的長度接近。上述被插入片上調節結構的電路都在32nm的技術節點上經過了仿真驗證。

首先估算本發明的面積、功耗和計算時間的開銷。面積開銷指的是新插入集成電路芯片的結構的面積與芯片原有面積之比,功耗開銷指新插入集成電路芯片的結構在測試過程中產生的功耗與原來芯片在測試過程中的功耗之比,計算時間開銷指將原來的測試向量和響應進行混淆,得到實際交付測試者的混淆后的向量和響應,這個混淆過程所需要的時間。由圖1可知,本發明的結構面積開銷主要來自于線性反饋移位寄存器(1B),遮蔽鏈(1C)和異或門集合(1D)。在實際仿真中,分別插入10%和30%的異或門(即α=10%,30%)。在不同測試電路中的功耗和面積開銷如下表所示,在插入10%和30%的異或門的條件下,面積開銷分別位0.76%-1.93%和2.02%-4.05%,功耗開銷分別為0.35%-1.02%和1.73%-2.26%。若假設一個測試電路包含10000條長度位64的掃描鏈,即遠遠大于下表1中的幾個測試電路,使用一臺配備20個2.4GHz CPU的Linux工作站,混淆10000組該電路的測試向量和響應所需要的時間位15.897s,計算開銷也是可接受的。

表1

下面對本發明進行安全性分析,主要針對現有的基于掃描鏈的攻擊。需要申明的是,本發明僅針對非破壞性的基于掃描鏈的攻擊,即不考慮攻擊者使用對芯片進行拆解等破壞性的手段。

針對普通差分攻擊(Differential Attack),在復位之后,攻擊者需要先在正常模式下運行集成電路芯片若干時鐘周期,然后將其切換到掃描模式,掃描輸出各個掃描鏈中的值。因為本發明中存在遮蔽鏈(1C),會鎖住掃描鏈前λ=64個掃描時鐘周期的輸出。圖3A顯示了任一掃描鏈(長度為64)受到普通差分攻擊時的波形圖,掃描鏈前64個時鐘周期的輸出均為0.

針對僅測試模式下的差分攻擊(Test Mode Only Differential Attack),在多數工業設計中,當集成電路芯片由正常模式切換到掃描模式時,會自動復位掃描鏈中所有的掃描單元,普通差分攻擊無法起到作用。為此,目前出現了一種僅測試模式下的差分攻擊,這種攻擊方式在測試模式下,通過向芯片掃描輸入全為0或者只有一位為1的測試向量(獨熱碼),通過比較測試響應,來定位某些關鍵的掃描單元的位置,進而獲取敏感信息。對于本發明的結構,因為攻擊者無法得知混淆密鑰以及異或門的插入位置,攻擊者不能準確的控制實際掃描進入掃描鏈中的值,則其輸入的值也就不能用來進行僅測試模式下的差分攻擊。如圖3B所示,如果攻擊者想要輸入64’h4000000000000000(十六進制表示的64位二進制數),掃描鏈表示為64’h0010101000101010(1表示該位被混淆,0表示該位未被混淆),則實際掃描輸入到掃描鏈中的測試向量位64’h400FF00FFFF00FF0。因此本發明所提出的結構可以抵抗僅測試模式下的差分攻擊。

針對復位攻擊(Resetting Attack),在集成電路芯片復位之后,攻擊者可以直到掃描鏈中每個掃描單元中的值(均為0),如果直接將其掃描輸出,可能泄露混淆結構的某些信息。但是由于存在遮蔽鏈(1C),復位之后掃描鏈的前λ=64位輸出均為0,如圖3C所示,可以保護混淆結構信息不被泄露。

針對沖刷攻擊(Flushing Attack)因為遮蔽鏈(1C)保證了混淆密鑰被同步的施加到掃描鏈上,當對集成電路芯片進行沖刷攻擊時,每位掃描輸入的數據都經歷了相同次數的翻轉,取決于翻轉的次數時奇數還是偶數,掃描輸出的數據為原來數據取反或者保持不變。如圖3D所示,攻擊者持續掃描輸入0,掃描鏈可以被表示為64’h0010001000101010,則掃描輸出全部為1.因此,攻擊者只能知道數據在掃描鏈中經歷了奇數還是偶數次翻轉,無法得到如異或門的位置等信息。

針對暴力攻擊(Brute Force Attack)如果攻擊者想要通過暴力攻擊來得到每條掃描鏈中的異或門的位置以及是否對掃描鏈進行混淆,則這個概率為1/2λ+1,因為理論上每條掃描鏈(長度為λ)中有λ+1個位置可以插入異或門。若攻擊者通過沖刷攻擊知道了掃描鏈中起混淆作用的異或門的個數為奇數或者偶數,則其準確猜測出掃描鏈中其混淆作用的異或門的位置的概率為(設為λ偶數,奇數同理)進一步,即便攻擊者得知異或門的插入比例,其猜測出掃描鏈中其混淆作用的異或門的位置的概率為其中為從λ+1個位置選擇出個位置的組合數,為位密鑰可能的組合數。下表展示了不同長度的掃描鏈在不同的異或門插入比例下,準確猜測出掃描鏈中其混淆作用的異或門的位置的概率。需要指出的是,下表2僅僅展示了攻擊者準確猜出一條掃描鏈中起混淆作用的異或門位置的概率,若要有效進行攻擊,一般需要猜測出所有掃描鏈中起混淆作用的異或門位置的概率,因為敏感信息可能隱藏在不同的掃描鏈中,若設集成電路芯片有N條掃描鏈,準確猜測一條掃描鏈狀況的概率位P,則猜測到所有掃描鏈的概率為PN,可見通過暴力攻擊基本不可能攻破本結構。

表2

針對位識別攻擊(Bit-Role Identification Attack),本結構中的掃描輸入輸出各位均獨立,不存在關聯,因此改變某一位的數據,不會使輸出發生較大的異常,攻擊者不能據此判斷關鍵的位,如存在異或門的位。

圖4是在一條掃描鏈中隨機插入異或門并隨機選擇異或門是否起混淆作用,施加10000組測試向量,混淆前后的漢明距離的分布。可以看出,當看出當插入30%(α=30%)的異或門時,漢明距離大于0.4的概率位88.94%,即測試向量混淆前后差異較大,難以復原。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 新安县| 五河县| 三台县| 晋江市| 观塘区| 司法| 武宣县| 长葛市| 准格尔旗| 定远县| 察隅县| 青川县| 久治县| 五常市| 嘉义市| 宁武县| 桐柏县| 周至县| 西林县| 聂拉木县| 弥渡县| 南皮县| 夏邑县| 丹巴县| 秦安县| 北辰区| 乌拉特后旗| 昌宁县| 马龙县| 钟山县| 鹤峰县| 义马市| 汝州市| 鸡东县| 留坝县| 麦盖提县| 依兰县| 阳城县| 伊宁县| 萨迦县| 荣成市|