本發(fā)明涉及信息安全領(lǐng)域及集成電路領(lǐng)域,特別是涉及一種利用周圍邏輯干擾電路檢測物理不可克隆函數(shù)(puf)可靠性的方法。
背景技術(shù):
隨著社會信息化發(fā)展的進一步深入,信息安全問題越來越受到人們的重視。被認為能永久存儲和不被攻擊者所知的密鑰是傳統(tǒng)密碼學的核心,然而,很多攻擊方法已經(jīng)能夠破解密鑰,使得密鑰不足以保證硬件的安全。為有效解決此安全問題,物理不可克隆函數(shù)(physicalunclonablefunction,puf)應(yīng)運而生,它作為一種新型的加密原語,能更加有效地應(yīng)對安全問題。
puf的工作原理是通過提取集成電路在生產(chǎn)制造過程中由于制造工藝的不同而引入的隨機差異,來實現(xiàn)唯一的、不可克隆的加密信息(響應(yīng))的生成。與傳統(tǒng)的加密方法相比,puf是從材料本身提取它固有的物理特性,而不是存儲在非易失性存儲器,所產(chǎn)生的密鑰有著低成本、易揮發(fā)、不可預(yù)測和結(jié)構(gòu)簡單等優(yōu)勢,因此,在信息安全領(lǐng)域得到了廣泛應(yīng)用,如芯片加密、密鑰存儲、身份認證、ip核保護和id產(chǎn)生等。
目前已經(jīng)提出的物理不可克隆函數(shù)已有很多種,例如基于環(huán)形振蕩器的物理不可克隆函數(shù)、基于sram的物理不可克隆函數(shù)和基于仲裁器的物理不可克隆函數(shù)。其中,基于環(huán)形振蕩器的物理不可克隆函數(shù)是比較流行且易于在fpga上實現(xiàn)的puf,它是利用不同器件在制造時的工藝偏差不同來比較環(huán)形振蕩器之間的振蕩頻率的差異來輸出響應(yīng),且每個環(huán)形振蕩器具有相同的結(jié)構(gòu)。
當puf滿足對稱布局布線實現(xiàn)于fpga時,制造過程產(chǎn)生的工藝偏差決定了puf的輸出并且導(dǎo)致結(jié)果是隨機的。但是,當操作環(huán)境(溫度、電壓和器件老化等)造成的波動大于或接近這個偏差時,工藝偏差就不能作為輸出的主導(dǎo)因素,輸出就會隨著操作環(huán)境的變化而變化,由此導(dǎo)致了puf輸出不穩(wěn)定的可靠性問題。
針對物理不可克隆函數(shù)可靠性比較低的問題,目前主要存在以下幾種解決方案。例如:提高puf可靠性傳統(tǒng)的方法是ecc(errorcorrectioncodes)和預(yù)配置,所謂的預(yù)配置,比如,調(diào)整環(huán)形振蕩器配置從兩個具有相同布局布線的環(huán)形振蕩器中選擇頻率差異最大的,來提高可靠性,但是這兩種方法大大增加了設(shè)計的復(fù)雜性和資源開銷,而且可能會泄露重要的信息。另一種廣泛應(yīng)用的方法是改變溫度、電壓等來檢測puf響應(yīng)的復(fù)現(xiàn)情況,以此選擇可靠的puf,但該方法面臨兩個問題:一方面,需要增加額外的資源開銷,包括特定的電壓調(diào)節(jié)電路和溫箱設(shè)備等,另一方面,把溫度調(diào)整到另一個刻度需要大量的時間和精力,并且由于溫度存在一定的浮動,很難把它固定在設(shè)定的溫度。
綜上可知,現(xiàn)有技術(shù)在實際使用中顯然存在不便和缺陷,所以有必要加以改進。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于fpga的環(huán)形振蕩器物理不可克隆函數(shù)的可靠性檢測方法,以期能夠快速檢測響應(yīng)位的可靠性,從而提高puf的可靠性,以保證物理不可克隆函數(shù)能在安全領(lǐng)域上廣泛應(yīng)用。
本發(fā)明為達到上述目的所采用的技術(shù)方案是:
本發(fā)明一種基于fpga的環(huán)形振蕩器物理不可克隆函數(shù)的可靠性檢測方法的特點按如下步驟進行:
步驟1、利用環(huán)形振蕩器物理不可克隆函數(shù)的約束文件定義所述環(huán)形振蕩器物理不可克隆函數(shù)在fpga上的位置;再利用所述環(huán)形振蕩器物理不可克隆函數(shù)的約束文件禁用所述環(huán)形振蕩器物理不可克隆函數(shù)周圍的邏輯單元;
步驟2、在fpga上實現(xiàn)所述環(huán)形振蕩器物理不可克隆函數(shù),從而產(chǎn)生初始響應(yīng)序列;
步驟3、利用漢明距離衡量所述環(huán)形振蕩器物理不可克隆函數(shù)的可靠性,得到無干擾下的可靠性指數(shù)a;
步驟4、定義變量n,并初始化n=1;
步驟5、在所述環(huán)形振蕩器物理不可克隆函數(shù)周圍添加n個干擾電路后,從而產(chǎn)生第n次響應(yīng)序列;
步驟6、比較第n次響應(yīng)序列和初始響應(yīng)序列之間相應(yīng)的響應(yīng)位是否存在翻轉(zhuǎn),若存在,則將翻轉(zhuǎn)的響應(yīng)位去除后,利用漢明距離再次衡量所述環(huán)形振蕩器物理不可克隆函數(shù)的可靠性,得到第n檢測的可靠性指數(shù)an,再執(zhí)行步驟7;若不存在,則保留第n次響應(yīng)序列;并執(zhí)行步驟8;
步驟7、比較第n檢測的可靠性指數(shù)an是否等于無干擾下的可靠性指數(shù)a,若等于,則表示所述環(huán)形振蕩器物理不可克隆函數(shù)的可靠性不變;否則,表示所述環(huán)形振蕩器物理不可克隆函數(shù)的可靠性得到提升;
步驟8、將n+1賦值給n后,返回步驟5執(zhí)行,直到可靠性指數(shù)滿足所述環(huán)形振蕩器物理不可克隆函數(shù)的性能要求為止。
與已有技術(shù)相比,本發(fā)明的有益結(jié)果體現(xiàn)在:
1、本發(fā)明提出的可靠性檢測方法,是通過在puf周圍添加干擾電路來實現(xiàn)puf可靠性的快速檢測,極大地提高了其在安全應(yīng)用方面的可靠性,使其可以廣泛應(yīng)用于安全相關(guān)領(lǐng)域。
2、本發(fā)明提出的可靠性檢測方法,與傳統(tǒng)的ecc檢測方法相比,不需要額外的硬件資源,即可在fpga上實現(xiàn),且不會有泄露相關(guān)重要信息的危險,使得在硬件資源受限的認證系統(tǒng)上面實現(xiàn)高可靠的物理不可克隆函數(shù)變?yōu)楝F(xiàn)實。
3、本發(fā)明提出的可靠性檢測方法,相對于通過電壓、溫度改變來提高可靠性的方法,很大程度的減少了溫度和電壓等額外調(diào)節(jié)設(shè)備開銷,且省時省力。
附圖說明
圖1為現(xiàn)有技術(shù)中物理不可克隆函數(shù)(puf)響應(yīng)生成模塊;
圖2為本發(fā)明可靠性檢測模塊的工作流程圖;
圖3(a)為現(xiàn)有技術(shù)中無干擾電路的物理不可克隆函數(shù)的漢明距離圖;
圖3(b)為本發(fā)明簡單干擾電路后物理不可克隆函數(shù)的漢明距離圖;
圖3(c)為本發(fā)明復(fù)雜干擾電路后物理不可克隆函數(shù)的漢明距離圖;
圖3(d)為本發(fā)明頻率和數(shù)量均改變后物理不可克隆函數(shù)的漢明距離圖。
具體實施方式
本實施例中,一種基于fpga的環(huán)形振蕩器物理不可克隆函數(shù)的可靠性檢測方法是按如下步驟進行:
步驟1、利用環(huán)形振蕩器物理不可克隆函數(shù)的約束文件定義環(huán)形振蕩器物理不可克隆函數(shù)在fpga上的位置;再利用環(huán)形振蕩器物理不可克隆函數(shù)的約束文件禁用環(huán)形振蕩器物理不可克隆函數(shù)周圍的邏輯單元;本實施例中,環(huán)形振蕩器物理不可克隆函數(shù)的組成如圖1所示,由兩個環(huán)形振蕩器、兩個計數(shù)器和一個比較器構(gòu)成;環(huán)形振蕩器由一個使能與非門和四個反相器首尾相連組成一個環(huán)狀,環(huán)形振蕩器的輸出端連接計數(shù)器的輸入端,兩計數(shù)器的輸出端最終接入比較器;
步驟2、在fpga上實現(xiàn)環(huán)形振蕩器物理不可克隆函數(shù),從而產(chǎn)生初始響應(yīng)序列;在本實施例中,為使環(huán)形振蕩器物理不可克隆函數(shù)是通過利用器件制造時的工藝偏差輸出隨機的不可克隆的激勵響應(yīng)序列,所設(shè)計的物理不可克隆函數(shù)是對稱布局的,即兩個環(huán)形振蕩器在底層的設(shè)計是結(jié)構(gòu)相同的,且對稱布局等長布線,以使兩個環(huán)形振蕩器所對應(yīng)器件之間的延遲是相同的,從而消除系統(tǒng)偏差,使得環(huán)形振蕩器的輸出響應(yīng)序列即所接入計數(shù)器的計數(shù)結(jié)果完全由芯片或器件在生產(chǎn)時的不可避免的工藝偏差所決定;當使能信號為1時,環(huán)形振蕩器開始以一定的頻率振蕩,由于器件在加工制造時工藝偏差的影響,兩條路徑的傳播延遲有偏差,兩環(huán)形振蕩器的振蕩頻率結(jié)果分別接到對應(yīng)的計數(shù)器,最后通過比較器來比較兩周期信號的振蕩頻率,輸出響應(yīng)序列為邏輯0或者邏輯1;
步驟3、利用漢明距離衡量環(huán)形振蕩器物理不可克隆函數(shù)的可靠性,得到無干擾下的可靠性指數(shù)a;物理不可克隆函數(shù)的響應(yīng)序列不可避免的受到噪聲、測量的不確定性和外部因素的影響,而片內(nèi)漢明距離(hd,intra-chiphammingdistance)是指對一個單一的物理不可克隆函數(shù)重復(fù)兩次輸入一個特定的激勵后,其產(chǎn)生的響應(yīng)之間的距離,顯然,片內(nèi)漢明距離的大小反映了同一個物理不可克隆函數(shù)實體受環(huán)境因素的影響程度,也就是單個物理不可克隆函數(shù)實體的可靠性程度;可靠性可通過下式(1)計算:
可靠性=100%-hdintra(1)
而hdintra可通過以下式(2)計算:
式(2)中,m是在不同的操作環(huán)境下從n位響應(yīng)序列中提取的位數(shù);hd(ri,r’i,t)是芯片i在正常操作環(huán)境(ri)和另一操作環(huán)境(r’i,t)下所產(chǎn)生響應(yīng)序列的片內(nèi)漢明距離;可知片內(nèi)漢明距離越小,可靠性越高;本實施例中,通過改變所設(shè)計的物理不可克隆函數(shù)的環(huán)境,使得溫度范圍為20℃-65℃、電壓為20%(核心電壓為1v)浮動的環(huán)境下進行多次測量漢明距離,得到無干擾下的可靠性指數(shù);
步驟4、定義變量n,并初始化n=1;
步驟5、在環(huán)形振蕩器物理不可克隆函數(shù)周圍添加n個干擾電路后,從而產(chǎn)生第n次響應(yīng)序列;本實施例中,干擾電路布置在所述物理不可克隆函數(shù)電路周圍,干擾電路由不同數(shù)量和頻率的基于環(huán)形振蕩器的物理不可克隆函數(shù)電路構(gòu)成,每添加一次干擾電路,就會相對應(yīng)的響應(yīng)位序列;首先添加簡單的邏輯干擾模塊;然后改變邏輯干擾模塊的數(shù)量,增加復(fù)雜度,布置更多的邏輯干擾模塊在原有物理不可克隆函數(shù)電路的周圍;最后改變邏輯干擾模塊的數(shù)量和頻率,最大化的檢測翻轉(zhuǎn)位;
步驟6、比較第n次響應(yīng)序列和初始響應(yīng)序列之間相應(yīng)的響應(yīng)位是否存在翻轉(zhuǎn),若存在,則將翻轉(zhuǎn)的響應(yīng)位去除后,利用漢明距離再次衡量環(huán)形振蕩器物理不可克隆函數(shù)的可靠性,得到第n檢測的可靠性指數(shù)an,再執(zhí)行步驟7;若不存在,則保留第n次響應(yīng)序列;并執(zhí)行步驟8;如圖2所示,為可靠性檢測模塊的工作流程圖,通過設(shè)計一個128位的原有puf電路,并提取出相應(yīng)的響應(yīng)位結(jié)果;然后在原有128位puf電路周圍添加不同頻率和數(shù)量的干擾邏輯電路,再次提取其響應(yīng)位結(jié)果,此結(jié)果和之前沒有添加干擾電路的結(jié)果進行比較,即可快速有效的檢測到不穩(wěn)定的響應(yīng)位,通過排除掉不可靠的響應(yīng)位,重新設(shè)計物理不可克隆函數(shù)電路,再次通過操作環(huán)境的變化檢測改進后的物理不可克隆函數(shù)電路的穩(wěn)定性,從而提高了可靠性;
步驟7、比較第n檢測的可靠性指數(shù)an是否等于無干擾下的可靠性指數(shù)a,若等于,則表示環(huán)形振蕩器物理不可克隆函數(shù)的可靠性不變;否則,表示環(huán)形振蕩器物理不可克隆函數(shù)的可靠性得到提升;
步驟8、將n+1賦值給n后,返回步驟5執(zhí)行,直到可靠性指數(shù)滿足環(huán)形振蕩器物理不可克隆函數(shù)的性能要求為止。
由圖3(a)所示,128puf的片內(nèi)漢明距離的平均值是5.77%,意味著在產(chǎn)生的128位id平均片內(nèi)漢明距離小于7.4位。圖3(b)、圖3(c)和圖3(d)所表達的是在128puf周圍添加不同復(fù)雜度的干擾邏輯,通過添加干擾邏輯來提取不同數(shù)量的不穩(wěn)定的響應(yīng)位,從圖3(b)、圖3(c)和圖3(d)中可看出片內(nèi)漢明距離分別是3.69%、2.30%和2.00%,可知,通過添加干擾電路可以快速檢測到不穩(wěn)定位,有效地提高了puf的可靠性。