喬彥淇,唐 明,2,劉樹波
1.武漢大學(xué) 國(guó)家網(wǎng)絡(luò)安全學(xué)院 空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室,武漢 430072
2.密碼科學(xué)技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100878
3.武漢大學(xué) 計(jì)算機(jī)學(xué)院,武漢 430072
隨著物聯(lián)網(wǎng)和嵌入式技術(shù)的發(fā)展,越來(lái)越多的硬件設(shè)備安全問(wèn)題受到研究人員的廣泛關(guān)注.普遍的硬件設(shè)備由集成電路構(gòu)成,易受到侵入、偽造、復(fù)制等安全威脅.現(xiàn)代密碼學(xué)中普遍使用單向函數(shù)用作簽名或是信息摘要,但是有些函數(shù)使用了未被證明的猜測(cè),有些則存在已知的缺陷.PUF(physical unclonable functions)技術(shù)利用電路在生產(chǎn)過(guò)程中隨機(jī)工藝差異特性[1],給定任意一個(gè)輸入激勵(lì),PUF會(huì)輸出一個(gè)唯一、確定且不可預(yù)測(cè)的響應(yīng)結(jié)果.2002年,Pappu等[2]首次提出了物理單向函數(shù)的概念.此后,Bulens等[3]提出了紙介質(zhì)PUF,Hammouri等[4]提出了CD PUF的實(shí)現(xiàn)方法.這三種PUF類型均為非電子PUF類型.隨著研究工作深入,出現(xiàn)了電子PUF類型,電子PUF分為模擬電路PUF和數(shù)字電路PUF.模擬電路PUF的代表性設(shè)計(jì)是Tuyls等[5]提出的涂層PUF.隨著FPGA中的安全問(wèn)題愈發(fā)地受到人們的重視,PUF在數(shù)字電路[6]上的實(shí)現(xiàn)也得到了越來(lái)越多的關(guān)注.因此,FPGA上的相關(guān)應(yīng)用需要加密以及認(rèn)證功能,由于PUF在FPGA上的實(shí)現(xiàn)不會(huì)額外增加大量資源開(kāi)銷,PUF在FPGA上的實(shí)現(xiàn)受到人們極大的關(guān)注.此外PUF技術(shù)還廣泛應(yīng)用于包括密鑰生成[6]、IP保護(hù)[7]以及權(quán)限認(rèn)證與管理[8,9]等方面.
在芯片制造過(guò)程中,晶片晶圓體上的芯片時(shí)延由于掩模的不同而不同.此外,由于工藝溫度和壓力的差異等因素,晶圓上不同的晶片晶圓體之間,也存在隨機(jī)偏差.Boning等[10]使用高斯分布或其他概率分布對(duì)同一導(dǎo)線或設(shè)備在不同晶片中的時(shí)延差異進(jìn)行了建模.集成電路(integrated circuit,IC)上的時(shí)延包括系統(tǒng)偏差以及工藝偏差兩者帶來(lái)的延遲.基于時(shí)延的PUF利用上述兩個(gè)特征帶來(lái)的時(shí)延,通過(guò)數(shù)字信號(hào)在IC上傳輸時(shí)延的差異進(jìn)行時(shí)延電路設(shè)計(jì).大部分時(shí)延PUF利用的是其設(shè)計(jì)電路上的路徑時(shí)延[11,12].典型的基于時(shí)延的PUF類型共有3種:仲裁器PUF、基于環(huán)形振蕩器的PUF以及毛刺PUF.
1.1.1 仲裁器PUF
為了解決Gassend等提出的硅PUF中由環(huán)境引起的噪聲影響PUF結(jié)果的問(wèn)題,Lim等[11]在2005年提出一種基于仲裁器的PUF(arbiter PUF,APUF)方案,其通過(guò)使用差分結(jié)構(gòu)來(lái)提高PUF可靠性.此外,Suh等[12]基于APUF的原理設(shè)計(jì)了異或PUF(XOR APUF),提升了抗建模攻擊的能力.為了有效地抵御針對(duì)PUF最新的建模攻擊,Nguyen等[13]針對(duì)XOR PUF的安全問(wèn)題提出了iPUF設(shè)計(jì).XOR PUF和iPUF均是基于APUF來(lái)設(shè)計(jì)的,故三者的PUF產(chǎn)生基本原理是相同的.
仲裁器PUF并非測(cè)量PUF響應(yīng)的絕對(duì)延遲.由于小的隨機(jī)時(shí)延變化,兩個(gè)布局相同的路徑上的兩個(gè)脈沖信號(hào)通常不會(huì)同時(shí)到達(dá)輸出,在電路終端使用仲裁器比較兩個(gè)相同布局的路徑上信號(hào)的相對(duì)時(shí)延并生成判決結(jié)果.仲裁器PUF由于其電路結(jié)構(gòu)特性,屬于強(qiáng)PUF的范疇(在第3.1節(jié)有具體介紹).其可以產(chǎn)生大量的激勵(lì)響應(yīng)對(duì)(challenge-response pairs,CRPs),故可以用在嵌入式設(shè)備認(rèn)證等應(yīng)用場(chǎng)景.
1.1.2 基于環(huán)形振蕩器的PUF(RO PUF)
Suh等[12]在2007年首次提出利用環(huán)形振蕩器進(jìn)行設(shè)計(jì)的PUF.與仲裁器PUF相比,RO PUF更容易在ASICs和FPGAs上實(shí)現(xiàn),更容易評(píng)估熵并且提供更高的可靠性,但是RO PUF速度較慢、規(guī)模較高并且能耗較高.Maiti等[14]發(fā)現(xiàn)系統(tǒng)偏差會(huì)對(duì)RO PUF的唯一性產(chǎn)生不利影響,提出了一種可配置的RO PUF(configurable ring oscillator PUF,CRO PUF)來(lái)減輕系統(tǒng)偏差所帶來(lái)的噪聲.此外,Gao等[15]提出了另外一種可配置RO PUF的電路設(shè)計(jì),將RO PUF設(shè)計(jì)提升至反相器層級(jí).
RO PUF的時(shí)延電路由許多相同布局的時(shí)延環(huán)(環(huán)形振蕩器)組成.每個(gè)環(huán)形振蕩器都是以一個(gè)特定頻率振蕩的簡(jiǎn)單電路.由于制造差異,每個(gè)環(huán)形振蕩器以一個(gè)略微不同的頻率進(jìn)行振蕩,通過(guò)比較這些頻率的不同產(chǎn)生最終的PUF比特.相同布局的環(huán)形振蕩器的輸出比特隨芯片變化而變化.
1.1.3 毛刺PUF
為了解決時(shí)延PUF中時(shí)延信息與生成信息之間的關(guān)系容易被預(yù)測(cè)的問(wèn)題,Suzuki等[16]提出了一種新的時(shí)延電路模型,其架構(gòu)利用了邏輯門之間時(shí)延差異以及每個(gè)門的脈沖非線性傳播特性所產(chǎn)生的毛刺.2010年,針對(duì)FPGA中固有的結(jié)構(gòu),Anderson[17]提出了一種利用FPGA中LUT的毛刺PUF.Anderson提出的毛刺PUF利用了LUT作為移位寄存器,輸出到多路選擇器的選擇端時(shí)狀態(tài)轉(zhuǎn)化所產(chǎn)生的時(shí)延,將該時(shí)延使信號(hào)產(chǎn)生的毛刺通過(guò)觸發(fā)器輸出.
仲裁器PUF、RO PUF以及毛刺PUF的電路設(shè)計(jì)中存在PUF生成的最小單元(每片PUF組合電路產(chǎn)生一位響應(yīng)),并且現(xiàn)有基于時(shí)延的PUF不直接使用電路中路徑的時(shí)延,而是使用兩條相同布局路徑之間的相對(duì)路徑時(shí)延[1,4].例如,Nguyen等[13]使用兩個(gè)異或仲裁器PUF作為一個(gè)PUF cell來(lái)產(chǎn)生單比特響應(yīng),增加了硬件資源的消耗,在資源限制的情況下,能夠產(chǎn)生的PUF響應(yīng)位數(shù)降低.現(xiàn)有基于時(shí)延的PUF設(shè)計(jì)間接使用路徑時(shí)延,使利用激勵(lì)來(lái)產(chǎn)生響應(yīng)的方式具有一定的限制,對(duì)于PUF電路中某些差異性不好的PUF響應(yīng)最小單位并不能有效地從響應(yīng)中體現(xiàn)出來(lái),缺少靈活性從而降低了PUF的唯一性.綜上所述,目前基于時(shí)延的PUF存在的問(wèn)題主要有:
(1)現(xiàn)有基于時(shí)延的PUF設(shè)計(jì),激勵(lì)響應(yīng)結(jié)構(gòu)下產(chǎn)生響應(yīng)消耗資源多.
(2)基于時(shí)延的PUF設(shè)計(jì)未利用具體路徑時(shí)延,由于時(shí)延大小未知,不能夠有效拋棄某些唯一性不好的PUF產(chǎn)生單元,從而降低PUF的唯一性.
本文提出了一種基于時(shí)延序列的新型時(shí)延PUF類型—CCD-PUF.CCD-PUF利用測(cè)量組合電路中的時(shí)延(該時(shí)延由于制造工藝差異而存在不同)來(lái)產(chǎn)生PUF響應(yīng).CCD-PUF降低了傳統(tǒng)時(shí)延類型PUF的硬件資源消耗且能夠利用精確的時(shí)延來(lái)提高PUF的唯一性.實(shí)驗(yàn)證明,與APUF和RO PUF相比,CCD-PUF可以降低硬件資源使用,并且使其唯一性達(dá)到49.806%.
本文組織如下:第2節(jié)介紹了CCD-PUF的總體方案和設(shè)計(jì)思路.第3節(jié)介紹了CCD-PUF方案主要解決的問(wèn)題以及安全性分析.第4節(jié)介紹了實(shí)驗(yàn)和結(jié)果.第5節(jié)對(duì)本文進(jìn)行了總結(jié).
基于制造電路時(shí)的隨機(jī)工藝偏差,我們提出了一種在FPGA上實(shí)現(xiàn)的PUF方案簡(jiǎn)稱CCD-PUF.CCD-PUF的核心電路(詳見(jiàn)2.2節(jié))會(huì)產(chǎn)生精確的電路時(shí)延值作為PUF電路的輸出,多個(gè)CCD-PUF的核心電路實(shí)例組合在一起會(huì)產(chǎn)生一組特定的響應(yīng)序列.
FPGA電路設(shè)計(jì)中普遍存在一種寄存器到組合電路再到寄存器的結(jié)構(gòu),我們將這種結(jié)構(gòu)的電路定義為:“原子電路”(primitive circuit,PC).絕大部分的電路設(shè)計(jì)均可以概括為上述PC結(jié)構(gòu).PC中的組合電路部分存在著路徑時(shí)延,該時(shí)延受到芯片制造工藝偏差、溫度和電壓的影響.CCD-PUF利用PC中路徑時(shí)延的差異來(lái)設(shè)計(jì)PUF核心電路.
與傳統(tǒng)時(shí)延PUF不同的是,CCD-PUF測(cè)量FPGA上原子電路的路徑精確時(shí)延,即測(cè)量組合電路的路徑時(shí)延,輸出為一個(gè)時(shí)延向量序列.利用原子電路的好處是提供路徑時(shí)延的PUF電路非常靈活.
圖1展示了CCD-PUF的總體框架.總體框架包括n個(gè)PUF核心電路以及時(shí)延序列處理模塊.PUF核心電路包括原子電路或主電路(PC)和測(cè)量電路(measure circuit,MC).在PUF整體電路中,虛線框表示的PUF核心電路中的主電路為PC設(shè)計(jì)(寄存器到組合電路到寄存器),MC測(cè)量PC的路徑時(shí)延.將路徑時(shí)延處理后送給時(shí)延序列處理模塊,對(duì)所有時(shí)延結(jié)果輸入進(jìn)行排序處理,最后輸出時(shí)延序列.第2.2節(jié)和第2.3節(jié)分別給出PUF核心電路和時(shí)延序列處理模塊的功能描述.
圖2展示了我們PUF設(shè)計(jì)的核心電路,包括了主電路和測(cè)量電路.其中上方虛線框內(nèi)為主電路部分,下方虛線框內(nèi)為測(cè)量電路部分.電路使用了3個(gè)寄存器,一個(gè)查找表(look-up table,LUT),一個(gè)比較器以及一個(gè)觸發(fā)器.
主電路是由源寄存器到LUT到目的寄存器構(gòu)成的電路,該路徑上的兩個(gè)寄存器由主系統(tǒng)時(shí)鐘(clk1)觸發(fā).數(shù)據(jù)通過(guò)源寄存器,送給LUT并在其中傳輸,最后通過(guò)目的寄存器來(lái)接收數(shù)據(jù).測(cè)量電路是用來(lái)測(cè)量主電路中組合電路路徑時(shí)延,包括影子寄存器、比較器和觸發(fā)器.影子寄存器的輸入與主電路中的目標(biāo)寄存器相同,由影子時(shí)鐘(clk2)觸發(fā),clk2的運(yùn)行頻率與clk1相同,但其相位偏移受控.比較器用來(lái)比較目的寄存器與影子寄存器兩者間存儲(chǔ)值是否一致,最后的比較結(jié)果經(jīng)過(guò)觸發(fā)器輸出.
CCD-PUF電路的工作原理如下:首先一組PUF激勵(lì)分別送給主電路的源寄存器以及測(cè)量電路的影子寄存器.兩個(gè)寄存器的時(shí)鐘分別由clk1和clk2來(lái)控制.系統(tǒng)主時(shí)鐘clk1保持恒定,并不影響電路正常的功能.而clk2與clk1頻率相同,并且存在負(fù)相位偏差,即clk2會(huì)在精確控制的時(shí)間下比原電路clk1觸發(fā)目的寄存器較前地觸發(fā)影子寄存器.PUF的激勵(lì)作為數(shù)據(jù)分別經(jīng)過(guò)主電路和測(cè)量電路,在每個(gè)時(shí)鐘周期內(nèi),影子寄存器和目的寄存器的值進(jìn)行比較,直到識(shí)別出差異為止,然后將比較結(jié)果后的單比特結(jié)果保存在結(jié)果位中.如果影子寄存器中的值與目的寄存器的值不相等(即影子寄存器在數(shù)據(jù)穩(wěn)定之前觸發(fā)存儲(chǔ)了錯(cuò)誤的值),則結(jié)果為‘1’,并且始終保持該結(jié)果.
電路運(yùn)行一段時(shí)間后,通過(guò)在每個(gè)測(cè)量電路末端連接單比特觸發(fā)器來(lái)讀取結(jié)果位,以此來(lái)確定兩個(gè)時(shí)鐘相位偏移的精度下的路徑時(shí)延.clk2與clk1相比,會(huì)提前捕獲LUT中傳輸?shù)臄?shù)據(jù),并將結(jié)果送給后面的比較器.此方法可以準(zhǔn)確計(jì)算出激勵(lì)數(shù)據(jù)在主電路由源寄存器到目的寄存器所需要的路徑時(shí)延.由于路徑的制造差異,輸入寄存器數(shù)據(jù)的不同會(huì)導(dǎo)致路徑的時(shí)延不相同,故不同的激勵(lì)會(huì)產(chǎn)生不相同的響應(yīng).
時(shí)延序列處理模塊是對(duì)多個(gè)PUF核心電路產(chǎn)生的時(shí)延結(jié)果進(jìn)行排序的模塊.將時(shí)延序列進(jìn)行排序的目的是破壞響應(yīng)結(jié)果的原始輸出順序.將圖1能夠產(chǎn)生n個(gè)時(shí)延結(jié)果并生成時(shí)延序列的PUF整體設(shè)計(jì)記為PUF-n,將PUF核心電路模型記為PUF(C,d).其中C為激勵(lì)向量,d為某個(gè)PUF核心電路的時(shí)延.n個(gè)PUF核心電路實(shí)例化后產(chǎn)生的時(shí)延向量D記為(D1,D2,···,D n).時(shí)延序列處理模塊最終產(chǎn)生的PUF時(shí)延序列向量R記為(R1,R2,···,R n),其中R1 圖1所示的PUF整體電路中存在有n個(gè)PUF核心電路,它們獨(dú)立產(chǎn)生n個(gè)時(shí)延結(jié)果構(gòu)成一個(gè)時(shí)延向量(D1,D2,···,D n).該時(shí)延向量輸入到時(shí)延處理模塊(delay process module,DPM),DPM對(duì)該時(shí)延向量進(jìn)行升序排序,產(chǎn)生新的時(shí)延序列DS(R1,R2,···,R n),其中R1 分析以下兩種情況:(1)若D=R,即向量D中D i(1≤i≤n,n為整數(shù))對(duì)應(yīng)于向量R中的R i(1≤i≤n,n為整數(shù)),向量D中元素已經(jīng)為升序的順序.此時(shí),映射F(D,R):D=R.這種情況下,如果多次結(jié)果中測(cè)試向量D中前部元素時(shí)延偏小,而后部元素時(shí)延偏大,那么適當(dāng)調(diào)整核心電路實(shí)例的輸出順序,將時(shí)延偏大的核心電路模塊放在前部輸出,輸出偏小時(shí)延的核心電路模塊放在后部輸出,就可以降低此種情況發(fā)生的概率.(2)若D?=R,那么在映射F中?x?=y,使D x=R y.此時(shí),映射F為雙射,最后輸出的向量R與向量D不相等. PUF可以為硬件設(shè)備提供加密密鑰或者認(rèn)證時(shí)的簽名信息.CCD-PUF要解決的關(guān)鍵問(wèn)題為:(1)如何產(chǎn)生CRP;(2)降低硬件實(shí)現(xiàn)上的資源消耗;(3)提高PUF響應(yīng)的唯一性;(4)CCD-PUF的安全性. Guajardo[6]以及后來(lái)的Rührmair等[18]提出了強(qiáng)弱PUF的概念.弱PUF本質(zhì)上是一種在易受攻擊的硬件中存儲(chǔ)密鑰的新形式.它提供了ROM、Flash或其他非易失性存儲(chǔ)器(NVM)的替代方案,僅有少量且固定的激勵(lì)和訪問(wèn)受限的響應(yīng).與弱PUF相反,強(qiáng)PUF從PUF物理無(wú)序性中獲得更復(fù)雜的激勵(lì)響應(yīng)對(duì).強(qiáng)PUF具有大量的激勵(lì)且無(wú)法預(yù)知激勵(lì)響應(yīng)對(duì). PUF認(rèn)證協(xié)議中,CRP的有效性保證了物理設(shè)備認(rèn)證的正常功能.若激勵(lì)與響應(yīng)和PUF結(jié)構(gòu)間存在某種關(guān)聯(lián)或者變化趨勢(shì),就會(huì)存在模型攻擊的風(fēng)險(xiǎn),攻擊者根據(jù)芯片電路的部分CRP進(jìn)行建模仿真并對(duì)未來(lái)輸入的激勵(lì)信號(hào)進(jìn)行響應(yīng)預(yù)測(cè),進(jìn)而偽造身份.故PUF的關(guān)鍵問(wèn)題是如何產(chǎn)生有效的CRP進(jìn)行認(rèn)證,同時(shí)保證其安全性. CCD-PUF擁有產(chǎn)生激勵(lì)響應(yīng)對(duì)的結(jié)構(gòu),產(chǎn)生CRP的方式與仲裁器PUF類型和RO PUF類型有不同之處.本文PUF核心電路的激勵(lì)為輸入源寄存器的數(shù)據(jù),響應(yīng)為影子寄存器與目的寄存器的比較結(jié)果,其是一個(gè)精確的時(shí)延數(shù)值.多個(gè)PUF電路的實(shí)例化產(chǎn)生多個(gè)響應(yīng).輸出的響應(yīng)經(jīng)過(guò)時(shí)延序列處理模塊,對(duì)響應(yīng)進(jìn)行排序,形成最終的激勵(lì)響應(yīng)對(duì).對(duì)于某一激勵(lì)C來(lái)說(shuō),CCD-PUF所產(chǎn)生的PUF響應(yīng)為(R1,R2,···,R n),其中R1 CCD-PUF產(chǎn)生的CRP中響應(yīng)為一串時(shí)延序列,與大多數(shù)FPGAPUF實(shí)現(xiàn)產(chǎn)生0或1比特串的方式有所區(qū)別.CCD-PUF的響應(yīng)不能夠直接被攻擊者用來(lái)建立模型,因?yàn)榧?lì)響應(yīng)對(duì)和每個(gè)PUF核心電路不是一一對(duì)應(yīng)的,每個(gè)PUF核心電路產(chǎn)生的精確時(shí)延對(duì)于最終響應(yīng)貢獻(xiàn)的位置是不確定的.設(shè)兩個(gè)本文PUF方案實(shí)現(xiàn)PUF-n、PUF′-n,對(duì)應(yīng)的CRP向量集合分別為CRP(C,R)和CRP′(C′,R′).認(rèn)證物理設(shè)備需要保證集合CRP中的任意激勵(lì)向量C與CRP′中相同的激勵(lì)向量C所對(duì)應(yīng)的響應(yīng)向量R與R′大概率不同,即 其中?是不可忽略的正實(shí)數(shù),并且Δ(r,r′)為向量R與R′間的差異.傳統(tǒng)的PUF認(rèn)證中,PUF設(shè)計(jì)是可以保證R與R′是不同的.由于CCD-PUF增加了時(shí)延序列處理模塊,即映射F.需要證明當(dāng)增加映射F時(shí),同樣能夠保證R與R′不同為大概率事件. 定理1由于芯片制造過(guò)程中存在不可控的工藝偏差,在相同激勵(lì)c下,兩個(gè)不同PUF實(shí)現(xiàn)PUF1和PUF2的響應(yīng)間的距離Δ(r,r′)?=0為大概率事件,即滿足公式(1). 證明:上述不等式中?取無(wú)窮小時(shí)也能保證其不等式成立.利用反證法,假設(shè)向量R=R′.根據(jù)第2.3節(jié)中對(duì)映射F(D,R)的說(shuō)明,當(dāng)R=R′時(shí),存在兩種可能情況.第一種情況為向量D=D′,第二種情況為D?=D′,但是向量D中的所有元素D i(1≤i≤n,n為整數(shù))構(gòu)成的集合與向量D′中的所有元素D′i構(gòu)成的集合相等.這種情況說(shuō)明在同一個(gè)激勵(lì)C下,兩個(gè)不同的PUF核心電路能夠產(chǎn)生相同的時(shí)延,顯然違背了在PUF設(shè)計(jì)中遵循的原則.故向量R與R′在實(shí)驗(yàn)標(biāo)準(zhǔn)下是大概率不同的. 一般來(lái)說(shuō),在FPGA上實(shí)現(xiàn)的PUF設(shè)計(jì)中,硬件資源的消耗是PUF設(shè)計(jì)者必須要考慮的問(wèn)題.對(duì)輕量化的設(shè)備而言,PUF一般用于認(rèn)證,此時(shí)PUF設(shè)計(jì)不應(yīng)該占用太多的硬件資源,應(yīng)當(dāng)在合理的范圍內(nèi)控制PUF的規(guī)模,否則IC的正常功能會(huì)受到影響. 此外,由于FPGA中資源空間有限,在實(shí)現(xiàn)PUF結(jié)構(gòu)時(shí)需要考慮各項(xiàng)資源(LUT、寄存器、觸發(fā)器等)占比大小,減少資源使用面積可能會(huì)導(dǎo)致PUF關(guān)鍵路徑時(shí)延增大,減緩運(yùn)行速度.因此,如何協(xié)調(diào)好速度和面積之間的關(guān)系也是PUF設(shè)計(jì)中面臨的問(wèn)題. 基于時(shí)延的FPGAPUF電路結(jié)構(gòu)通常采用激勵(lì)響應(yīng)模式,鏈路結(jié)構(gòu)的靈活性使得生成1比特響應(yīng)需要的硬件資源動(dòng)態(tài)變化.對(duì)于APUF來(lái)說(shuō),生成1比特響應(yīng)的硬件資源消耗與單個(gè)時(shí)延模塊個(gè)數(shù)成正比.對(duì)于RO PUF來(lái)說(shuō),RO PUF電路結(jié)構(gòu)與振蕩電路中的反相器個(gè)數(shù)和多路選擇器選擇方式有關(guān). CCD-PUF的硬件資源消耗與PUF核心電路個(gè)數(shù)成正比.根據(jù)第1節(jié)(PUF設(shè)計(jì))所述,PUF核心電路包括主電路與測(cè)量電路兩個(gè)部分.主電路是寄存器連接組合電路的形式,此結(jié)構(gòu)在FPGA設(shè)計(jì)中普遍存在,其占用的硬件資源有限.以組合電路是查找表為例,主電路僅包括兩個(gè)寄存器以及一個(gè)LUT和所需要的連線.測(cè)量電路是PUF電路中額外需要的電路資源,其包括影子寄存器、組合電路和觸發(fā)器. 總體來(lái)看,與傳統(tǒng)時(shí)延電路相比,本文的CCD-PUF電路資源消耗主要在于原子電路,額外需要一個(gè)寄存器和一個(gè)觸發(fā)器就可以將電路的時(shí)延特征提取出來(lái).在本文4.1節(jié)給出了CCD-PUF的硬件資源消耗情況統(tǒng)計(jì)結(jié)果.在相同資源約束的條件下,CCD-PUF比傳統(tǒng)基于時(shí)延的PUF能夠產(chǎn)生更多的PUF響應(yīng). 唯一性指的是不同芯片電路的差異程度,主要體現(xiàn)在電路生成的PUF響應(yīng)具有的隨機(jī)特性.如果PUF響應(yīng)存在某種關(guān)聯(lián)或者變化趨勢(shì),就容易遭受到建模攻擊,攻擊者根據(jù)PUF的部分CRP進(jìn)行建模并針對(duì)某激勵(lì)信號(hào)預(yù)測(cè)其響應(yīng),失去唯一性的PUF電路其安全性面臨巨大威脅. 另外在認(rèn)證方面,PUF唯一性影響了兩個(gè)不同的PUF實(shí)現(xiàn),相同激勵(lì)產(chǎn)生相同響應(yīng)的概率.使用唯一性不滿足要求的PUF設(shè)計(jì)做認(rèn)證,就可能出現(xiàn)誤認(rèn)情況,這在認(rèn)證協(xié)議中是不允許出現(xiàn)的.因此如何提高PUF唯一性也是PUF設(shè)計(jì)的關(guān)鍵問(wèn)題.PUF的唯一性可以衡量PUF作為“物理指紋”的能力,有效地提高PUF的唯一性可以在實(shí)際認(rèn)證中,更容易達(dá)到識(shí)別設(shè)備的目的. 本文的CCD-PUF電路能夠生成一組精確時(shí)延序列,對(duì)于兩組不同激勵(lì),兩組響應(yīng)時(shí)延間的差值滿足一定閾值時(shí),可以區(qū)分兩個(gè)PUF核心電路的唯一性.例如當(dāng)激勵(lì)為010101···時(shí),某PUF核心電路的時(shí)延為D a;而激勵(lì)為101010···時(shí),該P(yáng)UF核心電路的時(shí)延為D b.將兩個(gè)時(shí)延的差值取絕對(duì)值記為δ(|D a?D b|).設(shè)定一個(gè)閾值Δ,若δ>Δ,則表明在不同激勵(lì)下PUF核心電路能夠產(chǎn)生差異很大的兩個(gè)響應(yīng),證明該P(yáng)UF核心電路唯一性較好.反之,當(dāng)δ<Δ,表明該P(yáng)UF核心電路唯一性不夠好,則對(duì)效果不好的電路進(jìn)行拋棄,保留唯一性好的PUF電路作為最后的實(shí)現(xiàn)電路. 若CCD-PUF的兩個(gè)實(shí)現(xiàn)PUF-n和PUF′-n的響應(yīng)之間的距離稱為片間距離,定義為: 設(shè)r和r′為某一個(gè)特定激勵(lì)c下,PUF-n和PUF′-n分別產(chǎn)生的響應(yīng).當(dāng)兩個(gè)響應(yīng)為比特串形式時(shí),片間距離可以轉(zhuǎn)化為漢明距離(片間漢明距離)的計(jì)算,公式如下: 其中n為PUF響應(yīng)位數(shù),Δ(r i,r′j)為兩組響應(yīng)之間的漢明距離,k為兩個(gè)響應(yīng)的計(jì)算組數(shù).CCD-PUF核心電路可以產(chǎn)生精確時(shí)延也可以產(chǎn)生0或1的比特結(jié)果,實(shí)驗(yàn)結(jié)果見(jiàn)第4.2節(jié). PUF為硬件設(shè)備提供認(rèn)證或加密功能時(shí),要考慮其安全屬性.一般來(lái)說(shuō),用作認(rèn)證的PUF設(shè)計(jì),要能夠防止攻擊者構(gòu)建PUF模型,阻止攻擊者預(yù)測(cè)任一激勵(lì)所產(chǎn)生的響應(yīng).PUF的安全性關(guān)注克隆、篡改以及PUF協(xié)議引入的安全性問(wèn)題[19]以及對(duì)PUF進(jìn)行側(cè)信道分析[20].CCD-PUF核心電路可以產(chǎn)生精確時(shí)延,并對(duì)精確時(shí)延進(jìn)行升序排序. 針對(duì)PUF的攻擊一般不考慮物理破壞.因?yàn)楣粽咭坏┪锢砥茐腜UF實(shí)體,則不能夠利用PUF簽名偽造身份或者得到PUF密鑰.PUF的安全性問(wèn)題主要基于以下幾個(gè)方面: (1)對(duì)PUF實(shí)現(xiàn)的克隆攻擊; (2)對(duì)PUF實(shí)現(xiàn)進(jìn)行猜測(cè)攻擊; (3)對(duì)PUF實(shí)現(xiàn)利用機(jī)器學(xué)習(xí)進(jìn)行建模攻擊. CCD-PUF中PUF-n能夠產(chǎn)生一組精確時(shí)延序列向量R(R1,R2,···,R n)作為最后的響應(yīng)結(jié)果,對(duì)應(yīng)激勵(lì)記為C.該時(shí)延序列具有升序順序.為簡(jiǎn)潔起見(jiàn),我們使用符號(hào)Π:X→Y(Π(x)=y)表示PUF Π的激勵(lì)響應(yīng)映射關(guān)系.分別對(duì)上述攻擊方式進(jìn)行安全性分析: (1)克隆攻擊.不可克隆性是PUF的核心屬性.對(duì)于某一PUF克隆c來(lái)說(shuō),若不能提出任一包含另一個(gè)PUFΠc?=Π的物理實(shí)體,使得?x:Πc(x)≈Π(x),則證明Π在物理上是不可克隆的.論證理論上的不可克隆性非常困難,唯一可以證明在理論上是不可克隆的已知系統(tǒng)是基于量子物理學(xué)的.若攻擊者嘗試去克隆PUF-n,首先要克隆PUF(C,d).而映射關(guān)系PUF(C,d)的安全性由PUF自身的安全屬性所保護(hù).目前已知的物理克隆攻擊主要針對(duì)基于存儲(chǔ)的PUF電路結(jié)構(gòu)[21],由于本文PUF方案屬于時(shí)延PUF類型,故此攻擊方法對(duì)于本文方案的實(shí)現(xiàn)難度與其他時(shí)延PUF一致,暫無(wú)此類攻擊成功案例. (2)窮舉攻擊.對(duì)手嘗試去猜測(cè)某一激勵(lì)下對(duì)應(yīng)的響應(yīng)來(lái)偽造認(rèn)證.使用傳統(tǒng)的時(shí)延PUF設(shè)計(jì)方案,窮舉的復(fù)雜度為O(2n),其中n為激勵(lì)與響應(yīng)的位數(shù).由于窮舉的復(fù)雜度為指數(shù)型增長(zhǎng),增加n的大小,可以降低攻擊者猜測(cè)正確的概率. 對(duì)于CCD-PUF來(lái)說(shuō),對(duì)手需要窮舉的是二維向量(C,R)之間的對(duì)應(yīng)關(guān)系.具體地,CCD-PUF的輸出響應(yīng)向量R即能夠?qū)r(shí)延具體轉(zhuǎn)換為比特型數(shù)據(jù)格式的響應(yīng)輸出,也可以是時(shí)延值類型的響應(yīng)輸出.CCD-PUF比特?cái)?shù)據(jù)格式的響應(yīng)具有nbit的激勵(lì)位數(shù)以及響應(yīng)位數(shù). PUF-n由n個(gè)PUF(C,d i)(i=0,1,···,n)組成.對(duì)手猜測(cè)(C,R)即需要猜測(cè)出(C,d i)(i=0,1,···,n).每一個(gè)PUF核心電路的響應(yīng)d i都是單比特的窮舉空間,具有兩種可能性.因此整個(gè)PUFn的響應(yīng)窮舉空間大小為n,故CCD-PUF在這種情況下的窮舉空間為2n,猜測(cè)出(C,R)的復(fù)雜度為O(2n).第二種響應(yīng)格式下,CCD-PUF產(chǎn)生時(shí)延值類型的響應(yīng),這種情況下每個(gè)核心電路PUF(C,d i)(i=0,1,···,n)的窮舉空間為正實(shí)數(shù)范圍內(nèi)的任意值,與比特類型相比,響應(yīng)值的可能性更多,且明顯大于2,假設(shè)為常數(shù)c.故這種情況下,猜測(cè)成功的復(fù)雜度為O(c n). (3)建模攻擊(modeling attack).機(jī)器學(xué)習(xí)方法是一種有效攻擊傳統(tǒng)時(shí)延PUF的手段.在文獻(xiàn)[22,23]中,提出了對(duì)于APUF類型的各種機(jī)器學(xué)習(xí)攻擊方法.APUF由于其線性的電路結(jié)構(gòu),適用于建模攻擊并進(jìn)行預(yù)測(cè).CCD-PUF與APUF和RO PUF類似,均是由核心電路實(shí)例化若干個(gè)來(lái)組成整體PUF電路的. CCD-PUF在電路結(jié)構(gòu)后方具有時(shí)延處理模塊,此模塊表示的函數(shù)為非線性函數(shù)映射.CCD-PUF產(chǎn)生的響應(yīng)為時(shí)延序列R(R1,R2,···,R n),而向量R是通過(guò)映射函數(shù)F(D,R)得到的.對(duì)于傳統(tǒng)機(jī)器學(xué)習(xí)可以有效預(yù)測(cè)APUF中(C,D)之間的關(guān)系.目前尚未知道CCD-PUF與APUF類型的建模區(qū)別,假設(shè)CCD-PUF與APUF的模型復(fù)雜度一致.由于增加了映射函數(shù)F,不直接輸出向量D,構(gòu)建的模型與APUF不一致,會(huì)額外增加函數(shù)F的影響,故增加了建模的困難度.此外與APUF相比,CCD-PUF方案在相同資源消耗的情況下,能夠?qū)嵗嗟暮诵碾娐?產(chǎn)生響應(yīng)的范圍更大.APUF響應(yīng)位數(shù)的增加會(huì)直接影響預(yù)測(cè)的精確度,根據(jù)假設(shè)APUF與CCD-PUF的建模復(fù)雜度一致,則產(chǎn)生更多的響應(yīng)位數(shù)會(huì)降低預(yù)測(cè)的精確度. 本文實(shí)現(xiàn)了128個(gè)2.2節(jié)所述核心電路實(shí)例來(lái)產(chǎn)生一個(gè)128 bit的簽名.實(shí)驗(yàn)平臺(tái)采用xc6slx9(Xilinx Spartan-6).Xilinx Spartan-6 FPGA的每塊開(kāi)發(fā)板上具有大約11 000個(gè)寄存器以及大約5700個(gè)LUT,此外開(kāi)發(fā)板上有一個(gè)串口RS-232輸出,用該串口將PUF的響應(yīng)結(jié)果傳送給PC來(lái)進(jìn)行觀察統(tǒng)計(jì).本文采用4個(gè)Xilinx Spartan-6 FPGA芯片,每個(gè)芯片利用其中的6片區(qū)域進(jìn)行PUF實(shí)現(xiàn),每個(gè)區(qū)域生成一組128 bit PUF響應(yīng),實(shí)驗(yàn)結(jié)果共有24組PUF響應(yīng)數(shù)據(jù). 實(shí)驗(yàn)?zāi)繕?biāo): (1)通過(guò)在FPGA實(shí)現(xiàn)CCD-PUF設(shè)計(jì)方案,來(lái)證明CCD-PUF方案的可行性. (2)對(duì)實(shí)現(xiàn)的CCD-PUF方案的激勵(lì)響應(yīng)結(jié)果和所使用的硬件資源進(jìn)行統(tǒng)計(jì),計(jì)算CCD-PUF的各項(xiàng)指標(biāo),包括唯一性、穩(wěn)定性以及硬件資源消耗,以此證明CCD-PUF達(dá)到了PUF實(shí)用性標(biāo)準(zhǔn)并且解決了現(xiàn)有時(shí)延PUF存在的問(wèn)題. 實(shí)例化128個(gè)PUF核心電路作為實(shí)驗(yàn)對(duì)象,給定某一激勵(lì),128個(gè)PUF核心電路的響應(yīng)記為d1,d2,···,d127.首先,本文進(jìn)行了PUF核心電路響應(yīng)的實(shí)驗(yàn)測(cè)試.具體地,選取一系列輸入激勵(lì)進(jìn)行測(cè)試,得到了128個(gè)核心電路產(chǎn)生的響應(yīng)結(jié)果(即電路時(shí)延).不同激勵(lì)c1和c2下,某PUF核心電路產(chǎn)生的響應(yīng)結(jié)果如表1所示,其中激勵(lì)c1為0xAAAAAAAAAAAAAAAA,激勵(lì)c1為0x5555555555555555.響應(yīng)通過(guò)上位機(jī)程序接收,利用激勵(lì)c1與c2對(duì)某一CCD-PUF實(shí)例進(jìn)行1000次測(cè)試,分別統(tǒng)計(jì)兩個(gè)激勵(lì)下響應(yīng)對(duì)應(yīng)的平均時(shí)延分別為d=1.349 ns和d′=2.815 ns.計(jì)算得|d?d′|=1.466 ns,因此將Δ=1.466 ns作為CCD-PUF的判別閾值.實(shí)測(cè)階段中某一CCD-PUF實(shí)例單元在激勵(lì)c1與c2下時(shí)延差值低于Δ時(shí)會(huì)被丟棄,反之則保留,以此提高CCD-PUF的時(shí)延差異性. 表1 不同激勵(lì)下PUF方案的響應(yīng)情況Table 1 Response of PUF scheme under different challenge 第二步,上述產(chǎn)生的PUF核心電路響應(yīng),通過(guò)1.3節(jié)所述的時(shí)延序列處理模塊進(jìn)行處理,時(shí)延序列處理模塊包括C語(yǔ)言實(shí)現(xiàn)的排序程序.在FPGA與單片機(jī)構(gòu)成的SoC(system-on-a-chip)系統(tǒng)中,時(shí)延序列處理模塊在單片機(jī)中實(shí)現(xiàn),該時(shí)延序列處理模塊對(duì)CCD-PUF的原始路徑時(shí)延進(jìn)行處理.FPGA產(chǎn)生的PUF響應(yīng)傳輸?shù)絾纹瑱C(jī)中的處理模塊進(jìn)行排序,即可得到最終的響應(yīng)時(shí)延序列.例如在激勵(lì)c1與c2下,某次CCD-PUF的最終時(shí)延序列由原始的 最后,對(duì)PUF唯一性和穩(wěn)定性指標(biāo)的統(tǒng)計(jì)數(shù)據(jù)計(jì)算,需要將精確時(shí)延響應(yīng)結(jié)果轉(zhuǎn)換成比特串形式的響應(yīng)進(jìn)行計(jì)算,方便與其他類型的PUF設(shè)計(jì)進(jìn)行指標(biāo)的比較.所用方法為:選擇兩個(gè)漢明距為128的激勵(lì)作為輸入,統(tǒng)計(jì)所產(chǎn)生的時(shí)延響應(yīng)的中位數(shù)作為閾值,將大于該閾值的時(shí)延響應(yīng)記為1,反之記為0.對(duì)于兩對(duì)響應(yīng)來(lái)說(shuō),可以拋棄響應(yīng)差絕對(duì)值較小的PUF響應(yīng).由此得到了PUF核心電路128個(gè)實(shí)例化的128個(gè)比特結(jié)果,表1為本文PUF方案產(chǎn)生響應(yīng)的比特形式結(jié)果. 對(duì)具體實(shí)驗(yàn)方案所產(chǎn)生的PUF響應(yīng)結(jié)果進(jìn)行數(shù)據(jù)統(tǒng)計(jì),整理了128 bit響應(yīng)的CCD-PUF對(duì)應(yīng)的硬件資源、唯一性以及穩(wěn)定性結(jié)果. 4.3.1 硬件資源 生成單比特PUF響應(yīng)時(shí),CCD-PUF僅使用3個(gè)寄存器和1個(gè)LUT以及1個(gè)觸發(fā)器等,由于主電路為簡(jiǎn)單的組合電路節(jié)約了硬件空間.傳統(tǒng)的時(shí)延PUF需要對(duì)PUF電路其本身進(jìn)行設(shè)計(jì),它們使用多個(gè)LUT、寄存器等硬件資源來(lái)產(chǎn)生單比特PUF響應(yīng).表2為CCD-PUF產(chǎn)生128 bit響應(yīng)時(shí)FPGA上的資源消耗情況,可以看到硬件資源占用率不足整體資源的4%.表3顯示,本文實(shí)現(xiàn)128 bit的PUF需要128個(gè)Slice,而如Anderson PUF等[17]使用兩個(gè)Slice產(chǎn)生單比特PUF響應(yīng)的設(shè)計(jì)會(huì)使用Slice數(shù)目加倍;由于每個(gè)APUF單元占用4個(gè)Slice與16個(gè)LUT,故實(shí)例化產(chǎn)生PUF激勵(lì)需要大量的硬件資源. 表2 128 bit PUF資源消耗占總FPGA的比例Table 2 128 bit PUF hardware resource consumption of total FPGA 表3 128 bit各種類型PUF資源消耗對(duì)比Table 3 Comparison of various types of PUF(128 bit)resource consumption 4.3.2 唯一性 兩個(gè)相同PUF設(shè)計(jì)在同一顆芯片上不同區(qū)域的實(shí)現(xiàn)或是在兩個(gè)不同芯片上的實(shí)現(xiàn)通常具有差異性.由于PUF技術(shù)被看作是“物理指紋”,因此不同實(shí)現(xiàn)之間應(yīng)該具有差異性.兩個(gè)相同PUF設(shè)計(jì)的不同實(shí)現(xiàn)產(chǎn)生響應(yīng)的差異(或叫做距離)被稱為片間距離.通過(guò)比較兩個(gè)PUF響應(yīng)之間的相似程度來(lái)判定PUF是否唯一,如果產(chǎn)生的2個(gè)響應(yīng)結(jié)果相同或者極為相近時(shí),則認(rèn)定該P(yáng)UF結(jié)構(gòu)不具有唯一性.當(dāng)兩個(gè)響應(yīng)的形式為比特串時(shí),片間距離的計(jì)算可以轉(zhuǎn)化為片間漢明距離的計(jì)算.一個(gè)PUF響應(yīng)為n位,k為兩個(gè)響應(yīng)的計(jì)算組數(shù),兩個(gè)PUF實(shí)現(xiàn)間的平均漢明距離利用公式(3)進(jìn)行計(jì)算. 理想情況下,PUF平均漢明距離是50%時(shí),說(shuō)明該P(yáng)UF的唯一性最好.對(duì)24組PUF實(shí)現(xiàn)在不同區(qū)域進(jìn)行實(shí)驗(yàn),圖3所示為CCD-PUF唯一性統(tǒng)計(jì)結(jié)果,其中最小與最大漢明距離分別為51和83,所有24組數(shù)據(jù)互相比較得到的276組片間距離的平均值為63.752,接近理想值64(128的50%).從表中也可以看出數(shù)據(jù)符合高斯分布,中位數(shù)接近64. 圖3 24組PUF實(shí)現(xiàn)的片間漢明距離的密度分布圖Figure 3 Density distribution of inter-Hamming distance between 24 groups of PUFs 4.3.3 穩(wěn)定性 與唯一性計(jì)算不同的是,穩(wěn)定性用來(lái)衡量PUF在多次相同激勵(lì)下是否能夠保持相同響應(yīng)的能力.理想情況下,無(wú)論在什么環(huán)境中重復(fù)多少次實(shí)驗(yàn),同一激勵(lì)信號(hào)對(duì)應(yīng)輸出的響應(yīng)應(yīng)該完全一致.然而在實(shí)際環(huán)境中,PUF在FPGA上的實(shí)現(xiàn)受到溫度、電壓、設(shè)備老化等諸多因素影響,致使PUF電路中時(shí)延產(chǎn)生變化,最終導(dǎo)致輸出響應(yīng)的改變.大量重復(fù)實(shí)驗(yàn)生成的響應(yīng)信號(hào)間距離越小,說(shuō)明該P(yáng)UF實(shí)現(xiàn)具有很好的穩(wěn)定性.與唯一性的計(jì)算相似,通常計(jì)算響應(yīng)比特間的漢明距離進(jìn)行比較.對(duì)24組PUF實(shí)現(xiàn)在不同時(shí)間進(jìn)行2次實(shí)驗(yàn),圖4所示為CCD-PUF穩(wěn)定性統(tǒng)計(jì)結(jié)果.48個(gè)統(tǒng)計(jì)結(jié)果的片內(nèi)漢明距離均在[0:5]的區(qū)間內(nèi),平均值為1.426(128比特的1.114%),故穩(wěn)定性為98.886%. 圖4 不同時(shí)間下24組PUF實(shí)現(xiàn)的片內(nèi)漢明距離的密度分布圖Figure 4 Density distribution of intra-Hamming distance implemented by 24 groups of PUFs at different times 表4所示為CCD-PUF與常見(jiàn)類型PUF在性能表現(xiàn)方面的對(duì)比.唯一性方面,CCD-PUF比APUF、RO PUF以及Anderson PUF高大約1-3%,達(dá)到了49.81%;穩(wěn)定性方面,CCD-PUF略低于RO PUF,而比APUF以及Anderson PUF高大約2-4%.綜合前面的數(shù)據(jù)與分析,本文提出的CCD-PUF設(shè)計(jì)具有良好的穩(wěn)定性、唯一性,以及較少的硬件資源消耗等優(yōu)點(diǎn). 表4 常見(jiàn)PUF電路結(jié)構(gòu)性能對(duì)照(%)Table 4 Comparison of common PUF circuit structure performance(%) 本文提出了CCD-PUF設(shè)計(jì),該新型結(jié)構(gòu)利用原子電路(由組合電路以及寄存器構(gòu)成)的時(shí)延來(lái)產(chǎn)生PUF響應(yīng),其目的在于減少時(shí)延類型PUF在硬件資源方面的開(kāi)銷.CCD-PUF的主要原理是測(cè)量文中提出的一種原子電路上的時(shí)延.首先,原子電路為寄存器到組合邏輯電路到寄存器的一種電路結(jié)構(gòu),只需要通過(guò)一個(gè)額外的寄存器就可以捕獲到原子電路上的精確時(shí)延,這樣的設(shè)計(jì)極大減少了硬件資源開(kāi)銷.其次,因?yàn)镃CD-PUF可以獲得精確的時(shí)延,對(duì)于某些達(dá)不到時(shí)延要求的原子電路,就可以進(jìn)行拋棄,從而提升PUF電路的唯一性和穩(wěn)定性.最后,CCD-PUF引入時(shí)延序列的概念,可以更為方便地對(duì)PUF時(shí)延響應(yīng)進(jìn)行處理,例如對(duì)PUF電路產(chǎn)生的精確時(shí)延進(jìn)行混淆,增加建模分析的復(fù)雜度,從而達(dá)到安全性需求. 通過(guò)實(shí)驗(yàn)證明,本文提出的CCD-PUF占用了不足4%的整體硬件資源,唯一性性能夠達(dá)到49.806%,比APUF、RO PUF以及Anderson PUF高約1-3%.對(duì)于輕量化而言,在產(chǎn)生相同數(shù)量響應(yīng)的情況下,CCD-PUF相比Anderson PUF減少了一倍Slice的使用.就穩(wěn)定性而言,CCD-PUF達(dá)到98.886%,比APUF和毛刺PUF高約2-4%.未來(lái)的研究工作將集中于分析CCD-PUF方案是否能夠有效抵抗機(jī)器學(xué)習(xí)等建模攻擊.3 關(guān)鍵問(wèn)題
3.1產(chǎn)生CRP方式
3.2 降低硬件資源消耗
3.3 如何提高PUF唯一性
3.4 安全性理論分析
4 實(shí)驗(yàn)結(jié)果與分析
4.1 實(shí)驗(yàn)設(shè)置與實(shí)驗(yàn)?zāi)繕?biāo)
4.2 實(shí)驗(yàn)方案
4.3 實(shí)驗(yàn)結(jié)果
5 總結(jié)