国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于遞歸下降算法的RTL級(jí)硬件木馬檢測(cè)方法與流程

      文檔序號(hào):11134540閱讀:885來(lái)源:國(guó)知局
      一種基于遞歸下降算法的RTL級(jí)硬件木馬檢測(cè)方法與制造工藝

      本發(fā)明涉及RTL級(jí)代碼安全性分析技術(shù)領(lǐng)域,尤其是一種基于遞歸下降算法的RTL級(jí)硬件木馬檢測(cè)方法。



      背景技術(shù):

      近年來(lái)發(fā)生的“斯諾登棱鏡門(mén)”和“伊朗震網(wǎng)”等事件表明集成電路內(nèi)的硬件木馬可以作為一種武器來(lái)進(jìn)行信息戰(zhàn)、網(wǎng)絡(luò)戰(zhàn),甚至物理摧毀軍事裝備與關(guān)鍵設(shè)施,嚴(yán)重威脅著國(guó)家安全。隨著集成電路設(shè)計(jì)的日益復(fù)雜,制造成本日趨高昂,集成電路產(chǎn)業(yè)正朝著全球化合作的趨勢(shì)發(fā)展,在未來(lái)相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),集成電路仍將面對(duì)來(lái)源眾多的且不可控的第三方IP,國(guó)外的EDA軟件,以及不可控的晶圓制造的威脅。在這些環(huán)節(jié)中,集成電路很可能被人為惡意的修改形成后門(mén)漏洞。因此,需采取有效措施來(lái)對(duì)集成電路內(nèi)的硬件木馬進(jìn)行有效識(shí)別,保證集成電路的安全可信。

      國(guó)內(nèi)外對(duì)硬件木馬檢測(cè)的研究都是針對(duì)純硬件的木馬檢測(cè)方法,目前主要有破壞性檢測(cè),系統(tǒng)運(yùn)行檢測(cè),邏輯測(cè)試和旁路分析四種。其中研究最多的就是基于旁路分析的硬件木馬檢測(cè)方法。旁路分析是利用芯片工作時(shí)的旁路信息(如電磁輻射,電流或者電路延時(shí)等信息)來(lái)對(duì)木馬進(jìn)行檢測(cè)。其原理是因?yàn)殡娐分兄踩氲挠布抉R會(huì)對(duì)芯片的一些旁路信號(hào),如電流,頻率或路徑延時(shí)產(chǎn)生影響,因此通過(guò)觀察芯片的旁路信號(hào)并與原始芯片的旁路信息作比較,進(jìn)而檢測(cè)出芯片中是否有硬件木馬的存在。對(duì)電路進(jìn)行基于旁路分析的硬件木馬檢測(cè)的最大優(yōu)點(diǎn)是可以使硬件木馬在不被觸發(fā)的情形下被檢測(cè)出來(lái),但是其也有顯著的缺點(diǎn),即當(dāng)待測(cè)電路的規(guī)模很大,電路內(nèi)部被植入的硬件木馬的規(guī)模很小,一些旁路信息,比如電流和路徑延時(shí),其變化幅度極小,考慮到測(cè)量過(guò)程中引入的噪聲,以及芯片制造過(guò)程中由于工藝漂移帶來(lái)的噪聲,這種極小的旁路信號(hào)變化將無(wú)法被實(shí)際測(cè)量出來(lái)或者即使被測(cè)量出來(lái)也難以確定是由于硬件木馬引起的,還是由于測(cè)量噪聲、工藝漂移噪聲引起的。

      芯片在進(jìn)行RTL設(shè)計(jì)時(shí),由于設(shè)計(jì)疏忽或者不善,有可能形成能夠被人惡意利用的漏洞,例如可以被利用的直接訪問(wèn)電路內(nèi)部機(jī)密信息的測(cè)試端口,電路內(nèi)部從安全區(qū)域到非安全區(qū)域的信號(hào)直接傳輸?shù)?。但針?duì)RTL級(jí)或者門(mén)級(jí)的代碼安全性研究基本處于空白,因此針對(duì)上述這一類設(shè)計(jì)缺陷,開(kāi)展安全路徑驗(yàn)證技術(shù),檢測(cè)RTL代碼中是否存在可被外部非法訪問(wèn),以及不符合安全規(guī)則定義的路徑,保障RTL代碼中不含有這種隱藏的可以泄露電路內(nèi)部機(jī)密信息的路徑,具有一定的可行性和現(xiàn)實(shí)意義。為了保障芯片在主要的產(chǎn)業(yè)鏈環(huán)節(jié)上都能防御后門(mén)漏洞,降低芯片受到的安全性威脅,有必要開(kāi)發(fā)芯片代碼級(jí)安全性分析與檢測(cè)方法。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明要解決的技術(shù)問(wèn)題是克服現(xiàn)有的缺陷,提供一種基于遞歸下降算法的RTL級(jí)硬件木馬檢測(cè)方法,該方法是針對(duì)指定類型的RTL代碼級(jí)硬件木馬,相對(duì)于傳統(tǒng)的在芯片上檢測(cè)硬件木馬的方法,大大縮短了試驗(yàn)時(shí)間,能夠快速有效的檢測(cè)出RTL代碼級(jí)硬件木馬,并準(zhǔn)確定位木馬所在位置,提高了工作效率。

      為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了如下的技術(shù)方案:

      本發(fā)明一種基于遞歸下降算法的RTL級(jí)硬件木馬檢測(cè)方法,該檢測(cè)方法是根據(jù)木馬模型設(shè)計(jì)RTL代碼規(guī)則,指定詞語(yǔ)類型,包括模塊聲明詞、模塊結(jié)束聲明詞、信號(hào)聲明詞、邏輯功能塊聲明詞、中間詞和終結(jié)詞,對(duì)RTL文件采用遞歸下降算法進(jìn)行分析,找到符合規(guī)則的木馬模塊。

      進(jìn)一步地,該檢測(cè)方法的具體步驟如下:

      (1)從RTL文件第一行開(kāi)始按行讀取內(nèi)容,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,分析完成后,返回行位置,再讀取下一行語(yǔ)句,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,直到讀完RTL文件;其中取詞進(jìn)行分析是指對(duì)詞語(yǔ)類型進(jìn)行判斷,當(dāng)詞為模塊聲明詞時(shí),進(jìn)入模塊分析;

      (2)模塊分析時(shí),讀一行語(yǔ)句,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,分析完后,返回行位置,再讀取下一行語(yǔ)句,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,重復(fù)操作直到詞為模塊結(jié)束聲明詞,結(jié)束當(dāng)前模塊分析循環(huán);其中取詞進(jìn)行分析是指對(duì)詞語(yǔ)根據(jù)詞類型進(jìn)行不同處理,若詞為信號(hào)聲明詞,則進(jìn)入構(gòu)建信號(hào)集合方法,若詞為邏輯功能塊聲明詞,則進(jìn)入邏輯功能分析,若詞為模塊結(jié)束聲明詞,則結(jié)束當(dāng)前模塊分析循環(huán);

      (3)邏輯功能分析時(shí),讀一行語(yǔ)句,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,當(dāng)詞為中間詞時(shí),繼續(xù)往下按行讀語(yǔ)句、取詞,直到獲取的詞為終結(jié)詞;獲取的詞為終結(jié)詞時(shí),進(jìn)入終結(jié)詞分析模塊,若滿足是木馬條件,終結(jié)詞所在RTL代碼模塊是木馬模塊,否則終結(jié)詞所在RTL代碼模塊不是木馬模塊。

      進(jìn)一步地,步驟(1)、(2)、(3)中讀取的一行內(nèi)容不包含注釋語(yǔ)句,每讀取一行語(yǔ)句,行位置標(biāo)記往后一行,一次分析RTL文件每行必須且只讀一次。

      進(jìn)一步地,步驟(1)、(2)、(3)中對(duì)讀取的內(nèi)容取詞是指對(duì)讀取的內(nèi)容,獲取一個(gè)詞語(yǔ)或符號(hào);第一次對(duì)語(yǔ)句取詞時(shí),獲得第一個(gè)詞,之后每次對(duì)該語(yǔ)句取詞,獲得上次取詞的下一個(gè)詞。

      進(jìn)一步地,步驟(2)中構(gòu)建信號(hào)集合方法是將信號(hào)聲明詞聲明的信號(hào)添加到一個(gè)集合中,組成所在模塊的信號(hào)集合。

      進(jìn)一步地,步驟(3)中的終結(jié)詞分析模塊是指根據(jù)木馬規(guī)則對(duì)語(yǔ)句進(jìn)行分析,判斷是否符合木馬規(guī)則。

      本發(fā)明采用以上技術(shù)方案,與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:

      本發(fā)明通過(guò)制定代碼規(guī)則,尋找指定類型的硬件木馬,相對(duì)于傳統(tǒng)的在芯片上檢測(cè)硬件木馬的方法,大大縮短了試驗(yàn)時(shí)間,能夠快速有效的檢測(cè)出RTL代碼級(jí)硬件木馬,并準(zhǔn)確定位木馬所在位置,提高了工作效率。

      附圖說(shuō)明

      圖1為本發(fā)明檢測(cè)方法的流程圖。

      具體實(shí)施方式

      本發(fā)明所列舉的實(shí)施例,只是用于幫助理解本發(fā)明,不應(yīng)理解為對(duì)本發(fā)明保護(hù)范圍的限定,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明思想的前提下,還可以對(duì)本發(fā)明進(jìn)行改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求保護(hù)的范圍內(nèi)。

      下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。

      本發(fā)明提供了一種基于遞歸下降算法的RTL級(jí)硬件木馬檢測(cè)方法,根據(jù)木馬模型設(shè)計(jì)RTL代碼規(guī)則,指定詞語(yǔ)類型,包括模塊聲明詞、模塊結(jié)束聲明詞、信號(hào)聲明詞、邏輯功能塊聲明詞、中間詞和終結(jié)詞,對(duì)RTL文件進(jìn)行分析,找到符合規(guī)則的木馬模塊。

      本發(fā)明檢測(cè)方法的流程如圖1所示,包括如下步驟:

      步驟1:從RTL文件第一行開(kāi)始按行讀取內(nèi)容,所得到的內(nèi)容為該行去掉注釋語(yǔ)句的內(nèi)容,每讀取一行語(yǔ)句,行位置標(biāo)記到下一行。

      對(duì)讀取的內(nèi)容取詞進(jìn)行分析,即對(duì)詞語(yǔ)類型進(jìn)行判斷,當(dāng)詞為模塊聲明詞時(shí),進(jìn)入模塊分析,分析完成后,返回行位置;為其他詞類型時(shí)不進(jìn)行處理。繼續(xù)讀取下一行語(yǔ)句,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,直到讀完該RTL文件;一次分析過(guò)程中RTL文件每行必須且只讀一次。

      步驟2:模塊分析時(shí),讀一行語(yǔ)句,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,分析完后,返回行位置,再讀取下一行語(yǔ)句,對(duì)讀取的內(nèi)容取詞進(jìn)行分析,重復(fù)以上操作直到詞為模塊結(jié)束聲明詞,結(jié)束當(dāng)前模塊分析循環(huán)。

      取詞進(jìn)行分析是指根據(jù)詞類型進(jìn)行不同處理,若詞為信號(hào)聲明詞,則進(jìn)入構(gòu)建信號(hào)集合方法,即將信號(hào)聲明詞聲明的信號(hào)添加到一個(gè)集合中,組成所在模塊的信號(hào)集合;若為邏輯功能塊聲明詞,進(jìn)入邏輯功能分析,若詞為模塊結(jié)束聲明詞,結(jié)束當(dāng)前模塊分析循環(huán)。

      步驟3:邏輯功能分析時(shí),讀一行語(yǔ)句并對(duì)讀取的內(nèi)容取詞進(jìn)行分析,當(dāng)詞為中間詞時(shí),繼續(xù)往下按行讀語(yǔ)句、取詞,直到獲取的詞為終結(jié)詞。

      獲取的詞為終結(jié)詞時(shí),進(jìn)入終結(jié)詞分析模塊,若滿足是木馬模塊條件,該終結(jié)詞所在RTL代碼模塊是木馬模塊;否則該終結(jié)詞所在RTL代碼模塊不是木馬模塊。

      其中終結(jié)詞分析模塊是指根據(jù)木馬規(guī)則對(duì)語(yǔ)句進(jìn)行分析,判斷是否符合木馬規(guī)則。

      上述步驟1、2、3中對(duì)讀取的內(nèi)容取詞,是指對(duì)讀取的內(nèi)容,獲取一個(gè)詞語(yǔ)或符號(hào);第一次對(duì)語(yǔ)句取詞時(shí),獲得第一個(gè)詞,之后每次對(duì)該語(yǔ)句取詞,獲得上次取詞的下一個(gè)詞。

      本發(fā)明的實(shí)施例選擇一份可處理的RTL文件來(lái)進(jìn)行硬件木馬檢測(cè),該RTL文件的內(nèi)容如下:

      對(duì)上述RTL文件的檢測(cè)方法為:首先確定要查找的硬件木馬類型,如要查找累加器模塊實(shí)現(xiàn)的時(shí)間炸彈時(shí),要查找的模塊為累加器,那么需要了解累加器代碼規(guī)則;然后定義各類別詞語(yǔ)集合,定義模塊聲明詞‘module’,模塊結(jié)束聲明詞‘endmodule’,信號(hào)聲明詞為‘input’、‘output’和‘reg’,進(jìn)入模塊的邏輯功能塊聲明詞‘a(chǎn)lways’和‘a(chǎn)ssign’,‘if’、‘else’和‘begin’為中間詞,模塊中所有定義的信號(hào)為終結(jié)詞。

      從頭開(kāi)始對(duì)上述文件進(jìn)行分析,第一行內(nèi)容為注釋,讀取內(nèi)容為空,讀取下一行內(nèi)容也為空,往下讀取代碼直到第16行,讀取該行代碼得到的內(nèi)容非空,得到內(nèi)容為:

      module top(clk,rst,din,dout1,dout2,dout3);

      對(duì)這行語(yǔ)句取詞,第一次取詞‘module’,第二次取詞‘top’,第三次取詞‘(’,獲得‘(’。

      取詞得到‘module’為模塊聲明詞,定義了‘top’模塊,進(jìn)入模塊分析。

      模塊分析時(shí),讀一行語(yǔ)句,得到內(nèi)容為:

      input clk;

      對(duì)這行語(yǔ)句取詞,得到‘input’為信號(hào)聲明詞,定義了信號(hào)‘clk’,將信號(hào)‘clk’添加到一個(gè)模塊‘top’的信號(hào)集合。往下按行讀取RTL代碼,第19到28的非空行都是添加信號(hào)到模塊的信號(hào)集合。

      第31行語(yǔ)句取詞,得到‘a(chǎn)lways’為邏輯功能塊聲明詞,進(jìn)入邏輯功能分析。讀一行語(yǔ)句取詞為‘if’,為中間詞,往下讀語(yǔ)句取詞,得到‘count1’為模塊中定義的信號(hào),符合是終結(jié)詞的條件,對(duì)這行語(yǔ)句進(jìn)行分析,賦值信號(hào)不包含終結(jié)詞信號(hào),不符合木馬條件。繼續(xù)往下讀語(yǔ)句,取詞‘else’為中間詞,讀下一行語(yǔ)句,對(duì)讀取內(nèi)容取詞,得到‘count1’為模塊中定義的信號(hào),符合是終結(jié)詞的條件,對(duì)這行語(yǔ)句進(jìn)行分析,賦值信號(hào)包含終結(jié)詞信號(hào)和加運(yùn)算,符合木馬條件,則第31到35行描述的邏輯功能塊可能有木馬電路。到此行時(shí),該邏輯功能模塊讀取結(jié)束,返回模塊分析。當(dāng)分析到第56行時(shí),取詞為‘endmodule’,是模塊結(jié)束聲明詞,結(jié)束當(dāng)前模塊分析循環(huán),進(jìn)入步驟1中文件分析,直到RTL文件結(jié)束。

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1