国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

硬件安全測(cè)試基準(zhǔn)集及其管理體系的研究與評(píng)估

2024-11-21 00:00關(guān)磊賴嚴(yán)杰馬文博
專用汽車 2024年11期

摘要:硬件安全作為網(wǎng)絡(luò)安全的關(guān)鍵部分,其安全性對(duì)整個(gè)系統(tǒng)至關(guān)重要。然而,由于硬件設(shè)備種類繁多、生命周期長(zhǎng),一旦出現(xiàn)問題修復(fù)成本極高,且目前硬件安全領(lǐng)域缺乏標(biāo)準(zhǔn)化測(cè)試方法,導(dǎo)致測(cè)試結(jié)果難以比較和驗(yàn)證。設(shè)計(jì)了一種基于Web技術(shù)的硬件安全測(cè)試基準(zhǔn)集管理系統(tǒng),利用Flask框架和關(guān)系型數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)完整性和安全性,并通過Yosys工具對(duì)測(cè)試基準(zhǔn)集進(jìn)行綜合評(píng)估,以識(shí)別安全風(fēng)險(xiǎn)并優(yōu)化硬件設(shè)計(jì),為硬件安全領(lǐng)域的標(biāo)準(zhǔn)化和進(jìn)步提供支持。

關(guān)鍵詞:硬件安全;基準(zhǔn)集;Web應(yīng)用;數(shù)據(jù)庫;測(cè)試向量

中圖分類號(hào):U467.5 收稿日期:2024-07-25

DOI:10.19999/j.cnki.1004-0226.2024.11.019

1 前言

隨著互聯(lián)網(wǎng)的普及和科技的快速發(fā)展,網(wǎng)絡(luò)安全問題日益嚴(yán)峻,尤其是硬件安全問題,它直接關(guān)系到整個(gè)系統(tǒng)的安全性。硬件安全不僅涉及確保計(jì)算設(shè)備的物理部件不存在漏洞,還涉及防護(hù)未經(jīng)授權(quán)的訪問和物理篡改。鑒于硬件設(shè)備的多樣性和長(zhǎng)生命周期,一旦出現(xiàn)安全問題,修復(fù)成本極高。目前,硬件安全領(lǐng)域缺乏標(biāo)準(zhǔn)化的測(cè)試方法,導(dǎo)致測(cè)試結(jié)果難以比較和驗(yàn)證。本文通過設(shè)計(jì)一種測(cè)試集管理系統(tǒng),實(shí)現(xiàn)硬件安全測(cè)試基準(zhǔn)集的數(shù)據(jù)庫管理。在此基礎(chǔ)上,通過對(duì)Trust-Hub和Cryptographic Hardware Project中的測(cè)試基準(zhǔn)集進(jìn)行綜合結(jié)果分析,提供了硬件安全性能評(píng)估和優(yōu)化的有效方法,還為硬件安全研究提供了數(shù)據(jù)支持和分析視角。

本文首先深入分析探討硬件安全測(cè)試基準(zhǔn)集的設(shè)計(jì)內(nèi)容;其次詳細(xì)介紹測(cè)試集管理系統(tǒng)的體系架構(gòu)設(shè)計(jì),從數(shù)據(jù)庫管理需求分析出發(fā),設(shè)計(jì)測(cè)試基準(zhǔn)集數(shù)據(jù)庫,并討論后端框架與模塊化設(shè)計(jì);再次則通過利用數(shù)據(jù)庫中的測(cè)試基準(zhǔn)集,使用開源工具Yosys進(jìn)行綜合,進(jìn)行了實(shí)驗(yàn)評(píng)估;最后對(duì)本文工作進(jìn)行了總結(jié)回顧,對(duì)未來工作內(nèi)容進(jìn)行了展望。通過這些章節(jié)的深入研究,旨在為硬件安全領(lǐng)域提供標(biāo)準(zhǔn)化的測(cè)試工具和方法,推動(dòng)該領(lǐng)域的技術(shù)進(jìn)步和創(chuàng)新。

2 硬件安全測(cè)試基準(zhǔn)集研究

2.1 木馬測(cè)試基準(zhǔn)集

硬件木馬(Hardware Trojan,HT)檢測(cè)技術(shù)是確保集成電路(Integrated Circuits,ICs)安全性的重要手段。隨著半導(dǎo)體技術(shù)的發(fā)展和全球化的制造流程,硬件木馬的威脅日益嚴(yán)重。硬件木馬是惡意植入電路中的隱蔽組件,可能在特定條件下激活,導(dǎo)致數(shù)據(jù)泄露、系統(tǒng)失效或永久性損壞。下面從測(cè)信道分析、門及特性評(píng)估、形式化驗(yàn)證三個(gè)方面對(duì)硬件木馬檢測(cè)技術(shù)進(jìn)行詳細(xì)介紹。

側(cè)信道分析(Side-Channel Analysis,SCA)是一種通過分析電路的物理側(cè)效應(yīng)來檢測(cè)硬件木馬的方法。這種方法考慮了木馬電路對(duì)功耗、時(shí)序、熱量、面積、輻射等的影響。例如,在文獻(xiàn)[1]中,提出了一種基于路徑延遲測(cè)量的高效硬件木馬檢測(cè)方法,該方法能夠在最壞工藝變化下實(shí)現(xiàn)99%的木馬檢測(cè)準(zhǔn)確率,精度達(dá)到0.001 ns。該方法不需要激活木馬,也不需要增加電路開銷,能夠有效分析所有易受木馬攻擊的路徑。

門級(jí)特性評(píng)估(Gate-Level Netlist Analysis)是通過分析門級(jí)網(wǎng)表的特性來檢測(cè)硬件木馬的方法。這種方法側(cè)重于分析木馬對(duì)電路結(jié)構(gòu)特性的影響。例如在文獻(xiàn)[2]中,提出了一種數(shù)據(jù)增強(qiáng)方法,通過用邏輯等價(jià)的門替換硬件木馬電路中的門來增強(qiáng)機(jī)器學(xué)習(xí)基礎(chǔ)的硬件木馬檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該方法成功地提高了所有分類器的真正例率。

形式化驗(yàn)證(Formal Verification)是一種通過數(shù)學(xué)方法來證明硬件設(shè)計(jì)滿足預(yù)定安全屬性的技術(shù)。這種方法可以在設(shè)計(jì)階段就檢測(cè)出潛在的硬件木馬,而不需要等到硅后階段。文獻(xiàn)[3]提出了一種基于屬性的形式化安全驗(yàn)證方法,用于硬件木馬檢測(cè)。該方法在Coq定理證明環(huán)境中形式化了細(xì)粒度的門級(jí)信息流模型,以證明硬件設(shè)計(jì)的安全性屬性。與現(xiàn)有的寄存器傳輸級(jí)(RTL)信息流安全模型相比,該模型只需要將少量邏輯原語轉(zhuǎn)換為其形式化表示,無需支持豐富的RTL HDL語義或處理復(fù)雜的條件分支或循環(huán)結(jié)構(gòu)。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效地檢測(cè)并定位木馬。

2.2 密碼核測(cè)試基準(zhǔn)集

DES(Data Encryption Standard)是一種對(duì)稱密鑰加密算法,由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)于1977年發(fā)布。它基于56位密鑰長(zhǎng)度,并通過16輪的Feistel網(wǎng)絡(luò)來加密和解密數(shù)據(jù)。DES的密鑰生成過程包括密鑰生成和密鑰調(diào)度,其中密鑰生成過程將64位的密鑰轉(zhuǎn)換為16個(gè)48位的子密鑰,每個(gè)子密鑰用于Feistel網(wǎng)絡(luò)的一輪。DES的加密過程包括初始置換、16輪的Feistel網(wǎng)絡(luò)、最終置換。在每一輪中,數(shù)據(jù)塊被分為左右兩部分,左半部分與子密鑰進(jìn)行異或操作,然后通過S盒和置換操作進(jìn)行變換,最后與右半部分進(jìn)行異或。解密過程與加密過程類似,但子密鑰的使用順序是反向的。DES在加密和解密過程中使用初始置換(IP)和最終置換(FP),這些置換表用于重新排列數(shù)據(jù)塊,增加算法的復(fù)雜性。同時(shí),DES使用8個(gè)S盒,每個(gè)S盒是一個(gè)4×16的查找表,用于非線性變換,增強(qiáng)密碼系統(tǒng)的安全性。由于其密鑰長(zhǎng)度較短,DES容易受到暴力破解攻擊。DES存在一些已知的弱點(diǎn),如S盒的線性和非線性特性,以及差分攻擊和線性攻擊。因此,由于安全性的考慮,DES已經(jīng)被更安全的算法如AES(Advanced Encryption Standard)所替代。

AES密碼核的功能要求是支持?jǐn)?shù)據(jù)的加密和解密,同時(shí)需要滿足特定的性能指標(biāo),包括處理速度、功耗和資源占用。AES支持128位、192位和256位的密鑰長(zhǎng)度,這為不同安全級(jí)別的需求提供了靈活性。加密過程包括密鑰擴(kuò)展、輪密鑰加、字節(jié)代換、行移位和列混淆等步驟,而解密過程則是這些步驟的逆向執(zhí)行。AES算法的密鑰擴(kuò)展是加密過程的起點(diǎn),它將原始密鑰轉(zhuǎn)換成一系列輪密鑰,這些輪密鑰在后續(xù)的加密輪中使用。引入一個(gè)初始化向量(IV)與原始數(shù)據(jù)的第一個(gè)塊結(jié)合,以防止相同的明文數(shù)據(jù)塊產(chǎn)生相同的密文塊。加密過程開始,它由多個(gè)輪組成,輪數(shù)取決于密鑰的長(zhǎng)度。在每一輪中,首先執(zhí)行的是加輪密鑰操作,即將當(dāng)前數(shù)據(jù)塊與當(dāng)前輪密鑰進(jìn)行異或操作。緊接著,進(jìn)行字節(jié)代換,對(duì)每個(gè)字節(jié)應(yīng)用一個(gè)非線性變換,通常是S盒。之后,行移位操作對(duì)數(shù)據(jù)塊的行進(jìn)行移位,不同的行移動(dòng)的字節(jié)數(shù)不同。最后,列混淆操作對(duì)數(shù)據(jù)塊的每個(gè)列進(jìn)行線性變換,增加了混淆性。在經(jīng)過所有預(yù)定輪次的處理之后,最后一輪省略了列混淆步驟,只執(zhí)行加輪密鑰、字節(jié)代換和行移位。這樣經(jīng)過所有輪的處理,得到的最終數(shù)據(jù)塊即為加密后的密文。解密過程與加密過程相似,但輪密鑰的應(yīng)用順序相反,并且使用逆向的字節(jié)代換和逆向的列混淆。在解密的每一輪中,首先執(zhí)行逆向加輪密鑰操作,然后是逆向字節(jié)代換,接著是逆向行移位,最后是逆向列混淆。解密的最后一輪只包括逆向加輪密鑰、逆向字節(jié)代換和逆向行移位。

2.3 硬件安全測(cè)試基準(zhǔn)電路

硬件測(cè)試基準(zhǔn)電路是評(píng)估硬件設(shè)計(jì)和測(cè)試方法的重要工具,它們分為組合邏輯和時(shí)序邏輯兩大類。組合邏輯基準(zhǔn)電路,如加法器和比較器,其特點(diǎn)是輸出僅依賴于當(dāng)前的輸入值,而時(shí)序邏輯基準(zhǔn)電路,例如觸發(fā)器和計(jì)數(shù)器,則包含存儲(chǔ)元素,其輸出不僅取決于當(dāng)前輸入,還與歷史狀態(tài)有關(guān)。在設(shè)計(jì)和實(shí)現(xiàn)方面,組合邏輯的設(shè)計(jì)重點(diǎn)在于優(yōu)化邏輯表達(dá)式和減少邏輯層次,以提升速度和減少占用面積。而時(shí)序邏輯設(shè)計(jì)則需重點(diǎn)考慮時(shí)鐘管理和同步問題,確保數(shù)據(jù)在時(shí)鐘邊沿能被正確捕獲。測(cè)試方法上,組合邏輯測(cè)試側(cè)重于確保所有可能的輸入組合都被測(cè)試到,以覆蓋所有邏輯路徑;相對(duì)地,時(shí)序邏輯測(cè)試則側(cè)重于驗(yàn)證時(shí)鐘管理和狀態(tài)轉(zhuǎn)換的正確性。

故障模型方面,組合邏輯的故障類型包括短路、開路和邏輯錯(cuò)誤等,通過使用基于故障的測(cè)試向量可以檢測(cè)這些故障。時(shí)序邏輯的故障類型則涵蓋時(shí)鐘偏差和建立時(shí)間/保持時(shí)間違規(guī)等問題,需要通過時(shí)序測(cè)試向量和狀態(tài)遷移分析來檢測(cè)。在性能指標(biāo)上,組合邏輯的性能主要通過延遲和速度來衡量,而時(shí)序邏輯的性能則側(cè)重于時(shí)鐘頻率以及建立時(shí)間和保持時(shí)間。在仿真和驗(yàn)證環(huán)節(jié),組合邏輯仿真主要檢查邏輯功能的正確性,而時(shí)序邏輯仿真則關(guān)注時(shí)序行為和時(shí)鐘管理[4]。

硬件實(shí)現(xiàn)時(shí),組合邏輯通常使用標(biāo)準(zhǔn)單元工藝實(shí)現(xiàn),重點(diǎn)在于優(yōu)化布局和布線以減少延遲;時(shí)序邏輯實(shí)現(xiàn)則需要考慮時(shí)鐘分配和時(shí)鐘樹設(shè)計(jì),確保時(shí)序要求得到滿足。在應(yīng)用領(lǐng)域,組合邏輯廣泛應(yīng)用于處理器的算術(shù)邏輯單元和數(shù)據(jù)路徑,而時(shí)序邏輯則用于存儲(chǔ)器接口、微處理器的控制單元和數(shù)字信號(hào)處理等[5]。

2.4 小結(jié)

本章深入分析了硬件安全測(cè)試基準(zhǔn)集的關(guān)鍵技術(shù),涵蓋了從硬件木馬的檢測(cè)技術(shù),如側(cè)信道分析、門級(jí)特性評(píng)估和形式化驗(yàn)證,到密碼核測(cè)試基準(zhǔn)集的DES和AES算法的安全40c5832104da1f4fc697bebf2844218d性分析。這些技術(shù)不僅提高了集成電路的安全性,還確保了設(shè)計(jì)階段的安全性驗(yàn)證。此外,硬件測(cè)試基準(zhǔn)電路的設(shè)計(jì)和測(cè)試方法,包括組合邏輯和時(shí)序邏輯的優(yōu)化、故障模型分析以及性能指標(biāo)考量,都是確保硬件設(shè)計(jì)可靠性和安全性的關(guān)鍵環(huán)節(jié)。

3 測(cè)試基準(zhǔn)集管理系統(tǒng)體系架構(gòu)

3.1 數(shù)據(jù)庫管理需求分析

制定Web數(shù)據(jù)庫管理框架是本課題的一個(gè)關(guān)鍵研究目標(biāo),旨在通過Web技術(shù)提高硬件安全測(cè)試基準(zhǔn)集的可訪問性、交互性和管理效率。以下是該目標(biāo)的詳細(xì)內(nèi)容:a.用戶登錄系統(tǒng);b.在用戶登錄或進(jìn)行敏感操作時(shí),提供安全提示;c.數(shù)據(jù)庫連接;d.數(shù)據(jù)展示;e.用戶交互進(jìn)行操作;f.文件瀏覽、上傳與下載。

3.2 數(shù)據(jù)表結(jié)構(gòu)及字段說明

userinfo表:用于存儲(chǔ)用戶數(shù)據(jù),即用戶名和用戶密碼,在用戶登錄該管理系統(tǒng)時(shí)進(jìn)行調(diào)用驗(yàn)證。

database_table表:這個(gè)表可以被視為一種“數(shù)據(jù)表關(guān)聯(lián)表”。它的作用是將數(shù)據(jù)庫名和表名進(jìn)行映射,從而建立它們之間的關(guān)系。該表用于多數(shù)據(jù)庫環(huán)境中,用來追蹤和關(guān)聯(lián)各個(gè)數(shù)據(jù)庫中的表。這些記錄表明了不同數(shù)據(jù)庫與其內(nèi)部表的對(duì)應(yīng)關(guān)系。例如,記錄('epfldata','arithmetic benchmarks')表示'epfldata'數(shù)據(jù)庫中有一個(gè)名為'arithmetic benchmarks'的表。這樣的映射對(duì)于數(shù)據(jù)庫管理系統(tǒng)來說非常有用,因?yàn)樗峁┝艘环N集中的方式來查看和管理數(shù)據(jù)庫和表之間的關(guān)系,尤其是在大型系統(tǒng)中,可能有多個(gè)數(shù)據(jù)庫和大量表存在時(shí)。此外,這種映射表也有助于在進(jìn)行數(shù)據(jù)庫遷移、同步或管理任務(wù)時(shí),能夠快速識(shí)別和訪問特定的數(shù)據(jù)庫和表。

由于測(cè)試基準(zhǔn)集來自6個(gè)不同的源網(wǎng)址,因此具體數(shù)據(jù)表會(huì)根據(jù)源數(shù)據(jù)的不同而構(gòu)造不同的數(shù)據(jù)表結(jié)構(gòu),以下為以來自Trust Hub的106個(gè)測(cè)試基準(zhǔn)集構(gòu)造的trusthubdata表,字段如下:

a.ID:唯一標(biāo)識(shí)符,整型,主鍵。

b.Name:基準(zhǔn)測(cè)試的名稱,如'AES-T100',字符串類型。

c.Insertion phase:插入階段,指的是設(shè)計(jì)或制造階段,字符串類型。

d.Abstraction level:抽象級(jí)別,如'Register Transfer level'或'Gate-level',字符串類型。

e.Activation mechanism:激活機(jī)制,如'Always on'或'Triggered Internally',字符串類型。

f.Effects:效果,如'Leak Information'或'Denial of Service',字符串類型。

g.Location:位置,指的是受影響的硬件組件,字符串類型。

h.Physical characteristics:物理特性,描述了基準(zhǔn)測(cè)試的物理特性,字符串類型。

arithmetic benchmarks表:

a.ID:唯一標(biāo)識(shí)符,整型,主鍵。

b.Name:基準(zhǔn)測(cè)試的名稱,如'Adder',字符串類型。

c.Inputs:輸入端的數(shù)量,字符串類型。

d.Outputs:輸出端的數(shù)量,字符串類型。

e.LUT-6 count:輸入查找表的數(shù)量,字符串類型。

f.Levels:邏輯電路的級(jí)數(shù),字符串類型。該數(shù)據(jù)表結(jié)構(gòu)及部分?jǐn)?shù)據(jù)如表1所示。

3.3 模塊化接口設(shè)計(jì)

下面將后端Flask框架劃分為四大關(guān)鍵模塊,即用戶認(rèn)證模塊,數(shù)據(jù)庫連接模塊,數(shù)據(jù)庫操作模塊和文件系統(tǒng)管理模塊進(jìn)行分析。

用戶認(rèn)證模塊,該模塊處理用戶的登錄和會(huì)話管理。

該模塊接口設(shè)計(jì)分析如下:

a.登錄(/login):通過POST方法接收用戶名和密碼,驗(yàn)證用戶并設(shè)置會(huì)話。

b.獲取會(huì)話(/getSession):通過GET方法獲取當(dāng)前會(huì)話的信息。

數(shù)據(jù)庫連接模塊,該模塊負(fù)責(zé)從conn_info.json文件中讀取數(shù)據(jù)庫連接參數(shù),并根據(jù)需要返回適當(dāng)?shù)臄?shù)據(jù)庫連接配置。

該模塊接口設(shè)計(jì)分析如下:

a.數(shù)據(jù)庫連接參數(shù)(get_db_connection_params(db_name)):此函數(shù)根據(jù)提供的數(shù)據(jù)庫名稱返回?cái)?shù)據(jù)庫連接參數(shù)。它處理了字典配置,并將游標(biāo)類設(shè)置為DictCursor。

b.獲取數(shù)據(jù)庫表列表(/get-tables):通過POST方法返回指定數(shù)據(jù)庫中的所有表的列表。

c.獲取表索引(/get-indexes):通過POST方法返回指定表的所有索引。

數(shù)據(jù)庫操作模塊,如圖1所示,該模塊負(fù)責(zé)與數(shù)據(jù)庫的所有交互,包括數(shù)據(jù)的增刪查改。

該模塊接口設(shè)計(jì)分析如下:

a.添加數(shù)據(jù)(/add/bm):接收J(rèn)SON數(shù)據(jù)并通過POST方法插入到數(shù)據(jù)庫表中。允許用戶通過POST請(qǐng)求添加新的基準(zhǔn)集。

b.刪除數(shù)據(jù)(/delete/bm):根據(jù)提供的名稱,通過POST方法從數(shù)據(jù)庫表中刪除記錄。允許用戶通過POST請(qǐng)求刪除特定的基準(zhǔn)集。

c.搜索數(shù)據(jù)(/search/bm):根據(jù)提供的名稱,通過POST方法搜索數(shù)據(jù)庫表中的記錄并返回結(jié)果。允許用戶通過POST請(qǐng)求搜索基準(zhǔn)集。

d.顯示數(shù)據(jù)(/show-data):通過POST方法查詢并返回?cái)?shù)據(jù)庫表中的所有記錄。用于展示指定表中的所有數(shù)據(jù)。

文件系統(tǒng)管理模塊,如圖2所示,此模塊包含處理文件目錄和文件操作的函數(shù)。

對(duì)于該模塊進(jìn)行接口設(shè)計(jì)分析如下:

a.構(gòu)建文件樹(build_file_tree):構(gòu)建指定目錄的文件樹結(jié)構(gòu)。

b.文件頁面(/files):渲染文件管理頁面。

c.獲取目錄(/get_directory):通過GET方法返回指定目錄的文件樹結(jié)構(gòu)。

d.下載文件(/download/<filepath>):通過GET方法允許用戶下載文件。

e.查看文件(/view/<filepath>):通過GET方法允許用戶查看文件內(nèi)容。

f.文件上傳(/upload):通過POST方法處理文件上傳,并提供解壓功能。

3.4 小結(jié)

本章集中討論了如何通過Web技術(shù)優(yōu)化硬件安全測(cè)試基準(zhǔn)集的數(shù)據(jù)庫管理。首先,明確了系統(tǒng)的核心需求,包括用戶登錄、安全提示、數(shù)據(jù)庫連接、數(shù)據(jù)展示以及文件操作等。詳細(xì)描述了數(shù)據(jù)表的結(jié)構(gòu),如`userinfo`和`trusthubdata`,以及它們?nèi)绾沃С窒到y(tǒng)的數(shù)據(jù)存儲(chǔ)需求。在后端開發(fā)方面,F(xiàn)lask框架因其輕量級(jí)和靈活性被選用,根據(jù)功能將后端劃分為用戶認(rèn)證、數(shù)據(jù)庫連接、操作和文件系統(tǒng)管理等模塊,每個(gè)模塊都有清晰的接口設(shè)計(jì)。

4 硬件安全測(cè)試集實(shí)驗(yàn)評(píng)估

本章旨在探討使用開源工具Yosys對(duì)現(xiàn)有的硬件測(cè)試基準(zhǔn)集進(jìn)行綜合,對(duì)得到的門級(jí)網(wǎng)表進(jìn)行分析評(píng)估。Yosys作為一個(gè)開源的硬件描述語言(HDL)綜合工具,它在集成電路設(shè)計(jì)和驗(yàn)證過程中扮演著至關(guān)重要的角色。通過Yosys的綜合過程,設(shè)計(jì)者能夠?qū)⒏呒?jí)的HDL代碼轉(zhuǎn)化為門級(jí)網(wǎng)表,通過使用Yosys,對(duì)數(shù)據(jù)庫中的測(cè)試向量進(jìn)行代碼綜合,選擇了部分測(cè)試樣例進(jìn)行實(shí)驗(yàn)評(píng)估,對(duì)生成的門級(jí)網(wǎng)表進(jìn)行分析。

實(shí)驗(yàn)環(huán)境為Ubuntu 22.04,Tabby CAD Suite 2024-05-20版本的工具集成了Yosys的所需環(huán)境,從GitHub下載該版本進(jìn)行安裝。配置完成后在安裝路徑下輸入Yosys命令即可開始使用Yosys進(jìn)行綜合。

4.1 測(cè)試工具Yosys功能概述

Yosys是一個(gè)開源用于電路的邏輯綜合的框架,支持多種硬件描述語言包括Verilog和VHDL,能夠?qū)⑦@些高級(jí)語言代碼轉(zhuǎn)換成較低抽象層次的電路表示如門級(jí)網(wǎng)表[6]。Yosys的主要功能包括以下幾點(diǎn):

a.語法解析:Yosys能夠解析Verilog和VHDL代碼,能夠執(zhí)行從行為級(jí)到寄存器傳輸級(jí)、邏輯門級(jí)和物理門級(jí)的綜合,允許用戶讀取和處理大部分現(xiàn)代Verilog代碼,構(gòu)建電路的內(nèi)部表示。

b.邏輯優(yōu)化:Yosys使用ABC(A System for Sequential Synthesis and Verification)工具提供了一系列的邏輯優(yōu)化算法,用于簡(jiǎn)化電路結(jié)構(gòu),消除冗余邏輯,從而提高電路的性能。

c.邏輯映射:Yosys可以將電路映射到特定的庫單元,如邏輯門和觸發(fā)器,生成門級(jí)網(wǎng)表。Yosys可以在網(wǎng)表級(jí)別(RTL、邏輯、門)執(zhí)行各種操作,并支持將Verilog轉(zhuǎn)換為其他格式(如BLIF、BTOR等)[7-8]。

4.2 綜合流程詳解

綜合分為5個(gè)關(guān)鍵的步驟:

a.讀入Verilog代碼,這里需要將所有Verilog文件進(jìn)行讀取,否則會(huì)出現(xiàn)找不到module的情況。

b.檢查層次結(jié)構(gòu)并設(shè)置頂層。

c.執(zhí)行synth綜合命令。在Yosys中,synth命令用于執(zhí)行合成過程,使用不同的后綴則指定了不同的目標(biāo)設(shè)備或平臺(tái)。在本研究中統(tǒng)一使用synth生成適用于多種FPGA或CPLD平臺(tái)的網(wǎng)表。

d.使用opt_clean命令可以對(duì)網(wǎng)表進(jìn)行優(yōu)化,主要作用是移除未使用的單元和連線。

e.執(zhí)行write_verilog指令將設(shè)計(jì)寫入Yosys內(nèi)部文件格式。

如果需要,還可以繼續(xù)執(zhí)行show命令顯示xdot格式的網(wǎng)絡(luò)圖,由于測(cè)試基準(zhǔn)集的復(fù)雜性高,綜合之后的圖像極大且生成效率較低,同時(shí)本文重點(diǎn)在于對(duì)測(cè)試集進(jìn)行綜合并做簡(jiǎn)單優(yōu)化后的輸出結(jié)果進(jìn)行分析,重點(diǎn)關(guān)注門級(jí)電路的結(jié)構(gòu)與特點(diǎn),所以不進(jìn)行之后的步驟。

4.3 測(cè)試樣例實(shí)驗(yàn)評(píng)估

4.3.1 AES-T100測(cè)試向量

對(duì)AES-T100木馬的綜合測(cè)試。AES-T100木馬利用了擴(kuò)頻通信(Spread Spectrum Communications,SSC)的概念來創(chuàng)建一個(gè)隱蔽信道,這通常用于無線通信中以提高信號(hào)的抗干擾能力。通過這種方法,單個(gè)比特的泄露被分布到多個(gè)時(shí)鐘周期,從而降低了被檢測(cè)的可能性。

為了實(shí)現(xiàn)這一過程,木馬采用了偽隨機(jī)數(shù)生成器(PRNG),它初始化為一個(gè)預(yù)定義的值來創(chuàng)建一個(gè)CDMA(Code-Division Multiple Access,碼分多址)碼序列。這個(gè)碼序列隨后用于XOR調(diào)制秘密信息比特,將秘密信息與碼序列相結(jié)合,生成一個(gè)調(diào)制后的序列。

接下來,調(diào)制后的序列被轉(zhuǎn)發(fā)到一個(gè)泄露電路(Leakage Circuit,LC)。LC由8個(gè)相同的觸發(fā)器(flip-flop)元素組成,它們連接到XOR門的單一輸出,模仿一個(gè)大電容。這種配置允許在電源側(cè)信道中建立一個(gè)隱蔽的CDMA信道,通過這個(gè)信道,木馬能夠?qū)⒚荑€信息泄露出去。整個(gè)機(jī)制的設(shè)計(jì)確保了木馬的隱蔽性和持續(xù)性,因?yàn)镻RNG的預(yù)定義初始化和CDMA碼序列的XOR調(diào)制使得泄露的信息難以被追蹤和分析。同時(shí),LC的配置進(jìn)一步增強(qiáng)了信道的隱蔽性,使其能夠在不被注意的情況下持續(xù)泄露密鑰信息。

資源使用和總線位的統(tǒng)計(jì)顯示aes_128模塊擁有35個(gè)總線和4 353位,在邏輯單元方面,詳細(xì)列出了各種邏輯門的數(shù)量,包括AND、OR、NOT、DFF(觸發(fā)器)、XOR等。aes_128模塊中,如表2所示,有256個(gè)D觸發(fā)器和128個(gè)XOR門,而one_round模塊則使用了包括D觸發(fā)器、XNOR和XOR在內(nèi)的多種類型的邏輯門,這顯示了設(shè)計(jì)的復(fù)雜性。

層次結(jié)構(gòu)上,aes_128模塊包含了expand_key_128、final_round和one_round等子模塊,這顯示了一個(gè)層次化的設(shè)計(jì)方案。同時(shí),S4模塊在多個(gè)地方被重復(fù)使用,這表明設(shè)計(jì)中存在模塊化和代碼復(fù)用。對(duì)于XOR/XNOR門比例的統(tǒng)計(jì)與分析,aes_128模塊中有128個(gè)XOR門,在one_round中有256個(gè)XOR門和256個(gè)XNOR門。one_round中總門數(shù)量為644個(gè)單元,其中XOR門256個(gè),占39.75%,XNOR門占39.75%。XOR/XNOR門比值為1,在one_round模塊中,這表明該模塊在執(zhí)行AES算法的混合操作時(shí)高度依賴這些門。性能方面,XOR/XNOR門的比例意味著設(shè)計(jì)在執(zhí)行位操作時(shí)效率較高,這對(duì)于加密算法來說是可以接受的。

4.3.2 DES密碼核

對(duì)DES密碼核的綜合測(cè)試。對(duì)于DES_ECB模塊,如表3所示,從資源使用的角度來看,DES模塊擁有578根總線和1 096位,而SP模塊則有532根總線和634位。在整個(gè)設(shè)計(jì)層次結(jié)構(gòu)中,總線數(shù)量達(dá)到了1 110根,位數(shù)量為1 730位。此外,公共總線和位的數(shù)量分別為33根和653位,這表明設(shè)計(jì)中有一部分信號(hào)是共享的。邏輯單元的使用情況顯示,DES模塊擁有745個(gè)邏輯單元,而SP模塊有554個(gè)。整體來看,設(shè)計(jì)中共有1 298個(gè)邏輯單元,其中MUX(多路選擇器)的使用數(shù)量最多,這表明設(shè)計(jì)中存在大量的數(shù)據(jù)選擇邏輯。

設(shè)計(jì)中的并發(fā)操作可能通過大量的MUX和DFFE實(shí)現(xiàn)。層次結(jié)構(gòu)方面,DES模塊包含一個(gè)SP模塊,形成了一個(gè)簡(jiǎn)單的層次結(jié)構(gòu),有助于簡(jiǎn)化設(shè)計(jì)和調(diào)試。特別地關(guān)注XOR/XNOR門的比例。在整個(gè)設(shè)計(jì)中,XOR門的數(shù)量為69個(gè),而XNOR門的數(shù)量為26個(gè),相對(duì)于總的1 298個(gè)邏輯單元來說,XOR門占比約為5.32%,XNOR門占比約為2.00%。XOR/XNOR門比值為2.65,雖然比例不高,但在電路性能和安全性方面扮演著重要角色。XOR操作在加密算法中是基礎(chǔ),可以提供必要的數(shù)據(jù)變換功能,而XNOR門的使用則可以增加電路的安全性。

對(duì)于DES_ECB_Akkar模塊,如表4所示,從資源使用的角度來看,DES模塊擁有598根總線和1 336位,而SP模塊則有526根總線和628位,這表明兩個(gè)模塊在資源分配上有所不同。設(shè)計(jì)層次結(jié)構(gòu)中,總線數(shù)量達(dá)到了1 124根,位數(shù)量為1 964位,公共總線和位的數(shù)量分別為34根和874位,這表明設(shè)計(jì)中有一部分信號(hào)是共享的,有助于減少資源的冗余。從邏輯單元角度分析,DES模塊擁有793個(gè)邏輯單元,而SP模塊有548個(gè),整體設(shè)計(jì)中共有1 340個(gè)邏輯單元。其中,MUX(多路選擇器)的使用數(shù)量最多,這表明設(shè)計(jì)中存在大量的數(shù)據(jù)選擇邏輯,這是為了實(shí)現(xiàn)并發(fā)操作。

層次結(jié)構(gòu)方面,DES模塊包含一個(gè)SP模塊,形成了一個(gè)簡(jiǎn)單的層次結(jié)構(gòu),這有助于簡(jiǎn)化設(shè)計(jì)和調(diào)試。對(duì)于XOR/XNOR門的使用比例情況,在整個(gè)設(shè)計(jì)中,XOR門的數(shù)量為78個(gè),而XNOR門的數(shù)量為16個(gè),相對(duì)于總的1 340個(gè)邏輯單元來說,XOR門占比約為5.82%,XNOR門占比約為1.19%。XOR/XNOR門比值為4.88,這一比例的增加可能意味著對(duì)數(shù)據(jù)變換功能的需求有所提升。此外,與DES_ECB_sta.txt相比,DES_ECB_Akkar_sta.txt中的邏輯單元數(shù)量略有增加,尤其是MUX的數(shù)量在SP模塊中從415增加到416,這可能反映了設(shè)計(jì)者對(duì)數(shù)據(jù)選擇邏輯的進(jìn)一步優(yōu)化。XOR門的數(shù)量在DES模塊中從64增加到72,在SP模塊中從5增加到6,整體從69增加到78,這進(jìn)一步證實(shí)了對(duì)數(shù)據(jù)變換功能需求的增加。

4.4 小結(jié)

本章詳細(xì)闡述了在Ubuntu 22.04環(huán)境下使用Yosys的綜合流程,包括讀取Verilog代碼、檢查層次結(jié)構(gòu)、執(zhí)行綜合命令、優(yōu)化網(wǎng)表以及輸出設(shè)計(jì)等關(guān)鍵步驟,為深入的分析提供了基礎(chǔ)。先對(duì)門級(jí)網(wǎng)表的結(jié)構(gòu)和特點(diǎn)進(jìn)行討論,包括輸入輸出端口、邏輯門、連線、時(shí)鐘控制等,以及層次化設(shè)計(jì)方法在管理復(fù)雜性中的重要性。門級(jí)網(wǎng)表不僅是電路設(shè)計(jì)的一個(gè)詳細(xì)藍(lán)圖,也是確保電路功能正確實(shí)現(xiàn)的關(guān)鍵。進(jìn)一步地對(duì)作為實(shí)驗(yàn)樣例的測(cè)試基準(zhǔn)集進(jìn)行了性能評(píng)估,涵蓋了資源使用情況、邏輯單元的類型和數(shù)量以及XOR/XNOR門的比例等。這些分析結(jié)果不僅幫助理解電路的性能表現(xiàn),還揭示了設(shè)計(jì)優(yōu)化的潛在機(jī)會(huì)。在安全性分析方面,Yosys的應(yīng)用價(jià)值得到了凸顯,它幫助識(shí)別可能的安全風(fēng)險(xiǎn),特別是在硬件木馬的檢測(cè)上。通過對(duì)綜合結(jié)果分析,設(shè)計(jì)者可以更好地理解電路的行為,并采取相應(yīng)措施以提高安全性。

5 結(jié)語

本文主要完成了以下兩個(gè)核心部分的工作,它們分別對(duì)應(yīng)于硬件安全研究測(cè)試基準(zhǔn)集的構(gòu)建和管理,以及使用Yosys工具進(jìn)行的綜合分析。

a.設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Web技術(shù)的數(shù)據(jù)庫管理體系架構(gòu),旨在提升硬件安全測(cè)試基準(zhǔn)集的存儲(chǔ)、下載和管理效率。系統(tǒng)核心需求涵蓋了用戶登錄、安全提示、數(shù)據(jù)庫連接、數(shù)據(jù)展示和文件操作等關(guān)鍵功能。在后端將系統(tǒng)劃分為用戶認(rèn)證、數(shù)據(jù)庫連接、操作和文件系統(tǒng)管理等模塊,每個(gè)模塊都具備清晰的接口。同時(shí),深入研究了關(guān)系型數(shù)據(jù)庫設(shè)計(jì),特別強(qiáng)調(diào)了數(shù)據(jù)完整性和安全性,確保了關(guān)鍵數(shù)據(jù)表如trusthubdata的結(jié)構(gòu)合理性。

b.詳細(xì)探討了使用開源工具Yosys對(duì)硬件測(cè)試基準(zhǔn)集進(jìn)行綜合分析的過程。Yosys作為一個(gè)在集成電路設(shè)計(jì)和驗(yàn)證中扮演關(guān)鍵角色的HDL綜合工具,能夠幫助設(shè)計(jì)者將高級(jí)HDL代碼轉(zhuǎn)化為門級(jí)網(wǎng)表,為后續(xù)的布局布線、時(shí)序分析和性能評(píng)估打下基礎(chǔ)。在硬件安全領(lǐng)域,Yosys的應(yīng)用價(jià)值得到了凸顯,它幫助識(shí)別可能的安全風(fēng)險(xiǎn),尤其是在硬件木馬的檢測(cè)上。通過對(duì)測(cè)試基準(zhǔn)集的綜合結(jié)果分析,能夠更好地理解電路的行為。

展望未來,本項(xiàng)目在硬件安全領(lǐng)域?qū)⒏聹y(cè)試基準(zhǔn)集以適應(yīng)發(fā)展,開發(fā)多維度評(píng)估工具,集成Yosys至Web應(yīng)用提升效率,引入AI實(shí)現(xiàn)智能化管理。同時(shí),將加強(qiáng)安全性和隱私保護(hù),擴(kuò)展測(cè)試范圍,開發(fā)高級(jí)Web數(shù)據(jù)庫管理,并強(qiáng)化安全措施。

參考文獻(xiàn):

[1]He C,Hou B,Wang L,et al.A novel hardware Trojan detection method based on side-channel analysis and PCA algorithm[C]//2014 10th International Conference on Reliability,Maintainability and Safety (ICRMS).IEEE,2014:1043-1046.

[2]Zhan P,Shen H,Li S,et al.BGNN-HT:Bidirectional Graph Neural Network for Hardware Trojan Cells Detection at Gate Level[C]//2023 IEEE International Symposium on Circuits and Systems(ISCAS).IEEE,2023:1-5.

[3]Ponugoti K K,Srinivasan S K,Mathure N.Formal Verification Approach to Detect Always-On Denial of Service Trojans in Pipelined Circuits[C]//2021 28th IEEE International Conference on Electronics,Circuits,and Systems(ICECS).IEEE,2021:1-6.

[4]Neto W L,Possani V N,Marranghello F S,et al.Exact multi-level benchmark circuit generation for logic synthesis evaluation[C]//2018 31st Symposium on Integrated Circuits and Systems Design (SBCCI).IEEE,2018:1-6.

[5]Amarú L,Soeken M,Haaswijk W,et al.Multi-level logic benchmarks: An exactness study[C]//2017 22nd Asia and South Pacific Design Automation Conference(ASP-DAC).IEEE,2017:157-162.

[6]張茜歌,朱嘉誠,馬俊,等.基于故障傳播模型的硬件安全性與可靠性驗(yàn)證方法[J].西北工業(yè)大學(xué)學(xué)報(bào),2024,42(1):29-31.

[7]Wolf C, Glaser J,Kepler J.Yosys-a free Verilog synthesis suite[C]//Proceedings of the 21st Austrian Workshop on Microelectronics(Austrochip),2013:97.

[8]Shah D,Hung E,Wolf C,et al.Yosys+nextpnr:an open source framework from verilog to bitstream for commercial fpgas[C]//2019 IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines(FCCM).IEEE,2019:1-4.

作者簡(jiǎn)介:

關(guān)磊,男,1984年生,助理工程師,研究方向?yàn)檎嚋y(cè)試。