TWI781544B - 積體電路裝置以及產生用於積體電路裝置的安全密鑰的方法及系統 - Google Patents
積體電路裝置以及產生用於積體電路裝置的安全密鑰的方法及系統 Download PDFInfo
- Publication number
- TWI781544B TWI781544B TW110107560A TW110107560A TWI781544B TW I781544 B TWI781544 B TW I781544B TW 110107560 A TW110107560 A TW 110107560A TW 110107560 A TW110107560 A TW 110107560A TW I781544 B TWI781544 B TW I781544B
- Authority
- TW
- Taiwan
- Prior art keywords
- bits
- key
- time programmable
- address
- signal
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Transmitters (AREA)
Abstract
產生用於積體電路裝置的安全密鑰的系統及方法包括用物理不可複製函數裝置產生複數個密鑰位元。物理不可複製函數裝置可包括可建立隨機位元的亂數產生器。隨機位元可儲存在非揮發性記憶體中。儲存在非揮發性記憶體中的數個隨機位元允許進行複數個質詢及回應相互作用,以自該物理不可複製函數裝置獲得複數個安全密鑰。
Description
本案是關於一種積體電路裝置,特別是關於一種包含物理不可複製函數產生器的積體電路裝置及產生用於積體電路裝置的安全密鑰的方法及系統。
隨著諸如個人通信、購物、銀行、商業等許多領域對電腦系統及網際網路的依賴增加,對改良網路安全性的需求亦增加。可使用許多安全措施,包括加密。物理不可複製函數為體現在實體結構中的實體對象,可用於產生輸出。輸出易於評估,但輸出很難或幾乎不可能預測。物理不可複製函數輸出可用作安全計算及通信中的唯一識別碼或密鑰。
個別物理不可複製函數裝置必須易於製造,但實際上幾乎不可能複製,即使給出產生其的精確製造製程亦係如此。在此方面,其為單向功能的硬體類比。物理不可複製函數通常在積體電路中實施,且通常用於對安全性有高
要求的應用中。
本案揭示一種產生用於積體電路裝置的安全密鑰的方法,包含用亂數產生器產生複數個密鑰位元,將密鑰位元儲存在非揮發性記憶體中,以及根據儲存在非揮發性記憶體中的密鑰位元產生安全密鑰。
本案另揭示一種積體電路裝置,包含物理不可複製函數產生器。物理不可複製函數產生器輸出兩個或更多個安全密鑰。每一安全密鑰包含複數個密鑰位元。物理不可複製函數產生器包含靜態隨機存取記憶體、一次性可編程裝置、加擾器、輸入位址加擾器、控制器以及輸出暫存器。靜態隨機存取記憶體在初始化之後被讀取以提供該些密鑰位元中的一或多者。一次性可編程裝置儲存自靜態隨機存取記憶體讀取的密鑰位元,以及在接收到位址後,根據密鑰位元提供兩個或更多個安全密鑰中的一者。加擾器對自靜態隨機存取記憶體讀取的密鑰位元進行加擾。加擾器為位元折疊電路或線性反饋移位暫存器中的一者。輸入位址加擾器接收輸入位址且對輸入位址進行加擾以產生提供至一次性可編程裝置的位址。控制器用於控制靜態隨機存取記憶體及一次性可編程裝置的功能。控制器進一步接收密鑰大小指示符信號,且根據用於安全密鑰的密鑰大小指示符信號設定輸出暫存器以儲存數個位元。
本案另揭示一種產生用於積體電路裝置的安全密鑰的系統,包含亂數產生器、輸入位址加擾器、一次性可
編程裝置以及輸出暫存器。亂數產生器包含靜態隨機存取記憶體以及線性反饋移位暫存器。靜態隨機存取記憶體在初始化之後被讀取以提供複數個位元。線性反饋移位暫存器將自靜態隨機存取記憶體讀取的位元加擾為經加擾密鑰位元。輸入位址加擾器接收輸入位址,將輸入位址加擾為經加擾位址,以及提供經加擾位址。一次性可編程裝置與反饋移位暫存器及輸入位址加擾器通信以:儲存自反饋移位暫存器提供的經加擾密鑰位元,使經加擾密鑰位元與位址相關聯,自輸入位址加擾器接收經加擾位址,判定與經加擾密鑰位元相關聯的位址,位址與經加擾位址匹配,讀取具有與經加擾位址匹配的位址的經加擾密鑰位元,以及將經加擾密鑰位元提供為安全密鑰。輸出暫存器與一次性可編程裝置通信。輸出暫存器自一次性可編程裝置接收安全密鑰,以及輸出安全密鑰。
100:物理不可複製函數裝置/產生器(物理不可複製函數電路、物理不可複製函數、積體電路裝置、認證電路)
102:控制器
104:亂數產生器
106:靜態隨機存取記憶體陣列(靜態隨機存取記憶體)
108:加擾器
110:非揮發性記憶體(記憶體、處理記憶體、一次性可編成、一次性可編成裝置、反熔絲一次性可編成、組件)
112:內置自測
114:驗證組件(驗證區塊)
116:輸入埠(輸入位址區塊)
118:輸出暫存器
120:輸出埠(輸出)
122:信號(輸入信號)
124:請求(輸入質詢信號、位址、信號)
126:信號(輸出信號、輸出就緒信號)
128:信號(輸出信號、輸出)
202:亂數產生器及/或亂數產生器介面(亂數產生器介面、功能組件)
204:非揮發性記憶體介面
206:非揮發性記憶體的初始寫入
208:非揮發性記憶體的驗證
210:亂數產生器位元的加擾器
212:非揮發性記憶體的關閉
214:密鑰大小判定器
216:輸入/輸出介面(功能組件)
300:資料結構
302:保留位元
304:位址(位址資料、欄位)
306:亂數(部分、欄位、隨機位元)
308:部分(密鑰、密鑰大小)
310:省略號
402:重設信號(信號)
404:重設或啟動信號
406:信號(重設或啟動信號)
408:信號(測試信號)
410a:信號
410b:信號
412:信號
414:信號
416:信號
418:狀態檢查信號(信號、輸入信號)
420:信號
422:信號
424:信號(狀態、輸出信號)
426:信號
428:信號
430a:信號
430b:信號
432:信號(訊息)
434:弧
436:信號
438:密鑰大小信號(密鑰大小指示符訊息、密鑰大小指示符信號、信號)
440:信號
442:質詢信號(信號、位址信號)
444:信號(位址)
446:信號(位址輸入信號、輸入位址)
448:信號(位址信號)
450:信號
452:信號
454:信號
456:信號
500:方法
508:操作
512:操作
516:操作
520:操作
524:操作
528:操作
532:操作
536:操作
540:操作
544:操作
548:操作
600:方法
608:操作
612:操作
616:操作
620:操作
624:操作
628:操作
632:操作
700:方法
708:操作
712:操作
716:操作
720:操作
724:操作
728:操作
732:操作
736:操作
740:操作
744:操作
748:操作
800:方法
808:操作
812:操作
816:操作
820:操作
824:操作
828:操作
當與附圖一起閱讀時,根據以下詳細描述可最佳地理解本揭示內容的各態樣。注意,根據行業中的標準實務,各種特徵未按比例繪製。實際上,為了論述清楚起見,可能任意增大或減小各種特徵的尺寸。
第1圖為說明根據本申請案的實例的實例物理不可複製函數產生器/裝置的各態樣的方塊圖。
第2圖為說明根據本申請案的實例的第1圖的實例控制器的各態樣的方塊圖。
第3圖為說明根據本申請案的實例的第1圖的物理不可複製函數裝置的實例資料結構的各態樣的方塊圖。
第4A圖為說明根據本申請案的實例的物理不可複製函數裝置的組件之間的通信的各態樣的通信圖。
第4B圖為說明根據本申請案的實例的物理不可複製函數裝置的組件之間的通信的各態樣的另一通信圖。
第5圖為說明根據本申請案的實例的用於將亂數儲存在物理不可複製函數裝置的非揮發性記憶體中的方法的各態樣的處理流程圖。
第6圖為說明根據本申請案的實例的用於產生物理不可複製函數安全密鑰的實例方法的各態樣的處理流程圖。
第7圖為說明根據本申請案的實例的用於將亂數儲存在物理不可複製函數裝置的非揮發性記憶體中的方法的各態樣的另一處理流程圖。
第8圖為說明根據本申請案的實例的用於判定物理不可複製函數裝置的狀態的方法的各態樣的處理流程圖。
以下揭示內容提供用於實施所提供的主題的不同特徵的許多不同實施例或實例。下文描述組件及配置的特定實例以簡化本揭示內容。當然,此等僅為實例,且並不旨在進行限制。舉例而言,在下文的描述中,在第二特徵之上或上的第一特徵的形成可包括其中第一特徵與第二特
徵直接接觸地形成的實例,且亦可包括其中在第一特徵與第二特徵之間形成額外特徵,使得第一特徵與第二特徵可能不直接接觸的實例。另外,本揭示內容可能在各個實例中重複參考數字及/或字母。此重複係出於簡單及清楚的目的,且其本身並不指示所論述的各種實例及/或組態之間的關係。
如上所述,物理不可複製函數(physical unclonable function;PUF)為體現在實體結構中的實體對象,可用於產生易於評估但幾乎不可能預測的輸出。積體電路(integrated circuit;IC)裝置通常包括形成在由諸如矽的半導體材料形成的半導體基板或「晶片」上的電子電路。積體電路裝置的組件藉由光微影製程形成在基板上,而非一次構造一個項目。形成在基板上的電子裝置藉由導體或導線互連,導體或導線亦藉由光微影製程形成在基板上。儘管批量製造,但每一積體電路裝置由於實體隨機性而具有唯一性,即使使用相同的製造製程材料亦係如此。可提取出此種固有變異,且將其用作其唯一識別碼,如同人類的DNA。根據本文揭示的實例,此種變化用於建立用作物理不可複製函數的唯一積體電路裝置簽章,因為其係唯一的、特定裝置固有的、不可複製的(無法模仿或複製)、可重複的等。
第1圖為說明根據本揭示內容的態樣的積體電路裝置的實例的方塊圖,該積體電路裝置可包括物理不可複製函數(physical unclonable function;PUF)裝
置/產生器100。積體電路裝置包括形成電子裝置的基板,該基板可為由積體電路實施的各種類型的裝置中的任一者,諸如處理裝置或記憶體裝置。物理不可複製函數裝置100用以經由輸入埠116接收質詢。回應於該質詢,認證電路用以提供安全密鑰形式的回應,其由物理不可複製函數電路100經由輸出埠120來輸出。如上所指出,物理不可複製函數100係基於積體電路製造期間不同實體製程變化的發生而構造的。此等靜態實體變化允許積體電路具有特定於積體電路的唯一指紋(fingerprint)(或多個唯一指紋)。當經由輸入埠116接收到特定質詢時,產生對應的唯一回應。能夠產生多個指紋的積體電路為強物理不可複製函數,因為可使用多個質詢及回應對。
使用某些物理不可複製函數產生技術,一些潛在的安全密鑰位元可能在一代物理不可複製函數與另一代之間有所不同。在本揭示內容中,此種密鑰位元稱為隨機位元。通常,隨機位元不適合用於密鑰產生,因為用具有隨機位元的密鑰加密的訊息可能無法可靠地解密。收集並識別出有用的位元,以為每一積體電路裝置產生唯一且可靠的密鑰。在本文揭示的一些實例中,維護經加擾隨機位元,而非保留用於產生安全密鑰的密鑰位元的記錄。在第1圖所示的實例中,隨機位元的經加擾版本儲存在非揮發性記憶體110中。產生安全密鑰包括存取記憶體110,且接著輸出回應密鑰。
物理不可複製函數裝置100用以產生包括預定數
目個密鑰位元的安全密鑰。如上所述,回應於所接收的質詢而提供安全密鑰,且由於該裝置的製造過程所導致的固有變化,該安全密鑰對於特定積體電路裝置100係唯一的。在一些實例中,物理不可複製函數裝置100包括亂數產生器104,例如,諸如靜態隨機存取記憶體(static random access memory;SRAM)陣列的記憶體陣列,其中該陣列的記憶體單元產生安全密鑰的密鑰位元。可基於所需安全密鑰的大小來判定用於密鑰產生的靜態隨機存取記憶體陣列的大小或靜態隨機存取記憶體陣列的存儲器單元的數目。
提供處理記憶體110用於物理不可複製函數資料處理。在所說明的實例中,處理記憶體110為非揮發性記憶體(nonvolatile memory;NVM)。在一些實例中,處理記憶體110為一次性可編程(One-Time Programmable;OTP)記憶體或裝置。在下文中,處理記憶體110可以可互換地稱為非揮發性記憶體(nonvolatile memory;NVM)110或一次性可編程(One-Time Programmable;OTP)110,然而,應注意,處理記憶體110不限於非揮發性記憶體或一次性可編程記憶體或裝置。
以質詢的形式接收對安全密鑰的請求124。輸入位址區塊116處置此種請求或質詢,以在向處理記憶體110提出質詢之前確保質詢的正確性。基於有效請求,處理記憶體110擷取安全密鑰。在一些實例中,輸入位址區
塊116藉由對輸入位址進行加擾以使發送至處理記憶體110的對安全密鑰的請求隨機化來處理請求。
在第1圖所示的實例電路中,用於儲存經加擾位元的記憶體包含設置在物理不可複製函數裝置100自身上的非揮發性記憶體。在其他實例中,記憶體位於物理不可複製函數裝置100的外部。在第1圖中,記憶體為反熔絲一次性可編程110,其在物理不可複製函數100中標記已識別的經加擾隨機位元的位址。如下文將進一步論述的,一次性可編程110最初不含資訊。在調試過程期間,一次性可編程110在複數個步驟中的每一步驟結束時用經加擾位元及位址進行更新。在所有步驟結束時,一次性可編程110將含有關於所有經加擾位元的資訊。物理不可複製函數100使用該資訊來回應於接收到的質詢來產生安全密鑰。所說明的實例進一步包括控制器102。在經由一次性可編程110實施非揮發性記憶體110的實例中,控制器102與一次性可編程110介接以進行讀取及寫入模式。
所說明的認證電路100進一步包括輸入位址區塊116,其提供在物理不可複製函數裝置100外部的介面。舉例而言,輸入位址區塊116起始對物理不可複製函數裝置100的存取,且跟蹤與一次性可編程110存取及資料收集有關的所有異動。
物理不可複製函數裝置100獲得所製造的裝置之間的固有差異以產生物理不可複製函數簽章。舉例而言,存在基於延遲鏈的物理不可複製函數,其中物理不可複製
函數將變化(差異)轉換為延遲變化。基於延遲鏈的物理不可複製函數使用一組由邏輯閘組成的延遲鏈。由於組件的靜態變化,每一鏈將具有不同的延遲。藉由對延遲進行取樣,可自亂數產生器(random number generator;RNG)104產生用於亂數的簽章。
另一方法係基於記憶體的物理不可複製函數,其中雙穩態元件中的裝置的變化經轉換以產生「1」或「0」。此種基於記憶體的物理不可複製函數包括可實施為諸如靜態隨機存取記憶體、動態隨機存取記憶體(dynamic random access memory;DRAM)、磁阻隨機存取記憶體(magnetoresistive random access memory;MRAM)、電阻隨機存取記憶體(resistive random-access memory;RRAM)、唯讀記憶體(read-only memory;ROM)等的各種記憶體單元陣列中的任一者的記憶體單元陣列。基於記憶體的物理不可複製函數的特定類型為靜態隨機存取記憶體物理不可複製函數,其包括靜態隨機存取記憶體(static random access memory;SRAM)陣列106。此等物理不可複製函數利用較小的記憶體單元變化來產生簽章。舉例而言,靜態隨機存取記憶體陣列可自單元的啟動狀態產生簽章,該簽章在不同靜態隨機存取記憶體之間係隨機的且係唯一的。
在一些組態中,亂數產生器104包括物理不可複製函數所基於的記憶體陣列。舉例而言,此種基於靜態隨
機存取記憶體的物理不可複製函數使用靜態隨機存取記憶體陣列106的記憶體初始資料內容(通電條件)來產生安全密鑰。所產生密鑰的自一個通電循環至下一通電循環不會改變狀態的位元稱為穩定位元。然而,嘗試識別並記錄待用於密鑰產生的每一穩定位元將需要大量時間,且記錄穩定位元可能會使密鑰產生暴露於旁側攻擊。另外,由於可能影響記憶體的穩定位元的環境影響、雜訊及老化,將需要大量額外位元來校正錯誤。
如上所述,一些實例經由靜態隨機存取記憶體實施物理不可複製函數產生器。舉例而言,可藉由使用靜態隨機存取記憶體裝置的通電狀態來產生物理不可複製函數簽章。即使靜態隨機存取記憶體裝置包括對稱單元(位元),製造差異仍可能導致靜態隨機存取記憶體裝置的每一位元在靜態隨機存取記憶體裝置通電時趨於處於高狀態(即,邏輯「1」)或低狀態(即,邏輯「0」)。位元的此等初始通電狀態會在整個靜態隨機存取記憶體裝置中隨機分佈,此會引起可由物理不可複製函數定義的可變性,以產生靜態隨機存取記憶體裝置的唯一密鑰。
在將靜態隨機存取記憶體用作物理不可複製函數產生器的其他實例中,藉由比較記憶體裝置的兩個記憶體單元的存取速度(例如,讀取速度)來產生安全密鑰的每一位元。在此種實例中,由於物理不可複製函數簽章係基於讀取速度的比較,因此不需要進行迭代來使記憶體裝置通電及斷電。
無關於基於靜態隨機存取記憶體的亂數產生器104的類型,可對靜態隨機存取記憶體106的位元或簽章進行加擾。對靜態隨機存取記憶體位元進行加擾可進一步使來自靜態隨機存取記憶體106的已隨機位元進一步隨機化,且藉由讀取靜態隨機存取記憶體106防止安全性受到損害,此係因為一次性可編程110中儲存的位元與自靜態隨機存取記憶體106讀取的位元不同。加擾器108可為位元折疊電路。在其他組態中,加擾器108可為線性反饋移位暫存器(linear feedback shift register;LFSR),且視情況與一或多個XOR閘配對。無關於加擾器的類型,可對所讀取的靜態隨機存取記憶體位元進行加擾或將其更改為新組態,此使得物理不可複製函數100難以受損,因為靜態隨機存取記憶體即使被讀取亦與一次性可編程110中儲存的位元不相同。
物理不可複製函數100的另一組件可為內置自測(built-in self-test;BIST)112。內置自測112可判定一次性可編程110及/或亂數產生器104的功能或恰當操作。內置自測112可發送且自一次性可編程110及亂數產生器104接收信號,以判定組件110、104兩者皆在起作用且在恰當地起作用。此操作資訊可傳達回至控制器102。
驗證組件114可驗證儲存在一次性可編程110內及/或來自亂數產生器104的資訊或資料。舉例而言,亂數產生器104可儲存一次性可編程110內的位元,且驗證組
件114接著可自一次性可編程110讀取位元,並將其與亂數產生器104的暫存器中的資訊進行比較,以判定此等位元是否已恰當寫入至一次性可編程110。接著,可將由此驗證產生的任何類型的資訊發送至控制器102,以進行進一步的操作。在其他情況下,一次性可編程110亦可驗證正在讀取且發送至輸出暫存器118的資訊。以此方式,控制器102可判定至輸出暫存器118的輸出是否已經發送及/或是否正確。
輸出暫存器118可儲存來自一次性可編程110的位元以自物理不可複製函數100輸出。輸出暫存器118可由控制器102組態以改變密鑰的大小或將自物理不可複製函數100發送的回應位元的量。在至少一些組態中,輸出埠120可以並行或串行格式輸出設定數目的位元,例如16個位元。輸出暫存器118可儲存可大於輸出120的16個位元的不同大小的密鑰。因此,輸出暫存器118可用以儲存將自輸出120發送出的整個輸出密鑰作為一或多個信號128。當輸出埠120在一或多個連續讀取中自輸出暫存器118獲得所有密鑰位元且將整個密鑰作為信號128發送出去之後,輸出埠120可在若干信號128中發送密鑰位元,例如一次發送16個位元。
輸出埠120可為並行或串行埠,其將信號128發送至與物理不可複製函數100進行通信的積體電路上或外部的另一裝置或功能。輸出埠120可具有輸出埠120可在任何一個信號128中發送的設定數目個位元,例如16個
位元。輸出埠120可發送連續或重複的輸出,直至提供整個密鑰作為輸出信號128。
物理不可複製函數100亦可包括輸入位址區塊116。輸入位址區塊116可接受輸入質詢信號124,其可包括位址。該位址可由輸入位址區塊116發送至一次性可編程110,以擷取具有該位址的密鑰。可如本文中所描述將密鑰作為對質詢信號的回應而輸出。在至少一些組態中,輸入位址區塊116亦可對位址124進行加擾。以此方式,輸出密鑰自該位址隨機化,且防止藉由重複的質詢及回應來判定密鑰。輸入位址區塊116中的加擾器可為線性反饋移位暫存器或其他電路。
控制器102的一組功能或組件可如第2圖所示。功能組件202至216可表示由控制器102執行或產生的不同類型的功能或過程。此等不同功能可體現為自記憶體加載至控制器102中的韌體,或可為永久地體現在控制器102的積體電路內的閘或其他硬體。無論如何,此等不同的功能有助於產生物理不可複製函數100的輸出,且控制可自物理不可複製函數100獲得的不同功能。
亂數產生器及/或亂數產生器介面202可與亂數產生器104相互作用。由此,控制器102可在至少一些組態中讀取或寫入至靜態隨機存取記憶體106。此外,控制器102可啟動靜態隨機存取記憶體106或亂數產生器104。控制器102亦可與加擾器108介接。因此,控制器102可啟動加擾器108、影響加擾器起作用的方式、自加擾器
108讀取資訊,或用加擾器108進行其他操作。
控制器102亦可包括非揮發性記憶體介面204。非揮發性記憶體介面204可與非揮發性記憶體110相互作用。因此,控制器102可讀取或寫入資訊至非揮發性記憶體110。在一些組態中,控制器102可能僅能夠讀取非揮發性記憶體110的某些部分。舉例而言,控制器102可判定是否已經用亂數對一次性可編程110進行編程。此外,控制器102可啟動一次性可編程110或進行其他操作,包括例如使一次性可編程110向輸出暫存器118發送密鑰。
非揮發性記憶體的初始寫入功能206可進行亂數至非揮發性記憶體110的第一初始儲存。非揮發性記憶體的此初始寫入功能206可使靜態隨機存取記憶體106向加擾器108提供資料,接著可將其讀取或寫入至一次性可編程110。因此,非揮發性記憶體的初始寫入功能206控制將亂數儲存至非揮發性記憶體110中的過程。
非揮發性記憶體的驗證功能208可經由驗證區塊114來驗證寫入至一次性可編程110的資訊與加擾器108的暫存器中提供的資訊相同。因此,控制器102可與驗證區塊114、亂數產生器104及一次性可編程110相互作用,以判定是否自亂數產生器104將正確的資料寫入至一次性可編程110。
在一些組態中,控制器102可用作加擾器,以使用可選的亂數產生器位元的加擾器功能210來對來自靜態隨機存取記憶體106的位元進行加擾。以此方式,控制器
102用作加擾器108。因此,控制器102可包括位元折疊電路功能、線性反饋移位暫存器電路/功能或其他類型的加擾技術。控制器102可為一次性可編程110提供必要的位元加擾。
在非揮發性記憶體110儲存自加擾器108加擾的亂數之後,非揮發性記憶體的關閉功能212可停止對非揮發性記憶體110的寫入。因此,控制器102亦可使一次性可編程裝置110設定一或多個位元,其指示一次性可編程110已被寫入且密鑰已被儲存。此外,當啟動物理不可複製函數100時,控制器102可自一次性可編程110讀取此等設定的位元,且接著基於一次性可編程110被編程的狀態,可將例如1及/或0的位元寫入至靜態隨機存取記憶體106以防止讀取靜態隨機存取記憶體的啟動狀態。
密鑰大小判定器214可為可接收信號122的介面,該信號指示期望作為輸出的密鑰大小。密鑰大小判定器214接著可與輸出暫存器118相互作用以設定用於儲存及接收與具有所設定的密鑰大小的密鑰相關聯的位元的暫存器的大小。此後,控制器102可控制輸出暫存器118以將密鑰發送至輸出埠120。
輸入/輸出介面216可與物理不可複製函數100外部的電路、裝置、功能等相互作用。輸入信號122可發送至控制器102的輸入/輸出介面216以進行某些功能。此外,輸入/輸出介面216亦可發送信號126或自物理不可複製函數100發送的其他信號。輸入/輸出介面216可
與輸出暫存器118及/或輸出埠120相互作用以發送輸出信號126、128。輸出信號126、128可包括輸出128在輸出暫存器118及/或輸出埠120中已就緒的指示。當接收到質詢(可能帶有位址)以請求安全密鑰時,輸入/輸出介面216可亦與輸入位址區塊116相互作用,該輸入位址區塊可接收該位址並對該位址進行加擾,以在控制器處接收已經接收到位址的指示。輸入位址區塊116可將位址提供至非揮發性記憶體110以具有密鑰讀出,該密鑰讀出被置於輸出暫存器118中。因此,外部通信可由控制器102的輸入/輸出介面216控制。
可表示作為密鑰儲存在一次性可編程110中的隨機位元的資料結構300的實例可如第3圖所示。資料結構300可具有與第3圖所示及提供的不同欄位或部分。如省略號310所表示,可存在比第3圖所示的更多或更少的欄位或部分。資料結構300可包括與一或多個亂數306相關聯的一或多個保留位元302、一或多個位址304的一部分。保留位元302可為用於向物理不可複製函數100內的控制器102或其他組件提供資訊的一或多個位元。舉例而言,保留位元302可具有一或多個位元,其經設定以指示一次性可編程110已用儲存為亂數306的密鑰進行編程。
位址304為指示部分306中的一組亂數或與其相關聯的一組識別符(identifier;ID)或資料。位址304可由輸入位址區塊116指定或瞄準。與位址304相關聯的亂數306可藉由使用位址304自資料結構300請求密鑰
來提取位址304。
亂數306為儲存在一次性可編程110內的來自靜態隨機存取記憶體106的經加擾位元的集合。此等亂數306為可自質詢/回應或在質詢/回應期間進行存取或擷取的密鑰。可將諸如部分308的部分中的亂數306輸入至資料結構300中。在其他組態中,部分308表示等於密鑰的一組隨機位元。此等部分308可包括發送至輸出暫存器118且接著發送至輸出埠120的輸出位元。由此,在可存取的亂數內可能存在若干密鑰308。可封包至安全密鑰中的此大量隨機位元允許使用一次性可編程110提供許多不同的安全密鑰的靈活性。
可在物理不可複製函數100中發生的各種信令的實例可如第4A圖及第4B圖所示。控制器102可將重設信號402接收至輸入/輸出介面216中。重設信號402可為用於重設物理不可複製函數100的外部信號。回應於重設信號402,控制器102可發送重設或啟動信號404至亂數產生器104,例如至靜態隨機存取記憶體106,及/或將信號406發送至一次性可編程110。
此外,控制器102可將測試信號408發送至內置自測112。內置自測112可在信號410a及410b中請求亂數產生器104及/或一次性可編程110的狀態。亂數產生器104可在信號412中以該狀態進行回應,而非揮發性記憶體110可在信號414中以該狀態進行回應。可在信號416中將此狀態資訊自內置自測112發送回至控制器102。
控制器102接著可知曉物理不可複製函數100內的不同組件的狀態,且若需要,則在外部報告該狀態。因此,此等信號402至416表示用於重設及/或自測以判定物理不可複製函數100的內部電路正常起作用的信令。
接著,控制器102可接收狀態檢查信號418。回應於信號418,控制器102可利用信號420向非揮發性記憶體110查詢一次性可編程110的狀態。信號420可表示控制器102正自資料結構300讀取保留位元302。保留位元302可指示是否已經對一次性可編程110進行編程。此資訊可發送回至控制器102或由控制器102讀取。控制器102接著可接收信號422並在信號424中輸出狀態。狀態424可指示一次性可編程110是否已經被編程。
若尚未對一次性可編程110進行編程,則控制器102可接著用以將資訊儲存至一次性可編程110中。在此信號序列中,控制器102可向亂數產生器104發送信號426以開始產生待儲存在一次性可編程110中的經加擾亂數。接著,亂數產生器104可在信號428中將此等經加擾亂數提供至一次性可編程110。儘管可以16位元區塊或其他大小的區塊讀出靜態隨機存取記憶體106,但可一次一位元地將位元讀入一次性可編程110中。隨機位元可儲存至非揮發性記憶體110中。
在將一組位元讀入一次性可編程110之後,一次性可編程110及亂數產生器104可各自將所儲存的位元作為信號430a及430b發送至驗證區塊114。驗證區塊114
可判定儲存在一次性可編程110中的位元是否與自亂數產生器104輸出的位元相同。若該些位元通過驗證,則驗證區塊114可將指示該驗證之信號432發送回至控制器102。若驗證區塊114指示位元不相同,則控制器102可接收指示寫入失敗的信號432。接著,控制器102可使靜態隨機存取記憶體106將經加擾位元重新發送至一次性可編程110。若驗證兩次失敗,則控制器102可輸出錯誤作為信號122。然而,若驗證正確,則控制器102可指示將隨機位元儲存至一次性可編程110的過程將繼續,如弧434所表示。
在一些實例中,控制器102可繼續由弧434表示的過程。在所有可能的隨機位元儲存在一次性可編程110中之後,控制器102可發送信號436以預燒一次性可編程110且防止一次性可編程110接收更多位元。因此,此時一次性可編程110可能無法再儲存更多的位元,但可用於質詢及回應過程以產生或提供密鑰。
控制器102亦可接收第4B圖所示的密鑰大小信號438。密鑰大小信號438可指示待由物理不可複製函數100輸出的密鑰的大小。回應於信號438,控制器102接著可將信號440發送至輸出暫存器118以根據信號438中的資訊來設定密鑰大小。因此,輸出暫存器118可為被請求作為輸出的密鑰的所有位元提供可用的儲存容量。
控制器102接著可接收質詢信號442以請求密鑰。此信號442可觸發控制器102將信號444發送至一次性
可編程110以準備接收作為質詢的位址輸入。控制器102亦可與輸入位址區塊116介接以判定何時接收到輸入位址並控制該位址向一次性可編程110的輸出。可在信號446中在輸入位址區塊116處接收輸入位址。接著可對輸入位址進行加擾,且可將經加擾位址作為信號448發送至一次性可編程110。一次性可編程110可存取位址資料304中的位址,且讀出與接收到的位址相關聯的亂數306。相關聯亂數306表示密鑰,接著可將其作為信號450發送至輸出暫存器118及/或驗證區塊114(未展示)。接著,輸出暫存器118可在較小部分中將密鑰在信號452中提供至輸出埠120。控制器102亦可發送信號454以指示輸出暫存器118及/或輸出埠120準備好輸出。在接收到可接收輸出的指示之後,可以連續信號456自輸出埠120發送輸出密鑰。
第5圖為大體上說明根據本揭示內容的態樣的用於產生亂數並將彼等亂數儲存至一次性可編程110中的例示性方法500的各態樣的處理流程圖。在第5圖中說明方法500的操作的一般次序。方法500可包括更多或更少的操作或步驟,或可以與第5圖不同的方式配置操作或步驟的次序。方法500可作為可由諸如物理不可複製函數100的控制器102的處理器執行且編碼或儲存在電腦可讀媒體上的一組電腦可執行指令來執行。此外,方法500可由與處理器、特殊應用積體電路(Application Specific Integrated Circuit;ASIC)、場可編程閘陣列(Field
Programmable Gate Array;FPGA)、系統單晶片(System on Chip;SOC)、另一積體電路或其他硬體裝置(例如,控制器102)相關聯的閘或電路執行。在下文中,將參考結合第1圖至第4B圖及第6圖至第8圖描述的系統、組件、裝置、模組、電路、韌體、軟體、信號、資料結構、方法等而解釋方法500;然而,熟習此項技術者將理解,方法500的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
在操作508中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402,作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。接著,亂數產生器介面202可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟動信號406發送至一次性可編程110。控制器102可亦將測試信號408發送至內置自測112以測試其他組件的功能。
接著,在操作512中,內置自測112可對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應返回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。
在操作516中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢
查。狀態檢查可由控制器102的輸入/輸出介面216所接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。
保留位元可具有一個位元來指示一次性可編程110已被寫入及/或被鎖定。在另一組態中,可設定兩個或更多個位元來指示一次性可編程110已被寫入及/或被鎖定。舉例而言,可藉由三個或更多個位元的多數表決來讀取及分析保留位元,以判定一次性可編程110已被寫入及/或被鎖定。接著,控制器102可基於保留位元來判定一次性可編程110的狀態。此狀態可由輸入/輸出介面216作為輸出信號424發送出去。
在操作520中,控制器102的非揮發性記憶體的初始寫入功能206可接著使亂數產生器104的靜態隨機存取記憶體106通電。具體言之,非揮發性記憶體的初始寫入功能206啟動或初始化靜態隨機存取記憶體106。初始化可在靜態隨機存取記憶體106中提供基於靜態隨機存取記憶體106的唯一性而隨機的第一組位元。在操作524中,可藉由對非揮發性記憶體的初始寫入功能206來自靜態隨機存取記憶體106中讀出此等唯一的隨機位元。接著,在操作528中,可將讀出的位元發送至加擾器108,在該加
擾器中,對來自靜態隨機存取記憶體106的隨機位元進行加擾。位元折疊電路或線性反饋移位暫存器可對此等位元進行加擾,以使得加擾器108中的位於不同於自靜態隨機存取記憶體106讀出的位於。接著,在操作532中,可將經加擾亂數位元儲存在加擾器108的暫存器或記憶體中以待儲存在一次性可編程110中。
在操作536中,亂數產生器104可自具有經加擾位元的暫存器將經加擾位元寫入至一次性可編程110。在一些組態中,一次性可編程110在每一時脈循環僅可接收一個位元。以此方式,若加擾器108中的位元暫存器具有一個以上的位元,則亂數產生器104可在每一時脈循環內一次自亂數產生器104向一次性可編程110發送一個位元。該些位元被寫入至一次性可編程110中,直至已寫入位元區塊為止。此時,可將位元區塊自一次性可編程110讀出至驗證區塊114。
在操作540中,驗證區塊114可將自一次性可編程110發送的位元區塊與來自加擾器108的暫存器的位元進行比較。驗證區塊114判定兩個位元區塊是否相同。若區塊不相同,則可將訊息432發送至控制器102的非揮發性記憶體的驗證功能208,控制器接著可重新啟動該過程以將位元區塊再次寫入至一次性可編程110。若區塊相同,則可將指示肯定比較的信號432發送至控制器102的非揮發性記憶體的驗證功能208,且流程繼續。
此時,在操作544中,控制器102可判定是否有
更多隨機位元待儲存至一次性可編程110中。若一次性可編程110未滿且存在更多位元待儲存,則方法500可伴隨「是」進行至操作524以儲存下一位元區塊。然而,若一次性可編程110具有儲存在一次性可編程裝置110內的完整的隨機位元集合,則方法500可伴隨「否」進行至操作548,其中控制器102可在操作548中鎖定一次性可編程110。
在操作548中,控制器102的非揮發性記憶體的關閉功能212可藉由設定一次性可編程裝置110內的保留位元302來鎖定一次性可編程110。因此,控制器102的非揮發性記憶體的關閉功能212可防止在一次性可編程110內進行任何進一步的資料儲存。此時,儲存在一次性可編程110中的亂數作為一組可能的密鑰308儲存在欄位306內。每一隨機位元306可與位址304相關聯。為了獲得密鑰,一次性可編程110可接受與欄位304中的位址匹配的位址。若位址訊息匹配,則一次性可編程110可讀出與接收到的位址相關聯的隨機位元,且將該組資料作為密鑰發送至輸出暫存器118。
第6圖為大體上說明根據本揭示內容的各態樣的用於產生安全密鑰的例示性方法600的各態樣的處理流程圖。在第6圖中說明方法600的操作的一次次序。方法600可包括更多或更少的操作或步驟,或可以與第6圖所示的不同的方式配置操作或步驟的次序。方法600可作為可由諸如物理不可複製函數100的控制器102的處理器執行且
編碼或儲存在電腦可讀媒體上的一組電腦可執行指令來執行。此外,方法600可由與處理器、特殊應用積體電路、場可編程閘陣列、系統單晶片、積體電路或其他硬體裝置(例如,控制器102)相關聯的閘或電路執行。在下文中,將參考結合第1圖至第5圖及第7圖至第8圖描述的系統、組件、裝置、模組、電路、韌體、軟體、信號、資料結構、方法等而解釋方法600;然而,熟習此項技術者將理解,方法600的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
在操作608中,物理不可複製函數100可接收作為質詢的位址。可將位址輸入信號446(信號124的一部分)發送至輸入位址區塊116。此輸入位址446可伴隨可作為信號122的一部分發送至控制器102的質詢信號442或其他信號。位址信號442可由控制器102接收,且接著當提供位址信號448時,可將另一信號444發送至一次性可編程110以由一次性可編程110起始用密鑰的回應。
視情況,在操作612中,輸入位址區塊116可對輸入位址446進行加擾。輸入位址區塊116亦可包括線性反饋移位暫存器或其他類型的加擾器。輸入位址區塊116可對輸入位址446進行加擾以使所提供的安全密鑰更加隨機。在操作616中,可接著將經加擾位址作為信號448發送至一次性可編程110以存取一次性可編程110。因此,輸入位址區塊116將經加擾位址提供至一次性可編程110以擷取所需安全密鑰。
在操作620中,控制器102的密鑰大小判定器214可接收密鑰大小指示符信號438。控制器102可使用此密鑰大小指示符訊息438來藉由將信號440發送至輸出暫存器118來設定輸出暫存器118中的輸出密鑰大小。此密鑰大小資訊亦可儲存在控制器102中。此後,在操作620中,當獲取密鑰時,控制器102可判定密鑰大小。控制器102可存取關於密鑰大小的所儲存資訊,且將該資訊提供至一次性可編程110及/或輸出暫存器118。
接著,在操作624中,一次性可編程110可在資料結構300內擷取與接收到的位址444相關聯的所儲存隨機位元306。因此,一次性可編程110可掃描與位址444相同或匹配的位址304。在發現匹配時,一次性可編程110可擷取與此位址304相關聯的亂數306;一次性可編程110擷取與控制器102設定的密鑰大小308相關聯的數個位元。
在操作628中,可接著將此密鑰資訊作為信號450發送至輸出暫存器118。輸出暫存器118可接受完整的密鑰大小。接著,輸出暫存器118可將在輸出暫存器118中儲存的位元作為信號452輸出至輸出埠120,以待作為信號456(其可為信號128的一部分)發送出去。在一些情況下,輸出埠120可接受在儲存在輸出暫存器118中的密鑰308中的資料的較小部分。由此,輸出暫存器118可重複地將資料發送至輸出埠120。在操作632中,輸出暫存器118可讀取暫存器中的部分密鑰,且經由輸出埠120
將其發送出去,直至整個密鑰作為信號456發送。在至少一些情況下,控制器102的輸入/輸出介面216在密鑰準備好發送出去時可發送輸出就緒信號126。
第7圖為大體上說明根據本揭示內容的態樣的用於產生亂數以儲存在一次性可編程110中的例示性方法700的各態樣的處理流程圖。在第7圖中說明方法700的操作的一般次序。方法700可包括更多或更少的操作或步驟,或可以與第7圖所示的不同的方式配置操作或步驟的次序。方法700可作為可由諸如物理不可複製函數100的控制器102的處理器執行且編碼或儲存在電腦可讀媒體上的一組電腦可執行指令來執行。此外,方法700可由與處理器、特殊應用積體電路、場可編程閘陣列、系統單晶片、積體電路或其他硬體裝置(例如,控制器102)相關聯的閘或電路執行。在下文中,將參考結合第1圖至第6圖及第8圖描述的系統、組件、裝置、模組、電路、韌體、軟體、信號、資料結構、方法等而解釋方法700;然而,熟習此項技術者將理解,方法700的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
在操作708中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。亂數產生器介面202接著可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟
動信號406發送至一次性可編程110。控制器102亦可將測試信號408發送至內置自測112以測試其他組件的功能。
在操作712中,內置自測112可接著對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應返回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。
在操作716中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢查。狀態檢查可由控制器102的輸入/輸出介面216接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。
保留位元可具有一個位元來指示一次性可編程110已被寫入及/或被鎖定。在另一組態中,可設定兩個或更多個位元來指示一次性可編程110已被寫入及/或被鎖定。舉例而言,可藉由三個或更多個位元的多數表決來讀取及分析保留位元,以判定一次性可編程110已被寫入及/或被鎖定。接著,控制器102可基於保留位元來判定一次性可編程110的狀態。此狀態可由輸入/輸出介面216作
為輸出信號424發送出去。
在操作720中,控制器102的非揮發性記憶體的初始寫入功能206可接著使亂數產生器104的靜態隨機存取記憶體106通電。具體言之,非揮發性記憶體的初始寫入功能206啟動或初始化靜態隨機存取記憶體106。初始化可在靜態隨機存取記憶體106中提供基於靜態隨機存取記憶體106的唯一性而隨機的第一組位元。在操作724中,可藉由對非揮發性記憶體的初始寫入功能206來自靜態隨機存取記憶體106中讀出此等唯一的隨機位元。接著,在操作728中,可將讀出的位元發送至加擾器108,在該加擾器中,對來自靜態隨機存取記憶體106的隨機位元進行加擾。位元折疊電路或線性反饋移位暫存器可對位元進行加擾,以使得加擾器108中的位元不同於自靜態隨機存取記憶體106讀出的位元。接著,在操作732中,可將經加擾亂數位元儲存在加擾器108的暫存器或記憶體中以待儲存在一次性可編程110中。
在操作736中,亂數產生器104可自具有經加擾位元的暫存器將經加擾位元寫入至一次性可編程110。在一些組態中,一次性可編程110在每一時脈循環僅可接收一個位元。由此,若加擾器108中的位暫存器具有一個以上的位元,則亂數產生器104可在每一時脈循環內一次自亂數產生器104向一次性可編程110發送一個位元。該些位元被寫入至一次性可編程110,直至已寫入位元區塊為止。此時,可將位元區塊自一次性可編程110讀出至驗證
區塊114。
在操作740中,驗證區塊114可將自一次性可編程110發送的位元區塊與來自加擾器108的暫存器的位元進行比較。驗證區塊114判定兩個位元區塊是否相同。若區塊不相同,則可將訊息432發送至控制器102的非揮發性記憶體的驗證功能208,控制器接著可重新啟動該過程以將位元區塊再次寫入至一次性可編程110。若區塊相同,則將指示肯定比較的信號432發送至控制器102的非揮發性記憶體的驗證功能208,且處理繼續。
此時,在操作744,控制器102可判定是否有更多的隨機位元來儲存一次性可編程110。若一次性可編程未滿且存在更多的位元待儲存,則方法700可伴隨「是」進行至操作720以儲存下一位元區塊。然而,若一次性可編程110具有儲存在一次性可編程裝置110內的完整的隨機位元集合,則方法700可伴隨「否」進行至操作748,其中控制器102可鎖定一次性可編程110。在操作744中,可存在更多的隨機位元待儲存在一次性可編程110中。然而,靜態隨機存取記憶體106的大小可能小於一次性可編程110,例如,一次性可編程110的大小可為16kbit,而靜態隨機存取記憶體106的大小可為1kbit。在此等情況下,可由控制器102再次初始化靜態隨機存取記憶體106以重新開始讀出隨機位元的過程。以此方式,初始化及自靜態隨機存取記憶體106讀取位元的若干迭代可用於寫入至更大的一次性可編程110。因此,方法700
在若干迭代中返回操作720而非操作724,如如第5圖所示。
在操作748中,控制器102的非揮發性記憶體的關閉功能212可藉由設定一次性可編程裝置110內的保留位元302來鎖定一次性可編程110。因此,控制器102的非揮發性記憶體的關閉功能212可防止在一次性可編程110內進行任何進一步的資料儲存。此時,儲存在一次性可編程110中的亂數作為一組可能的密鑰308儲存在欄位306內。每一隨機位元306可與位址304相關聯。為了獲得密鑰,一次性可編程110可接受與欄位304中的位址匹配的位址。若位址訊息匹配,則一次性可編程110可讀出與接收到的位址相關聯的隨機位元,其將該組資料作為密鑰發送至輸出暫存器118。
第8圖為大體上說明根據本揭示內容的態樣的用於用物理不可複製函數100開始過程的例示性方法800的各態樣的處理流程圖。在第8圖中說明方法800的操作的一般次序。方法800可包括更多或更少的操作或步驟,或可以與第8圖所示不同的方式來配置操作或步驟的次序。方法800可作為可由諸如物理不可複製函數100的控制器102的處理器執行且編碼或儲存在電腦可讀媒體上的一組電腦可執行指令來執行。此外,方法800可由與處理器、特殊應用積體電路、場可編程閘陣列、系統單晶片、積體電路或其他硬體裝置(例如,控制器102)相關聯的閘或電路執行。在下文中,將參考結合第1圖至第7圖描述的
系統、組件、裝置、模組、電路、韌體、軟體、信號、資料結構、方法等而解釋方法800;然而,熟習此項技術者將理解,方法800的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
在操作808中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402,作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。亂數產生器介面202接著可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟動信號406發送至一次性可編程110。控制器102可亦將測試信號408發送至內置自測112以測試其他組件的功能。
在操作812中,內置自測112可接著對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應發送回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。
在操作816中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢查。狀態檢查可由控制器102的輸入/輸出介面216接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以
判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。
保留位元可具有一個位元來指示一次性可編程110已被寫入及/或被鎖定。在另一組態中,可設定兩個或更多個位元來指示一次性可編程110已被寫入及/或被鎖定。舉例而言,可藉由三個或更多個位元的多數表決來讀取及分析保留位元,以判定一次性可編程110已被寫入及/或被鎖定。在操作820中,控制器102接著可基於保留位元來判定一次性可編程110的狀態。此狀態可由輸入/輸出介面216作為輸出信號424發送出去。
若設定鎖定位元,則方法800伴隨「是」進行至操作824,其中控制器102可將位元寫入至靜態隨機存取記憶體106。此處,在初始化之後,靜態隨機存取記憶體106可含有與寫入或提供至加擾器且接著寫入至一次性可編程110的彼等位元相同或類似的一組位元。為了防止此等位元被讀出且可能允許外部裝置或功能判定一次性可編程110中的內容,控制器102可寫入位元(例如,1及/或0)至靜態隨機存取記憶體106中以改變儲存在靜態隨機存取記憶體106中的內容。以此方式,若讀取靜態隨機存取記憶體106,則靜態隨機存取記憶體106中的內容將與用於建立一次性可編程110中的密鑰的內容不同。
若判定未設定鎖定位元,則在操作828中,過程800可伴隨「否」進行至將隨機位元儲存在一次性可編程
110中。在操作828中的隨機位元的儲存可結合第5圖及第7圖所描述的過程類似。
因此,所揭示的實施例尤其提供一種可自靜態隨機存取記憶體或亂數產生器產生唯一簽章的物理不可複製函數。此等簽章可儲存在非揮發性記憶體中,其中此等簽章不會由於積體電路的熱量或壽命的變化而改變。在先前的基於靜態隨機存取記憶體的裝置中,靜態隨機存取記憶體中的簽章可能會隨著時間及熱量的變化而變化。在其他過去的一次性可編程型物理不可複製函數中,彼等先前的物理不可複製函數需要外部埠來將此等位元儲存在一次性可編程中。至物理不可複製函數的此外部埠為物理不可複製函數安全性的弱點,因為該埠可用於向一次性可編程寫入或自一次性可編程讀取。在本文的態樣中,物理不可複製函數內部的靜態隨機存取記憶體不使用外部埠,且因此減少或消除重新編程的風險。此外,利用物理不可複製函數內部的組件,本文的各態樣無需提供關於物理不可複製函數的鑄造工人資訊。即使具有上述差異,物理不可複製函數裝置亦可具有許多質詢/回應對,因為一次性可編程中儲存的位元數很大。
因此,本文的物理不可複製函數裝置提供一種可靠的方式來產生多個簽章作為質詢及回應對,以用於安全功能。本文的物理不可複製函數在每一物理不可複製函數之間具有足夠的熵(隨機性)以保證唯一性。最終,物理不可複製函數可防止重新編程攻擊及「冷啟動」攻擊。
本揭示內容的態樣包括一種產生用於積體電路裝置的安全密鑰的方法,包含:用亂數產生器產生複數個密鑰位元;將複數個密鑰位元儲存在非揮發性記憶體中;以及根據所儲存的複數個密鑰位元產生安全密鑰。
在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中亂數產生器包含靜態隨機存取記憶體,其中在初始化靜態隨機存取記憶體之後,自靜態隨機存取記憶體讀取密鑰位元。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中亂數產生器進一步包含加擾器,其對自靜態隨機存取記憶體讀取的密鑰位元進行加擾。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中加擾器為位元折疊電路或線性反饋移位暫存器中的一者。
在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中非揮發性記憶體包含一次性可編程裝置。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中密鑰位元儲存至一次性可編程裝置中,且其中密鑰位元表示兩個或更多個安全密鑰。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中一次性可編程OTP裝置接收位址,且擷取與位址相關聯的安全密鑰。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中在將位址提供至一次性可編程裝置之前對其進行加擾。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含接收密鑰大小指示符,以及根據密鑰大小指示
符設定安全密鑰的一密鑰大小。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含回應於接收到位址而輸出安全密鑰。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含在儲存密鑰位元之後鎖定一次性可編程OTP裝置,其中在一次性可編程裝置中設定鎖定位元以指示一次性可編程裝置被鎖定,其中在設定鎖定位元之後,一次性可編程裝置不儲存額外位元。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含判定是否設定鎖定位元。
在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中亂數產生器包含靜態隨機存取記憶體,且該非揮發性記憶體包含一次性可編程裝置,其中靜態隨機存取記憶體比一次性可編程裝置儲存的位元少,且靜態隨機存取記憶體初始化兩次或更多次以將密鑰位元提供至一次性可編程裝置。
本揭示內容的另一態樣包括一種具有物理不可複製函數產生器的積體電路裝置,該物理不可複製函數產生器用以輸出兩個或更多個安全密鑰,每一安全密鑰包含複數個密鑰位元,其中該物理不可複製函數產生器包含:靜態隨機存取記憶體,其在初始化之後被讀取以提供複數個密鑰位元中的一或多者;一次性可編程裝置,其:儲存自靜態隨機存取記憶體控制器讀取的位元;且在接收到位址後提供兩個或更多個安全密鑰中的一者。
在一實施例中,積體電路裝置,其中物理不可複製
函數產生器進一步包含加擾器,其對自靜態隨機存取記憶體讀取的密鑰位元進行加擾。在一實施例中,積體電路裝置,其中加擾器為位元折疊電路或線性反饋移位暫存器中的一者。
在一實施例中,積體電路裝置,其中物理不可複製函數產生器進一步包含輸入位址加擾器,輸入位址加擾器接收輸入位址且對輸入位址進行加擾以產生提供至一次性可編程裝置的位址。
在一實施例中,積體電路裝置,其中物理不可複製函數產生器進一步包含控制器,其用於控制靜態隨機存取記憶體及該一次性可編程裝置的功能;以及輸出暫存器,其中控制器進一步接收密鑰大小指示符信號,且根據用於安全密鑰的該密鑰大小指示符信號設定輸出暫存器以儲存數個位元。
本揭示內容的另一態樣包括一種用於產生積體電路裝置安全密鑰的系統,該系統可具有亂數產生器,該亂數產生器包含:靜態隨機存取記憶體,其在初始化之後被讀取以提供多個位元;線性反饋移位暫存器,其對自靜態隨機存取記憶體讀取的複數個位進行加擾;輸入位址加擾器,其:接收輸入位址;將輸入位址加擾為經加擾位址;提供經加擾位址;與線性反饋移位暫存器及輸入位址加擾器通信的一次性可編程)裝置,其:儲存自線性反饋移位暫存器提供的經加擾位元;使經加擾位元與位址相關聯;自輸入位址加擾器接收經加擾位址;判定與經加擾位元相
關聯的位址,該位址與經加擾位址匹配;讀取具有與經加擾位址匹配的位址的經加擾位元;提供經加擾位元作為安全密鑰;與一次性可編程裝置通信的輸出暫存器,該輸出暫存器:自一次性可編程裝置接收安全密鑰;且輸出安全密鑰。
在一實施例中,用於產生積體電路裝置安全密鑰的系統,進一步包含控制器,其控制靜態隨機存取記憶體及一次性可編裝置的功能;接收密鑰大小指示符信號;以及設定輸出暫存器以根據用於安全密鑰的密鑰大小指示符信號儲存數個位元。
前文概述若干實例的特徵,使得熟習此項技術者可更佳地理解本揭示內容的態樣。熟習此項技術者應理解,可容易地將本揭示內容用作設計或修改其他製程及結構的基礎,以達成與本文介紹的實例相同的目的及/或達成相同的優點。熟習此項技術者亦應認識到,此類等效構造不脫離本揭示內容的精神及範圍,且在不脫離本揭示內容的精神及範圍的情況下,其可進行各種改變、替換及變更。
100:物理不可複製函數裝置/產生器(物理不可複製函數電路、物理不可複製函數、積體電路裝置、認證電路)
102:控制器
104:亂數產生器
106:靜態隨機存取記憶體陣列(靜態隨機存取記憶體)
108:加擾器
110:非揮發性記憶體(記憶體、處理記憶體、一次性可編成、一次性可編成裝置、反熔絲一次性可編成、組件)
112:內置自測
114:驗證組件(驗證區塊)
116:輸入埠(輸入位址區塊)
118:輸出暫存器
120:輸出埠(輸出)
122:信號(輸入信號)
124:請求(輸入質詢信號、位址、信號)
126:信號(輸出信號、輸出就緒信號)
128:信號(輸出信號、輸出)
Claims (10)
- 一種產生用於一積體電路裝置的一安全密鑰的方法,包含以下步驟:一亂數產生器產生複數個密鑰位元;一非揮發性記憶體儲存該些密鑰位元,該非揮發性記憶體包含一一次性可編程裝置;一物理不可複製函數產生器根據儲存在該非揮發性記憶體中的該些密鑰位元產生該安全密鑰;以及該物理不可複製函數產生器在儲存該些密鑰位元之後鎖定該一次性可編程裝置,其中在該一次性可編程裝置中設定一鎖定位元以指示該一次性可編程裝置被鎖定,其中在設定該鎖定位元之後,該一次性可編程裝置不儲存額外位元。
- 如請求項1所述之方法,其中該亂數產生器包含一靜態隨機存取記憶體,其中在初始化該靜態隨機存取記憶體之後,自該靜態隨機存取記憶體讀取該些密鑰位元,其中該亂數產生器進一步包含一加擾器,其對自該靜態隨機存取記憶體讀取的該些密鑰位元進行加擾,該加擾器為一位元折疊電路或一線性反饋移位暫存器中的一者。
- 如請求項1所述之方法,其中該一次性可編程裝置接收一位址,且擷取與該位址相關聯的該安全密鑰。
- 如請求項1所述之方法,其中該些密鑰位元儲存至該一次性可編程裝置中,且其中該些密鑰位元表示兩個或更多個安全密鑰。
- 如請求項1所述之方法,其中該一次性可編程裝置接收一位址,且擷取與該位址相關聯的該安全密鑰,在將該位址提供至該一次性可編程裝置之前對其進行加擾,該方法進一步包含以下步驟:接收一密鑰大小指示符;根據該密鑰大小指示符設定該安全密鑰的一密鑰大小;以及回應於接收到該位址而輸出該安全密鑰。
- 如請求項1所述之方法,進一步包含以下步驟:該物理不可複製函數產生器判定是否設定該鎖定位元。
- 如請求項1所述之方法,其中該亂數產生器包含一靜態隨機存取記憶體,且該非揮發性記憶體包含一一次性可編程裝置,其中該靜態隨機存取記憶體比該一次性可編程裝置儲存的位元少,且該靜態隨機存取記憶體初始化兩次或更多次以將該些密鑰位元提供至該一次性可編程裝置。
- 一種積體電路裝置,包含:一物理不可複製函數產生器,其輸出兩個或更多個安全密鑰,每一該安全密鑰包含複數個密鑰位元,其中該物理不可複製函數產生器包含:一靜態隨機存取記憶體,其在初始化之後被讀取以提供該些密鑰位元中的一或多者;一一次性可編程裝置,其:儲存自該靜態隨機存取記憶體讀取的該些密鑰位元;以及在接收到一位址後,根據該些密鑰位元提供兩個或更多個該些安全密鑰中的一者;一加擾器,其對自該靜態隨機存取記憶體讀取的該些密鑰位元進行加擾,其中該加擾器為一位元折疊電路或一線性反饋移位暫存器中的一者;一輸入位址加擾器,該輸入位址加擾器接收一輸入位址且對該輸入位址進行加擾以產生提供至該一次性可編程裝置的該位址;一控制器,其用於控制該靜態隨機存取記憶體及該一次性可編程裝置的功能;以及一輸出暫存器,其中該控制器進一步接收一密鑰大小指示符信號,且根據用於該安全密鑰的該密鑰大小指示符信號設定該輸出暫存器以儲存數個位元。
- 一種產生用於一積體電路裝置的一安全密鑰的系統,該系統包含:一亂數產生器,其包含:一靜態隨機存取記憶體,其在初始化之後被讀取以提供複數個位元;以及一線性反饋移位暫存器,其將自該靜態隨機存取記憶體讀取的該些位元加擾為複數個經加擾密鑰位元;一輸入位址加擾器,其:接收一輸入位址;將該輸入位址加擾為一經加擾位址;以及提供該經加擾位址;一一次性可編程裝置,其與該線性反饋移位暫存器及該輸入位址加擾器通信以:儲存自該線性反饋移位暫存器提供的該些經加擾密鑰位元;使該些經加擾密鑰位元與一位址相關聯;自該輸入位址加擾器接收該經加擾位址;判定與該些經加擾密鑰位元相關聯的該位址,該位址與該經加擾位址匹配;讀取具有與該經加擾位址匹配的該位址的該些經加擾密鑰位元;以及將該些經加擾密鑰位元提供為該安全密鑰;以及一輸出暫存器,其與該一次性可編程裝置通信,該輸出暫存器: 自該一次性可編程裝置接收該安全密鑰;以及輸出該安全密鑰。
- 如請求項9所述之系統,進一步包含:一控制器,其:控制該靜態隨機存取記憶體及該一次性可編程裝置的功能;接收一密鑰大小指示符信號;以及設定該輸出暫存器以根據用於該安全密鑰的該密鑰大小指示符信號儲存數個位元。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202063002670P | 2020-03-31 | 2020-03-31 | |
| US63/002,670 | 2020-03-31 | ||
| US17/106,856 US11528135B2 (en) | 2020-03-31 | 2020-11-30 | Integrated circuit (IC) signatures with random number generator and one-time programmable device |
| US17/106,856 | 2020-11-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202139041A TW202139041A (zh) | 2021-10-16 |
| TWI781544B true TWI781544B (zh) | 2022-10-21 |
Family
ID=76611437
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110107560A TWI781544B (zh) | 2020-03-31 | 2021-03-03 | 積體電路裝置以及產生用於積體電路裝置的安全密鑰的方法及系統 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN113079019B (zh) |
| TW (1) | TWI781544B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115237831B (zh) * | 2022-09-22 | 2023-02-07 | 瀚博半导体(上海)有限公司 | 数据传输方法、装置、芯片、电子设备和介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200509636A (en) * | 2003-06-19 | 2005-03-01 | Ibm | System and method for authenticating software using hidden intermediate keys |
| TW200830832A (en) * | 2006-12-22 | 2008-07-16 | Atmel Corp | Key protection mechanism |
| CN1808966B (zh) * | 2004-10-01 | 2010-04-14 | 美国博通公司 | 安全数据处理方法及其系统 |
| CN102117387A (zh) * | 2010-01-04 | 2011-07-06 | Vixs系统公司 | 安全密钥访问设备及方法 |
| CN105894268A (zh) * | 2015-02-12 | 2016-08-24 | 三星电子株式会社 | 支付处理方法及支付其的电子设备 |
| CN106845975A (zh) * | 2015-12-05 | 2017-06-13 | 上海阿艾依智控系统有限公司 | 基于射频识别卡及智能手机连动嵌入式续费装置及其方法 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008027327A (ja) * | 2006-07-25 | 2008-02-07 | Sony Corp | メモリアクセス制御装置および方法、並びに、通信装置 |
| US9432184B2 (en) * | 2008-09-05 | 2016-08-30 | Vixs Systems Inc. | Provisioning of secure storage for both static and dynamic rules for cryptographic key information |
| US10142101B2 (en) * | 2015-09-29 | 2018-11-27 | Intel Corporation | Hardware enforced one-way cryptography |
| US10910079B2 (en) * | 2016-05-09 | 2021-02-02 | Intrinsic Id B.V. | Programming device arranged to obtain and store a random bit string in a memory device |
-
2021
- 2021-03-03 TW TW110107560A patent/TWI781544B/zh active
- 2021-03-30 CN CN202110337813.XA patent/CN113079019B/zh active Active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200509636A (en) * | 2003-06-19 | 2005-03-01 | Ibm | System and method for authenticating software using hidden intermediate keys |
| CN1808966B (zh) * | 2004-10-01 | 2010-04-14 | 美国博通公司 | 安全数据处理方法及其系统 |
| TW200830832A (en) * | 2006-12-22 | 2008-07-16 | Atmel Corp | Key protection mechanism |
| CN102117387A (zh) * | 2010-01-04 | 2011-07-06 | Vixs系统公司 | 安全密钥访问设备及方法 |
| CN105894268A (zh) * | 2015-02-12 | 2016-08-24 | 三星电子株式会社 | 支付处理方法及支付其的电子设备 |
| CN106845975A (zh) * | 2015-12-05 | 2017-06-13 | 上海阿艾依智控系统有限公司 | 基于射频识别卡及智能手机连动嵌入式续费装置及其方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202139041A (zh) | 2021-10-16 |
| CN113079019B (zh) | 2024-04-30 |
| CN113079019A (zh) | 2021-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Tehranipoor et al. | DRAM-based intrinsic physically unclonable functions for system-level security and authentication | |
| US11528135B2 (en) | Integrated circuit (IC) signatures with random number generator and one-time programmable device | |
| EP2191410B1 (en) | Identification of devices using physically unclonable functions | |
| TWI673721B (zh) | 具有物理不可複製功能及隨機數產生器的電路及其操作方法 | |
| CN101421792B (zh) | 半导体器件标识符产生方法以及半导体器件 | |
| Rosenblatt et al. | A self-authenticating chip architecture using an intrinsic fingerprint of embedded DRAM | |
| Talukder et al. | PreLatPUF: Exploiting DRAM latency variations for generating robust device signatures | |
| US20180191512A1 (en) | Physically unclonable function generation with direct twin cell activation | |
| WO2019212772A1 (en) | Key generation and secure storage in a noisy environment | |
| Gao et al. | FracDRAM: Fractional values in off-the-shelf DRAM | |
| TWI792739B (zh) | 用來控制裝置激活的方法以及相關電子裝置 | |
| US11962693B2 (en) | Integrated circuit (IC) signatures with random number generator and one-time programmable device | |
| Zalivaka et al. | Design and implementation of high-quality physical unclonable functions for hardware-oriented cryptography | |
| CN114521261B (zh) | 用于管理集成电路器件的安全性的未定义生命周期状态标识符 | |
| US7339400B1 (en) | Interface port for electrically programmed fuses in a programmable logic device | |
| US20210250188A1 (en) | System and method for generating and authenticating a physically unclonable function | |
| CN108958650A (zh) | 电子系统及其操作方法 | |
| US12348626B2 (en) | Integrated circuit (IC) signatures with random number generator and one-time programmable device | |
| US11809566B2 (en) | Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same | |
| TWI781544B (zh) | 積體電路裝置以及產生用於積體電路裝置的安全密鑰的方法及系統 | |
| CN111723409B (zh) | 集成电路、存储器电路以及用于操作集成电路的方法 | |
| TWI716685B (zh) | 電子系統及其操作方法 | |
| US20250392458A1 (en) | Integrated circuit (ic) signatures with random number generator and one-time programmable device | |
| US12135799B2 (en) | Hardware storage unique key | |
| CN120474689A (zh) | 一种otp密钥存储方法、系统、介质及程序产品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| GD4A | Issue of patent certificate for granted invention patent |