丁 浩,王建業(yè)
(空軍工程大學(xué) 防空反導(dǎo)學(xué)院,陜西 西安710051)
基于環(huán)形振蕩器的物理不可克隆功能 (ring-oscillatorbased physical unclonable function,RO PUF)[1-3],是 安 全領(lǐng)域一項新興的技術(shù)。它利用硅芯片在制造過程中產(chǎn)生的物理性質(zhì)上的差異,生成每塊芯片獨一無二的 “ID”。該ID隨芯片的不同而變化,可在線產(chǎn)生,無需存儲,可以很好地應(yīng)用于設(shè)備認(rèn)證、數(shù)據(jù)流加密[4]。
RO PUF的缺點在于每個RO 的結(jié)構(gòu)都是固定的,“只能產(chǎn)生一個ID”,即使增加RO 的數(shù)目也只能增加ID 的位數(shù),而不能增加ID 的個數(shù)。實際應(yīng)用中,為保證安全性與可靠性,往往需要眾多的ID,從中篩選出一個或數(shù)個最合適的。對于此,Maiti對RO PUF的結(jié)構(gòu)及原理進行了詳細闡釋,提出了 “可配置RO PUF”[5],在不增加占用LAB資源的情況下,提高了產(chǎn)生的ID 個數(shù),但其產(chǎn)生的ID 數(shù)量仍不能滿足要求。為此,文中對Maiti的 “可配置RO PUF”進行了改進,在保證ID 位數(shù)的同時,大大增加了可生成的ID 數(shù)量,并使得ID 具有更高的 “片內(nèi)穩(wěn)定性”和“片間差異性”。
RO PUF是PUF[6,7]中應(yīng)用較為廣泛的一種,其基本結(jié)構(gòu)單元是環(huán)形振蕩器 (ring-oscillator,RO)。RO 的構(gòu)成如圖1所示。
圖1 RO 的基本構(gòu)成
圖2 RO PUF原理
Maiti在RO PUF的基礎(chǔ)上設(shè)計出了 “可配置的RO PUF”[5],其結(jié)構(gòu)如圖3所示。
圖3 Maiti可配置的RO
Maiti的可配置RO PUF 可以產(chǎn)生8 種不同的結(jié)構(gòu)形式,改變輸入信號 “B1、B2、B3”,可以選擇其中任意一種結(jié)構(gòu)。每一種結(jié)構(gòu)都有特定的振蕩頻率。在兩個RO 進行頻率比較時,必須使它們的 “B1、B2、B3”保持相同,如此才能保證頻率的差別來自制造誤差,而不是RO 的結(jié)構(gòu),也不是布局布線的差異。
除RO PUF 外,另一種廣泛研究的PUF 是Arbiter PUF[8]。與 之 相 比,RO PUF 具 有 更 大 的 優(yōu) 勢。Arbiter PUF要求布局布線和器件放置必須達到嚴(yán)格的對稱,否則制造誤差引起的延時將被布局布線的不對稱所抵消。而RO PUF只要求每個RO 是相同的,不要求整體的布線是對稱的。更重要的是,完全的相同的RO 布線可以通過Altera Quartus II的 “Logic Lock”功能來輕松實現(xiàn)。
在使用 “Logic Lock”時,Maiti的 “可配置RO PUF”與基本的RO PUF一樣都占用了一個LAB,沒有增加LAB資源的消耗。而Maiti的 “可配置RO PUF”一對兒RO 可以分別在8 種結(jié)構(gòu)下產(chǎn)生輸出,增加了輸出個數(shù)。文獻[5]還研究出該RO PUF具有更好的穩(wěn)定性。
然而,在實際應(yīng)用中,Maiti“可配置RO PUF”產(chǎn)生的ID 數(shù)量還不足以滿足使用要求,為提高安全性,必須增加ID 個數(shù)。為此本文做出了改進,設(shè)計了新型的可配置RO PUF,以增加產(chǎn)生的ID 數(shù)量。
改進的可配置RO PUF可以產(chǎn)生128種不同的結(jié)構(gòu)形式,單個RO 的結(jié)構(gòu)如圖4所示。
圖4 改進的可配置RO
改變輸入信號Sel[3..0]和C1、C2、C3可以選擇其中任意一種結(jié)構(gòu)形式。圖4 中 “Delay”是可調(diào)延時單元,可以通過Sel[3..0]選擇不同的延時,其結(jié)構(gòu)如圖5 所示。與Maiti的 “可配置RO PUF”相比,可調(diào)延時單元Delay的加入,顯著增加了可以產(chǎn)生的結(jié)構(gòu)形式,也就增加了可以產(chǎn)生的ID 個數(shù)。同時,Delay的結(jié)構(gòu)比較靈活,可以根據(jù)需要增加或減少其內(nèi)部的延時單元數(shù)。更重要的是,在使用 “Logic Lock”時,改進的可配置RO PUF 共占用了9個LAB,是Maiti“可配置RO PUF”的9倍,但產(chǎn)生的ID 數(shù)量為128個,是Maiti“可配置RO PUF”的16倍,顯著提高了LAB的利用率。
一站式的檢查預(yù)約首先需要完善的軟件支持。信息科牽頭完成“檢查預(yù)約平臺”的開發(fā)設(shè)計,讓醫(yī)技資源與檢查需求互聯(lián)互通,從而實現(xiàn)了以患者為中心的檢查預(yù)約服務(wù)和一個平臺的多檢查預(yù)約管理。
圖5 可調(diào)延時單元Delay結(jié)構(gòu)
在實驗中,共設(shè)計了64 個改進的RO (RO1、RO2、RO3……),結(jié)構(gòu)如圖6所示。
圖6 改進的可配置RO PUF原理
激勵信號Challenge[6..0]決定著RO 的結(jié)構(gòu),它由圖4中的Sel[3..0]和C1、C2、C3組成。Sel[3..0]對應(yīng)Challenge[3..0],C1、C2、C3對應(yīng)Challenge[6..4]。所有RO Challenge[6..0]的對應(yīng)位都連接到一起,保證每個RO 的布線完全相同,保證其頻率差異只與制造誤差有關(guān)。選擇信號mux [6..0]用來選擇一個RO 進行計數(shù)。定時器 “Timer”與計數(shù)器 “counter”同時開始工作,控制計數(shù)器的工作時間,此段時間內(nèi)的計數(shù)值交給NIOS II進行處理。NIOS II對計數(shù)器得到的計數(shù)值進行采集、存儲,并經(jīng)串口發(fā)送給上位機。待處理完畢后,選擇下一個RO進行計數(shù)。
同樣的,為免除數(shù)據(jù)關(guān)聯(lián)性的影響,上位機在進行頻率比較時,只比較相鄰RO 的頻率,如此可以得到128 個63位的 “ID”,數(shù)目遠遠大于Maiti的8 個 “ID”。通過后文的實驗,還證明了改進的可配置RO PUF擁有其它更優(yōu)的性能。
文 中 的 實 驗 是 在 Altera 公 司 Cyclone IV 系 列EP4CE6F17C8的FPGA 上實現(xiàn)的,開發(fā)軟件為Quartus II,編程語言VHDL。取外部時鐘 “outer Clock”為100MHz。
在進行ID 提取之前需要驗證所改進的RO 的結(jié)構(gòu)是否有效,即當(dāng)改變激勵信號Challenge [6..0]時,RO 的振蕩頻率是否會發(fā)生變化,以及相鄰兩個RO 之間的頻率是否會有差別。選取圖6中相鄰的RO1、RO2研究RO 激勵信號對振蕩頻率的影響。
圖7顯示了RO1、RO2 的頻率差,若頻率差大于0,表示RO1的頻率高于RO2;反之,則低于RO2兩個RO 進行頻率比較時,它們的激勵Challenge[6..0]中對應(yīng)位應(yīng)連接在一起,保證它們的結(jié)構(gòu)時刻保持相同。圖7可以發(fā)現(xiàn),在這種情況下,RO1 與RO2 之間仍然存在著頻率差異。并且,RO1與RO2的頻率差會隨著Challenge[6..0]的變化而改變。說明引入的 “可調(diào)延時單元”并沒有抵消制造差異的影響,在同一芯片內(nèi)不同位置擺放的兩個RO,會以不同的頻率進行振蕩。并且引入的 “可調(diào)延時單元”并沒有對RO1 和RO2 的頻率差產(chǎn)生傾向性的影響,即RO1與RO2的頻率差并不為常值,且不恒為正或恒為負,說明產(chǎn)生的ID 仍然具有隨機性,無法從輸入激勵預(yù)測產(chǎn)生的ID,提高了ID 的安全性。
圖7 RO1與RO2的頻率差
其次,研究激勵信號Challenge [6..0]中Sel[3..0]和C1、C2、C3單個位的改變對 “ID”的影響。這里利用該位改變前后ID 的漢明距離與ID 位數(shù)的比值來表示改變的程度。
當(dāng)激勵信號中的某一位改變時,計算該位改變前后對應(yīng)的 “ID”漢明距離與ID 位數(shù)的比值的變化情況。漢明距離指兩個等長的字符串中對應(yīng)位置的字符不同的個數(shù)。漢明距離與字符串長度的比值可用來表征兩個字符串不相同的程度。
表1給出了只改變一位激勵信號時, “改進的可配置RO PUF”與Maiti“可配置RO PUF”輸出ID 漢明距離的變化情況。分別計算了它們在單個位改變前后對應(yīng) “ID”的漢明距離與ID 位數(shù)比值的最小值、最大值以及平均值。其中平均值能較好的反應(yīng)該位對ID 的影響程度。值越大,說明這一位改變時ID 的影響越大,這一位起到的作用越顯著。從表1中可以發(fā)現(xiàn)Challenge[4]~Challenge[6]引起的ID 變化要大于Challenge[0]~Challenge[3],這是因為Challenge[4]~Challenge[6]位對應(yīng)C1~C3,它們的改變會決定RO 中存不存在 “可調(diào)延時單元”,也就決定了RO 中包不包含 “可調(diào)延時單元”中的緩沖器Lcell。Lcell是人為添加的緩沖單元,數(shù)目越多,對制造差異的抵消越大,產(chǎn)生的ID 越趨向于相同。而Challenge [0]~Challenge[3]對應(yīng)調(diào)延時單元的sel[3]~sel[0],控制的可調(diào)延時單元內(nèi)部的延時,受制造差異的影響較小。同時,對比 “改進的可配置RO PUF”與Maiti“可配置RO PUF”,可以看出,在改進的可配置RO PUF中,激勵信號Challenge[6..0]的改變,尤其是Challenge [6]~Challenge[4]對ID 產(chǎn)生的影響要大于Maiti的可配置RO PUF,也就是說,改進的可配置RO PUF產(chǎn)生的ID 獨立性更高,安全性更高,也就越難以從一個ID 推測出另一個ID,越符合設(shè)備認(rèn)證等對ID 的使用要求。
表1 單個激勵位改變時ID 漢明距離的改變量
片內(nèi)穩(wěn)定性與片間差異性是衡量RO PUF的重要指標(biāo)。
設(shè)備認(rèn)證與數(shù)據(jù)流加密等場合要求同一芯片的ID 產(chǎn)生后必須保持不變,并且能重復(fù)生成。這就要求RO PUF 必須要能適應(yīng)環(huán)境的改變,尤其是在供電電壓與環(huán)境溫度變化時,保證產(chǎn)生的ID 穩(wěn)定不變。片內(nèi)穩(wěn)定性就是用來衡量ID 穩(wěn)定性的指標(biāo)。
片內(nèi)穩(wěn)定性是指同一芯片內(nèi)擺放于同一位置的同一結(jié)構(gòu)的RO 在不同電壓、溫度等工作條件下,重復(fù)運行多次,計算ID 的漢明距離,距離越小,代表響應(yīng)之間的差別越小,RO PUF的工作越穩(wěn)定;由于實驗條件的限制,本文只研究了溫度對片內(nèi)穩(wěn)定性的影響,在20℃~70℃的環(huán)境中進行了穩(wěn)定性實驗。每隔10℃,運行每種結(jié)構(gòu)RO PUF 50次,計算ID 的改變程度,仍以漢明距離與ID 總位數(shù)的比值來表示,見表2。
表2 片內(nèi)穩(wěn)定性
提取的ID 在具有穩(wěn)定性的同時,還必須具有 “設(shè)備唯一性”,即不同的芯片必須具有不同的ID。而且ID 之間必須有足夠的差異,以保證ID 能唯一的標(biāo)識FPGA 芯片,保證不能從一塊芯片的ID 推測出另一塊的ID,確保安全。片間差異性就是用來衡量不同芯片ID 的差異程度的指標(biāo)。
片間差異性是指相同結(jié)構(gòu)的RO 放置在不同芯片的相同位置,計算ID 的改變程度,仍以漢明距離與ID 位數(shù)的比值來表示。比值越大,代表ID 之間的差別越大,ID 安全性越高,越能區(qū)分開不同的芯片。本文在10 塊EP4CE6F17C8的FPGA 上進行了實驗。表3給出了改進的RO PUF與Maiti的 “可配置RO PUF”,以及最基本的RO PUF各自ID 漢明距離的變化。
表3 片間差異性
從表2和表3中可以發(fā)現(xiàn),在實驗設(shè)定的溫度范圍內(nèi),本文改進的RO PUF與Maiti的 “可配置RO PUF”,以及最基本的RO PUF 均具有較好的片內(nèi)穩(wěn)定性。而改進的RO PUF具有最高的片間差異性,可以更有效地進行芯片認(rèn)證,區(qū)分開不同的芯片。
同一芯片內(nèi)部也存在著制造誤差,因此RO 在芯片內(nèi)的擺放位置也會對最終的ID 產(chǎn)生影響。通過改變 “LOGIC LOCK”的鎖定區(qū)域,改變RO 在片內(nèi)的位置,比較其片內(nèi)穩(wěn)定性的變化。共設(shè)計了5 種RO 在片內(nèi)的擺放方案,計算每種情況下產(chǎn)生的ID 的漢明距離與ID 位數(shù)的比值,結(jié)果見表4。實驗在40℃環(huán)境中進行。
表4 不同擺放方案下的片內(nèi)穩(wěn)定性
表中結(jié)果反映了芯片內(nèi)部制造工藝的均勻性,由于制造不均勻,不同的位置會產(chǎn)生不同的ID。因此,在使用RO PUF時,需要控制其在芯片內(nèi)部的擺放,尋找最合適的擺放位置,以使響應(yīng)的片內(nèi)穩(wěn)定性與片間差異性均達到較高水平,滿足使用要求。
本文對Maiti的可配置RO PUF 做出了改進,使其可以產(chǎn)生更多的ID,以提高安全性。而且通過實驗驗證本文改進后的可配置RO PUF 擁有更高的 “片內(nèi)穩(wěn)定性”和“片間差異性”。最后討論了溫度、片內(nèi)位置等因素對ID的影響。
文中得到的ID 還需要經(jīng)過去噪聲等操作才能用作密鑰[9-11]?!凹m錯編碼 (ECC)”[12]和模糊提取是目前解決噪聲問題比較有效的方法。但大多數(shù)的EEC 和模糊提取都是在產(chǎn)生ID 之后進行復(fù)雜的數(shù)據(jù)處理,再將得到的結(jié)果送入加密算法,占用了較多片內(nèi)空間。如果在設(shè)計PUF 的時候,就處理這個問題,將節(jié)省大量資源。這是未來研究的重點內(nèi)容。
同時,環(huán)境溫度、供電電壓是影響片內(nèi)穩(wěn)定性的重要因素。研究片內(nèi)穩(wěn)定性隨著溫度、電壓的變化情況,并保證ID 的準(zhǔn)確重復(fù)生成也是未來研究的重點內(nèi)容。
[1]Zhang JL,Qu G,Lv YQ,et al.A survey on silicon PUFs and recent advances in ring oscillator PUFs [J].Journal of Computer Science and Technology,2014,29 (4):664-678.
[2]Muslim M,Mohammed N,Mansoor A,et al.Frequency uniqueness in ring oscillator physical unclonable functions on FPGAs[C]//IEEE 56th International Midwest Symposium on Circuits and Systems,2013:465-468.
[3]Fruhashi K,Shiozaki M,F(xiàn)ukushima A,et al.The arbiter-PUF with high uniqueness utilizing novel arbiter circuit with delay-time measurement[C]//IEEE International Symposium of Circuits and Systems,2011:2325-2328.
[4]Maes R,Herrewege VA,Verbauwhede I.PUFKY:A fully functional PUF-based cryptographic key generator[G].LNCS 7428:Cryptographic Hardware and Embedded Systems,2012:302-319.
[5]Maiti A,Schaumont P.Improved ring oscillator PUF:An FPGA-friendly secure primitive [J].Journal of Cryptology,2011,24 (2):375-397.
[6]Merli D,Sigl G,Eckert C.Identities for embedded systems enabled by physical unclonable functions [G].LNCS 8260:Number Theory and Cryptography,2013:125-138.
[7]Nithyanand R,Solis J.A theoretical analysis:Physical unclonable functions and the software protection problem [C]//IEEE Symposium on Security and Privacy Workshops,2012:1-11.
[8]Hu B,Satoshi G,Yukiyasu T.A multiple bits output ring-oscillator physical unclonable function [C]//IEEE International Symposium on Intelligent Signal Processing and Communication Systems,2011:1-5.
[9]Maiti A,Schaumont P.Improved ring oscillator PUF:An FPGA-friendly secure primitive [J].Journal of Cryptology,2011,24 (2):375-397.
[10]Yu M,Devadas S.Secure and robust error correction for physical unclonable functions [J].IEEE Design & Test of Computers,2010,27 (1):48-64.
[11]Merli D,Schuster D,Stumpf F,et al.Side-channel analysis of PUFs and fizzy extractors [G].LNCS 6740:Trust and Trustworthy Computing,2011:33-47.
[12]Yin C,Qu G.Improving PUF security with regression-based distiller[C]//50th ACM/EDAC/IEEE Design Automation Conference,2013:1-6.