董永興 徐金甫 李軍偉
(解放軍信息工程大學 河南 鄭州 450001)
當今社會,傳統密碼安全手段受到新興攻擊技術的威脅越來越大。物理不可克隆函數(Physical Unclonable Function,PUF)因其不可克隆性和不可預測性等優良特性,在信息安全領域具有十分巨大的應用潛力[1-2]。目前大部分的物理不可克隆函數是基于現場可編程門陣列(FPGA)實現的。FPGA作為一種半定制電路,可根據用戶需求進行編程與配置,具有靈活性高、可重復配置等優點。但其應用于PUF時,缺點也很明顯。尤其是對于延時類的PUF而言,電路的布局布線嚴重影響輸出結果,這導致電路的輸出結果出現一定的偏差。
為了解決這一問題,許多研究者采用專用集成電路(Application Specific Integrated Circuit,ASIC)設計PUF電路。針對ASIC電路設計成本高、周期長等特點,文獻[3-5]使用Monte Carlo仿真方法,模擬工藝和環境的變化,驗證所設計PUF的電路性能。
隨著對PUF研究的不斷深入,國內外學者提出了多種針對PUF電路的攻擊技術[6-8]。文獻[6]采用機器學習的邏輯回歸(Logistic Regression, LR)和演化策略(Evolution Strategies, ES)對多種PUF電路成功攻擊并實現預測。文獻[7-8]從理論上描述了PUF激勵響應行為,配合相應的算法攻擊PUF。機器學習對PUF電路實現攻擊的主要原因是PUF電路的結構相對固定,產生的大量激勵響應對具有一定的線性特性,使得機器學習能夠預測延遲信息和生成信息之間的關系,從而實現對電路的攻擊。因此,增強電路的非線性特性成為研究重點關注的問題。
文獻[9]提出了一種利用門電路之間的延遲變量生成非線性毛刺波形的Glitch PUF架構。通過對電路生成的毛刺信息進行獲取、抖動校正、采樣等操作,實現毛刺信息與輸出信息的轉化。文獻[10]提出一種基于信號傳輸理論的Glitch PUF方案。該方案利用毛刺信號的非線性特性抵抗建模攻擊,采用多級延遲采樣電路實現輸出響應,并用Monte Carlo仿真驗證電路的性能。但為了保證性能,上述電路增加了輔助電路,增大了資源消耗。
在保證電路在具有良好非線性特性的同時令資源消耗較小是本文關注的重點。本文提出一種基于延時控制的Glitch PUF電路結構(Delay Controlled Glitch PUF, DC-Glitch PUF)。通過提取組合邏輯電路門的傳輸延時,控制路徑延時差,采用T觸發器采樣電路輸出波形。利用延時模塊控制不同路徑的波形到達T觸發器的時間,使其達到良好的性能。在TSMC 65 nm CMOS工藝下,使用Monte Carlo仿真驗證電路的性能。
Glitch PUF首先由Anderson等[11]提出,該PUF基于FPGA實現,電路利用傳輸路徑延時的不同產生毛刺,毛刺決定單元電路的輸出結果,輸入不同的激勵信號選擇不同單元電路“異或”輸出響應。此結構的問題在于單元電路是靜態輸出,不能完全保證信息的安全。因此,非線性毛刺的動態輸出是關鍵所在。Suzuki等[9]提出了一種新的Glitch PUF架構,通過隨機放置各種組合邏輯門,利用門延時和邏輯轉換延時的不同,產生不同寬度的毛刺,保證了毛刺產生與輸入數據的非線性。但為了有效采集信號,增加了抖動校正和資源消耗較大的采樣電路。針對Glitch PUF的性能和應用場景而言,電路毛刺的產生和電路的輕量級屬性是非常重要的。
毛刺與Glitch PUF的性能密切相關。由于Glitch PUF依靠產生的毛刺信號決定電路的輸出結果,因此,毛刺信號的峰值、寬度與非線性特性是Glitch PUF電路架構關注的重點。
組合邏輯電路的毛刺主要是由競爭冒險現象產生的。電路信號在傳輸過程中,通過門電路和電路連線時會有一定的延時,邏輯翻轉也需要一定的轉換時間。這使得電路信號在實際電路中傳輸時,到達邏輯門輸入端的時間不同,邏輯的變化也有先后,從而導致電路出現意想不到的尖峰信號,這就是毛刺信號,其產生往往具有非線性特性。
毛刺產生受諸多因素的影響,如溫度、電壓和噪聲等。在不考慮外界因素的影響下,電路本身的特性也會導致毛刺產生。

圖1 簡單電路競爭冒險現象
對于邏輯組合電路而言,電路信號輸入的順序和傳輸延時也會影響到電路的輸出。如圖2所示,信號C到達“與”門的時間不同會使得電路輸出結果不同。若C先于A、B到達“與”門,則電路出現狹窄的尖峰脈沖;反之,則電路輸出不會產生毛刺信號。因此,實際電路中延時對于毛刺的產生有非常重要的作用。

圖2 多輸入組合邏輯電路產生毛刺的情況
經過前文分析,毛刺的產生與電路延時息息相關。由于傳輸路徑的脈沖過濾限制和邏輯門存在慣性延遲,導致產生的毛刺不一定能全部傳遞到輸出端。只有脈沖寬度大于慣性延遲的毛刺,才可以經由邏輯門輸出。因此,為保證良好的電路性能,控制電路毛刺信號的產生是十分重要的。
以“異或”門為例,如圖3所示,w為輸入信號x1和x2的延時差寬度。當w大于慣性延遲d時,產生的毛刺可以輸出;反之,輸出端不會輸出邏輯1。當w=d時,毛刺波形有50%的概率輸出。

圖3 “異或”門的慣性延遲影響毛刺輸出
本文在毛刺產生模塊的路徑上增加延時調節模塊,用以改變毛刺的寬度,以期提高電路性能。如圖4所示,多路不同數量的緩沖器鏈連接到多路數據選擇器,選擇信號S通過數據選擇器選擇不同的延時路徑輸出波形。延時調節模塊不同路徑延時的大小不僅與緩沖器數量有關,而且與器件參數有關。溝道長度和寬度的不同、閾值電壓的差別、金屬連線等都會使延時大小不同。因此,即使是相同的選擇信號,延時也存在差異,使得電路隨機性增加。

圖4 延時調節模塊
電路的邏輯會影響電路毛刺的產生。本文借鑒競爭冒險電路,采用“與非”門和“非或”門相結合,使用“異或”門輸出波形。如圖5所示,Delay單元為延時調節模塊。本文采用四級延遲,選擇信號S[1∶0]用于控制路徑的延時。x1、x2、x3、x4為輸入信號,Y為輸出。通過控制延遲調節模塊的選擇信號,使得不同路徑的延時不同,以此調節信號到達邏輯門的先后順序,控制毛刺信號的寬度。

圖5 毛刺產生模塊
為使得電路產生的毛刺寬度對延遲調節模塊更敏感,本文采用“異或”門樹網絡,如圖6所示。電路增加了輸入信號的數量,增強了產生毛刺的非線性特性,增加其抗建模攻擊屬性。延遲調節模塊選擇不同的延遲大小,使得信號到達“異或”門的時間不同,對毛刺的產生和能否傳遞到輸出端有重要影響。

圖6 延時敏感型毛刺產生模塊
當毛刺產生模塊輸出波形后,需要采樣電路將波形轉化為響應比特位。如何在極短時間內準確采樣產生的脈沖信號并輸出響應是Glitch PUF電路設計的關鍵。最普遍的思想就是提高時鐘采樣精度,使用多相位時鐘采集波形,但這樣做會使得電路資源消耗增大。
文獻[9]與文獻[10]采用了相同的采樣電路,如圖7所示。信號波形輸入后,通過緩沖器對波形延時傳遞,使用D觸發器采樣不同時刻的波形并輸出邏輯值。電路存在毛刺波形與無毛刺波形相比,輸出位bi會有所不同,如圖8所示。雖然這樣的采集方案減少了時鐘線的資源消耗,但為了保證有效的采樣精度,增加了緩沖器和D觸發器的數量,使電路資源消耗也增多。

圖7 延遲采樣電路

圖8 不同波形下的采樣結果
不同于文獻[9-10]提出的通過使用延時電路采樣信號波形的思想,本文提出利用波形產生毛刺數量的奇偶性來判決生成響應值,使用T觸發器采樣毛刺產生模塊電路的輸出。
T觸發器輸入端置“1”,輸出波形連接至T觸發器時鐘端,Q端輸出,如圖9所示。當波形有偶數個上升沿時,Q端輸出為“1”,反之,輸出為“0”。當毛刺產生模塊輸出的毛刺信號過窄或峰值過低,不足以使得觸發器輸出翻轉時,電路輸出不變。在實際電路運行過程中,難免會出現錯誤翻轉的情況,T觸發器采樣使得電路錯誤翻轉次數為偶數次時,并不會改變電路的輸出,這增加了電路的魯棒性。

圖9 T觸發器采樣電路
Glitch PUF電路的架構如圖10所示。通過控制單元發出的S[1∶0]控制毛刺產生模塊中延遲調節模塊的延遲大小,C通過數據選擇器選擇不同的毛刺波形輸入到采樣電路,采樣電路輸出單比特響應。

圖10 電路架構
為節約資源且增加電路的隨機性,本文在單比特響應電路的基礎上,設計多比特Glitch PUF輸出電路結構,如圖11所示。每增加一個單比特響應電路可增加一位輸出。采用循環輸入方式,將單比特電路不同的輸出結果經由“異或”門輸出。可在每個輸出后接一個采樣T觸發器,有N個毛刺產生模塊,則可產生N比特不同的輸出。

圖11 多比特響應電路結構
不同于Anderson PUF的單元電路靜態輸出,本文提出的電路架構可實現動態輸出。隨著輸入信號和控制信號的變化,輸出隨之改變,可增強電路的隨機性和安全性。
本文采用TSMC 65 nm CMOS工藝庫,使用Monte Carlo仿真驗證所設計的Glitch PUF電路性能。毛刺產生模塊的輸入采用偽隨機數發生器隨機生成xi,如圖12所示。通過設置不同的選擇信號S[1∶0],使得路徑延遲不同。圖13為一個毛刺產生模塊的輸出波形與采樣電路輸出波形。由實驗可知,在輸入xi不同時,電路會產生意想不到的尖峰脈沖,而這些尖峰脈沖的出現,使得輸出結果出現變化。但并不是所有的尖峰脈沖都會引起輸出結果的改變,有些尖峰脈沖的寬度很小或者峰值很低,并不會引起結果的改變。

圖12 毛刺產生模塊的輸入

圖13 毛刺波形與采樣結果波形
本文在環境溫度為27 ℃時,對電路Monte Carlo仿真200次,毛刺波形如圖14所示。可以看出,毛刺的寬度和峰值不完全一致。在仿真過程中,電路的采樣結果會隨著毛刺波形的改變而改變。

圖14 Monte Carlo仿真結果
電路不采用延遲模塊的結果顯示,有125次仿真結果使得采樣電路的輸出為邏輯0,這表示在實際電路制作過程中,所設計的毛刺產生模塊的唯一性為62.5%。多次實驗顯示,將兩條路徑的延遲差增大時,產生邏輯0數量減小,最小數目為103次,電路唯一性達到48.5%。
PUF電路在運行過程中會受到溫度變化的影響。為驗證電路的穩定性,通過Parametric Analysis將仿真溫度區間設置為-40~85 ℃,每隔1 ℃仿真一次,共仿真126次。結果顯示,有18次仿真波形出現錯誤翻轉,其中有7次波形翻轉了偶數次,導致輸出結果未發生變化。因此電路在溫度區間[-40,85]的穩定性為91.3%。在溫度區間[-10,70]有3次波形發生翻轉,電路的穩定性為96.3%。
基于延時控制的Glitch PUF與其他相關論文結果對比如表1所示。可以看出,基于延時控制的Glitch PUF的唯一性僅次于FRO PUF,但FRO PUF的唯一性僅是在27℃時測量,且采用了精細的延遲配置線來提升性能。在穩定性方面,本文PUF與其他PUF基本持平,但其采樣的溫度范圍更大,更貼近電路的實際使用環境。因此,本文所設計的DC-Glitch PUF具有良好的唯一性和穩定性,有較高的應用價值。

表1 不同PUF性能對比
本文設計了一種基于延時控制的Glitch PUF電路。通過毛刺產生模塊、延時調節模塊、T觸發器采樣電路等,控制電路路徑延時,調節毛刺生成寬度,實現數據的比特輸出。在TSMC 65 nm CMOS工藝下,使用Cadence驗證設計的電路邏輯功能正確,Monte Carlo仿真結果顯示電路具有良好的唯一性和穩定性?;谘訒r控制的Glitch PUF電路利用生成毛刺的非線性特性,可以抵御建模攻擊的威脅,可應用于信息安全領域。