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