孫子文 葉 喬
①(江南大學物聯網工程學院 無錫 214122)
②(物聯網技術應用教育部工程研究中心 無錫 214122)
隨著物聯網(Internet of Things, IoT)技術的發展,無線射頻識別(Radio Frequency IDentification, RFID)技術也受到廣泛關注[1]。其中,關于RFID用戶隱私信息的安全問題已經引發消費者的重點關注。由于體積、資源、功耗等方面的限制,傳統的高級加密標準、橢圓加密算法等加密算法應用于RFID時存在局限性[2]。物理不可克隆函數(Physically Unclonable Function, PUF)利用集成芯片制造工藝的差異,實現對不同的激勵產生特定的激勵響應對(Challenge Response Pairs,CRPs)[3]。作為一種輕量級的安全原語,PUF所產生的不可預測性的CRPs可有效地解決RFID、智能卡等物理實體的安全問題[4]。
圍繞不同PUF產生機制的研究較為成熟。目前比較常見的PUF類型有:SRAM PUF[5]、觸發器PUF[6]、 鎖 存 PUF[7]、 蝴 蝶 PUF[8]、 仲 裁 器PUF[9,10]、環形震蕩器PUF (Ring-Oscillator PUF,RO PUF)[11-13]以及毛刺PUF[14]。其中,RO PUF相比較其他各種PUF,更容易在FPGA上進行布局實現,并且具有優良的性能,所以被廣泛的使用[3]。RO PUF中比較有代表性的是Suh等人[11]提出的PUF方案,該方案擁有比較簡單的熵評價標準并且很方便在FPGA上進行設計。
Suh等人[11]提出的RO PUF的原理通過比較兩個隨機選取的震蕩環的頻率值大小產生信息熵。這種方案每次一組環形震蕩器只能產生1位信息熵,隨著RO PUF需要生產的隨機信息數量的增加,所消耗的資源也將成倍地增加[15]。同時,工作溫度對頻率的影響很大,當a震蕩環在一個溫度下比b震蕩環頻率高,而在另一個溫度下比b震蕩環頻率低時,這種頻率交叉變化會使這對環形震蕩器產生的信息熵不可靠。ROPUF存在環形震蕩器提取的信息熵數量少,以及信息熵的可靠性易受溫度影響等問題。
為消除溫度對PUF的信息熵可靠性的影響,Maiti等人[12]提出可配置的RO PUF(Configurable RO PUF, CRO PUF)。CRO PUF通過在FPGA上頻率差異最大的區域布置CRO,然后選取一對CRO產生信息熵。此方法在一定程度上降低了溫度的影響,不過在溫度變化較大的情況下依然會存在比特跳變[16],可靠性不能得到完全的保證。同時,為了選取頻率差異較大的區域布置CRO,導致所能部署的CRO數量極大地減少,進而影響了CRO PUF一次所能產生隨機數據的數量。因此,為了保證CRO PUF一次產生足夠長的可靠的隨機數據,解決一對CRO提取信息熵的數量少和震蕩器易受溫度的影響等問題仍然是關鍵。
為了解決RO PUF和CRO PUF方案存在的震蕩環單元提取信息熵位數少、易受溫度影響等問題,本文采用一種提取多位可靠信息熵的PUF方案ME-ROPUF(Muitibit Entropy RO PUF)。MEROPUF方案中,通過對FPGA中震蕩環頻率數據的分析,采用提取震蕩環的頻率特征位產生信息熵的方法來替代RO PUF比較頻率大小產生信息熵的方法,有效地提高PUF產生信息熵的數量;此外,通過對逆變器時延受溫度影響的分析,ME-ROPUF方案中環形震蕩器采用由電流饑餓逆變器[17]和傳統逆變器組成的混合可配置環形震蕩器(Hybrid CRO, HCRO)[16]單元,從而減小溫度對環形震蕩器頻率的影響,降低不同溫度下PUF信息熵的跳變率,提高ME-ROPUF的可靠性。
ME-ROPUF采用提取多位信息熵方法以及HCRO單元產生多位可靠信息熵,其中,提取多位信息熵方法是基于對FPGA震蕩環特征的研究,而HCRO是基于對逆變器溫度特性的研究。
環形震蕩器在FPGA上是由同構的硬宏單元組成,但由于集成芯片制造工藝的差異,環形震蕩器的時延會有一定的差異[17]。結合Maiti等人[12]提出的震蕩環的時延模型,并且將時延數據轉化成頻率時,其轉化過程會存在偏斜效應[18],這種偏斜效應會使在同一制造工藝、同一位置的環形震蕩器多次測量的頻率存在偏差。那么,環形震蕩器的頻率組成成分表示為式(1)


圖1 不同RO的頻率分布圖



由于MOS管處于不同區域時,漏極電流與溫度的關系呈現相反的狀態,這就為構建一種能夠降低溫度影響的環形震蕩器提供了可能。
ME-RO PUF整體結構如圖2,主要由8個5階的HCRO單元、9個24位計數器和一個特征位提取器組成,其中特征位提取器實現的功能是從24位頻率數據中選出指定的幾位數據。ME-ROPUF的激勵數據作為激勵信號配置5階的HCRO單元,計數器和HCRO單元受到觸發信號開始工作。當計數器1的計數值達到參考值時所有計數器停止計數,然后特征位提取器從計數器2~9所產生的24位二進制頻率數據中分別選取頻率特征位區域組成響應數據輸出。
ME-ROPUF為了降低溫度對環形震蕩器頻率的影響,使用HCRO單元產生震蕩頻率;為了提高從環形震蕩器中提取多位信息熵,采用提取頻率特征位的方法產生信息熵。
環形震蕩器的時延主要取決于組成環形震蕩器的逆變器的時延,由于逆變器的時延會受到溫度的影響,所以環形震蕩器的頻率也會受到溫度影響。常規逆變器的MOS管是工作于飽和區,逆變器的時延與溫度呈現正相關變化。為了降低溫度對環形震蕩器頻率的影響,可根據電流饑餓逆變器的MOS管是工作在截止區且其時延與溫度呈現負相關變化的特性,將環形震蕩器的部分常規逆變器替換成電流饑餓逆變器。饑餓逆變器和常規逆變器組成的HCRO單元的結構如圖3所示。
電流饑餓逆變器是在常規逆變器上下分別增加1個PMOS管和1個NMOS管,通過偏置電壓 Vp和Vn使圖4中逆變器的MOS管工作于截止區域。

圖2 ME-ROPUF整體框圖

圖3 HCRO結構

圖4 電流饑餓逆變器

圖5 3種震蕩環頻率隨溫度變化圖
采用cadence virtuoso中specture環境進行蒙特卡洛仿真,比較了常規逆變器CRO、電流饑餓逆變器CRO與HCRO的頻率受溫度影響的變化情況,如圖5所示。由圖5可知,以27°C作為參考溫度,常規逆變器CRO單元所產生的頻率隨溫度升高而減小,電流饑餓逆變器CRO單元所產生的的頻率隨溫度的升高而升高,而由常規逆變器和電流饑餓逆變器組成的HCRO單元所產生的頻率基本不會受溫度的影響,因此采用HCRO單元的PUF結構擁有很好的抗溫度特性。相比較常規逆變器CRO單元和電流饑餓逆變器CRO單元,ME-ROPUF所采用的HCRO單元所受到溫度的影響更小,HCRO單元所產生的頻率受溫度影響的位數處于(0, low)區域,不影響ME-ROPUF所提取的特征位數據,提高ME-ROPUF產生信息熵的可靠性。


基于仿真和實驗兩個層面,對本文采用的方法的有效性從不同的角度進行了驗證和分析。在linux系統下,采用cadence virtuoso中specture環境進行蒙特卡洛仿真,用于驗證采用HCRO單元的ME-ROPUF結構的可靠性;使用賽靈思synq7000系列的FPGA開發板,進一步通過實驗驗證MEROPUF提取信息熵方法的有效性以及所提取信息熵的唯一性和均勻性。
linux系統下的仿真的器件工藝庫選擇的是TSMC0.18 μm, 1.8 V CMOS工藝庫。實驗使用verilog語言進行PUF結構設計,為了防止電路被優化,采用xilinx官方提供的原語操作和XDC Macro技術在FPGA的SLICEL邏輯單元中配置LUT單元和數據選擇器組成震蕩環,每個震蕩環采用9個LUT和4個數據選擇器,具體的布局如圖6所示。采用vivado自帶的ila邏輯分析儀對實驗數據進行輔助分析。
整個實驗和仿真用來驗證ME-ROPUF提取信息熵方法的有效性以及對ME-ROPUF的可靠性、唯一性和均勻性的分析。
4.2.1 ME-ROPUF提取信息熵方法的有效性
在27°環境溫度下,在FPGA上對ME-ROPUF提取信息熵方法進行驗證。ME-ROPUF產生信息熵的方法是選取準確的頻率特征位,選取準確的震蕩環特征位分為兩步。第1步,根據式(13)和式(16)求得震蕩環的 Si和Ri的 分布如圖7所示,滿足Si>0.990且Ri>0.490條件的預選區域為(13, 17)的各子區域。第2步,根據式(17)-式(20)計算不同預選區域對應的Spuf, Upuf, Rpuf以 及Vpuf,結果如表1所示。
由表1可知,(14, 17)的 Vpuf最大且Rpuf>0.45,所以選取(14, 17)作為ME-ROPUF的特征位區域,即ME-ROPUF每個震蕩環產生4位信息熵。而RO PUF使用兩個震蕩環進行比較頻率大小產生1位信息熵,故ME-ROPUF使用相同的LUT資源得到ROPUF8倍的信息熵。

圖6 震蕩環在FPGA上的布局圖
4.2.2 ME-ROPUF的可靠性
采用cadence virtuoso中specture環境進行蒙特卡洛仿真ME-ROPUF的可靠性,并與ROPUF[11],CROPUF[12]、使用CRO單元的ME-ROPUF以及使用HCRO單元的ME-ROPUF的可靠性進行了對比。根據式(17)-式(20),以室溫27°為參考溫度,仿真了實驗溫度在0°~100°范圍內變化過程中MEROPUF的可靠性,其結果如圖8所示。由圖8可知,采用HCRO單元的ME-ROPUF方案的可靠性在98.062%~99.592%之間浮動,而RO PUF, CRO PUF以及采用CRO的ME-ROPUF方案的可靠性分別在95.017%~98.142%, 96.121%~98.768%和95.809%~99.542%之間浮動。使用HCRO單元的ME-ROPUF方案的可靠性明顯高于采用CRO單元的可靠性;可靠性隨溫度變化的浮動程度也明顯小于RO PUF, CRO PUF以及采用CRO的ME-ROPUF方案,表明采用HCRO單元的ME-ROPUF方案能有效降低溫度對可靠性的影響。
4.2.3 ME-ROPUF的唯一性和均勻性
采用FPGA實驗對ME-ORPUF的唯一性和均勻性進行性能驗證,并與ROPUF[11], CRO PUF[12]和使用CRO的ME-ROPUF的唯一性和均勻性進行了對比實驗,實驗在27°下進行,結果如圖9所示。由圖9可知,ME-ROPUF的唯一性在49.897%~50.176%之間浮動,均勻性在46.290%~48.378%之間浮動,而RO PUF, CRO PUF以及采用CRO的ME-ROPUF方案的唯一性分別在49.621%~50.369%, 49.604%~50.274%和49.752%~50.238%之間浮動,均勻性分別在46.395%~47.807%, 46.959%~47.809%和46.086%~48.936%之間浮動。表明相對于其他幾種方案,ME-ROPUF方案的唯一性都得到了改善,均勻性相差不大。

圖7 位穩定性和位隨機性分布圖

表1 預選區域性能指標

圖8 PUF的可靠性

圖9 PUF的唯一性和均勻性
ROPUF作為一種可靠的硬件加密原語,為低功耗設備不適合使用傳統的加密方法提出新的解決方案。但是ROPUF易受到溫度的影響且震蕩環所產生的信息熵數量少。本文采用的ME-ROPUF方案采用提取震蕩環特征位的方法來提取更多信息熵,并采用HCRO單元來降低溫度對震蕩環頻率的影響,從而能夠有效的提高PUF的可靠性、唯一性以及信息熵數量。ME-RO PUF可靠性提升到98.062%以上,唯一性在49.621%~50.369%浮動,相同的LUT資源得到8倍的RO PUF信息熵。