本發(fā)明涉及一種基于SRAM型存儲(chǔ)器的物理不可克隆函數(shù)響應(yīng)糾錯(cuò)電路,屬于信息安全技術(shù)領(lǐng)域。
背景技術(shù):
物理不可克隆函數(shù)PUF是指一種可以依靠制造過(guò)程中的差異性來(lái)產(chǎn)生其特有輸出的物理實(shí)體。對(duì)PUF結(jié)構(gòu)輸入的激勵(lì)C和產(chǎn)生的響應(yīng)R被稱為激勵(lì)-響應(yīng)對(duì)CRP。一些情況下,PUF結(jié)構(gòu)被認(rèn)為是匹配激勵(lì)響應(yīng)的映射函數(shù)。對(duì)于同一個(gè)PUF結(jié)構(gòu),輸入多次相同的激勵(lì)會(huì)產(chǎn)生不同的響應(yīng),響應(yīng)的差異是由于一些不規(guī)則的噪聲、測(cè)量誤差和周?chē)h(huán)境如溫度、電壓等的變化引起的,而響應(yīng)之間的差異稱為片內(nèi)漢明距離。為了使同一個(gè)PUF結(jié)構(gòu)的響應(yīng)具有可再現(xiàn)的特性,片內(nèi)漢明距離當(dāng)然是越小越好。但兩個(gè)不同PUF結(jié)構(gòu)的響應(yīng)差異越大,就越容易區(qū)分兩者。由于制造不出兩塊產(chǎn)生相同的激勵(lì)響應(yīng)對(duì)的PUF結(jié)構(gòu),因此,PUF是不可克隆的。
SRAM PUF(靜態(tài)隨機(jī)存取存儲(chǔ)器物理不可克隆函數(shù))電路是利用數(shù)字信號(hào)鎖存結(jié)構(gòu)在集成電路制造過(guò)程中存在的工藝偏差來(lái)產(chǎn)生物理不可克隆函數(shù)關(guān)系的電路。SRAM PUF電路的函數(shù)關(guān)系容易受到供電電壓、溫度以及老化等因素的影響,輸出值并不穩(wěn)定,因此在使用前必須經(jīng)過(guò)糾錯(cuò)處理,使同一片PUF產(chǎn)生的有差異的響應(yīng)通過(guò)函數(shù)能得到穩(wěn)定的映射值。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于SRAM型存儲(chǔ)器的物理不可克隆函數(shù)響應(yīng)糾錯(cuò)電路,克服SRAM PUF響應(yīng)的不穩(wěn)定性,將不穩(wěn)定的SRAM PUF響應(yīng)輸出轉(zhuǎn)換為穩(wěn)定的密鑰和位置碼之間的映射關(guān)系,從而實(shí)現(xiàn)硬件身份認(rèn)證,認(rèn)證過(guò)程簡(jiǎn)單可靠,高效穩(wěn)定,降低硬件成本。
技術(shù)方案:為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
一種基于SRAM型存儲(chǔ)器的物理不可克隆函數(shù)響應(yīng)糾錯(cuò)電路,包括控制模塊、編碼模塊及解碼模塊;
其中,所述編碼模塊用于將物理不可克隆函數(shù)的響應(yīng)結(jié)合由隨機(jī)數(shù)組成的密鑰序列通過(guò)編碼規(guī)則映射成唯一對(duì)應(yīng)的位置碼序列;
所述解碼模塊用于將物理不可克隆函數(shù)的響應(yīng)結(jié)合原有的位置碼序列通過(guò)相應(yīng)的解碼規(guī)則反映射還原出對(duì)應(yīng)的密鑰序列;
所述控制模塊用于實(shí)現(xiàn)編碼和解碼這兩種狀態(tài)之間的轉(zhuǎn)換、時(shí)序和地址的生成、各模塊電路之間的線路控制和計(jì)算編碼前密鑰和解碼后密鑰之間的相似度的功能。
優(yōu)選的,所述控制模塊包括控制電路、編碼-解碼轉(zhuǎn)換器、時(shí)鐘產(chǎn)生電路、地址生成電路及數(shù)據(jù)串組合電路;
其中,所述編碼-解碼轉(zhuǎn)換器用于切換編碼和解碼這兩種工作狀態(tài),時(shí)鐘產(chǎn)生電路用于生成時(shí)鐘觸發(fā)信號(hào),地址生成電路用于生成每個(gè)存儲(chǔ)器的讀寫(xiě)地址,數(shù)據(jù)串組合電路用于將數(shù)據(jù)串形式的密鑰拆成單個(gè)二進(jìn)制碼或?qū)⒍M(jìn)制碼形式的密鑰重新組合成數(shù)據(jù)串形式。
所述編碼模塊包括漢明糾錯(cuò)算法電路、求最大偏差值電路、位置碼存儲(chǔ)器、密鑰生成電路、糾錯(cuò)碼存儲(chǔ)器及SRAM PUF-1響應(yīng)提取電路;
所述解碼模塊包括漢明糾錯(cuò)算法電路、數(shù)值極性判斷電路、位置碼存儲(chǔ)器、糾錯(cuò)碼存儲(chǔ)器及SRAM PUF-2響應(yīng)提取電路;
其中,所述漢明糾錯(cuò)算法電路包括編碼和解碼兩種模式,其中編碼模式下,當(dāng)輸入一個(gè)數(shù)據(jù)串時(shí),漢明糾錯(cuò)算法電路將輸出該數(shù)據(jù)串及對(duì)應(yīng)的檢驗(yàn)碼;解碼模式下,當(dāng)輸入一個(gè)數(shù)據(jù)串和對(duì)應(yīng)的檢驗(yàn)碼時(shí),漢明糾錯(cuò)算法電路將輸出該數(shù)據(jù)串經(jīng)過(guò)糾錯(cuò)后得到的數(shù)據(jù)串。
(一)具體的編碼過(guò)程如下:
(1)編碼初始復(fù)位:當(dāng)收到外部的編碼指令時(shí),控制電路向編碼-解碼轉(zhuǎn)換器發(fā)出編碼請(qǐng)求,編碼-解碼轉(zhuǎn)換器隨后發(fā)出復(fù)位信號(hào),使編碼電路復(fù)位;同時(shí),編碼-解碼轉(zhuǎn)換器向SRAM PUF-1響應(yīng)提取電路發(fā)出響應(yīng)提取信號(hào);
(2)SRAM PUF-1響應(yīng)提?。篠RAM PUF-1響應(yīng)提取電路收到信號(hào)后開(kāi)始提取第一個(gè)SRAM型存儲(chǔ)器物理不可克隆函數(shù)的響應(yīng)SRAM PUF-1,并通過(guò)數(shù)據(jù)串組合電路把該響應(yīng)SRAM PUF-1以8位二進(jìn)制補(bǔ)碼的形式導(dǎo)出若干個(gè)響應(yīng)數(shù)值,導(dǎo)出的響應(yīng)數(shù)值存儲(chǔ)在數(shù)據(jù)庫(kù)中并發(fā)送給求最大偏差值電路,存儲(chǔ)完畢后發(fā)送編碼準(zhǔn)備完畢信號(hào)給編碼-解碼轉(zhuǎn)換器;
(3)開(kāi)始編碼:編碼-解碼轉(zhuǎn)換器收到反饋信號(hào)后,向密鑰生成電路發(fā)出生成密鑰信號(hào),并通過(guò)時(shí)鐘產(chǎn)生電路觸發(fā)漢明糾錯(cuò)算法電路的編碼模式,使?jié)h明糾錯(cuò)算法電路工作在編碼狀態(tài);
(4)生成密鑰序列:密鑰生成電路收到信號(hào)后生成由隨機(jī)數(shù)組成的密鑰序列,同時(shí)將該密鑰序列存儲(chǔ)在數(shù)據(jù)庫(kù)中并發(fā)送給漢明糾錯(cuò)算法電路;
(5)產(chǎn)生糾錯(cuò)碼:編碼狀態(tài)的漢明糾錯(cuò)算法電路收到作為密鑰序列的數(shù)據(jù)串后生成該數(shù)據(jù)串對(duì)應(yīng)的糾錯(cuò)碼并存儲(chǔ)在糾錯(cuò)碼存儲(chǔ)器中,同時(shí)通過(guò)數(shù)據(jù)串組合電路將該密鑰序列轉(zhuǎn)換成二進(jìn)制碼的形式發(fā)送給求最大偏差值電路;
(6)生成位置碼:包括以下步驟:
(61)求最大偏差值電路接收到SRAM PUF-1響應(yīng)提取電路發(fā)出的若干個(gè)SRAMPUF-1響應(yīng)數(shù)值后,將這些SRAMPUF-1響應(yīng)數(shù)值按照每組N個(gè)的形式進(jìn)行分組,每組中的SRAMPUF-1響應(yīng)數(shù)值對(duì)應(yīng)的位置序號(hào)依次為0,1,2…N-1;
(62)計(jì)算出每一組的平均響應(yīng)數(shù)值,保存在數(shù)據(jù)庫(kù)中并定義大于該組平均響應(yīng)數(shù)值為正,小于該組平均響應(yīng)數(shù)值為負(fù);
(63)密鑰序列中每一比特位對(duì)應(yīng)一個(gè)響應(yīng)數(shù)值組,若該響應(yīng)數(shù)值組對(duì)應(yīng)的比特位為1,則找出該組中數(shù)值與平均響應(yīng)數(shù)值正向偏差最大的響應(yīng),同時(shí)將該響應(yīng)在該組中的位置序號(hào)保存;若該響應(yīng)數(shù)值組對(duì)應(yīng)的比特位為0,則找出該組中數(shù)值與平均響應(yīng)數(shù)值負(fù)向偏差最大的響應(yīng),同時(shí)將該響應(yīng)在組中的位置序號(hào)保存;這些位置序號(hào)通過(guò)數(shù)據(jù)串組合電路順序排列組成位置碼存儲(chǔ)到位置碼存儲(chǔ)器中;
(64)密鑰序列中每一比特位對(duì)應(yīng)N*8比特位的SRAM PUF-1響應(yīng),這種時(shí)序?qū)?yīng)關(guān)系由時(shí)鐘產(chǎn)生電路控制;
(7)編碼完成:當(dāng)所有的SRAM PUF-1響應(yīng)都編碼完成后,求最大偏差值電路向控制電路發(fā)出編碼完成信號(hào),編碼結(jié)束。
(二)具體的解碼過(guò)程如下:
(A)解碼初始復(fù)位:當(dāng)收到外部的解碼命令時(shí),控制電路向編碼-解碼轉(zhuǎn)換器發(fā)出解碼請(qǐng)求,編碼-解碼轉(zhuǎn)換器隨后發(fā)出復(fù)位信號(hào),使解碼電路復(fù)位;同時(shí),編碼-解碼轉(zhuǎn)換器向SRAM PUF-2響應(yīng)提取電路發(fā)出響應(yīng)提取信號(hào);
(B)SRAM PUF-2響應(yīng)提?。篠RAM PUF-2響應(yīng)提取電路收到信號(hào)后開(kāi)始提取第二個(gè)SRAM型存儲(chǔ)器物理不可克隆函數(shù)的響應(yīng)SRAM PUF-2,并通過(guò)數(shù)據(jù)串組合電路把該響應(yīng)SRAM PUF-2以8位二進(jìn)制補(bǔ)碼的形式導(dǎo)出若干個(gè)響應(yīng)數(shù)值,導(dǎo)出的響應(yīng)數(shù)值存儲(chǔ)在數(shù)據(jù)庫(kù)中并發(fā)送給數(shù)值極性判斷電路,存儲(chǔ)完畢后發(fā)送響應(yīng)提取完成信號(hào)給編碼-解碼轉(zhuǎn)換器;
(C)開(kāi)始解碼:編碼-解碼轉(zhuǎn)換器收到SRAM PUF-2響應(yīng)提取電路的反饋信息后,向數(shù)值極性判斷電路發(fā)送解碼開(kāi)始信號(hào),并通過(guò)時(shí)鐘產(chǎn)生電路觸發(fā)漢明糾錯(cuò)算法電路的解碼模式,使?jié)h明糾錯(cuò)算法電路工作在解碼狀態(tài);
(D)生成密鑰序列:包括以下步驟:
(D1)數(shù)值極性判斷電路收到解碼開(kāi)始信號(hào)后,將從SRAM PUF-2響應(yīng)提取電路得到的若干個(gè)SRAMPUF-2響應(yīng)數(shù)值同樣按照每組N個(gè)的形式進(jìn)行分組,每組中的SRAMPUF-2響應(yīng)數(shù)值對(duì)應(yīng)的位置序號(hào)依次為0,1,2…N-1;
(D2)計(jì)算出每一組的平均響應(yīng)數(shù)值,保存在數(shù)據(jù)庫(kù)中并定義大于該組平均響應(yīng)數(shù)值為正,小于該組平均響應(yīng)數(shù)值為負(fù);
(D3)從位置碼存儲(chǔ)器中讀取位置碼,位置碼中每一個(gè)位置序號(hào)對(duì)應(yīng)一個(gè)響應(yīng)數(shù)值組,找出該組中其位置序號(hào)所對(duì)應(yīng)的SRAM PUF-2響應(yīng)數(shù)值,若該響應(yīng)數(shù)值為正,則對(duì)應(yīng)的密鑰值為1,否則,對(duì)應(yīng)的密鑰值為0;位置碼中每一個(gè)位置序號(hào)對(duì)應(yīng)N*8比特位的SRAM PUF-2響應(yīng),這種時(shí)序?qū)?yīng)關(guān)系由時(shí)鐘產(chǎn)生電路控制;
(D4)將這些密鑰值通過(guò)數(shù)據(jù)串組合電路轉(zhuǎn)換成數(shù)據(jù)串形式的密鑰序列存儲(chǔ)到數(shù)據(jù)庫(kù)中并發(fā)送給漢明糾錯(cuò)算法電路;
(E)密鑰序列糾錯(cuò):收到該密鑰序列后,漢明糾錯(cuò)算法電路同時(shí)從糾錯(cuò)碼存儲(chǔ)器中讀取相應(yīng)的糾錯(cuò)碼,得到糾錯(cuò)后的密鑰序列,存儲(chǔ)后發(fā)送到控制電路;
(F)相似度計(jì)算:控制電路對(duì)糾錯(cuò)后的密鑰序列及編碼中生成的密鑰序列進(jìn)行相似度計(jì)算,若兩者的相似度高于設(shè)定值,說(shuō)明產(chǎn)生SRAMPUF-1響應(yīng)的硬件和產(chǎn)生SRAM PUF-2響應(yīng)的硬件是同一塊硬件;否則,說(shuō)明兩者是兩塊不同的硬件;
(G)解碼完成判斷:當(dāng)完成SRAMPUF-1響應(yīng)與SRAM PUF-2響應(yīng)的對(duì)比后,控制電路向外部輸出判斷的結(jié)果,解碼結(jié)束。
優(yōu)選的,編碼過(guò)程中,密鑰生成電路生成的密鑰序列按照每組S個(gè)的形式進(jìn)行分組后再通過(guò)漢明糾錯(cuò)算法電路來(lái)產(chǎn)生糾錯(cuò)碼;對(duì)應(yīng)地,解碼過(guò)程中,數(shù)值極性判斷電路生成的密鑰序列按照每組S個(gè)的形式進(jìn)行分組后再通過(guò)漢明糾錯(cuò)算法電路來(lái)糾錯(cuò)。
一般SRAM PUF有大量的響應(yīng)數(shù)據(jù),而使用帶糾錯(cuò)碼的漢明糾錯(cuò)方法時(shí),由于糾錯(cuò)能力有限,不能一次將所有的密鑰序列糾錯(cuò),因此對(duì)密鑰序列分組糾錯(cuò)能有效提高漢明糾錯(cuò)算法電路的糾錯(cuò)效率。
進(jìn)一步的,編碼過(guò)程中,求最大偏差值電路(103)生成的位置碼為K比特位,對(duì)應(yīng)地,解碼過(guò)程中,數(shù)值極性判斷電路(104)讀取的位置碼為K比特位,且滿足N<2K。
有益效果:本發(fā)明提供的一種基于SRAM型存儲(chǔ)器的物理不可克隆函數(shù)響應(yīng)糾錯(cuò)電路,相對(duì)于現(xiàn)有技術(shù),具有以下效果:本發(fā)明克服了SRAM PUF響應(yīng)的不穩(wěn)定性,將不穩(wěn)定的SRAMPUF響應(yīng)輸出轉(zhuǎn)換為穩(wěn)定的密鑰和位置碼之間的映射關(guān)系,從而實(shí)現(xiàn)了硬件身份的認(rèn)證,提高了身份認(rèn)證的安全性,簡(jiǎn)化了認(rèn)證過(guò)程,提高了認(rèn)證效率,降低了硬件成本。
附圖說(shuō)明
圖1為本發(fā)明一種基于SRAM型存儲(chǔ)器的物理不可克隆函數(shù)響應(yīng)糾錯(cuò)電路的總體結(jié)構(gòu)原理框圖;
圖2為本發(fā)明控制模塊電路的結(jié)構(gòu)原理框圖;
圖3為本發(fā)明在編碼階段的流程圖;
圖4為本發(fā)明在解碼階段的流程圖;
圖中包括:漢明糾錯(cuò)算法電路101,糾錯(cuò)碼存儲(chǔ)器102,求最大偏差值電路103,數(shù)值極性判斷電路104,位置碼存儲(chǔ)器105,密鑰生成電路106,SRAM PUF-1響應(yīng)提取電路107,SRAM PUF-2響應(yīng)提取電路108,控制電路201,編碼-解碼轉(zhuǎn)換器202,時(shí)鐘產(chǎn)生電路203,地址生成電路204,數(shù)據(jù)串組合電路205。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作更進(jìn)一步的說(shuō)明。
如圖1所示為一種基于SRAM型存儲(chǔ)器的物理不可克隆函數(shù)響應(yīng)糾錯(cuò)電路,包括控制模塊、編碼模塊及解碼模塊;
其中,所述編碼模塊用于將物理不可克隆函數(shù)的響應(yīng)結(jié)合由隨機(jī)數(shù)組成的密鑰序列通過(guò)編碼規(guī)則映射成唯一對(duì)應(yīng)的位置碼序列;
所述解碼模塊用于將物理不可克隆函數(shù)的響應(yīng)結(jié)合原有的位置碼序列通過(guò)相應(yīng)的解碼規(guī)則反映射還原出對(duì)應(yīng)的密鑰序列;
所述控制模塊用于實(shí)現(xiàn)編碼和解碼這兩種狀態(tài)之間的轉(zhuǎn)換、時(shí)序和地址的生成、各模塊電路之間的線路控制和計(jì)算編碼前密鑰和解碼后密鑰之間的相似度的功能。
如圖2所示,所述控制模塊包括控制電路201、編碼-解碼轉(zhuǎn)換器202、時(shí)鐘產(chǎn)生電路203、地址生成電路204及數(shù)據(jù)串組合電路205;
所述編碼模塊包括漢明糾錯(cuò)算法電路101、求最大偏差值電路103、位置碼存儲(chǔ)器105、密鑰生成電路106、糾錯(cuò)碼存儲(chǔ)器102及SRAM PUF-1響應(yīng)提取電路107;
所述解碼模塊包括漢明糾錯(cuò)算法電路101、數(shù)值極性判斷電路104、位置碼存儲(chǔ)器105、糾錯(cuò)碼存儲(chǔ)器102及SRAM PUF-2響應(yīng)提取電路108;
如圖3所示,具體的編碼過(guò)程如下:
(1)編碼初始復(fù)位:當(dāng)收到外部的編碼指令時(shí),控制電路201向編碼-解碼轉(zhuǎn)換器202發(fā)出編碼請(qǐng)求,編碼-解碼轉(zhuǎn)換器202隨后發(fā)出復(fù)位信號(hào),使編碼電路復(fù)位;同時(shí),編碼-解碼轉(zhuǎn)換器202向SRAM PUF-1響應(yīng)提取電路107發(fā)出響應(yīng)提取信號(hào);
(2)SRAM PUF-1響應(yīng)提?。篠RAM PUF-1響應(yīng)提取電路107收到信號(hào)后開(kāi)始提取第一個(gè)SRAM型存儲(chǔ)器物理不可克隆函數(shù)的響應(yīng)SRAM PUF-1,并通過(guò)數(shù)據(jù)串組合電路205把該響應(yīng)SRAM PUF-1以8位二進(jìn)制補(bǔ)碼的形式導(dǎo)出若干個(gè)響應(yīng)數(shù)值,導(dǎo)出的響應(yīng)數(shù)值存儲(chǔ)在數(shù)據(jù)庫(kù)中并發(fā)送給求最大偏差值電路103,存儲(chǔ)完畢后發(fā)送編碼準(zhǔn)備完畢信號(hào)給編碼-解碼轉(zhuǎn)換器202;
(3)開(kāi)始編碼:編碼-解碼轉(zhuǎn)換器202接受到反饋信號(hào)后,向密鑰生成電路106發(fā)出生成密鑰信號(hào),并通過(guò)時(shí)鐘產(chǎn)生電路203觸發(fā)漢明糾錯(cuò)算法電路101的編碼模式,使?jié)h明糾錯(cuò)算法電路101工作在編碼狀態(tài);
(4)生成密鑰序列:密鑰生成電路106收到信號(hào)后生成由隨機(jī)數(shù)組成的密鑰序列,同時(shí)將該密鑰序列按照每組7個(gè)的形式進(jìn)行分組后存儲(chǔ)在數(shù)據(jù)庫(kù)中并發(fā)送給漢明糾錯(cuò)算法電路101;
(5)產(chǎn)生糾錯(cuò)碼:編碼狀態(tài)的漢明糾錯(cuò)算法電路101收到作為密鑰序列的數(shù)據(jù)串后生成該數(shù)據(jù)串對(duì)應(yīng)的糾錯(cuò)碼并存儲(chǔ)在糾錯(cuò)碼存儲(chǔ)器102中,同時(shí)通過(guò)數(shù)據(jù)串組合電路205將該密鑰序列轉(zhuǎn)換成二進(jìn)制碼的形式發(fā)送給求最大偏差值電路103;
(6)生成位置碼:包括以下步驟:
(61)求最大偏差值電路103接收到SRAM PUF-1響應(yīng)提取電路107發(fā)出的若干個(gè)SRAMPUF-1響應(yīng)數(shù)值后,將這些SRAMPUF-1響應(yīng)數(shù)值按照每組8個(gè)的形式進(jìn)行分組,每組中的SRAMPUF-1響應(yīng)數(shù)值對(duì)應(yīng)的位置序號(hào)依次為0,1,2…7;
(62)計(jì)算出每一組的平均響應(yīng)數(shù)值,保存在數(shù)據(jù)庫(kù)中并定義大于該組平均響應(yīng)數(shù)值為正,小于該組平均響應(yīng)數(shù)值為負(fù);
(63)密鑰序列中每一比特位對(duì)應(yīng)一個(gè)響應(yīng)數(shù)值組,若該響應(yīng)數(shù)值組對(duì)應(yīng)的比特位為1,則找出該組中數(shù)值與平均響應(yīng)數(shù)值正向偏差最大的響應(yīng),同時(shí)將該響應(yīng)在該組中的位置序號(hào)保存;若該響應(yīng)數(shù)值組對(duì)應(yīng)的比特位為0,則找出該組中數(shù)值與平均響應(yīng)數(shù)值負(fù)向偏差最大的響應(yīng),同時(shí)將該響應(yīng)在組中的位置序號(hào)保存;這些位置序號(hào)通過(guò)數(shù)據(jù)串組合電路205按順序排列組成位置碼存儲(chǔ)到位置碼存儲(chǔ)器105中;
(64)密鑰序列中每一比特位對(duì)應(yīng)8*8比特位的SRAM PUF-1響應(yīng),這種時(shí)序?qū)?yīng)關(guān)系由時(shí)鐘產(chǎn)生電路203控制;
(7)編碼完成:當(dāng)所有的SRAM PUF-1響應(yīng)都編碼完成后,求最大偏差值電路103向控制電路201發(fā)出編碼完成信號(hào),編碼結(jié)束。
如圖4所示,具體的解碼過(guò)程如下:
(A)解碼初始復(fù)位:當(dāng)收到外部的解碼命令時(shí),控制電路201向編碼-解碼轉(zhuǎn)換器202發(fā)出解碼請(qǐng)求,編碼-解碼轉(zhuǎn)換器202隨后發(fā)出復(fù)位信號(hào),使解碼電路復(fù)位;同時(shí),編碼-解碼轉(zhuǎn)換器202向SRAM PUF-2響應(yīng)提取電路108發(fā)出響應(yīng)提取信號(hào);
(B)SRAM PUF-2響應(yīng)提?。篠RAM PUF-2響應(yīng)提取電路108收到信號(hào)后開(kāi)始提取第二個(gè)SRAM型存儲(chǔ)器物理不可克隆函數(shù)的響應(yīng)SRAM PUF-2,并通過(guò)數(shù)據(jù)串組合電路205把該響應(yīng)SRAM PUF-2以8位二進(jìn)制補(bǔ)碼的形式導(dǎo)出若干個(gè)響應(yīng)數(shù)值,導(dǎo)出的響應(yīng)數(shù)值存儲(chǔ)在數(shù)據(jù)庫(kù)中并發(fā)送給數(shù)值極性判斷電路104,存儲(chǔ)完畢后發(fā)送響應(yīng)提取完成信號(hào)給編碼-解碼轉(zhuǎn)換器202;
(C)開(kāi)始解碼:編碼-解碼轉(zhuǎn)換器202收到SRAM PUF-2響應(yīng)提取電路108的反饋信息后,向數(shù)值極性判斷電路104發(fā)送解碼開(kāi)始信號(hào),并通過(guò)時(shí)鐘產(chǎn)生電路203觸發(fā)漢明糾錯(cuò)算法電路101的解碼模式,使?jié)h明糾錯(cuò)算法電路101工作在解碼狀態(tài);
(D)生成密鑰序列:包括以下步驟:
(D1)數(shù)值極性判斷電路104收到解碼開(kāi)始信號(hào)后,將從SRAM PUF-2響應(yīng)提取電路108得到的若干個(gè)SRAMPUF-2響應(yīng)數(shù)值同樣按照每組8個(gè)的形式進(jìn)行分組,每組中的SRAMPUF-2響應(yīng)數(shù)值對(duì)應(yīng)的位置序號(hào)依次為0,1,2…7;
(D2)計(jì)算出每一組的平均響應(yīng)數(shù)值,保存在數(shù)據(jù)庫(kù)中并定義大于該組平均響應(yīng)數(shù)值為正,小于該組平均響應(yīng)數(shù)值為負(fù);
(D3)從位置碼存儲(chǔ)器105中讀取位置碼,位置碼中每一個(gè)位置序號(hào)對(duì)應(yīng)一個(gè)響應(yīng)數(shù)值組,找出該組中其位置序號(hào)所對(duì)應(yīng)的SRAM PUF-2響應(yīng)數(shù)值,若該響應(yīng)數(shù)值為正,則對(duì)應(yīng)的密鑰值為1,否則,對(duì)應(yīng)的密鑰值為0;位置碼中每一個(gè)位置序號(hào)對(duì)應(yīng)8*8比特位的SRAM PUF-1響應(yīng),這種時(shí)序?qū)?yīng)關(guān)系由時(shí)鐘產(chǎn)生電路203控制;
(D4)將這些密鑰值通過(guò)數(shù)據(jù)串組合電路205轉(zhuǎn)換成數(shù)據(jù)串形式的密鑰序列,將得到的密鑰序列按照每組S個(gè)的形式進(jìn)行分組后存儲(chǔ)到數(shù)據(jù)庫(kù)中并發(fā)送給漢明糾錯(cuò)算法電路101;
(E)密鑰序列糾錯(cuò):收到該密鑰序列后,漢明糾錯(cuò)算法電路101同時(shí)從糾錯(cuò)碼存儲(chǔ)器102中讀取相應(yīng)的糾錯(cuò)碼,得到糾錯(cuò)后的密鑰序列,存儲(chǔ)后發(fā)送到控制電路201;
(F)相似度計(jì)算:控制電路201對(duì)糾錯(cuò)后的密鑰序列及編碼中生成的密鑰序列進(jìn)行相似度計(jì)算,若兩者的相似度高于設(shè)定值,說(shuō)明產(chǎn)生SRAMPUF-1響應(yīng)的硬件和產(chǎn)生SRAM PUF-2響應(yīng)的硬件是同一塊硬件;否則,說(shuō)明兩者是兩塊不同的硬件;
(G)解碼完成判斷:當(dāng)完成SRAMPUF-1響應(yīng)與SRAM PUF-2響應(yīng)的對(duì)比后,控制電路201向外部輸出判斷的結(jié)果,解碼結(jié)束。
如圖3、4所示,在編碼和解碼階段中一共有兩次糾錯(cuò)過(guò)程,第一次發(fā)生在求最大偏差值和極性判斷的函數(shù)映射過(guò)程中,此過(guò)程中,既利用了不可克隆的響應(yīng)數(shù)值映射出了位置碼并且反映射重新得到密鑰,又避免了大量的單個(gè)不穩(wěn)定PUF響應(yīng);第二次發(fā)生在密鑰兩次通過(guò)漢明糾錯(cuò)算法模塊的過(guò)程中,解碼時(shí)利用編碼生成的糾錯(cuò)碼可以將第一次糾錯(cuò)過(guò)程中沒(méi)有糾錯(cuò)成功的數(shù)據(jù)位再次糾正。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出:對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。