一種基于id和fsm結(jié)合的電路可信性設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種電路可信性設(shè)計(jì)方法,具體是基于芯片ID(身份認(rèn)證)與FSM(有限狀態(tài)機(jī))相結(jié)合來提高電路可信性設(shè)計(jì)方法。
【背景技術(shù)】
[0002]近年來,隨著芯片設(shè)計(jì)與制造的全球化進(jìn)程不斷深化,設(shè)計(jì)制造分離,硬件外包,集成電路變得越來越容易受到惡意的行為與修改。為了縮短集成電路的設(shè)計(jì)周期,降低制造成本,許多芯片公司采用第三方EDA,引用第三方IP核,并將一些芯片的制造過程轉(zhuǎn)移給成本更低的第三方公司或制造商,對(duì)于不可信的第三方制造商,從而引起兩類問題:
[0003]1.在生產(chǎn)過程中,惡意方對(duì)電路的結(jié)構(gòu)進(jìn)行惡意修改,即植入硬件木馬,從而使電路失效或者泄露關(guān)鍵信息。
[0004]2.使用過的舊芯片電學(xué)參數(shù)會(huì)出現(xiàn)一些老化效應(yīng),電學(xué)特性參數(shù)等都會(huì)出現(xiàn)很大漂移,這樣的芯片需要回收進(jìn)行統(tǒng)一處理,但是惡意方會(huì)對(duì)這些回收的器件進(jìn)行重新包裝再投放到市場(chǎng),進(jìn)而達(dá)到營(yíng)利目的。
[0005]為了有效防御這兩種問題的產(chǎn)生,需要加強(qiáng)電路的可信性設(shè)計(jì)。在加大電路攻擊難度的同時(shí),還要增強(qiáng)芯片的抗復(fù)制能力。
[0006]防止電路受到木馬攻擊的方式有兩種:第一、選擇經(jīng)過可信性認(rèn)證的制造商進(jìn)行生產(chǎn);第二、開發(fā)出可信性設(shè)計(jì)電路,使惡意方難以正確植入木馬。第一種方式將引入復(fù)雜的制造商認(rèn)證過程,使成本大幅度提升,與當(dāng)前的全球化生產(chǎn)供應(yīng)模式不符。第二種方法通過改進(jìn)電路設(shè)計(jì)和檢測(cè)流程,增強(qiáng)電路的抗攻擊能力,提升芯片與系統(tǒng)的安全性,是當(dāng)前防止惡意攻擊與抵抗木馬的主要方式。
[0007]改進(jìn)電路設(shè)計(jì)具體表現(xiàn)為電路的可信性設(shè)計(jì),更加關(guān)注如何提高電路的健壯性,從而加大攻擊難度??尚判栽O(shè)計(jì)的核心思想在于在電路設(shè)計(jì)過程中添加部分模塊,檢測(cè)電路狀態(tài)、記錄電路信息或是改變電路工作模式,增加惡意方攻擊難度。
[0008]為了加強(qiáng)對(duì)芯片數(shù)量的控制,提出了芯片ID的概念。Jae ff.Lee設(shè)計(jì)了一種基于延時(shí)的ID生成電路。這種方法運(yùn)用芯片生產(chǎn)過程中固有的隨機(jī)變化導(dǎo)致的延時(shí)量不同產(chǎn)生唯一的簽名。通過對(duì)于ID或者簽名的管理來控制芯片的數(shù)量是一種有效的硬件安全措施。
[0009]在電路可信性設(shè)計(jì)現(xiàn)有技術(shù)中,Jeyavijayan Rajendran提出一種基于振蕩環(huán)的電路可信性設(shè)計(jì)方法,利用一個(gè)MUX做選通信號(hào),把電路中的組合邏輯連接成為環(huán)路。通過在電路中添加反相器,使每個(gè)環(huán)路中的與非門個(gè)數(shù)為奇數(shù),實(shí)現(xiàn)振蕩環(huán)路,用于測(cè)量記錄電路的特征頻率。電路中加入振蕩環(huán)路設(shè)計(jì)使得對(duì)插入其中的惡意電路具有很聞的敏感性,因?yàn)槿魏胃膭?dòng)都會(huì)改變電路的內(nèi)部結(jié)構(gòu),從而反映在振蕩環(huán)特征頻率的變化。但是此方法受工藝波動(dòng)影響較大,測(cè)量精度及面積消耗會(huì)很大。而且此方法只能針對(duì)組合邏輯進(jìn)行測(cè)試,對(duì)于時(shí)序邏輯則無能為力。
[0010]為了實(shí)現(xiàn)對(duì)時(shí)序邏輯可信性設(shè)計(jì),Mainak Banga設(shè)計(jì)了一種由譯碼器控制D觸發(fā)器Q端與非Q端的模糊處理方法,復(fù)用D觸發(fā)器的Q端與非Q端,將二者連入一個(gè)MUX多路選擇器,譯碼器作為控制選通信號(hào),正確時(shí)D觸發(fā)器輸出Q端正確信號(hào),此時(shí)為電路正常工作狀態(tài)。譯碼器信號(hào)錯(cuò)誤時(shí)選通非Q作為輸出信號(hào),此時(shí)為模糊狀態(tài)。這種方法的缺點(diǎn)在于電路門級(jí)的設(shè)計(jì)比行為級(jí)可信性設(shè)計(jì)更容易被反向工程所識(shí)別,而且譯碼器的保護(hù)較脆弱,惡意方可以通過窮盡譯碼器的輸入,并觀測(cè)內(nèi)部節(jié)點(diǎn)推算出電路工作模式,進(jìn)而施加有效攻擊。
[0011]Rajat提出一種網(wǎng)表級(jí)IP保護(hù)模糊處理方法,在行為級(jí)插入一個(gè)有限序列狀態(tài)機(jī),只有通過正確輸入序列才能使電路進(jìn)入正常工作模式,否則處于模糊狀態(tài)。此方法設(shè)計(jì)目的在于IP核保護(hù),即使惡意方拷貝了電路模塊,沒有KEY,電路只會(huì)工作于模糊狀態(tài),進(jìn)而達(dá)到IP保護(hù)的目的。該方法可以有效防止惡意方對(duì)電路進(jìn)行攻擊,但是通過不正當(dāng)渠道獲取KEY則可以肆無忌憚的大規(guī)模復(fù)制芯片并謀取利益,損害IP供應(yīng)商的利益。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的技術(shù)目的是:
[0013]在電路行為級(jí),提出芯片身份認(rèn)證(ID)與有限序列狀態(tài)機(jī)(FSM)結(jié)合的方法,用于實(shí)現(xiàn)電路的抗復(fù)制性和模糊設(shè)計(jì),以增強(qiáng)電路的可信性。芯片ID相當(dāng)于芯片的身份證號(hào)碼,每個(gè)芯片根據(jù)各自的工藝偏差都有不同的ID,將ID集成到電路的安全保護(hù)功能當(dāng)中相當(dāng)于使每個(gè)芯片擁有不同的啟動(dòng)邏輯。惡意方即使復(fù)制芯片也會(huì)產(chǎn)生不同的ID,這樣下來,原有的密鑰無法進(jìn)入新復(fù)制的芯片,進(jìn)而有效實(shí)現(xiàn)抗復(fù)制性。有限序列狀態(tài)機(jī)同電路關(guān)鍵功能相結(jié)合,輸入序列不正確時(shí)無法電路會(huì)進(jìn)入非正常工作狀態(tài),這樣大大增大了攻擊者通過枚舉方法獲取電路節(jié)點(diǎn)信息的難度,無法正確實(shí)施對(duì)小概率節(jié)點(diǎn)進(jìn)行攻擊或篡改的目的,進(jìn)而實(shí)現(xiàn)電路抗攻擊性。
[0014]本發(fā)明實(shí)現(xiàn)的技術(shù)方案:
[0015]本發(fā)明提供的基于ID和FSM相結(jié)合的電路可信性設(shè)計(jì)方法,如圖1所示,主要由三部分組成:第一部分是有限序列狀態(tài)機(jī)(FSM),其實(shí)現(xiàn)方法如圖2所示,我們對(duì)其中一些狀態(tài)進(jìn)行了多次復(fù)制。芯片上電后FSM跳轉(zhuǎn)到SO狀態(tài),此時(shí)從高權(quán)限存儲(chǔ)區(qū)中提取芯片獨(dú)有ID碼,并將其部分bit位用于控制FSM跳轉(zhuǎn)到不同的復(fù)制狀態(tài),此時(shí)只有等待與此路徑相對(duì)應(yīng)的序列到來才能進(jìn)入下一有效狀態(tài),否則電路處于鎖定狀態(tài)(lock)。第二部分為KEY邏輯控制單元,如圖1所示,其輸入分別為ID剩余部分bit位以及設(shè)計(jì)方給的針對(duì)本ID的芯片密鑰,輸出控制FSM的跳轉(zhuǎn)。芯片上電之后,將讀取的ID反饋回設(shè)計(jì)方,設(shè)計(jì)方會(huì)根據(jù)所設(shè)計(jì)的FSM跳轉(zhuǎn)代碼以及KEY邏輯控制單元的結(jié)構(gòu)給出該芯片ID所需要的解鎖密鑰KEY。只有得到次正確的密鑰,KEY邏輯控制單元將芯片ID的剩余比特位及KEY經(jīng)過邏輯粘合輸出到FSM,才能使FSM完成正確跳轉(zhuǎn),進(jìn)入芯片內(nèi)部邏輯。上鎖解鎖機(jī)制具體解析如圖3所示,假設(shè)由2-bit輸入控制FSM,芯片開始工作于SO狀態(tài)下,此時(shí)從存儲(chǔ)區(qū)調(diào)出芯片獨(dú)有ID為0011,前2-bit定義為狀態(tài)機(jī)轉(zhuǎn)向下一復(fù)制狀態(tài)的密鑰,此時(shí)根據(jù)狀態(tài)轉(zhuǎn)換圖可知,狀態(tài)轉(zhuǎn)向Sl-1,只有下一個(gè)輸入為01時(shí),狀態(tài)機(jī)才能轉(zhuǎn)向下一有效狀態(tài)S2,否則電路相當(dāng)于被鎖定。制造方將讀取到的芯片ID反饋回設(shè)計(jì)方,設(shè)計(jì)方此時(shí)知道KEY邏輯控制單元為同或門,且跳轉(zhuǎn)到下一有效狀態(tài)需要的序列碼為01,那么根絕推算需要的解鎖密鑰KEY為01,將此密鑰(01)給到制造方。制造方將此KEY (01)輸入到KEY邏輯控制單元,經(jīng)過與ID(Il)粘合(同或)產(chǎn)生序列碼Ol控制FSM由狀態(tài)Sl-1跳轉(zhuǎn)到S2,實(shí)現(xiàn)解鎖。FSM狀態(tài)設(shè)置需要根據(jù)芯片數(shù)量而做調(diào)整,數(shù)量越大,ID的長(zhǎng)度也會(huì)增大,狀態(tài)機(jī)所需要添加