潘畬穌,張繼軍,,張釗鋒
(1.上海大學 材料科學與工程學院,上海 201900; 2.中國科學院上海高等研究院,上海 200120)
隨著RFID技術的不斷發(fā)展和廣泛應用,用戶隱私密鑰泄露等安全問題變得越來越重要。傳統(tǒng)RFID通信系統(tǒng)應用對稱加密時,標簽將密鑰信息存儲在非易失性存儲器中,但這種方式容易被竊取或惡意篡改。物理不可克隆函數(shù)(Physical Unclonable Function,PUF)以其不可克隆的理想特性,被認為是一種具有應用前景的安全構建模塊,可用于各種認證和識別應用的密鑰。PUF信息是電路在制造過程由工藝造成的差異產(chǎn)生的,電路下電后其響應信息自動湮滅,不容易被攻擊[1-2]。
近年來,國內(nèi)外學者對PUF在安全通信方面的應用進行了深入研究[3-5],但多數(shù)研究均沒有考慮到PUF在實際使用過程中的穩(wěn)定性處理問題。因為相同的PUF在每次響應時往往還存在一定差異,所以不能直接作為密鑰使用。針對PUF響應的穩(wěn)定性處理問題,文獻[6-7]提出一種利用模糊提取器得到穩(wěn)定輸出,該方法雖然能夠有效糾正PUF的錯誤響應,但是運算量較大,不適用于計算力、面積與功耗等受限的標簽。文獻[8]提出將PUF響應行為看作布爾函數(shù),并與傅里葉變換分析相結(jié)合,該方案的運算量較糾錯碼方案減小了很多,然而,利用8 kB的SRAM生成128 bit的密鑰對于標簽而言成本較高。文獻[9]提出的反向模糊提取器雖然可以大幅降低標簽的負擔,但是當PUF片間距離較大時,硬件開銷也會隨之增加。為了降低PUF的片間距離,以減小ECC糾錯負擔,文獻[10-12]提出各種預選位方法,以選擇最穩(wěn)定的PUF單元,但各種預選位方法都需要在大量的PUF源中進行測試挑選,造成多數(shù)PUF單元被浪費。
本文通過對SRAM PUF進行研究,利用其非穩(wěn)定位且總是相鄰的特點,提出基于條件概率的預選位方法。結(jié)合反向模糊提取器設計了應用于RFID標簽密鑰生成的SRAM PUF處理模塊,以在非正常工作條件下達到較小失敗率。
硅PUF由于原理和結(jié)構的不同存在基于時延的仲裁PUF、環(huán)形振蕩器PUF、基于失配的SRAM PUF、蝶形PUF以及基于電流的PUF等各種類型。
SRAM作為傳統(tǒng)存儲器被普遍嵌入各種電子商品。每個SRAM單元都具有優(yōu)先上電狀態(tài),而優(yōu)先上電狀態(tài)對于不同SRAM單元和不同芯片都各不相同,這種上電模式可以作為PUF。SRAM PUF是目前最受歡迎的硅PUF之一,它無需硬件修改和額外硬件開銷即可作為PUF模塊[13-14]。因此,本文采用SRAM作為標簽的PUF源,并以此展開研究。
PUF測量物理電路特性以產(chǎn)生響應,然而與任何物理測量一樣,SRAM PUF的響應值不可避免地受到熱噪聲和不同環(huán)境條件的影響,因此,PUF響應的復制不是完全穩(wěn)定的[15]。為了穩(wěn)定噪聲響應得以在加密協(xié)議中使用,需要引入模糊提取器提取PUF響應的穩(wěn)定部分并生成密鑰。
基于code-offset的模糊提取器結(jié)構如圖1所示[16],其通過注冊和重現(xiàn)2個階段產(chǎn)生SRAM PUF密鑰。在注冊階段,通過Gen()產(chǎn)生輔助數(shù)據(jù)W,該輔助數(shù)據(jù)在重現(xiàn)階段用來通過Rep()恢復響應。Gen()和Rep()分別為相應糾錯碼的編碼和解碼函數(shù),漢明距離在糾錯碼的糾錯范圍內(nèi)的帶噪響應可以被正確糾正。KDF()為密鑰派生函數(shù),用來生成強密鑰。
圖1 基于code-offset的模糊提取器結(jié)構
通常在模糊提取器的設置中,服務器存儲在注冊階段,執(zhí)行Gen()函數(shù)后生成輔助數(shù)據(jù),在重現(xiàn)階段將輔助數(shù)據(jù)發(fā)送給PUF設備,由PUF設備糾錯修正Rep()函數(shù)生成的帶噪響應。然而,由于Rep()函數(shù)的計算量遠大于Gen()函數(shù),文獻[9]提出將Gen()函數(shù)放在資源受限的設備中,由服務器負責執(zhí)行Rep()函數(shù)修正存儲值,該方法稱為反向模糊提取器??紤]到標簽對面積、功耗等的要求遠高于讀寫器,本文選擇基于code-offset的反向模糊提取器作為標簽的PUF響應處理,以輕量海綿結(jié)構的哈希函數(shù)作為KDF。
由圖1可知,生成的密鑰由隨機數(shù)種子S經(jīng)過KDF()函數(shù)后生成,而輔助數(shù)據(jù)W是公開的,因此,為保證安全性需要保證在W已知情況下,S仍具有足夠的熵。S為長度為k的隨機數(shù)種子,因此,H∞(S)=length(S)=k。用條件熵H∞(S|W)表示已知W時S的剩余熵,具體如式(1)所示:
H∞(S|W)=H∞(S)-I(S,W)
(1)
其中:
I(S,W)=I(S,X⊕SG)=H∞(S)-H∞(X)+H∞(XHT)=
k-H∞(X)+H∞(XHT)
H∞(XHT)≤|XH|=n-k
H∞(X)=nh(pb)
h(pb)=-lb (max(pb,1-pb))
(2)
最終可得:
H∞(S|W)=H∞(X)-H∞(XHT)≥k-n(1-h(pb))
(3)
其中,n為糾錯碼碼長,pb為PUF響應的偏置(響應值出現(xiàn)1的概率),h()為最小熵密度函數(shù),H為相應糾錯碼的校驗矩陣。為提高糾錯效率,采用BCH碼C2作為外碼,重復碼C1作為內(nèi)碼,L個(n2,k2,t)結(jié)構的BCH碼和(n1,1,n1)重復碼級聯(lián)后,H∞(XHT)可由式(4)表示[16-18]:
H∞(XHT)≤L·(n2·H∞(X1:n1H1T)+H∞(X1:n2H2T))=
L·(n1n2-k2)
(4)
因此,級聯(lián)后的剩余熵下限如式(5)所示,并以該下限值作為設計最終所得密鑰熵。
H∞(S|W)≥L-(n1n2h(pb)-n1n2+k2)
(5)
假設PUF響應每比特出現(xiàn)的錯誤概率為e,級聯(lián)碼的糾錯失敗率可由式(6)表示:
(6)
其中,p1和p2分別為經(jīng)過重復碼譯碼和BCH碼譯碼后的成功率。對于給定BCH(n2,k2,t)碼,生成熵為k的密鑰需要L=(k/H∞(S|W))個塊,pfail為最終密鑰生成失敗率。
對1 kB ISSI SRAM上電初始值進行統(tǒng)計,得到片內(nèi)距離均值為0.075,該值可作為每比特發(fā)生錯誤的平均概率e,pb為0.51。當偏置pb范圍為[0.42,0.58]時,增加初始響應長度可得到所需密鑰熵[19],因此,本文設計通過增加初始長度而不額外增加針對密鑰泄露的處理部分。考慮到標簽的面積和計算力制約,根據(jù)式(5)、式(6)設計生成熵為64 bit的密鑰,不同糾錯碼的結(jié)果比較如表1所示。從表1可以看出,相較于RM碼和Golay碼,BCH碼的效果更好。
表1 不同糾錯碼級聯(lián)結(jié)果比較
上述實驗結(jié)果是在正常工作條件下得到的,當標簽老化或處于較極端外界環(huán)境下(高溫、高壓等)時,實驗的失敗率會相應增加,如果僅靠糾錯碼進行糾錯,硬件開銷和計算復雜度也會隨之增加。圖2為0℃~100℃下,1 kB SRAM經(jīng)過100次測試得到的平均錯誤率,當溫度為100℃時,平均錯誤率e上升至0.14,用表1中效果最好的Rep(5,1,5)與BCH(127,85,13)糾錯碼級聯(lián)只能得到約為0.02的失敗率。因此,可以通過預選位減小SRAM PUF的片內(nèi)距離,在不增加糾錯碼復雜度的條件下降低密鑰生成失敗率。
圖2 不同溫度下SRAM的平均錯誤率
通過對SRAM PUF響應分析發(fā)現(xiàn),與其他PUF不同的是,其具有大量的穩(wěn)定位,此外,由于低面積和低功耗的需求,相鄰SRAM單元的物理距離相應減小,從而增加了耦合電容產(chǎn)生的電容串擾,因此SRAM單元的穩(wěn)定性會受其相鄰位的影響[12]。圖3為相鄰100 bit的SRAM PUF響應測量100次得到的錯誤率分布。從圖3可以看出,每比特錯誤率分布不均,且穩(wěn)定位和非穩(wěn)定位總是各自相鄰?;赟RAM單元非穩(wěn)定位的相鄰特性,提出在反向模糊提取器糾錯的基礎上去除少量連續(xù)出錯概率較高的非穩(wěn)定位,以提高糾錯成功率。
圖3 相鄰100 bit的SRAM PUF錯誤率分布
為去除連續(xù)出錯概率較高的非穩(wěn)定位,實驗使用條件概率描述SRAM單元對相鄰單元穩(wěn)定性的依賴,具體如式(7)所示:
(7)
其中,P(A)表示測試位發(fā)生錯誤的概率,由于實驗選用Rep(5,1,5)作為內(nèi)碼進行測試比較,P(B)則表示窗長度為5時,該測試位的窗內(nèi)鄰近位發(fā)生2個及以上錯誤的概率,當測試位條件概率P(A|B)大于閾值T時,則棄用該SRAM單元。由于SRAM PUF進行注冊階段前預選位的測試次數(shù)會影響到開發(fā)的時間和成本,實驗在不同工作條件下(具體如表2所示)對非穩(wěn)定位的條件概率超過0.5的比例進行比較。實驗結(jié)果發(fā)現(xiàn),在高溫、高壓條件下,SRAM PUF相鄰非穩(wěn)定位的比例最高,具體如圖4所示,這說明了在該工作環(huán)境下,SRAM單元對相鄰單元依賴性最高。因此,該工作條件可作為預選位時的測試環(huán)境,高效去除了由于外界環(huán)境影響最容易出現(xiàn)連續(xù)不穩(wěn)定的SRAM單元。
表2 工作環(huán)境參數(shù)
圖4 不同測試條件下不穩(wěn)定位條件概率超過0.5的比例
Rep(5,1,5)與BCH(127,85,13)級聯(lián)作為反向模糊提取器中的糾錯碼,圖5為采用上述預選位方法在不同閾值下生成64 bit密鑰,并測試5 萬次的失敗率以及相應丟棄的位數(shù),圖6為在相同丟棄位數(shù)下,本文方法與丟棄最高錯誤率SRAM單元方法的失敗率比較。當閾值T=0.3時,僅去除51個非穩(wěn)定SRAM單元可以達到4.6×10-5的失敗率,比丟棄相同數(shù)量的最高錯誤率單元方法下降了約2個數(shù)量級。
圖5 不同閾值下SRAM單元棄用位數(shù)與失敗率
圖6 2種方法在棄用相同SRAM單元數(shù)量下的失敗率對比
上述方法選擇的丟棄位地址可以存儲在非易失性存儲器中,這是因為位置信息與響應值無關,不會泄露密鑰。表3為對上述ISSI SRAM PUF初始響應進行不同處理方法生成64 bit密鑰的性能比較,實驗均取平均錯誤率為0.14,pb=0.51。文獻[10-11]只是在大量PUF單元內(nèi)以較高概率選擇穩(wěn)定位,同樣需要結(jié)合ECC糾錯,軟判決[20]相較于硬判決所需資源更小,然而由于需要位相關的可靠度信息作為輔助數(shù)據(jù)以分辨可靠響應,容易受到輔助數(shù)據(jù)攻擊[21]。本文利用部分不穩(wěn)定SRAM單元相鄰的特點,提出的改進方法結(jié)合了反向模糊提取器和預選位的優(yōu)點,相比于其他方案,其能夠以較小的PUF得到失敗率在10-5量級的64 bit密鑰。
表3 不同穩(wěn)定性處理方法性能比較
表4為實現(xiàn)10-5量級失敗率時,本文預選位方法和文獻[9]方法的各模塊面積比較。一個標準SRAM單元可以看作1個等效門GE[20]。由于本文設計是針對標簽應用的反向模糊提取器,因此不考慮在讀寫器端執(zhí)行的Rep()重現(xiàn)部分,此外標簽的各種通信協(xié)議均需要產(chǎn)生隨機數(shù),反向模糊提取器中的隨機數(shù)種子可以通過復用標簽自身的隨機數(shù)發(fā)生器得到。
表4 文獻[9]方法與本文方法的模塊面積比較
本文對SRAM PUF的響應特征進行研究,利用SRAM部分非穩(wěn)定位相鄰的特點,提出基于條件概率的預選位方法。采用該方法去除容易連續(xù)出錯的非穩(wěn)定位,并結(jié)合反向模糊提取器設計可應用于標簽的SRAM PUF穩(wěn)定性處理方案。實驗結(jié)果表明,本文方法即使在非正常工作條件下仍能保持10-5量級的較低失敗率。然而,位置信息的存儲在一定程度上增加了標簽的存儲成本,下一步將對該方案繼續(xù)改進,在平衡SRAM PUF大小、算法復雜度和輔助信息的存儲代價的基礎上,進一步降低方案的開發(fā)成本。