用於測試物理不可克隆功能的設備和方法與流程
2023-04-25 12:24:16

本發明總體上涉及數據和設備安全領域,並且更具體地涉及用於測試在設備中實現的物理不可克隆功能的方法和裝置。
背景技術:
集成電路通常包含諸如安全密鑰等的加密數據和加密功能。然而,可以實現不同類型的攻擊來針對集成電路從外部嘗試訪問這些數據,不同類型的攻擊例如,旁路攻擊、電遷移(例如,功耗、電磁發射、操作持續時間等)、成像、故障注入等。
為了抵制這樣的攻擊,提出了基於結合密碼學的篡改保護方案的解決辦法,例如,物理不可克隆功能(puf),如pappu等人於2001年3月在mit的「physicalone-wayfunctions」中所公開的。puf是被包含在物理結構的物理實體,該物理結構在物理實體的每個物理例示中均相同,並且當被提供有輸入時該物理結構產生特定輸出。該特定輸出的值對於包含在設備內的物理實體的每個例示均是特定的。除了本質上是防篡改的之外,puf由此也確保了一個設備的puf值認知不會危害所有製作設備。
puf利用了許多相似設備的製造過程中的條件差異。puf可以被併入cmos集成電路。某種程度上,puf可以被認為是類似於設備的指紋。puf可以用於許多情景(例如,認證其所附的晶片或物品、生成prng的加密密鑰或加密種子等)。
包含puf的物理結構由至少一個任意的部件構成。通過向物理系統以刺激的形式提交輸入,並且將作為在刺激與物理系統之間交互的結果而發生的行為映射到輸出,來獲得針對給定輸入的puf的輸出。
puf本質上具有防篡改的屬性。如果攻擊者嘗試拆解puf以觀察它的操作,則這也將幹擾puf的隨機元件以及輸入與輸出之間的映射。通過逆向工程所獲得的puf結構的信息不會公布puf值。
針對給定激勵(challenge)的puf的輸出值對每個包含在設備內的物理例示均是特定的。puf反應了其它相似結構的製造過程中的條件變化。
常規puf包括「矽puf」,其是以與電子電路相同的材料並且通過與電子電路相同的過程所製作的。這允許將puf嵌入得非常靠近處理和發送信息的電路的部分。矽puf的位置非常接近密碼模塊,並且因此很難將其篡改。
一些puf,被認為是「強」puf,具有輸入並且以不同方式回復每個輸入。大多數矽puf很適合是強的,這是因為它可以具有必要的邏輯以在puf等待輸入時向puf呈現輸入。
強puf接受的輸入通常被稱為「激勵」或激勵信號。由比特的矢量來表示激勵。puf的輸出通常被稱為「響應」或「響應信號」。由此puf是將數字「激勵」映射到數字「響應」的物理功能。對給定參考激勵的響應也被稱為「標識符」。包括puf的激勵和相應響應的對被稱為激勵-響應對。
給定激勵與包含puf的物理系統之間的交互不能在不訪問系統的情況下被預測。於是,很難描述puf的特徵。在不訪問特定puf下的特定物理系統的情況下,獲得針對給定激勵的特定puf的響應是不可實現的。由此puf實現了一組激勵-響應對(crp),以使得獨立的邏輯類似的設備產生不同crp,這甚至對設計者而言是不可預測的。換言之,激勵-響應對crp被耦合到唯一的物理設備(所以,是puf的「不可克隆的」屬性)。作為結果,puf功能允許使用它們的固有的物理屬性來識別對象。
puf基於對象的物理屬性來確定預定義激勵值的相關聯的響應值。為了認證對象(即,將對象識別為原始對象),一種方法包括如果激勵-響應對crp是已知的,並且由對象所提供的響應值被用於對於這些激勵進行認證,則比較針對給定激勵的可用響應值的相似性。也可以將puf用於加密密鑰的晶片上確認、或用於生成唯一的標識符,例如,用於加密目的的加密密鑰。
當處理puf時,可能要求評估或測試puf設備的品質。puf設備的品質可能與許多屬性或度量有關,該屬性或度量例如:
穩定性/可靠性:它指的是針對給定輸入的響應是以確定性的方式來進行回應的屬性。這個屬性不僅僅是安全屬性。事實上,它還是安全問題,這是因為不可靠的puf可能偶然地提供另一puf的輸出;
隨機性/不可預測性:它指的是puf響應是不可預測的屬性,因為其具有序列號,針對每個設備是增量的;
唯一性:它指的是puf的實例都是相異的屬性;
擴散性:它指的是針對激勵的puf的響應與激勵無關的屬性,例如,很難從一組已知的激勵-響應對來推斷答案。這個屬性特別對於「強puf」是重要的。
已經在yoheihori、takahiroyoshida、toshihirokatashita和akashisatoh的「quantitativeandstatisticalperformanceevaluationofarbiterphysicalunclonablefunctionsonfpgas」,internationalconferenceonreconfigurablecomputingandfpgas,ieee,2010,pp.298-303中分析了這些屬性。
首要的是對代表puf的品質的這些度量進行測試,以確保puf是可操作的並且它又可以被安全地使用。事實上,如果通過某些方法(自然的或對抗性的),則攻擊者能夠改變puf的結果,他/她可以成功地模擬設備,或甚至成功地選擇它的加密密鑰。
存在兩種測試用於評估puf的品質:
1、在puf的抽象模型上的測試,其給出了puf基本原理是合理的保證(於2016年ieeeinternationalsymposiumoninformationtheory在oliverrioul、patricksolé、sylvainguilley和jean-lucdanger的「ontheentropyofphysicallyunclonablefunction」中),
2、在puf的一具體實例上的測試
第二類的測試是最重要的,這是因為:
抽象模型可能與現實不匹配,以使得第一測試可能是沒有價值的,並且
攻擊者可以通過若干攻擊(例如,通過銷毀它,剪斷必要的線,諸如,單點故障、故意加速其老化等)來改變puf。
針對puf的大多數的現有的測試都具有限制,這是因為它們不是作為在線和嵌入式測試實施的。「在線」測試指的是使用puf對最終產品在現場實施的測試。「嵌入式」測試指的是沒有外部連接的情況下(其否則將被視為「後門」)對puf是可計算的測試。
存在有「穩定性/可靠性」和「擴散性」的在線和嵌入式測試。然而,puf的隨機性、不可預測性和唯一性屬性不可能利用嵌入式測試來評估。事實上,這些度量不涉及單個的puf實例,而涉及「一批puf」。更具體地,puf的主要挑戰與唯一性的測試有關。如果一批puf中的其它puf的值未知,則很難評估puf的唯一性。puf的唯一性可以被定義為在響應於相同激勵的多個puf當中的獨立性。來自puf的響應需要具有極其高的唯一性,以便防止加密硬體的克隆。為了擔保唯一性,製造商必須確保具有相同激勵響應對的多個puf是不存在的,其代價是很高的,因為與相同puf批次相關的每個puf均包括大量製造的puf和激勵響應對。
puf是由唯一的模型所實現,並且被製造為例如在製作之後puf的每個實例均是不同的。puf的每個實例均具有行為特徵,該行為特徵很少與屬於相同批次的puf的其它示例相關。對被製作為彼此靠近的puf而言,可以存在小的相關性,但是該相關性隨著距離而減小。這是由於puf的工作因素。事實上,puf依靠實例之間的小技術差異,其是每個實例的獨特的行為的原因。
這樣的技術差異是:
獨立的(例如,由於電晶體的非均勻摻雜),並且
相關的(例如,由於表面效應,被植入puf的晶圓中的部分可以比離得遠的另一部分摻雜得更多)。
然而,相關性的典型距離至多具有幾微米級的量級,而puf實例的典型尺寸則具有若干微米級的量級,甚至是在深亞微米cmos工藝中。
用於評估puf唯一性的現有的方法是基於對由給定puf批次中的puf所生成的標識符進行查詢的,並且計算標識符的熵(高的熵意味著好的隨機性)和標識符當中衝突的數量(衝突越少,唯一性越好)。在現有方法中,關於puf批次的參數估計包括請求puf的相同批次的puf示例中的許多或所有puf示例的響應(例如,唯一的標識符)。然後,基於這樣的標識符的資料庫,可以測試唯一性和隨機性。這些屬性被稱為「批次屬性」。例如,這樣的方法在以下中被描述:
yoheihori、takahiroyoshida、toshihirokatashita和akashisatoh的「quantitativeandstatisticalperformanceevaluationofarbiterphysicalunclonablefunctionsonfpgas」,internationalconferenceonreconfigurablecomputingandfpgas,ieee,2010,pp.298-303,以及
abhranilmaiti、vikashgunreddy和patrickschaumont的「asystematicmethodtoevaluateandcomparetheperformanceofphysicalunclonablefunctions」,iacreprint,vol.657,pp.245-267,2013.
這樣的方法是代價極其高的,並且有時是不可能執行的。
可能在產品的生命周期中的多個時間處都需要測量批次屬性(隨機性和唯一性),生命周期中的多個時間諸如例如:
剛剛製造完成之後;
現場啟動產品時;
在puf被請求之前(就是說,被激勵至少一次);和/或
偶爾,用於檢查是否沒有傷害或沒有攻擊被施加到puf上。
在製造完成之後,可能請求puf響應,但是這可能引起生產線中的延期,所以招致額外的花費。此外,可能將相同的puf使用在不同的產品中,而嵌入puf的產品在不同的地方被製造。這樣的異構並不使puf標識符的收集變得容易。在這種情況下,不是在puf的所有實例上測試「批次屬性」,而是在puf批次的代表性的池上進行測試。在大多數操作環境中,「批次屬性」的估計實際上難以實現。例如,可以在很多不同設備中分發puf,該很多不同設備可能並不容易並且隨時能夠訪問。此外,公開puf的響應對puf而言被認為是安全問題。因此,要求puf批量屬性可以就地被測試。
因此,需要能夠有效測試puf的隨機性和唯一性的在線和嵌入式測試
技術實現要素:
為了解決這些和其它問題,提供有用於對被實現在設備中的物理不可克隆功能(puf)進行測試的方法,所述puf被配置為接收至少一個激勵並且產生一組響應,每個激勵包括一組比特,每個響應包括至少一個比特並且與一個激勵相對應;所述puf包括電路,所述電路包括一組puf元件,每個puf元件由與所述激勵的至少一個比特相對應的至少一個輸入比特所控制。所述方法可以包括以下步驟:
將所述激勵的至少一個比特應用到所述puf實例;
確定所述puf元件中的至少一些的標識符,每個puf元件的標識符是根據響應於所述激勵的所述至少一個比特而由所述puf元件所輸出的響應來確定的;
將統計隨機性測試應用到包括針對puf元件所確定的標識符中的至少一些在內的標識符的群組,統計隨機性測試提供測試指示符;以及
基於所述測試指示符來測試所述puf。
在特定實施例中,puf可以包括被布置在puf中以讀取每個puf元件的輸出的至少一個輔助部件;並且確定puf元件的標識符的步驟可以包括根據讀取協議來讀取至少一些puf元件的輸出。
在可以由順序讀取協議和並行讀取協議構成的群組中選擇讀取協議。
在一些實施例中,確定每個puf元件的標識符的步驟可以包括:
迭代地應用一組激勵,並且對響應於每個激勵而由puf元件所輸出的響應進行讀取;
根據響應來確定puf標識符的標識符。
由puf元件所輸出的響應可以包括至少一個比特,並且根據該響應來確定puf標識符的標識符的步驟可以包括聚集針對一組激勵讀取的響應中的至少一些。
在一些實施例中,該方法可以進一步包括將在每個puf元件的輸出處所讀取的響應存儲在數據結構中。
在本發明的一個應用中,puf是仲裁器puf,其包括一組puf元件,每個puf元件均是包括成對部件的延遲元件,每個成對部件包括至少一個切換單元,該切換單元具有用於接收信號的主輸入,成對部件共享控制輸入,其接收與puf元件相關聯的激勵的至少一個比特,響應於激勵,仲裁器puf的成對部件定義了兩個邏輯路徑,puf進一步包括位於邏輯路徑末端的主仲裁器單元,其用於對兩個邏輯路徑之間的模擬時間差異進行比較,並且取決於時間差異而產生數字輸出。輔助部件可以進一步包括至少一個輔助仲裁器單元,其用於通過在每個puf元件的成對部件處的兩個信號輸出之間確定哪個信號更快,來生成比特值,在puf元件的輸出處的響應等於該比特值。
至少一個輔助仲裁器單元可以包括主仲裁器單元和選擇器,該選擇器被配置為對選定puf元件的成對部件的輸出進行選擇,並且在測試模式中將該輸出發送到仲裁器單元。
選擇器可以由索引比特所控制,該索引比特具有表示選定puf元件的索引的值。
至少一個輔助仲裁器單元可以包括一組基本仲裁單元,被布置在puf元件輸出處的每個基本仲裁單元被配置為在測試模式中接收puf元件的成對部件的輸出,並且生成比特值。
該方法可以進一步包括檢測在獲取puf元件的標識符的步驟期間所生成的錯誤,以及改正錯誤。
puf是給定批次的實例,該方法可以進一步包括對位於設備中的puf附近的puf批次的一個或多個puf實例的鄰近puf元件的標識符進行確定,一組puf進一步包括鄰近puf元件的標識符。
鄰近puf元件的標識符可以根據diffie-hellman協議被發送到puf實例。
在一些實施例中,可以在由熵測試和mauer測試構成的群組中選擇至少一個統計隨機性測試。
如果在應用統計隨機性測試的步驟中,檢測到在該組puf元件標識符中至少一個puf標識符是冗餘的,則測試指示符可以被分配為第一值,方法進一步包括響應於測試指示符被分配為第一值來觸發動作的步驟。
更具體地,在由撤銷puf、禁用puf、散發通知、或散發警告消息構成的群組中選擇該動作。
進一步提供有電腦程式,當電腦程式在適當的計算機設備上被執行時,電腦程式包括用於根據任何先前的特徵來執行該方法的步驟的指令。
還提供有測試設備,其用於測試被實現在設備中的物理不可克隆功能(puf),puf被配置為接收至少一個激勵並且產生一組響應,每個激勵包括一組比特,每個響應包括至少一個比特並且與一個激勵相對應,puf包括電路,該電路包括一組puf元件,每個puf元件由與激勵的至少一個比特相對應的至少一個輸入比特控制,測試設備被配置為將激勵的至少一個比特應用到puf實例。測試設備包括:
標識符獲取單元,其被配置為確定用於puf元件中的至少一些puf元件的標識符,每個puf元件的標識符是根據響應於激勵的至少一個比特而由puf元件輸出的響應來確定的;
測試應用單元,其被配置為將統計隨機性測試應用到包括針對puf元件所確定的標識符的至少一些在內的標識符的群組,這提供測試指示符;
測試設備,其被配置為基於測試指示符來測試puf。
本發明的實施例允許在無需測試puf所屬的puf批次中的所有puf實例的情況下測試puf的唯一性和隨機性。
附圖說明
現在將通過示例參考附圖來描述本發明的實施例,其中附圖中相似的附圖標記指示類似的元件,在附圖中:
圖1表示用於測試puf實例的唯一性的系統;
圖2是根據特定實施例的測試系統的方框圖;
圖3是根據特定實例描述了對屬於puf批次的puf實例的唯一性和隨機性進行測試的步驟的流程圖;
圖4是示出了根據特定實施例獲取puf的puf元件的步驟的流程圖;
圖5示出了根據特定實施例的對仲裁器puf的本發明的示例性應用;
圖6表示根據特定實施例的仲裁器puf的puf元件;
圖7表示根據一個實施例的仲裁器puf;
圖8表示根據另一實施例的仲裁器puf;以及
圖9表示測試系統的示例性實施方式。
具體實施方式
提供有用於對嵌入在設備上的puf實例(也被稱為puf「例示」)的唯一性和隨機性進行測試的方法和系統,該puf實例屬於給定的puf批次,該方法和系統避免了對該批次其它puf實例進行測試的需要。
圖1表示用於測試puf實例10的唯一性的系統100。該puf實例被嵌入在諸如集成電路等的設備12中。系統100包括測試設備11,該設備11用於對屬於包括一組puf實例在內的puf批次20的puf實例的唯一性進行測試,而不需要訪問該批次的所有puf實例。
設備12可以包括一個或多個puf實例,其包括屬於與被測試的puf實例相同批次20的其它puf實例。被嵌入在設備12中並且屬於相同批次的其它puf實例將在下文中被稱為「鄰近」puf實例。
將由測試系統100進行測試的每個puf實例被配置為當以特定輸入查詢時,產生可測量的輸出。應當意識到的是,puf本身不是數學意義上的「函數」。事實上,puf的輸入可以具有多於一個可能的輸出。然而,對給定激勵的可能應答的數量是有限的,並且對於相當可靠的puf而言,該對給定激勵的可能應答的數量可期望地僅等於一。而puf指定由特定(物理)系統執行或作用於特定(物理)系統上的過程。
應用到puf10的輸入被稱為「激勵」。由puf10所產生的輸出被稱為「響應」。由所應用的激勵和相應的被測量的響應組成的對被稱為激勵響應對或「crp」。由特定puf10所生成的激勵與響應之間的關係被稱為puf的crp行為。
puf10可以根據兩個階段進行操作:
在第一階段,稱作「註冊」,可以從puf10收集許多crp,並且將其存儲到所謂的crp資料庫;
在第二階段,也稱作「驗證」階段,來自crp資料庫的激勵可以被應用到puf10,並且可以將由puf所產生的響應與來自該資料庫的相應響應進行比較。
被應用到puf10的激勵和作為應用激勵的結果所獲得的響應可以包括比特串。在一些實施例中,可以應用解碼和量化步驟以將模擬物理刺激應用為激勵,並且從由此獲得的模擬效應的測量中導出響應。
應用到puf10的相同激勵不一定產生相同響應,這引起puf響應之間的中間距離。這可能是隨機噪聲、環境因素(例如,puf在集成電路上的情況下的溫度或供給電壓)造成的。
本發明的實施例可以被應用到任何類型的puf,例如:
由電氣和/或電子構建塊構成的puf結構,該puf結構的響應生成主要是基於模擬測量(lcpuf、塗層puf…)。
數字固有puf(也稱作「矽」puf),其被嵌入在集成電路(ic)設備12上,並且其基於由用於所考慮的製造技術的常規數字基元所形成的構建塊。固有puf(intrinsicpuf)的結構是基於基元的,其可供用於嵌入式設備的製造過程。此外,嵌入了固有puf的設備12可以查詢並且讀出puf而無需外部工具,並且無需激勵與響應離開該設備。固有puf包括基於延遲的puf(在下文中也被稱為「延遲puf」),該延遲puf是基於延遲測量的(例如,仲裁器(arbiter)puf、環形震蕩器puf或ropuf、迴路puf等),並且固有puf包括基於存儲器的固有puf(在下文中也被稱為「存儲器puf」),該存儲器puf是基於存儲器元件的設置狀態的(srampuf、蝶型puf等)。
延遲puf是接受許多激勵的puf。例如,在延遲puf中,延遲是由激勵比特控制的,由此提供了大量的激勵組合。所以,延遲puf包括諸如仲裁器puf、ropuf或迴路puf等的puf。
存儲器puf與有限數量的不同激勵相關聯。例如,存儲器puf可以是srampuf。在這種情況下,可以將存儲器地址用作激勵。
在特定實施例中,本發明也可以被應用到所謂的「合成」puf或若干存儲器puf的組合。
puf10可以屬於「弱」puf或「強」puf的分類。
「弱」puf擁有一些內部的、不可克隆的物理亂序,並且擁有某種形式的利用該亂序的激勵響應機制。弱puf具有非常少的固定的激勵,並且在特定情況下每個puf實例僅有一個激勵。弱puf的激勵響應接口(或激勵響應機制,相應地)可以是訪問受限的。對手不能訪問弱puf的響應,即使它們保持對承載puf的硬體的物理佔有。可以使用被設計為對差異敏感的專用集成電路,或通過使用出現在所有現有的電路中的固有差異來實現弱puf。srampuf是利用構成sram單元的交叉耦合反向器的固有閾值差異的弱puf的示例。
「強」puf從出現在puf中的物理亂序導出更複雜的激勵響應行為。強puf包括涉及響應的生成的許多元件(物理部件),並且存在可以被應用到puf的非常大量的可能的激勵。強puf具有以下特徵:
強puf具有非常大量的可能的激勵。
不可預測性:即使對手已知crp的大量子集,但他不能推斷或預測其它子集,以及未知的crp。
無保護的激勵響應接口:強puf具有通常是自由的、公共可訪問的激勵響應接口。保持puf或承載puf的硬體的物理佔有的任何人,均可以將任意激勵應用到強puf並且讀出相應的響應。
應當意識到的是,「弱puf」(例如,srampuf、蝶型puf等)表示元件的集合,每個元件均可以被單獨編址。弱puf的激勵由此表示存儲點的地址,並且響應是開機時的存儲點的內容。
「強puf」也由若干元件組成,但是儘管如此該若干元件不表示能被獨立訪問。事實上,強puf通過它的元件的聚集的行為(例如,總延遲差異)而是唯一的。
puf10是基於內部構造的,這取決於puf的類型內部構造是不同的,並且該內部構造對激勵做出反應以產生響應。puf的內部構造可以包括重複的模式(在下文中被稱為「puf元件」),每個模式包括一組物理部件。
圖2是根據特定實施例的測試系統100的方框圖。如圖2中所示出的,測試設備11被布置成鄰近嵌入了puf的設備12。可選地,測試設備可以以伺服器的方式被實現,該伺服器通過計算機網絡連接到嵌入了puf實例的設備12,該伺服器被配置為從一個或多個客戶端設備接收用於測試puf實例的請求。
將被測試的puf實例10的內部構造可以是包括一組puf元件的電路,所述電路有助於響應於將激勵的至少一個比特應用到puf而得出puf響應。puf元件滿足預定義的模式(對所有puf元件而言同樣的模式),每個puf元件包括一組由模式定義的物理部件。
取決於puf的架構和類型,在puf實例中的puf元件的組裝可以相異。例如:
對於srampuf、蝶型puf、環形振蕩器(ro)puf類型的puf而言,每個puf元件均是獨立的;
對於arbiterpuf(apuf)而言,puf元件由多個對連結,每一對的元件均屬於不同的邏輯路徑;
對於迴路puf(lpuf)而言,puf元件連接成環狀。
應用到puf10的每個激勵均包括一組比特(或「比特串」)。每個puf元件受到至少一個輸入比特的控制,該輸入比特由被應用到puf的激勵的比特所表示。響應於被應用到puf元件的這樣的輸入,puf實例的puf元件被配置為執行相同的功能。在特定類型的puf,例如,仲裁器puf中,puf元件的數量等於激勵中所包括的比特的數量(換言之,激勵中的比特位置與puf元件相關聯,在該比特位置的比特作為控制比特被輸入到puf元件)。
puf測試設備11可以包括:
標識符獲取單元110(也被稱為「標識符獲取單元」),其被配置為獲取(或確定)puf實例10的puf元件中的至少一些的標識符,puf元件的標識符是根據在每個puf元件所讀出的輸出確定的;
隨機性測試應用單元112(也被稱為「標識符獲取單元測試應用單元」),其被配置為將至少一個統計隨機性測試應用到標識符的群組,所述標識符的群組包括從puf元件所獲取的標識符中的至少一些,這提供了測試指示符。「測試指示符」在下文中將被稱為「唯一性指示符」,儘管該指示符是puf的唯一性和隨機性兩者的指示符。
在特定實施例中,轉換單元111還可以用於使從puf實例的puf元件所獲取的標識符變得可靠。
此外,在特定實施例中,隨機性測試應用單元112可以進一步將從標識符組內的鄰近puf實例13所獲取的其它標識符考慮在內。
puf實例的唯一性可以根據所述puf唯一性指示符來評估。
出乎意料地,發明者發現:可以通過測試被包括在每個puf實例10中的puf元件,來有效地測試屬於包括一組puf實例在內的puf批次20的puf實例的隨機性和唯一性屬性。本發明的實施例利用了這樣的事實:由於在puf製造過程期間所引進的空間距離(中間距離),puf元件可能比兩個不同的puf實例更加相關。
事實上,由於puf實例之間的「相關性」,puf可能不是唯一的。
這些相關性可以至少由於:
架構的偏差,含義是在製作之後puf設計唯一性較差/隨機的;
在電晶體特性分散中的相關性。
第一類相關性(由於架構的偏差)通常存在於製作地點和時間的任何一個中。第二類相關性(由於電晶體特性分散)隨著空間被減小。兩個鄰近元件比在同一個晶圓上的兩個晶片上更相關,而同一個晶圓上的兩個晶片本身比在兩個不同的晶圓上的兩個晶片更相關。所以,通過將puf實例10認為是一批次「基本的1比特puf」,能夠發現由本發明所實現的唯一性和隨機性的本地測量揭露了架構偏差(如果有),以及由於小技術分散引起的相關性的最壞情況估計。應當意識到的是,即使在一個puf內唯一性和隨機性的估計是悲觀估計,但是它提供了保證puf的唯一性和隨機性的保守估計。
圖3是描述了通過測試設備11所實現的測試方法的流程圖。測試方法實現了對屬於puf批次20的puf實例10的唯一性和隨機性的測試,而無需訪問該批次的其它puf實例。
根據本發明的實施例,可以根據響應於應用至少一個激勵的一個或多個比特的每個puf元件的輸出,來確定puf實例10的puf元件的標識符。
更具體地,在步驟300,可以根據響應於一個或多個激勵應用到puf實例10而在每個puf元件輸出處所生成的基本響應,來確定puf實例10的puf元件100的標識符。取決於puf的類型,步驟300可以以不同方式實現。
在步驟301,可以通過將統計隨機性測試應用到包括在步驟300所獲取的puf元件的標識符的標識符的群組,來評估puf元件的唯一性。
在一些實施例中,可以在由熵測試和maurer通用統計測試組成的組中,選擇統計隨機性測試。
這樣的統計隨機性測試可以被配置為檢測分布中的廣泛的統計缺陷。
在步驟301使用maurer通用測試的本發明的一個實施例中,maurer通用測試可以將三個整數測試參數{l、q、k},以及根據在步驟202中所獲取的標識符所生成的n比特樣本sn=[s1,…,sn]作為輸入。可以如u.m.maurer,《auniversalstatisticaltestforrandombitgenerators》,journalofcryptology.vol.5,no.2,1992,pp.89-105.(我們可以引用該論文)所述的來選擇l、q、k的值。在一些實施例中,可以方便地選擇測試參數l、q和k,如下:
l可以在包含6和16之間進行選擇;
q可以比10×2l大;和/或
k可以儘可能的大,例如,k可以等於1000×2l。
這些l、q和k的值可以被縮放來匹配比特的可用數量。
在步驟305中,puf唯一性指示符可以作為在步驟304中應用統計測試的結果被返回。puf唯一性指示符可以是比特值,其可以取第一值或第二值。例如,如果方框306的測試失敗,則在步驟307可以向puf唯一性指示符分配第一值(例如,「0」),即,從puf元件所獲取的標識符當中的至少一個標識符是冗餘的(檢測為冗餘的)。另外,如果方框306的測試成功,則在步驟308可以向puf唯一性指示符分配第二值(例如,「1」),即,從puf元件所獲取的標識符當中未檢測到冗餘(步驟300中所獲取的標識符由此在所考慮的標識符組內被認為是唯一的)。
由於puf製造過程期間所引進的空間距離(中間距離),puf元件可以比puf批次的兩個有區別的puf實例更加相關,如果puf唯一性指示符指示在一組puf元件中所包括的puf元件標識符內檢測到冗餘(puf唯一性指示符被分配了第一值),則對於puf的熵檢測到最壞的情況,這意味著puf是不可靠的。
響應於puf唯一性指示符被分配了第一值(檢測到冗餘),測試方法可以觸發動作。可以在由撤銷所述puf、禁用puf、散發通知、或散發警告消息組成的組中選擇該動作。攜帶puf的設備12由此能夠向管理員系統報告發生了安全事件。管理員系統或網絡操作員可以使用這樣的信息,以決定將採取哪個「抵抗動作」。例如,可以使在受損的puf附近的設備禁用,或使其安全意識級別提高。
在一些實施例中,測試方法可以包括進一步的步驟301,檢測在獲取所述puf元件的標識符的步驟期間所生成的錯誤,並且改正錯誤。這確保所獲取的標識符的可靠性。可以通過在相同的激勵下重複地測量標識符並且檢查他們大多數時間是相同的來評估可靠性。
在一些實施例中,測試方法還可以包括步驟303,獲取鄰近puf的puf元件的標識符,鄰近puf是位於相同設備或鄰近設備中的所述puf附近的puf。然後,這樣的puf元件標識符被加到一組puf標識符,在步驟304中在該一組puf標識符上應用了統計隨機性測試。
取決於puf的類型,獲取puf元件的標識符的步驟300可以以不同方式實現。
在特定實施例中,為了確定每個puf元件的標識符,可以將輔助部件(例如,硬體部件)用於puf實例中,以確定響應於應用到puf實例的激勵的每個puf元件的基本響應。
在特定實施例中,輔助部件可以是讀取部件,用於讀取響應於所應用的激勵的每個puf元件的輸出(基本響應)。然後,可以通過根據給定訪問模式(也被稱為讀取模式)讀取puf的每個puf元件的標識符,來實現獲取puf實例10的元件的標識符的步驟300。可以在由用於順序地讀取標識符的順序模式、以及用於並行讀取標識符的並行訪問模式構成的群組中,選擇該讀取模式。
例如,如果puf是apuf,則用於讀取puf輸出的輔助部件可以是被配置為繞過所有延遲元件對的仲裁器。
在特定類型的puf中,例如,一些弱puf(諸如例如srampuf、蝶型puf、和ropuf等),輔助部件可以是初始地被實現在puf中來讀取puf元件的輸出,以便形成對於激勵的puf響應的讀取部件。在其它類型的puf中,這樣的輔助部件可以在製造puf實例時被插入在puf實例內,即使這樣的讀取部件不要求用於puf本身的操作。輔助部件將被用於讀取每個puf元件的基本響應,以便根據讀取的輸出來確定puf元件的標識符。
可選地,在特定實施例中,不是使用輔助部件來讀取響應於激勵的puf元件的輸出,可以將臨時訪問用於利用第一激勵來請求puf,「數字響應」等於在第一激勵的距離1處第一激勵與第二激勵之間的比較。這樣的臨時訪問在諸如例如迴路puf(lpuf)等的一些強puf中是可用的。
圖4是根據特定實施例示出了使用輔助部件獲取puf的puf元件(步驟301)的步驟的流程圖,該輔助部件用於使用臨時訪問來確定puf元件標識符。
獲取強puf10的puf元件的標識符(步驟400)的步驟可以包括,對於每個puf元件:
迭代地將某值應用到與控制puf元件的比特相對應的所述激勵(401),並且在puf元件的輸出處讀取響應(402),這提供了比特響應;
根據由puf元件針對迭代地被應用的一組激勵值迭代地輸出的一個比特響應中的至少一些,來確定puf元件的標識符(404)。
迭代的數量可以被預定義或選定。迭代的數量可以取決於puf元件標識符的熵。事實上,標識符的大小(以比特為單位)約束它的熵。例如,對於加密應用而言,典型地會需要128比特(對稱加密)或256比特(在橢圓曲線上非對稱加密)。
在特定實施例中,激勵可以包括一組比特,而在每個puf元件的輸出處比特響應是一比特響應。
在特定實施例中,給定puf元件的標識符可以在步驟404中通過聚集在puf元件輸出處作為應用的不同激勵的結果被迭代讀取的比特響應來確定。在本發明的應用中,其中在每個puf元件輸出處讀取的比特響應均是一比特響應,組成標識符的比特的數量可以等於迭代的數量。
因此,通過迭代地將許多激勵值應用於puf,每個puf元件的標識符可以根據在每個puf元件的輸出處所獲取的比特響應來生成。
在特定實施例中,一個或多個puf元件的比特響應可以針對每個應用的激勵並行地確定,從而並行地生成puf元件的標識符。可替換地,可以順序地確定一個或多個puf元件的比特響應。
在本發明的特定實施例中,被包括在puf實例10中的puf元件的比特響應可以被存儲在相同的數據結構中,通過表示puf元件的索引的第一索引和表示被應用的激勵的索引的第二索引來被編入索引。可替換地,可以將不同的數據結構用於存儲針對被應用於puf實例10的不同激勵的每個puf元件的比特響應。
在特定實施例中,每個puf實例10可以進一步由測試模式輸入控制,該測試模式輸入可以接收第一值以激活puf的測試,以及接收第二值以激活puf的功能操作。測試模式輸入可以由puf的每個puf元件所共享。
圖5示出了根據特定實施例的本發明對仲裁器puf10的示例性應用。
仲裁器puf10提取設備特定的差異,如兩個邏輯路徑101和102之間的延遲差異。仲裁器puf10包括定義兩個邏輯路徑的延遲元件的puf元件50-j的鏈以及主仲裁器單元104(在下文中也被稱為「仲裁器」或「主仲裁器」)。仲裁器104例如可以被實現為具有d埠和時鐘埠的鎖存器或觸發器。
仲裁器puf10具有多比特輸入,在其上被應用了一個或多個激勵c1…ci…cn,並且基於兩個路徑101和102之間的相對的延遲差異,來計算一比特輸出y。兩個邏輯路徑101和102的延遲由固有設備特定的差異影響,並且因此期望仲裁器puf10向設備12(在其上實現了仲裁器puf)輸出唯一的標識符。輸入比特通過控制puf元件50-j來確定路徑的延遲,每個puf元件包括一對基於多路復用器的部件。
刺激同時輸入到上層邏輯路徑101和下層邏輯路徑102,並且激勵作為選擇信號被輸入到仲裁器puf10。根據由比特序列定義的輸入激勵c1…ci…cn,刺激在路徑101、102中行進經過一組puf元件50-j,puf元件50-j具有相同的模式。仲裁器puf的每個puf元件50-j均由應用到puf10的激勵的比特ci來控制。
圖6表示根據特定實施例的仲裁器puf的puf元件。如所示出的,每個puf元件ci均包括被布置在上層路徑101的上層部件d(ci),以及被布置在下層路徑102的下層部件d(c』i),上層和下層部件由以下對連結:
上層部件d(ci)接收輸入xi並且傳送輸出yi;
下層部件d(c』i)接收輸入x』i並且傳送輸出y』i。
每個puf元件50-j的上層部件d(ci)和下層部件d(c』i)可以包括切換單元52,例如,由對應於激勵的第i比特的相同的輸入ci控制的多路復用器或選擇器。將參照被實現為多路復用器的切換單元做出以下描述,僅用於說明的目的。因此,對每個第i個puf元件50-j而言,輸出(yi,y』i)連接到輸入(xi,x』i)。在特定實施例中,每個puf元件50-j的上層部件d(ci)和下層部件d(c』i)可以進一步包括緩衝器51。每個puf元件運行由輸入ci控制的切換單元。如果輸入控制比特ci是0,則可以選擇每個部件d(ci)或d(c』i)的多路復用器52的輸入之一(例如,0輸入):然後,兩個延遲信號通過零輸入。另外,選擇多路復用器52的其它輸入,以使得頂層和底層信號被切換。對每個激勵輸入c=c1…ci…cn而言,puf仲裁器電路由此創建了一對延遲路徑101和102。為了估計響應於特定激勵的輸出y,在相同的時間向兩個路徑都給出上升信號,然後該信號快速通過兩個延遲路徑。因此,主要的輸入(x1,x』1)兩者都接收了0到1沿。然後,該上升沿傳播通過具有對於上層部件d(ci)的相似的延遲dit和dib(類似地,下層部件d(c』i)的不同的延遲di’t和di』b)的緩衝器51和多路復用器52。
仲裁器單元104(包括例如,鎖存器)確定哪個信號在路徑的末端更快。如果在上層部件d(ci)的輸出與下層部件d(c』i)的輸出之間的最快的信號是yn,則仲裁器單元104(其接收信號y』n和yn作為輸入)可以傳送1:然後,puf10輸出等於1的響應。否則,如果y』n是最快的信號,仲裁器單元104可以傳送等於0的響應:然後puf輸出0響應。
如圖6中所示出的,為了生成用於每個puf元件50-j的標識符,puf仲裁器10可以包括至少一個輔助部件105,其被布置在每個部件d(ci)和d(c』i)的上遊。在一些實施例中,輔助部件105可以被配置為取決於控制輸入test_mode,在部件的主輸出xi(相應地,對於下層部件為x』i)與輔助輸出test_ini(相應地,對於下層部件為test_in』i)當中,選擇一個輸入。輔助輸出test_outi(相應地,對於下層部件為test_out』i)可以被連接在每一成對的部件d(ci)和d(c』i)的輸出處,用於收集測試模式中所獲得的一比特響應,並且繞過該測試模式中的其它puf元件50-j。
被布置在鏈中的每個puf元件50-j的兩個成對的部件d(ci)和d(c』i)中的輔助部件105相應地被配置為取決於測試模式的值,能夠將上升沿注入在puf元件50-j的上層部件d(ci)的輔助輸入test_ini和下層部件d(c』i)的輔助輸入test_in』i中。測試模式信號test_mode可以由成對的部件d(ci)和d(c』i)所共享,並且可以被配置為激活在puf在其中被測試的測試模式和puf實例能夠在其中常規操作的功能puf模式之間的模式。因此,如果測試模式信號的值是激活測試模式的值,則輔助輸入test_ini(相應地,test_in』i)是針對每個成對部件d(ci)(相應地,d(c』i))的輔助部件105的輸入而不是主輸入xi(相應地,對於下層部件的x』i)。
可替換地,如果測試模式信號的值激活了puf的功能模式,則主輸入xi(相應地,x』i)是針對每個成對部件d(ci)(相應地,d(c』i))的輔助部件105的輸入。然後,puf可以根據它的常規操作模式來操作。
如圖7和圖8中所示出的,puf實例10的輔助部件可以進一步包括額外的仲裁部件,其用於在上層部件d(ci)的輔助輸出test_outi與下層部件的輔助輸出test_out』i之間進行仲裁。
在圖7的實施例中,仲裁部件可以包括主仲裁器104和以下輔助部件:
上層輔助選擇器106,其可以被實現為例如包括一組輸入的多路復用器,該一組輸入包括:puf的上層路徑101的puf元件50-j中的至少一些的上層部件的輔助輸出test_outi,以及puf元件鏈中的最後一個puf元件(第n個)的上層部件的主輸出yn的輸出。
下層輔助選擇器107,其可以被實現為包括一組輸入的多路復用器,該一組輸入包括:puf的下層路徑102的puf元件50-j中的至少一些的輔助輸出test_out』i,以及puf元件鏈中的最後一個puf元件(第n個)的下層部件的主輸出y』n。
每個輔助選擇器106或107可以由索引輸入來控制,該索引輸入由輔助選擇器106和107兩者所共享,並且表示將被測試的puf元件的索引。如果在測試模式中索引輸入選擇了索引i(test_mode輸入具有激活puf的測試模式的值),則輔助選擇器106和107分別地選擇第i個puf元件的成對部件的輔助輸出test_outi和test_out』i。然後,仲裁器104可以通過對在test_outi處的信號輸出與在test_out』i處的信號輸出之間哪個信號更快進行確定,來確定對第i個puf元件的一比特響應。如果測試模式輸入test_mode具有激活puf功能模式的值,則仲裁器如常規地操作,使用鏈中的最後一個puf元件的上層和下層部件的主輸入yn和y』n,以提供puf的激勵響應。
如圖7中所示出的,puf實例10的輔助部件可以進一步包括基本的仲裁器106,其用於在上層部件d(ci)的輔助輸出test_outi和下層部件的輔助輸出test_out』i之間進行仲裁。與每個puf元件相關聯的基本仲裁器106可以被配置為對信號輸出test_outi和信號輸出test_out』i之間哪個信號更快進行確定。每個基本仲裁器可以被實現為例如具有鎖存器數據輸入d和時鐘數據輸入c的鎖存器。
在測試模式中,可以根據圖4的測試方式通過向激勵c=c1…ci…cn迭代地應用某值(401)來實現puf實例的操作,每個比特值ci控制第i個puf元件。
對於每個被應用的激勵,在與第i個puf元件50-j相關聯的基本仲裁器106的輸出處讀取一比特響應(圖4的步驟402)。更具體地,如果在上層部件d(ci)的輔助輸出test_outi和下層部件d(c』i)的輔助輸出test_out』i之間最快的信號是test_outi(上層部件d(ci)的輔助輸出),則基本仲裁器106可以傳送1作為一比特響應。否則,如果在test_outi和test_out』i之間最快的信號是test_out』i(下層部件d(c』i)的輔助輸出),則基本仲裁器106可以傳送0作為一比特響應。
其它激勵值可以被迭代地應用到第i個puf元件,並且可以在每個迭代讀取一比特響應。對於在測試模式中針對被應用到puf的不同激勵值所獲得的一比特響應可以被存儲到數據結構中。當預定義或所選擇的數量的激勵已經被應用以生成第i個puf元件的標識符(圖4的步驟404)時,針對第i個puf元件所獲得的一比特響應可以被聚集或組合。
在如下實施例中,其中測試系統的測試設備11被配置為獲取被實現在相同設備12上的相同puf批次20的鄰近puf實例的puf元件的標識符,被測試的puf實例可以使用諸如例如diffie-hellman協議等的交換協議,來獲取鄰近puf實例的puf元件的標識符。然後,測試設備可以使用隨機性測試從puf實例直接獲取標識符以構成待測試的標識符組(圖3的步驟304)。
可替換地,鄰近puf可以將它們的puf元件的標識符直接發送到測試設備11。
在如下的實施例中,其中以如圖8中所述的通過網絡60連接到每個puf實例的伺服器的形式來實現測試設備11,測試設備可以被配置為獲取相同批次20的其它puf實例的puf元件的標識符,無論相同批次20的其它puf實例的puf元件被實現在相同設備12或其它設備中。
圖8示出了測試系統100的示例性實施方式,在測試系統100中,測試設備11被配置為獲取相同puf批次20的額外puf實例的puf元件的標識符。
測試設備11可以以如圖8中所述的通過網絡60連接到每個puf實例的伺服器的形式被實現,puf實例也可以包括相同批次20的被實現在無論相同設備12或其它設備中的其它puf實例。在這樣的實施例中,伺服器可以包括用戶接口,其用於輸入針對測試特定puf批次20的請求,批次通過批次號被識別。然後,測試設備可以獲取與連接到網絡的批次號相對應的puf實例的puf元件的標識符,該網絡可以是任何適當的網絡,例如,網際網路、區域網(lan)、廣域網(wan)和/或其它這樣類型的通信網絡。因此,如果每個puf實例返回k個標識符並且n個puf實例被用於形成經測試的標識符的組,則應用了隨機性測試(圖3的步驟304)的標識符組的標識符的數量可以增大到k×n。
從其它puf實例所獲取的標識符可以被加進應用了隨機性測試(如參考圖3的步驟304所述的)的標識符組。可替換地,從每個puf實例所獲取的標識符可以通過隨機性測試應用單元被單獨測試(即,隨機性測試被應用到標識符組,每一組中的標識符與一個puf實例相對應)。
本發明的實施例通過對被包括在puf批次的至少單個puf實例中或在有限數量的puf實例中的puf元件進行測試,來實現測試puf批次的隨機性/不可預測性屬性(puf響應是不可預測的屬性)和唯一性屬性(puf實例相異的屬性)。測試方法發明可以在線地被實現,即,在設備中通過將puf的操作切換成測試模式來實現puf實例的情況下。
可以在現場,在嵌入了puf的設備(集成電路、最終產品等)上實施本發明的實施例。測試系統100可以被實現,而不要求創建「後門」的外部連接。
測試方法可以被實現在puf實例的生命周期期間,諸如例如:
在puf的每個啟動時,
在puf的每次使用之前,或
偶爾或根據預定義頻率來檢查puf的完整性。
現在參照圖9,測試設備11可以在被總稱為計算機例如計算機70的一個或多個計算設備或系統上被實現。計算機70可以包括處理器71、存儲器72、大容量存儲存儲器設備75、輸入/輸出(i/o)接口77、和人機接口(hmi)78。計算機70也可以被連接到嵌入了至少一個puf實例的一個或多個設備11,並且通過網絡60和/或i/o接口77被操作地耦合到一個或多個外部資源。外部資源可以包括但不限於:伺服器、資料庫、大容量存儲設備、外圍設備、基於雲的網絡服務、或可以由計算機70所使用的任何其它適當的計算資源。
處理器71可以包括基於存儲在存儲器72中的操作指令來操作信號(模擬或數字)的一個或多個設備,例如,微處理器、微控制器、數位訊號處理器、微型計算機、中央處理單元等。存儲器72可以包括單個存儲器設備或多個存儲器設備包括但不限於:只讀存儲器(rom)、隨機存取存儲器(ram)、易失性存儲器、非易失性存儲器、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、閃速存儲器、高速緩存存儲器、或能夠存儲信息的任何其它設備。處理器71可以直接地或在駐存於存儲器72中的作業系統73的控制下執行指令。作業系統73可以管理計算資源,以使得電腦程式代碼被實現為一個或多個計算機軟體應用(例如,駐存於存儲器72中的應用74),其可以具有由處理器71執行的指令。一個或多個數據結構也可以駐存於存儲器72中,並且可以由處理器71、作業系統73、和/或應用74所使用以存儲或操作數據。數據結構可以包括用於存儲從給定的puf批次20的puf實例10所獲取的puf元件的標識符的數據結構。
i/o接口77可以提供機器接口,其將處理器71操作地耦合到其它設備和系統,例如,網絡60和/或外部資源42。hmi78可以以已知的方式被操作地耦合到計算機30的處理器32,從而允許計算機30的用戶直接與計算機30交互。hmi78可以包括任何適當的聲音和視覺的指示符,其能夠向用戶(視頻和/或字母數字的顯示器、觸控螢幕、揚聲器等)與輸入設備和控制項提供信息,該輸入設備和控制項能夠接受來自用戶的命令或輸入,並且能夠將所輸入的輸入發送到處理器71。
本文中所描述的方法可以通過提供給任何類型計算機的處理器的電腦程式指令來實現,以產生具有執行指令以實現本文中特定功能/動作的處理器的機器。這些電腦程式指令也可以被存儲在計算機可讀介質中,該電腦程式指令可以以特定方式指導計算機運行。為了那個目的,電腦程式指令可以被加載到計算機,以引起一系列操作步驟的執行並且從而產生計算機實現的過程,以使得所執行的指令提供用於實現本文中特定的功能/行動的過程。
更普遍的是,本文中所描述的測試系統和方法可以通過硬體、軟體、或它們組合中的多種手段被實現。
儘管本發明的實施例已經通過對多種示例的描述被示出,並且儘管已經相當詳細地表述了這些實施例,但是申請人的意圖不是要將所附權利要求的範圍約束或以任何方式來限制到這些細節。額外的優點和修改對本領域的那些技術人員是顯而易見的。所以,本發明在其更廣泛的方面不被限於所示出和所描述的具體細節、表現方法和說明性示例。尤其,本發明不被限於特定類型的puf。本發明也不被限於被測試的puf實例10中的特定數量的puf元件。此外,本發明不被限於如將被應用以測試puf元件標識符的隨機性測試(圖3的步驟304)的maurer或熵測試。可替換地,可以應用其它類型的隨機性統計測試。