本發(fā)明涉及領(lǐng)域?yàn)橛布踩I(lǐng)域,具體涉及一種基于大語言模型的門級(jí)網(wǎng)表硬件木馬測(cè)試集生成方法。
背景技術(shù):
1、芯片硬件木馬(hardware?trojan,ht)是對(duì)芯片設(shè)計(jì)的惡意篡改,會(huì)導(dǎo)致芯片的功能改變、性能降低、信息泄露與拒絕服務(wù)等危害。隨著當(dāng)前芯片性能和復(fù)雜度的提升,為了滿足上市時(shí)間的約束,目前芯片設(shè)計(jì)環(huán)節(jié)中大量使用了第三方知識(shí)產(chǎn)權(quán)核(third-partyintellectual?property?cores,3pip),這些第三方ip核極易被植入硬件木馬,從而給芯片帶來極大的安全隱患。對(duì)網(wǎng)表級(jí)設(shè)計(jì)文件開展硬件木馬檢測(cè),是防御上述安全威脅的有效手段,然而當(dāng)前第三方網(wǎng)表級(jí)硬件木馬測(cè)試集中的樣本長(zhǎng)期未更新,且樣本規(guī)模較小、生存能力較差,難以滿足硬件木馬檢測(cè)技術(shù)迭代更新的需要。有鑒于此,研究高隱蔽、大規(guī)模網(wǎng)表級(jí)硬件木馬測(cè)試樣本的生成方法可為木馬檢測(cè)研究提供更全面、更有效的檢測(cè)樣本集,從而促進(jìn)硬件木馬檢測(cè)技術(shù)的迭代更新。
2、當(dāng)前網(wǎng)表級(jí)硬件木馬檢測(cè)技術(shù)主要有cotd、圖神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)檢測(cè)方法等。針對(duì)上述檢測(cè)方法,相關(guān)研究提出了規(guī)避上述檢測(cè)方式的硬件木馬樣本生成技術(shù)。例如,針對(duì)cotd檢測(cè)方法,出現(xiàn)了decotd0木馬設(shè)計(jì)方法,zhang?j,yuan?f,xu?q.detrust:defeatinghardware?trust?verification?with?stealthy?implicitly-triggered?hardwaretrojans[c].2014acm?sigsac?conference?on?computer?and?communications?security,2014:153–166.通過在木馬電路中增加隱蔽性結(jié)構(gòu),實(shí)現(xiàn)抵抗cotd檢測(cè)。針對(duì)圖神經(jīng)網(wǎng)絡(luò)檢測(cè)方法,gohil等人開發(fā)attackgnn,gohil,v.,patnaik,s.,kalathil,d.,&rajendran,j.(2024).attackgnn:red-teaming?gnns?in?hardware?security?using?reinforcementlearning.arxiv?preprint?arxiv:2402.13946,通過強(qiáng)化學(xué)習(xí)(rl)生成對(duì)抗樣本,并利用電路綜合工具中的原始電路變換來生成功能等效的擾動(dòng)電路;此外,王志強(qiáng)等人提出了一種基于生成對(duì)抗網(wǎng)絡(luò)的大規(guī)模硬件木馬庫(kù)生成系統(tǒng)及方法,通過生成對(duì)抗網(wǎng)絡(luò)模型,進(jìn)行自動(dòng)化的硬件木馬設(shè)計(jì),北京電子科技學(xué)院.一種基于生成對(duì)抗網(wǎng)絡(luò)的大規(guī)模硬件木馬庫(kù)生成系統(tǒng)及方法:cn201911179828.7[p].2020-03-31。在抗強(qiáng)化學(xué)習(xí)檢測(cè)方面,sarihi等人提出了trojanforge技術(shù),與基于強(qiáng)化學(xué)習(xí)的硬件木馬檢測(cè)器協(xié)同工作,生成可躲避強(qiáng)化學(xué)習(xí)檢測(cè)方法的硬件木馬實(shí)例,sarihi,a.,jamieson,p.,patooghy,a.,&badawy,a.a.(2024).trojanforge:generating?adversarial?hardware?trojan?examples?usingreinforcement?learning.in?proceedings?of?the?2024acm/ieee?internationalsymposium?on?machine?learning?for?cad(pp.1-7)。在利用大語言模型生成硬件木馬方面,現(xiàn)有技術(shù)生成的是寄存器傳輸級(jí)(register?transfer?level,rtl)的硬件木馬樣本。例如,kokolakis等人提出了一個(gè)利用通用大語言模型進(jìn)行rtl級(jí)硬件木馬設(shè)計(jì)的自動(dòng)化流程,證明了通用大語言模型在硬件木馬設(shè)計(jì)方面的潛力,kokolakis,g.,moschos,a.,&keromytis,a.d.(2024).harnessing?the?power?of?general-purpose?llms?in?hardwaretrojan?design.in*applied?cryptography?and?network?security?workshops:acns2024satellite?workshops*(pp.176-194).lecture?notes?in?computer?science,vol.14586.cham:springer。bhandari等人提出基于大語言模型的框架sentaur,生成可綜合的硬件木馬rtl代碼,bhandari,j.,sadhukhan,r.,krishnamurthy,p.,khorrami,f.,&karri,r.(2024).sentaur:security?enhanced?trojan?assessment?using?llms?againstundesirable?revisions.arxiv?preprint?arxiv:2407.12352。faruque等人提出基于大語言模型的框架ghost,可對(duì)三個(gè)rtl級(jí)的設(shè)計(jì)分別植入木馬faruque,m.o.,jamieson,p.,patooghy,a.,&badawy,a.-h.a.(2024,december?3).unleashing?ghost:an?llm-poweredframework?for?automated?hardware?trojan?design.arxiv:2412.02816[v1][computerscience–cryptography?and?security].retrieved?from?https://doi.org/10.48550/arxiv.2412.02816。但是,現(xiàn)有的門級(jí)網(wǎng)表硬件木馬測(cè)試集生成技術(shù),智能化程度不足,能規(guī)避的檢測(cè)方法單一,且生成的樣本數(shù)量少。另一方面,基于大語言模型生成的rtl級(jí)硬件木馬,在綜合成門級(jí)網(wǎng)表后,木馬標(biāo)簽消失,無法滿足硬件木馬檢測(cè)的技術(shù)的迭代更新需求。本發(fā)明基于大語言模型生成網(wǎng)表級(jí)硬件木馬,可有效解決上述問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提出了一種基于大語言模型的門級(jí)網(wǎng)表硬件木馬測(cè)試集生成方法,可有效提升木馬測(cè)試集的隱蔽性、增加木馬樣本規(guī)模和種類,以滿足現(xiàn)有硬件木馬生成技術(shù)迭代更新需求。
2、本發(fā)明涉及的硬件木馬測(cè)試集生成方法共分為五步,如圖1所示。輸入為芯片網(wǎng)表級(jí)設(shè)計(jì)文件;①通過特定的提示詞,使其提供硬件木馬生成服務(wù);②為大語言模型提供特定知識(shí)庫(kù),讓大語言模型學(xué)習(xí)網(wǎng)表級(jí)硬件木馬設(shè)計(jì)的有關(guān)知識(shí),讓其提供網(wǎng)表級(jí)的硬件木馬電路;③對(duì)大語言模型生成的網(wǎng)表級(jí)硬件木馬進(jìn)行初步評(píng)估迭代;④要求大語言模型對(duì)生成代碼進(jìn)行反思與審查,提高大語言模型生成木馬的正確率與隱蔽性,直到大模型所生成木馬能夠通過最終評(píng)估;⑤提取最終設(shè)計(jì)的硬件木馬,掛載到母本電路的網(wǎng)表級(jí)設(shè)計(jì)文件中。
3、本發(fā)明所提出的一種基于大語言模型的門級(jí)網(wǎng)表硬件木馬測(cè)試集生成方法,該方法步驟具體如下:
4、步驟1:確保大語言模型能夠提供木馬生成服務(wù);
5、將包含生成木馬請(qǐng)求的初始提示詞輸入llm,獲取初始輸出o,llm表示大語言模型;設(shè)大語言模型提供服務(wù)的概率為pse,有公式:
6、pse(o≠refuse|p)=f(p)?(1)
7、f(p)表示初始提示詞狀態(tài)下的服務(wù)概率;
8、在初始提示詞中引入四種優(yōu)化元素,分別為角色扮演r,情景演繹s,專業(yè)術(shù)語d和領(lǐng)域背景b,引入優(yōu)化元素后的提示詞:
9、
10、其中,popt引入優(yōu)化元素后的提示詞,g(·)表示將優(yōu)化元素與初始提示詞進(jìn)行組合的函數(shù),p表示初始提示詞,表示將四種優(yōu)化元素和初始提示詞進(jìn)行融合的過程;
11、此時(shí):
12、pse(o≠refuse|popt)=f(popt)=f(g(p,r,s,d,b))?(3)
13、其中,pse(o≠refuse|popt)表示在提供優(yōu)化后提示詞的條件下,輸出不為refuse(拒絕)的概率,o表示llm提供的回答,refuse表示llm的回答為“拒絕提供硬件木馬生成服務(wù)”,o≠refuse|popt表示在提供優(yōu)化后提示詞的條件下,輸出不為refuse,f(·)表示一個(gè)特定函數(shù),用于在提供優(yōu)化后提示詞的條件下,計(jì)算llm提供的回答o不為refuse的概率;
14、引入調(diào)優(yōu)參數(shù)集θ:
15、θ={θ1,θ2,...,θn}?(4)
16、從調(diào)優(yōu)參數(shù)集中任意選取其中的k個(gè)參數(shù),與popt構(gòu)成優(yōu)化提示詞;優(yōu)化后的提示詞pfinal產(chǎn)生的服務(wù)概率為pse(o≠refuse|pfinal):
17、pse(o≠refuse|pfinal)=f(pfinal)?(5)
18、f(pfinal)=f(g(p,r,s,d,b,θi1,θi2,...,θik))?i1,i2,...,ik∈{1,2,...,n}?(6)
19、引入調(diào)優(yōu)參數(shù)后,最大化pse(o≠refuse|pfinal),優(yōu)化目標(biāo)即為求解
20、
21、實(shí)現(xiàn)
22、pse(o≠refuse|pfinal)=1?(8)
23、步驟2:為大語言模型引入三個(gè)知識(shí)庫(kù),分別為:
24、知識(shí)庫(kù)k1:可使用門器件列表以及稀有門器件的具體功能;
25、知識(shí)庫(kù)k2:提供給大語言模型掛載的母本電路的rtl原代碼;
26、知識(shí)庫(kù)k3:硬件木馬負(fù)載生成示例;
27、步驟3:評(píng)估迭代大語言模型生成的木馬代碼的有效性,并進(jìn)行更新;
28、通過人工分析與仿真器testbench仿真,評(píng)估大語言模型生成的代碼cgen的有效性;
29、步驟4:大語言模型對(duì)生成代碼反思與審查;
30、步驟5:基于信號(hào)節(jié)點(diǎn)隱蔽性分析提取cfinal,進(jìn)行木馬掛載。
31、進(jìn)一步的,所述步驟2的具體方法為:
32、將知識(shí)庫(kù)提供給大語言模型,讓大語言模型學(xué)習(xí)硬件木馬掛載相關(guān)知識(shí):
33、
34、為大語言模型的學(xué)習(xí)函數(shù),llearn表示大語言模型從先驗(yàn)知識(shí)庫(kù)中學(xué)到的內(nèi)容;
35、大語言模型最終的設(shè)計(jì)代碼為:
36、cgen=g(llearn,pdesign,θgpt)?(10)
37、其中cgen表示生成的初始木馬設(shè)計(jì)代碼,g為大語言模型的生成函數(shù),pdesign為要求大語言模型進(jìn)行木馬設(shè)計(jì)的提示詞,θgpt為大語言模型本身的調(diào)優(yōu)參數(shù)。
38、進(jìn)一步的,所述步驟3中評(píng)估代碼有效性的具體方法為:
39、通過引入評(píng)估器e,對(duì)cgen進(jìn)行評(píng)估,評(píng)估過程為:
40、
41、其中pi表示對(duì)代碼的判斷條件,pi(cgen)表示第i個(gè)判斷條件對(duì)代碼的評(píng)估結(jié)果,函數(shù)f將評(píng)估結(jié)果轉(zhuǎn)換為數(shù)值,wi表示第i個(gè)判斷條件的權(quán)重,設(shè)置評(píng)估閾值t,若
42、e(cgen)≥t?(12)
43、則表示該代碼通過評(píng)估,為有效代碼;否則為無效代碼。
44、進(jìn)一步的,所述步驟3的更新方法為:
45、若大語言模型生成的代碼被評(píng)估為無效代碼,根據(jù)所設(shè)計(jì)的木馬類型,從需求約束庫(kù)集合φ中選擇對(duì)應(yīng)的需求約束庫(kù),再?gòu)膸?kù)中選擇若干條作為新的設(shè)計(jì)約束,并反饋到大語言模型的設(shè)計(jì)過程中;約束庫(kù)集合為:
46、φ={r0,r1,r2,r3}?(13)
47、其中ri表示需求約束庫(kù),四種需求約束庫(kù)分別為:功能改變型約束庫(kù)r0,性能降低型約束庫(kù)r1,信息泄露型約束庫(kù)r2與拒絕服務(wù)型約束庫(kù)r3;
48、每一個(gè)需求約束庫(kù)ri中均包含了約束條件γj,其中γj∈ri,j=1,2,...,m,i=0,1,2,3;m為約束條件的總個(gè)數(shù),將約束條件引入原始提示詞pdesign后,為大語言模型提供用戶反饋f,f包含用戶的情緒刺激反饋、定量評(píng)分與行為引導(dǎo);選擇ri中的k條約束條件,作為輸入需求約束集合rinput,更新后的設(shè)計(jì)代碼cupdate為:
49、θgpt←基于用戶反饋f自動(dòng)更新?????????????????(14)
50、rinput={γj1,γj2,...,γjk},j1,j2,...,jk∈{1,2,...,m}?(15)
51、cupdate=g(llearn,{pdesign,rinput},θgpt)?(16)
52、其中,←表示更新符號(hào),γjk表示從一共有m條約束條件的集合中選取的k條約束條件,jk為所選約束條件的索引下標(biāo),cupdate表示更新后的設(shè)計(jì)代碼。
53、進(jìn)一步的,所述步驟4的具體方法為:
54、設(shè)大語言模型的反思與審查函數(shù)為lre,輸入為要求大語言模型對(duì)設(shè)計(jì)內(nèi)容進(jìn)行反思與審查的提示詞pre,輸出為大語言模型對(duì)其設(shè)計(jì)代碼是否滿足需求約束的反思審查結(jié)果co:
55、co=lre(pre,cupdate)?(17)
56、即
57、
58、表示大語言模型本身的調(diào)優(yōu)參數(shù),從co中進(jìn)行關(guān)鍵詞提取,獲取對(duì)需求約束的反思結(jié)果集合s,其中:
59、s={s1,s2,...,sk}k∈{1,2,...,m}?(19)
60、每一個(gè)sk對(duì)應(yīng)于提供的每一條需求約束γk,表示生成的代碼是否滿足該條需求:
61、
62、表示對(duì)應(yīng)符號(hào);如果對(duì)于則說明生成的代碼滿足全部需求約束,表示對(duì)任意sk;將代碼送入評(píng)估函數(shù)進(jìn)行評(píng)估,如果生成的代碼僅滿足部分需求,則根據(jù)未滿足的需求約束集合r'input進(jìn)行反饋優(yōu)化;未滿足的需求約束集合為:
63、r'input={γk|sk=0,i=1,2,...,n},n≤k?(22)
64、將r'input反饋到生成函數(shù)g,重新生成硬件木馬代碼,進(jìn)入下一輪迭代:
65、
66、
67、此過程不斷重復(fù)迭代,直到:
68、
69、重新對(duì)大語言模型生成的代碼進(jìn)行評(píng)估,判斷其是否為有效設(shè)計(jì)代碼;若重設(shè)計(jì)的代碼仍然無法通過評(píng)估,則返回步驟3,重復(fù)上述迭代步驟,直至最終設(shè)計(jì)代碼cfinal滿足:
70、e(cfinal)=1?(26)。
71、進(jìn)一步的,所述步驟5的具體方法為:
72、給定電路的有向圖g=(v,e),其中:v表示節(jié)點(diǎn)集,即電路的輸入、輸出與內(nèi)部信號(hào)節(jié)點(diǎn);e表示邊集,即電路的邏輯門器件;d(v)表示節(jié)點(diǎn)v到輸入節(jié)點(diǎn)的距離,若v為輸入信號(hào)節(jié)點(diǎn),則
73、d(v)=0?(27)
74、若v為非輸入信號(hào)節(jié)點(diǎn),則
75、
76、其中pred(v)為所有指向節(jié)點(diǎn)v的前驅(qū)節(jié)點(diǎn)集合,depth表示節(jié)點(diǎn)在電路中的深度,對(duì)電路中的所有節(jié)點(diǎn)進(jìn)行靜態(tài)分析,獲取距離集合d,u表示所有指向節(jié)點(diǎn)v的前驅(qū)節(jié)點(diǎn)集合中的單個(gè)節(jié)點(diǎn),其中
77、d={d(v)|v∈v}?(29)
78、定義ninput(v)為節(jié)點(diǎn)v向前遍歷能夠到達(dá)的所有輸入節(jié)點(diǎn)的集合,gdff(v)為節(jié)點(diǎn)v向前遍歷能夠到達(dá)的所有d觸發(fā)器的集合;節(jié)點(diǎn)入度id為:
79、id(v)=|ninput(v)|+|gdff(v)|?(30)
80、|·|表示計(jì)算絕對(duì)值,定義以下參數(shù):輸入激勵(lì)產(chǎn)生次數(shù)its,仿真采樣間隔δt,輸入激勵(lì)的持續(xù)時(shí)間t,母本電路輸入信號(hào)的個(gè)數(shù)ins,仿真文件testbench的時(shí)鐘周期tclk;輸入激勵(lì)產(chǎn)生次數(shù)滿足:
81、its=2ins?(31)
82、仿真過程中,采樣間隔滿足:
83、5tclk≥δt≥tclk?(32)
84、輸入激勵(lì)的持續(xù)時(shí)間應(yīng)與母本電路的最大距離成正比,即
85、t∝dmax(33)
86、dmax=max{d(v)|v∈v}?(34)
87、其中,∝表示成正比關(guān)系,dmax表示節(jié)點(diǎn)v到輸入節(jié)點(diǎn)的最大距離;設(shè)置仿真參數(shù)后,分析并獲取母本電路的時(shí)鐘信號(hào)clk,使能信號(hào)rst,復(fù)位信號(hào)ena,自動(dòng)獲取輸入信號(hào)in_n與所有信號(hào)節(jié)點(diǎn)的集合n,其中:
88、n={v1,v2,...,vi|vi∈v,i=1,2,...,n}?(35)
89、
90、接下來自動(dòng)生成仿真文件testbench,仿真時(shí)為每個(gè)內(nèi)部信號(hào)記錄翻轉(zhuǎn)率fr與占空比dc,與距離d、入度id一起作為節(jié)點(diǎn)特征;對(duì)節(jié)點(diǎn)隱蔽性進(jìn)行評(píng)分:
91、ns=wfr·fr+wdc·dc+wd·d+wid·id?(37)
92、其中wfr、wdc、wd與wid分別表示四種特征的權(quán)重,ns為節(jié)點(diǎn)隱蔽性分?jǐn)?shù);
93、對(duì)于網(wǎng)表文件中的節(jié)點(diǎn)n,每個(gè)節(jié)點(diǎn)vi具有一個(gè)隱蔽性評(píng)分nsi,選擇評(píng)分最高的k個(gè)節(jié)點(diǎn)進(jìn)行木馬掛載,其中k為大語言模型生成的硬件木馬中觸發(fā)節(jié)點(diǎn)的個(gè)數(shù);選定木馬觸發(fā)節(jié)點(diǎn):
94、tn={v1,v2,...,vn}?(38)
95、其中
96、ns1≥ns2≥...≥nsn?(39)
97、根據(jù)大語言模型生成的硬件木馬的負(fù)載類型,從攻擊節(jié)點(diǎn)替換策略集合s選擇不同的節(jié)點(diǎn)替換方法,其中:
98、s={scf,sdp,slf,sdos}?(40)
99、scf為功能改變型木馬的節(jié)點(diǎn)替換方法,sdp為性能降低型木馬的節(jié)點(diǎn)替換方法,slf為信息泄露型木馬的節(jié)點(diǎn)替換方法,sdos為拒絕服務(wù)型木馬的節(jié)點(diǎn)替換方法。
100、本發(fā)明提出了一種基于大語言模型的高隱蔽規(guī)?;酒W(wǎng)表級(jí)硬件木馬測(cè)試集生成方法,該方法首先利用精心設(shè)計(jì)的提示詞讓大語言模型提供設(shè)計(jì)硬件木馬服務(wù);然后讓大語言模型根據(jù)提供的知識(shí)庫(kù)與限制約束,不斷迭代反思后,生成最終設(shè)計(jì)代碼;設(shè)計(jì)代碼通過評(píng)估器評(píng)估后,即可在母本網(wǎng)表上掛載木馬;通過分析節(jié)點(diǎn)隱蔽性,確定觸發(fā)節(jié)點(diǎn),最終生成掛載木馬后的網(wǎng)表文件。