侯 申 , 郭 陽 , 李 暾 , 李少青
(1. 國防科技大學計算機學院,湖南 長沙 410073;2. 信息工程大學洛陽校區(qū)基礎系,河南 洛陽 471003)
近年來,隨著無線互聯(lián)的發(fā)展,移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)(internet of things,IoT)設備迅速增加,進入到工業(yè)和生活的各個方面。Gartner預測,到2020年IoT設備總數(shù)將達到204億[1]。作為IoT設備核心的嵌入式微處理器,面臨著過度制造、軟件篡改、物理侵入式攻擊等新的安全挑戰(zhàn)[2]。由于IoT架構與傳統(tǒng)互聯(lián)網(wǎng)的區(qū)別,其安全問題很難利用傳統(tǒng)手段解決。同時,對于大部分IoT設備有限的硬件資源來說,集成安全模塊要增加硬件開銷,可能會引起一些問題[3]。因此,發(fā)展新型的輕量級硬件安全原語,為資源集約型設備提供密鑰生成和認證等安全服務,成為研究的熱點。
數(shù)字電路在制造過程中,每個器件的尺寸、門限電壓、柵氧厚度等參數(shù)不可能做到完全相同,均存在微小的、隨機的工藝偏差。工藝偏差不會對器件的功能產(chǎn)生影響,也不會影響電路的正確性。通過一些特殊的設計手段將這些工藝偏差提取并數(shù)字化,可以作為電路和芯片專有的可精確辨識的特征,從而防止其被非法克隆或過度制造,這類物理系統(tǒng)稱為物理不可克隆函數(shù)(physical unclonable function,PUF)。PUF采用了一種稱為“激勵-響應”的工作機制,只有在施加一個特殊激勵時,其獨特的數(shù)字化特征(響應)才會生成。得益于該機制,PUF也可用來為加密算法產(chǎn)生更安全的密鑰。密鑰可以實時生成,且無需在非易失性存儲器(non-volatile memory,NVM)中存儲。PUF作為一種新興的硬件安全原語,在密碼學、硬件安全、特別是嵌入式IoT設備安全等領域有著無可比擬的優(yōu)勢和廣泛的應用前景。
一個PUF可能對不同的激勵具有不同的響應,每個激勵和其對應的響應稱為 PUF的一個“激勵-響應”對(challenge-response pair,CRP)。根據(jù)CRP的數(shù)量與PUF物理實體大小之間的關系,PUF可分為弱PUF和強PUF[4-5]。弱PUF僅有少量CRP,常用于加密算法的密鑰生成。強 PUF具有較大的CRP空間,適用于設備認證[6]。2種PUF均需要有很好的隨機性、唯一性和可靠性來保證自身安全,在用于IoT設備時還需有較小的硬件開銷。然而,目前多數(shù)強PUF設計較為復雜,硬件開銷較大。而線性反饋移位寄存器(linear feedback shift register,LFSR)作為一種隨機性能好、邏輯簡單的偽隨機數(shù)產(chǎn)生電路,可以用做構造低開銷強PUF。
本文首先介紹了PUF和LFSR方面的研究現(xiàn)狀,然后描述了基于LFSR的輕量級PUF設計原理和其在Xilinx公司最新的28 nm FPGA上的實現(xiàn),最后測試并評估了該 PUF的性能并與一些經(jīng)典設計進行了比較。
2002年,PAPPU[7]提出 PUF的概念,同時還提出了一種基于光學系統(tǒng)的PUF。此后,各種不同種類的PUF相繼被提出。按照PUF的實現(xiàn)方式,可分為非電子、模擬和數(shù)字 3類。其中,數(shù)字類PUF直接以數(shù)字方式進行響應測量,不需要進行模數(shù)轉(zhuǎn)換,其設計符合標準IC設計制造流程,可以整體集成到IC器件中,具有最廣泛的研究和應用前景。而其中最具代表性的設計有基于環(huán)形振蕩器(ring oscillator,RO)的 PUF[8]和基于仲裁器(arbiter)的PUF[9]。
RO是一種以特定頻率振蕩的簡單電路,其受工藝偏差影響而變化。通過對比2個相同RO的實際振蕩頻率來構造PUF,其實際振蕩頻率由于工藝偏差而存在微小差異,通過比較可以產(chǎn)生響應輸出。圖1為一個簡單的基于RO的PUF。
圖1 基于RO的PUF結構
一種經(jīng)典的仲裁器 PUF由一個多級交叉開關鏈構成,其基本結構如圖2所示。同樣的輸入連接到上下2個路徑中,每條路徑的連接方式由作為激勵的每一級中2個多路開關的控制信號決定。在同一個激勵下,雖然2個路徑的布局完全一致,但工藝偏差的存在會導致 2個路徑的延時存在微小時差。通過仲裁器判定路徑延時快慢,從而輸入邏輯0或1。
圖2 仲裁器PUF結構
仲裁器PUF作為一種經(jīng)典的數(shù)字式強PUF結構,具備強 PUF的所有特點,但其缺點也同樣突出。首先,仲裁器 PUF的面積開銷較大,且隨著需要響應位數(shù)的增加,其面積迅速增大。其次,從一些實現(xiàn)了的仲裁器PUF來看,CRP空間雖然足夠大,但其響應的唯一性較差。第三,通路延時由通路上多個反相器延時線性疊加構成,容易遭受機器學習類攻擊。這些問題限制了仲裁器PUF的應用。對于IoT設備其資源有限、部署數(shù)量巨大的應用,硬件開銷小、唯一性好的強PUF設計非常必要。
通常來說,弱 PUF的穩(wěn)定性和響應唯一性要好過現(xiàn)有的強PUF設計,通過組合弱PUF和混淆邏輯來構造強 PUF成為一種可行的設計思路。前端使用弱 PUF提供不可克隆特性,后端使用輕量級偽隨機數(shù)發(fā)生器對弱 PUF的響應進行混淆?;煜壿嬘卸喾N選擇,如AES[10]、神經(jīng)網(wǎng)絡[11]等。
反饋移位寄存器通常由移位寄存器和反饋函數(shù)組成,當反饋函數(shù)為線性時,相應的反饋移位寄存器稱為 LFSR。最常用線性函數(shù)是 XOR。LFSR作為一種可以產(chǎn)生偽隨機數(shù)序列的電路,在密鑰生成、通信領域應用廣泛[12-13]。LFSR電路構成簡單,可配置性強,本身作為時序電路工作性能很高,在占用硬件資源很少的前提下可以提供優(yōu)秀的隨機數(shù)序列輸出,雖然其寄存器狀態(tài)輸出有重復周期,但其理論周期長度與移位級數(shù)成指數(shù)函數(shù)關系,足夠支撐應用需求。
本節(jié)通過使用較為成熟穩(wěn)定的弱 PUF來構建具有良好可用性的強PUF設計方法。存儲器PUF是最具代表性的弱 PUF。然而,由于仿真驗證在FPGA平臺上進行,而主流的FPGA開發(fā)平臺都會在啟動時初始化片上存儲器,從而導致存儲器PUF很難在FPGA上實現(xiàn)。因此,本設計選取并改進了一種基于FPGA結構的弱PUF作為強PUF前端。
圖3為基于LFSR的強PUF(L-PUF)結構。前端弱PUF的輸出響應為LFSR提供設備唯一的反饋函數(shù),使得每個設備的LFSR結構均有差別。通過為不同的LFSR提供同樣的種子作為激勵,在運行固定周期數(shù)后,產(chǎn)生設備唯一的響應。
圖3 基于LFSR的強PUF結構
近年來,通過對FPGA底層結構的研究,一些專用于FPGA芯片的PUF設計被提出來。其中,ANDERSON[14]稱第一次在FPGA上實現(xiàn)了PUF結構。該設計參考了延時類 PUF的基本思想,利用Xilinx系列 FPGA芯片中可配置為移位寄存器的LUT和進位邏輯中的級聯(lián)二選一開關,搭建出互相競爭的2條通路,并使用SLICE內(nèi)部的一個觸發(fā)器進行輸出值的仲裁,從而實現(xiàn)一位響應輸出。面積開銷極小,最少2個SLICE就能實現(xiàn)1位響應。
圖4描述了Xilinx最新的7系列28 nm FPGA芯片的底層架構。其基本組成邏輯單元稱為CLB(configurable logic block),在芯片上以二維陣列排布,可以通過可編程的互連矩陣相連。一個CLB包含2個SLICE,每個SLICE主要包含4個6輸入LUT,一個進位器鏈(CARRY4)和8個觸發(fā)器。SLICE有2種類型:SLICEM中的LUT可以根據(jù)需要配置為移位寄存器(shift register LUT,SRL)或通用邏輯,而SLICEL中的LUT只能配置為通用邏輯。2種SLICE通常按列交叉排布。
圖4 Xilinx 7系列FPGA底層結構
Anderson的設計中,一位PUF響應電路如圖5所示。其核心SLICEM中的2個LUT配置為SRL工作模式。寄存器內(nèi)容預先初始化為:
LUT A:0101010101010101(0x5555)
LUT B:1010101010101010(0xAAAA)
圖5 Anderson設計中的1位響應
2個SRL由同一個時鐘控制,因此,LUT A的輸入到N2通路的延時,理論上應該等于LUT B的輸入到N1通路的延時。但工藝偏差會導致2個延時不同。假設LUT B通路快,則第2個周期上升沿時,N1值先變0,而N2持續(xù)為0;假設LUT A通路快,則第2個周期上升沿時,N1變0之前N2已經(jīng)等于N1,N2的值在變0之前將會出現(xiàn)一個尖峰。將N2連接到一個異步Preset觸發(fā)器的PRE端,并將該觸發(fā)器初始化為0,輸出Q反饋到輸入D。如果N2產(chǎn)生尖峰,該觸發(fā)器狀態(tài)將會被置1,否則,其值保持為0。是否產(chǎn)生尖峰可以作為1位響應輸出。
但是,該設計是在 Xilinx上一代 FPGA芯片Virtex-5上實現(xiàn)的。而Xilinx的新一代FPGA芯片7系列(包括Virtex-7、Kintex-7、Artix-7等)與 5系列和以前的產(chǎn)品有所不同。對于7系列芯片,MUX A和MUX B的邏輯0輸入端口在LUT A和LUT B被配置為 SRL時無法一直保持低電平,導致該設計無法實現(xiàn)。為了解決該問題,本文對原設計進行了改進。一個通路由一個 SLICEM中配置為 SRL的LUT,與相鄰SLICEL中對應位置的二選一開關連接組成。SLICEL中的任意一個觸發(fā)器作為響應輸出。同時,調(diào)整A、B 2條通路的相對距離,以提高PUF的性能(2通路距離過近會導致尖峰過窄而被誤過濾掉)。實驗結果表明,A和B之間相隔5或6個LUT時,結果最好。因此,最終前端1位弱PUF的設計如圖6所示,4個相鄰的SLICE可以提供1位響應。
圖6 Xilinx 7系列FPGA上1位響應實現(xiàn)
對于LFSR來說,在寄存器鏈的初始值種子相同的情況下,抽頭數(shù)和位置的不同,會生成不同的移位輸出序列,這是本設計的基本思想。通過與弱PUF輸出響應中對應位進行邏輯AND實現(xiàn)抽頭位置的選擇。其結構如圖7所示。
對于輸出響應為m位的前端弱PUF來說,其第n位輸出響應為 puf[n],其中 0<n≤m。若一個L-PUF實例的puf[n]=0,則該位對應的LFSR中的異或邏輯不工作,即該位沒有抽頭。反之,若puf[n]=1,則該位有抽頭(圖7中虛線框1中部分功能)。如果弱PUF的唯一性足夠理想,使用不同的種子作為激勵,就可以保證整個 L-PUF具有不可克隆性和唯一性。
然而,需要考慮2個問題:①LFSR在任何狀態(tài)下的值均不能全為0,否則LFSR將無法跳轉(zhuǎn)到其他狀態(tài);②對于該設計中使用的LFSR結構,當反饋輸出為0時,系統(tǒng)會變?yōu)槠胀ㄒ莆黄?。因此種子序列的前導0會導致所有L-PUF的輸出都一樣,從而失去PUF功能。對問題1,可以通過圖7中虛線框2和3中的附加邏輯實時檢測LFSR的狀態(tài),若發(fā)現(xiàn)全0狀態(tài),則改變反饋值,跳出全0狀態(tài)。對問題2,有2種解決方法:①加入前導0檢測和計數(shù)控制邏輯,若給L-PUF加載的激勵前導0有n位,則控制L-PUF在n個時鐘周期后再輸出響應;②僅加入計數(shù)控制邏輯,對于一個m位的L-PUF,控制其在m-1個時鐘周期之后輸出即可確保功能正確。對于大多數(shù)IoT設備而言,硬件開銷的優(yōu)先級高于延時開銷,第2種方法是更好的選擇。
圖7 8位L-PUF電路實現(xiàn)
L-PUF的設計和實現(xiàn)在一塊 Alinx開發(fā)板(核心為Zynq-7000 XC7Z020 SoC芯片,該芯片包含一個雙核ARM處理器和一個Virtex-7 FPGA)上進行。Xilinx公司提供了完整而強大的物理約束方法,可以對用VHDL或Verilog完成的設計進行多層次的物理位置約束。通過使用宏和設置標簽的方式,可以將該 PUF按照上述結構進行精確定位。并將Zynq-7000芯片上的FPGA部分分成16個區(qū)域,使用Vivado 2017.1開發(fā)環(huán)境中的RLOC_RANGE屬性進行約束,在每個區(qū)域上分別實現(xiàn)一個64位L-PUF實例。然后,將每個PUF封裝為IP核,掛載到Zynq-7000芯片內(nèi)部的AXI總線上,通過芯片上ARM端的UART接口進行激勵的寫入和響應的讀取。實驗數(shù)據(jù)的記錄和處理在 PC機上通過python語言實現(xiàn)。
一個64位L-PUF設計一共使用了Zynq-7000 XC7Z020 FPGA上53 200個純邏輯LUT中的210個(0.4%),17 400個可作存儲器的 LUT中的 128個(0.8%),13 300個SLICE中的316個(2.4%)。實驗結果顯示,本文中的強PUF設計硬件開銷很小,足夠輕量級(表1)。
表1 硬件使用情況(個)
3.3.1 隨機性
隨機性表征了PUF響應中0和1的分布情況。隨機性的理想值是50%,意味著 PUF響應中的0和1出現(xiàn)的概率應該完全相同。對前端弱PUF和整個L-PUF輸出響應的隨機性分別進行統(tǒng)計。在2個通路相對距離為5個LUT時生成的1 024位PUF響應中,1的位數(shù)為396,隨機性為38.7%。相對于其他相對距離的結果,最接近于理想值。而且,由于該設計對弱 PUF均勻度要求不高,該值已經(jīng)可以確保為LFSR提供有效的反饋函數(shù)。
對16個L-PUF實例分別施加同樣的4組64位激勵,每個L-PUF記載前100個時鐘周期的輸出。根據(jù)設計,取第63個時鐘周期之后所有的輸出響應,共得到 4×64×16×38=155648位輸出響應,其中1的位數(shù)為77 488,整個L-PUF輸出響應的隨機性為49.8%。
3.3.2 唯一性
PUF的唯一性是指在不同的設備上實現(xiàn)該PUF不同實例時,對于同樣的激勵,不同實例輸出響應的差異程度。唯一性可以通過響應的片間漢明距離(hamming distance,HD)進行評估,即
其中,Ri和Rj為2個芯片i和j對同一個激勵C生成的n位響應。
理想情況下,PUF電路的不同實例平均片間HD應該是50%。即不同實例對同一組激勵生成的響應中應該有半數(shù)位的值不同。
分別測試了16個L-PUF實例對4組激勵的響應,每個實例記錄前100個時鐘周期的輸出結果,每個周期的16組響應共有480個HD值。對第63個時鐘周期輸出的響應進行統(tǒng)計,片間HD的最大值為43,最小值為22,平均值為32.16,接近于理想值為32。即該強PUF的唯一性為50.25%,HD的概率直方圖如圖8所示。
圖8 L-PUF的片間漢明距離分布
3.3.3 可靠性
理想的 PUF設計,在任何工作環(huán)境中,其輸出響應都應該是完全可再生的,即任何時候任一個實例對同一個激勵生成的響應都應該完全一致。通常用可靠性表示 PUF響應的可再生性能。對于一個 PUF實例,可靠性可以用計算其平均片內(nèi) HD評估,即
對一個n位PUF實例施加s個激勵,每個激勵在不同工作條件下測t組。其中,Ri是正常工作條件下的響應,R′i是不同供電電壓或溫度下的響應,R′i,t是第t組響應,可靠性等于100%-HDintra。片內(nèi)HD越小越好,理想值為0。
對于L-PUF利用弱PUF加上混淆邏輯構造強PUF的設計來說,其可靠性主要取決于前端弱PUF的可靠性。Anderson在Xilinx Virtex-5上測試了前端弱 PUF的可靠性,實驗結果表明,在不同供電電壓和溫度下平均錯誤位數(shù)為 2.38,即可靠性為96.3%。
3.3.4 可重配置性
進一步統(tǒng)計了L-PUF從第63個時鐘周期到第100個時鐘周期的HDinter平均分布。平均HD隨周期增加略有波動,最小為31.32,最大為32.78,平均值為 31.97。均方差和標準差分別為 31.97和0.148。實驗結果表明,該64位L-PUF的唯一性隨時間變化非常穩(wěn)定,且接近理想值。
由于 L-PUF在每個時鐘周期的輸出均是不同的,只要統(tǒng)一在不同的時鐘周期后輸出響應,一個PUF實例可以等效為多個可用的PUF。該特性適用于多個 PUF來提升系統(tǒng)安全性的應用場景,且可以進一步提升 PUF的安全性,因為對于攻擊者來說,克隆所有周期的CRP空間并不現(xiàn)實。
3.3.5 與其他工作的比較
表2列出了L-PUF與幾種經(jīng)典強PUF設計的比較。與先前的強PUF設計相比,L-PUF設計在FPGA上實現(xiàn)了更好的硬件開銷,并且?guī)缀蹙哂邢嗤奈ㄒ恍浴L貏e地,利用可變輸出周期,2個PUF都可以提供多種配置選項,這可以指數(shù)地增加使CRP數(shù)量呈指數(shù)增加。
表2 L-PUF與其他強PUF設計的比較
本文改進了一種利用 FPGA邏輯單元結構以及布局布線方法的PUF,并與經(jīng)典的LFSR架構結合提出了一種新型的、可動態(tài)重配置的強 PUF。L-PUF結構簡單,可以用ASIC和FPGA實現(xiàn),與傳統(tǒng)的仲裁器 PUF相比性能具有較大提升。并且面積開銷很小,非常適用于對硬件開銷敏感的物聯(lián)網(wǎng)設備。該設計在28 nm的FPGA上進行了實現(xiàn)。實驗結果表明,L-PUF的隨機性、唯一性和可靠性均較好。下一步,將使用更多的FPGA設備建立更大規(guī)模的測試集,提升系統(tǒng)的可靠性。同時,還要分析評估該設計的抗機器學習攻擊能力。