杜浩然
紐卡斯爾大學 英國 紐卡斯爾 NE17RU
集成電路行業大致囊括了以下幾步流程:購買知識產權、內部設計、集成到集成電路設計、根據設計藍圖進行制造、進行多方面的測試,然后作為產品銷售。實時協作平臺有助于縮短復雜集成電路的開發周期,允許不同領域的專家從概念到建模,再到制造和售后供應進行精密交流與溝通。這種超越企業和國家的廣泛合作同時帶來了知識產權和商業機密的相關問題[1]。從設計到制造和測試會有多個第三方過程,這可能會泄露集成電路設計的一些基本信息。有些集成電路可能會以灰色渠道流通到市場上,較為簡單的電路也會被逆向工程破解其軟硬件加密手段。
相關算法安全的加密基元和協議依賴于硬件信任根來提供所需的安全性。關鍵的控制和通信操作也同樣期望所屬硬件平臺能夠抵御攻擊。事實上情況并非如此。現在的微控制器利用“引信位”來防止任何未經授權的用戶讀取和修改特定部分。然而,一些設計手段能夠以電子方式恢復或重置引信位,以獲得操作的權限。由于基于硬件的攻擊頻率和破壞性能力的上升,保護硬件信任根的要求已經顯現出來。
側信道攻擊是一種利用密碼設備泄露的物理信息進行的物理攻擊。其中,物理信息包括時序信息、功耗或電磁輻射等。這些信息是設備自發的、無意識的和被動的,所以側信道攻擊利用的是設備的外部信息,是非侵入性的。這種外部攻擊可以使用便宜且泛用的測量儀器執行,使其成為硬件物理安全的實際問題。
側信道攻擊包括對電路物理特征的各方面監測,可以在簡單的邏輯電路或復雜的集成電路設計中實現。通常大型系統的復雜分析需要在噪聲消除和時鐘對齊上花費大量精力。而通過觀察PUF在一個相對簡單的單時鐘周期組合邏輯電路中的有效性,可以更輕松應對測信道攻擊。
對抗功耗分析的手段之一是在不影響電路正常運行的情況下增加了一個干擾電路以提供可變的功耗,實現增幅噪聲。在實驗的基準測試電路設計中,通過輸入外部PUF二進制數組,在組合邏輯電路中引入干擾,使得無論在晶體管層面還是邏輯門層面,通過激活額外的單元產生隨機但可控的額外功耗,實現干擾功耗分析的目的。
實驗測試平臺是一個8∶1復用器。該復用器包含8個輸入端口、3個選擇端口和1個輸出端口。8個輸入端口為輸出端口提供要選擇的基本數據陣列,3個選擇端口作為3位地址信號分配,從輸入陣列中選擇預定的數據,輸出端口將選定的數據傳輸給接收器。
該8∶1復用器是由7個2∶1復用器連接在一起構成的。每個2∶1復用器由2個輸入端口、1個選擇端口和1個輸出端口組成。2∶1復用器可以表示為。因此,2∶1復用器單元由1個或門、2個與門和1個反相器組成,其中一些被更常用的NAND門和NOR門取代。電路圖如圖1。

圖1 2∶1復用器的原理示意圖
該基準測試電路是基于測試平臺增加一個可以被外部PUF可控并干預的電路。其中外部PUF輸入由哈希函數生成的外部隨機數組所取代以在模擬中實現相似功能。利用PUF輸入信號激活一些晶體管可以產生一定程度的干擾,而不改變電路的輸出。它的影響會以弱相關的方式出現在電路的運行中。因此,一些由內部運行信號和外部PUF輸入同時控制的邏輯門將有效地產生一些功耗層面的變化和不確定性,以干擾功耗分析,見圖2。

圖2 基準的示意圖設計
在本實驗的設計中,模擬軟件從測試平臺的電源負極讀取電流波形。該電路采用穩定的直流電壓輸入,其電流變化直接反映功耗變化。由于有8個數據輸入端口和3個數據選擇端口,所以有組可能的輸入組合,這將會讓分析工作不堪重負。作為替代,選擇第二級多路復用器 “I5 ”的輸出節點,只受4個數據輸入端口和2個選擇輸入端口的影響,見圖3,把組合的數量限制在。

圖3 來自基準的目標電路的設計原理圖
輸入方波信號S0、S1、X0、X1、X2、X3的運行周期為2ms,4ms,8ms,16ms,32ms,64ms,128ms。為了避免電路中任何潛在的延遲,整個模擬流程被設置為運行130ms。
實驗劃分為兩個部分,PUF針對SPA的防御和PUF針對DPA的防御。SPA部分對無干擾基準測試電路和有干擾介入基準電路分別進行測量以及SPA相關分析,并比對生成的兩個功耗曲線的特征;DPA部分選取一組3位數組進行DPA解析并驗證其作為選擇函數的可行性,隨后將該數組生成的差分功耗曲線與外部PUF介入基準電路產生的差分功耗曲線進行對比。
1.3.1 SPA實驗設計。SPA側重于捕獲設備在運行期間的功耗變化。物理電壓差反映了數字信號的傳輸。在數據的傳輸過程中,“0”比“ 1”產生更少的功耗。使用適當準確的測量來開發靜態模型,可以用于對比特流內容進行具有一定精度的合理預測。通過比較兩組電流曲線之間的逐點差異進行SPA分析。如果這兩個樣本完全相同,則他們之間的差異曲線與x軸重疊。
干擾電路由在電路中施加額外的輸入激活。三個獨立的干擾端口提供了8組可能的輸入。當干擾電路被干擾端口傳輸的數據激活時,所有的組合都在功耗曲線上反應為一個可觀察到的波動。NAND門的激活與電路中的邏輯輸出相關聯,則干擾信號是由電路自主控制的。這些圖將與原始設備生成的電流波形進行比較,以顯示功耗曲線之間的差異。這種差異意味著該PUF控制的干擾電路成功擾亂了簡單功耗分析。
1.3.2 DPA實驗設計。DPA首先將軌跡集劃分為子集,然后計算并比較每個集的平均值之間的差異。如果每個子集中的選定跡線與包含的測量值不相關,則跡線平均值的差異趨于零[2]。相反,如果測量與子集中的分區軌跡相關,則平均值功耗曲線會表現不同。隨著所選樣本的增加,噪聲信號對于研究的影響會被削弱,而任何微小的輸入輸出相關性都可以被放大。典型的DPA 攻擊包括以下4個步驟:
1.3.2.1 設備檢測。根據設備的可訪問性,使用與設備電源或地線串聯的電阻器和電流探針作為測試工具,并選擇更靠近受干擾或加密部分的節點以接收質量更好的信號。測量儀器一般為示波器或用于虛擬仿真的波形模擬器。
1.3.2.2 測量及收集數據。當目標在啟用干擾或加密的情況下運行正常操作時,會記錄功耗曲線。捕獲的功耗曲線與相關加密關聯以供進一步分析。調整采樣率和帶寬可以提高測量的效率。
1.3.2.3 信號處理。通過對齊時序來消除誤差、突出顯示目標信號和消除噪聲,以提高信號質量。該步驟可以基于捕獲數據的質量選擇。
1.3.2.4 預測和選擇函數生成。這是DPA最重要的階段。選擇函數通過DPA測試解釋目標電路包含的信息。它用于將功耗曲線分布到子集并計算目標電路加密的狀態。子集生成曲線之間的差異稱為差分曲線。當從最終DPA差分曲線中觀察到明顯的尖峰時,選擇的輸出被識別為與目標設備中的數據相關。另一方面,如果推測不正確,則差值將接近0,并且選擇函數的結果與狀態位無關。選擇函數可以是單個位的預測,如組合邏輯的輸出,或者是針對多個位的更復雜的函數。將每個獲得的選擇函數應用于每個功耗曲線相關的干擾和加密,為下一步提供基本的電路狀態預測[3]。
對于輸出端的結果將根據多路復用器“I5”上輸出節點的邏輯狀態,將目標的功耗曲線設置為兩個子集。根據計算,間隔的數量是均勻分開的,因此子集的跡線有相同的長度。通過計算每組跡線的平均功耗可以生成每個子集的功耗曲線,用一個功耗曲線減去另一個功耗曲線就可以得到一個差分曲線。差分曲線如果有明顯波動,則證明干擾電路的輸入與當前監視的節點具有相關性,可作為破解電路加密的選擇函數。
最后階段是應用并驗證以上選擇函數的有效性,以作為攻破相似電路加密系統的途徑[4]。受制于模擬軟件對PUF的有效模擬,模擬過程中PUF將被一個外部產生的哈希函數所取代。該哈希函數通過特定的輸入將返回一個固定長度的哈希值和d.H.代碼,模仿了PUF單元在生產時的“部分固定,其余隨機”的特征。將該數組輸入到干擾電路得到功耗曲線,經過前述的DPA流程,驗證其干擾功能的有效性,并對比該輸入產生的差分曲線與選擇函數差分曲線的異同,反向核驗之前步驟中推測的選擇函數是否能夠有效解碼PUF驅動的相似電路。
圖4(a)是在128毫秒內捕獲的,基于沒有任何干擾介入的初始平臺功耗曲線,而(b)是帶有一部分干擾信號數組輸入的功耗波形圖。藍色和綠色的波形表示多路復用器I5的輸出。顯然在兩種工況下流經同一節點的電流是相同的,由此可以證明外部干擾電路不影響基礎邏輯電路的正常運行。

圖4 節點電流和電源電流的工作曲線
通過對比原電路的紅色電流變化曲線和干擾介入電路的紫色電流變化曲線的差異,干擾電路成功地擾亂了原電路的功耗特征[5]。在原電路的功耗曲線中,輸出電流可以被分為5個階段。其中穩定狀態有0.2mA,工作狀態有0.3mA、0.4mA、0.5mA和0.6mA。當電路工作時,0.2mA代表沒有啟用多路復用器,而0.3mA到0.6mA代表工作的多路復用器組件數量(I0、I2、I5、I6)。相比之下,在啟用干擾電路的情況下,工作狀態的數量下降到兩個,即0.2mA和0.3mA,且在0.3mA工況下可以觀測到電流產生較為明顯且隨機的波動,加大了攻擊者通過SPA以確定電路內部運行狀況的難度。

當數組‘101’作為選擇函數的備選時,根據每個輸入組合在目標點位產生的邏輯狀態,將功耗曲線各個間隔的平均值分到‘0’組和‘1’組兩個子集[6]。繪制由兩個子集的功耗軌跡以及兩組相互減去的差分軌跡,如圖5/6所示。

圖5 干擾輸入為‘101’時的電源電流曲線

圖6 子集的功耗曲線和差分功耗曲線
由于干擾電路的設計是基于多路復用器的正向輸出,邏輯‘1’子集可以觀察到非常明顯的功耗波動,而邏輯‘0’子集只有微小的變化。電路的差分軌跡主要是追隨‘1’子集的趨勢進行的。由外部PUF通過哈希函數隨機生成并應用于基準平臺,電流曲線見圖7。經過上述相同的操作,將兩個軌跡繪制在一起,子集軌跡和差分曲線顯示如下圖8。

圖7 節點電流和電源電流的曲線

圖8 子集的功耗曲線和跟蹤以及差分功耗曲線
盡管與之前選擇函數生成的功耗曲線略有不同,差分曲線上的波動表明:外部PUF輸入控制的干擾電路產生的噪聲足以阻止潛在的簡單功耗分析攻擊[7]。如圖9,兩個差分曲線之間的不匹配表明,在外部PUF干擾參與的情況下,在之前步驟中針對原型電路分析出的選擇函數將無法破譯這個電路。也就意味著,PUF在電路中的應用成功地阻止了基于一個樣本的原型進行的差分功耗分析,從而無法用以攻破相似電路。

圖9 差分功耗曲線比較
在基于差分功耗分析和簡單功耗分析的信號破解中,PUF成功地保衛了設備的數據不被解析。由于其輸出的隨機性,PUF與簡單的干擾邏輯電路相關聯,破壞了數據傳輸與功耗變化之間的直接聯系;同時,由于其不可預測性和唯一性,攻擊方無法建立一個適當的選擇函數,以破解相似結構的電路[8]。
在簡單功耗分析中,PUF的輸入通過干擾電路生成了可控且明顯的功耗差,從而降低了單跡分析的效率。由于PUF輸出的隨機性,即使一些電路運行噪音可以被弱化,PUF操作的干擾邏輯電路仍然以外部不可預料的模式運行,使得多組功耗軌跡對比的簡單功耗分析無法有效實現。
對于差分功耗分析,通過比較選擇函數和PUF外部輸入產生的功耗波形,可以觀察到:即便是在較為簡單的組合邏輯電路中采用三位的外部輸入用以激活干擾信號,PUF的唯一性仍然會使破解單個電路對應不同的選擇函數。這表明,在實際應用中,面對更為復雜的電路設計以及更多數位更為復雜的PUF單元,無論攻擊者在一個特定的PUF樣本上付出了多少努力,都很難有機會解碼另一個由PUF保護的相似電路。
以上DPA和SPA測試運行結果表明,PUF在保障簡單集成電路安全方面的應用潛力。一個適當的PUF添加到特定的加密電路中,將成為該電路的獨特特征,用以避免逆向工程和信號分解。這將會提供足夠的知識產權保護,并鼓勵開發者愿意放心地分享他們的概念和想法。這還將有利于保護具有基于組合邏輯的復雜設計。例如,某些需要大量的數據處理和傳輸、而對效率并不十分關心的應用領域中,PUF僅僅需要在功耗上稍作權衡,便可以以簡單的設計提供了適當的硬件防御。
通過利用PUF的隨機性和唯一性來生成真正不可預測的電路標識符或加密密鑰,使得攻擊不能根據一些確定的或準確定的過程進行預測,從而增加了電路的安全性。它像一把隱形的鑰匙,總是在、卻永遠無法看到。