TWI781544B - Integrated circuit device and method and system of generating a security key for an integrated circuit device - Google Patents
Integrated circuit device and method and system of generating a security key for an integrated circuit device 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
本案是關於一種積體電路裝置,特別是關於一種包含物理不可複製函數產生器的積體電路裝置及產生用於積體電路裝置的安全密鑰的方法及系統。 This case relates to an integrated circuit device, in particular to an integrated circuit device including a physically non-replicable function generator and a method and system for generating a security key for the integrated circuit device.
隨著諸如個人通信、購物、銀行、商業等許多領域對電腦系統及網際網路的依賴增加,對改良網路安全性的需求亦增加。可使用許多安全措施,包括加密。物理不可複製函數為體現在實體結構中的實體對象,可用於產生輸出。輸出易於評估,但輸出很難或幾乎不可能預測。物理不可複製函數輸出可用作安全計算及通信中的唯一識別碼或密鑰。 With the increasing reliance on computer systems and the Internet in many areas such as personal communications, shopping, banking, commerce, etc., the need for improved network security has also increased. Many security measures are available, including encryption. A physically non-copyable function is a physical object embodied in a physical structure that can be used to produce output. The output is easy to evaluate, but the output is difficult or almost impossible to predict. Physically non-reproducible function outputs can be used as unique identifiers or keys in secure computing and communications.
個別物理不可複製函數裝置必須易於製造,但實際上幾乎不可能複製,即使給出產生其的精確製造製程亦係如此。在此方面,其為單向功能的硬體類比。物理不可複製函數通常在積體電路中實施,且通常用於對安全性有高 要求的應用中。 Individual physically non-reproducible functional devices must be easy to manufacture, but virtually impossible to reproduce, even given the precise manufacturing process that produces them. In this respect, it is the hardware analog of a one-way function. Physically non-clonable functions are typically implemented in integrated circuits and are often used for required application.
本案揭示一種產生用於積體電路裝置的安全密鑰的方法,包含用亂數產生器產生複數個密鑰位元,將密鑰位元儲存在非揮發性記憶體中,以及根據儲存在非揮發性記憶體中的密鑰位元產生安全密鑰。 This case discloses a method for generating a security key for an integrated circuit device, including generating a plurality of key bits with a random number generator, storing the key bits in a non-volatile memory, and The key bits in volatile memory generate the security key.
本案另揭示一種積體電路裝置,包含物理不可複製函數產生器。物理不可複製函數產生器輸出兩個或更多個安全密鑰。每一安全密鑰包含複數個密鑰位元。物理不可複製函數產生器包含靜態隨機存取記憶體、一次性可編程裝置、加擾器、輸入位址加擾器、控制器以及輸出暫存器。靜態隨機存取記憶體在初始化之後被讀取以提供該些密鑰位元中的一或多者。一次性可編程裝置儲存自靜態隨機存取記憶體讀取的密鑰位元,以及在接收到位址後,根據密鑰位元提供兩個或更多個安全密鑰中的一者。加擾器對自靜態隨機存取記憶體讀取的密鑰位元進行加擾。加擾器為位元折疊電路或線性反饋移位暫存器中的一者。輸入位址加擾器接收輸入位址且對輸入位址進行加擾以產生提供至一次性可編程裝置的位址。控制器用於控制靜態隨機存取記憶體及一次性可編程裝置的功能。控制器進一步接收密鑰大小指示符信號,且根據用於安全密鑰的密鑰大小指示符信號設定輸出暫存器以儲存數個位元。 This case also discloses an integrated circuit device including a physically non-replicable function generator. The physically non-clonable function generator outputs two or more secure keys. Each security key includes a plurality of key bits. The physical non-clonable function generator includes static random access memory, one-time programmable device, scrambler, input address scrambler, controller and output register. The SRAM is read after initialization to provide one or more of the key bits. The one-time programmable device stores key bits read from the SRAM, and provides one of two or more security keys according to the key bits after receiving the address. The scrambler scrambles the key bits read from the SRAM. The scrambler is one of a bit folding circuit or a linear feedback shift register. The input address scrambler receives an input address and scrambles the input address to generate an address provided to the one-time programmable device. The controller is used to control the functions of the static random access memory and the one-time programmable device. The controller further receives the key size indicator signal, and sets the output register to store a number of bits according to the key size indicator signal for the security key.
本案另揭示一種產生用於積體電路裝置的安全密鑰的系統,包含亂數產生器、輸入位址加擾器、一次性可 編程裝置以及輸出暫存器。亂數產生器包含靜態隨機存取記憶體以及線性反饋移位暫存器。靜態隨機存取記憶體在初始化之後被讀取以提供複數個位元。線性反饋移位暫存器將自靜態隨機存取記憶體讀取的位元加擾為經加擾密鑰位元。輸入位址加擾器接收輸入位址,將輸入位址加擾為經加擾位址,以及提供經加擾位址。一次性可編程裝置與反饋移位暫存器及輸入位址加擾器通信以:儲存自反饋移位暫存器提供的經加擾密鑰位元,使經加擾密鑰位元與位址相關聯,自輸入位址加擾器接收經加擾位址,判定與經加擾密鑰位元相關聯的位址,位址與經加擾位址匹配,讀取具有與經加擾位址匹配的位址的經加擾密鑰位元,以及將經加擾密鑰位元提供為安全密鑰。輸出暫存器與一次性可編程裝置通信。輸出暫存器自一次性可編程裝置接收安全密鑰,以及輸出安全密鑰。 This case also discloses a system for generating a security key for an integrated circuit device, including a random number generator, an input address scrambler, a one-time programming device and output register. The random number generator includes static random access memory and linear feedback shift register. The SRAM is read after initialization to provide a plurality of bits. The linear feedback shift register scrambles bits read from the SRAM into scrambled key bits. The input address scrambler receives an input address, scrambles the input address into a scrambled address, and provides the scrambled address. The one-time programmable device communicates with the feedback shift register and the input address scrambler to: store scrambled key bits provided from the feedback shift register such that the scrambled key bits and bits The address is associated, the scrambled address is received from the input address scrambler, the address associated with the scrambled key bit is determined, the address matches the scrambled address, and the read has the scrambled address The scrambled key bits of the address of the address match, and the scrambled key bits are provided as a security key. The output register communicates with the one-time programmable device. The output register receives the security key from the one-time programmable device and outputs the security key.
100:物理不可複製函數裝置/產生器(物理不可複製函數電路、物理不可複製函數、積體電路裝置、認證電路) 100: Physically non-clonable function devices/generators (physically non-clonable function circuits, physically non-clonable functions, integrated circuit devices, authentication circuits)
102:控制器 102: Controller
104:亂數產生器 104: random number generator
106:靜態隨機存取記憶體陣列(靜態隨機存取記憶體) 106: Static Random Access Memory Array (SRAM)
108:加擾器 108: Scrambler
110:非揮發性記憶體(記憶體、處理記憶體、一次性可編成、一次性可編成裝置、反熔絲一次性可編成、組件) 110: Non-volatile memory (memory, processing memory, one-time programmable, one-time programmable device, antifuse one-time programmable, component)
112:內置自測 112:Built-in self-test
114:驗證組件(驗證區塊) 114: Verification component (verification block)
116:輸入埠(輸入位址區塊) 116: Input port (input address block)
118:輸出暫存器 118: output register
120:輸出埠(輸出) 120: output port (output)
122:信號(輸入信號) 122: signal (input signal)
124:請求(輸入質詢信號、位址、信號) 124: request (input challenge signal, address, signal)
126:信號(輸出信號、輸出就緒信號) 126: signal (output signal, output ready signal)
128:信號(輸出信號、輸出) 128: Signal (output signal, output)
202:亂數產生器及/或亂數產生器介面(亂數產生器介面、功能組件) 202: random number generator and/or random number generator interface (random number generator interface, functional component)
204:非揮發性記憶體介面 204: Non-volatile memory interface
206:非揮發性記憶體的初始寫入 206: Initial write to non-volatile memory
208:非揮發性記憶體的驗證 208: Verification of non-volatile memory
210:亂數產生器位元的加擾器 210: Random number generator bit scrambler
212:非揮發性記憶體的關閉 212: Closing of non-volatile memory
214:密鑰大小判定器 214: key size determiner
216:輸入/輸出介面(功能組件) 216: Input/Output Interface (Functional Components)
300:資料結構 300: Data structure
302:保留位元 302: Reserved bits
304:位址(位址資料、欄位) 304: Address (address data, fields)
306:亂數(部分、欄位、隨機位元) 306: random number (part, field, random bit)
308:部分(密鑰、密鑰大小) 308:part(key, keysize)
310:省略號 310: ellipsis
402:重設信號(信號) 402: Reset signal (signal)
404:重設或啟動信號 404: Reset or start signal
406:信號(重設或啟動信號) 406: Signal (reset or start signal)
408:信號(測試信號) 408: Signal (test signal)
410a:信號 410a: signal
410b:信號 410b: signal
412:信號 412: signal
414:信號 414: signal
416:信號 416: signal
418:狀態檢查信號(信號、輸入信號) 418: Status check signal (signal, input signal)
420:信號 420: signal
422:信號 422: signal
424:信號(狀態、輸出信號) 424: Signal (status, output signal)
426:信號 426: signal
428:信號 428:Signal
430a:信號 430a: signal
430b:信號 430b: signal
432:信號(訊息) 432: signal (message)
434:弧 434: arc
436:信號 436: signal
438:密鑰大小信號(密鑰大小指示符訊息、密鑰大小指示符信號、信號) 438: Key Size Signal (Key Size Indicator Message, Key Size Indicator Signal, Signal)
440:信號 440: signal
442:質詢信號(信號、位址信號) 442: Inquiry signal (signal, address signal)
444:信號(位址) 444: signal (address)
446:信號(位址輸入信號、輸入位址) 446: Signal (address input signal, input address)
448:信號(位址信號) 448: signal (address signal)
450:信號 450: signal
452:信號 452: signal
454:信號 454: signal
456:信號 456: signal
500:方法 500: method
508:操作 508: Operation
512:操作 512: Operation
516:操作 516: Operation
520:操作 520: Operation
524:操作 524: Operation
528:操作 528: Operation
532:操作 532: Operation
536:操作 536: Operation
540:操作 540: Operation
544:操作 544: Operation
548:操作 548:Operation
600:方法 600: method
608:操作 608: Operation
612:操作 612: Operation
616:操作 616:Operation
620:操作 620: Operation
624:操作 624: Operation
628:操作 628: Operation
632:操作 632: Operation
700:方法 700: method
708:操作 708: Operation
712:操作 712: Operation
716:操作 716: Operation
720:操作 720: Operation
724:操作 724: Operation
728:操作 728:Operation
732:操作 732: Operation
736:操作 736:Operation
740:操作 740: Operation
744:操作 744: Operation
748:操作 748:Operation
800:方法 800: method
808:操作 808: Operation
812:操作 812:Operation
816:操作 816:Operation
820:操作 820: Operation
824:操作 824:Operation
828:操作 828:Operation
當與附圖一起閱讀時,根據以下詳細描述可最佳地理解本揭示內容的各態樣。注意,根據行業中的標準實務,各種特徵未按比例繪製。實際上,為了論述清楚起見,可能任意增大或減小各種特徵的尺寸。 Aspects of the present disclosure are best understood from the following Detailed Description when read with the accompanying figures. Note that, in accordance with the standard practice in the industry, various features are not drawn to scale. In fact, the dimensions of the various features may be arbitrarily increased or reduced for clarity of discussion.
第1圖為說明根據本申請案的實例的實例物理不可複製函數產生器/裝置的各態樣的方塊圖。 FIG. 1 is a block diagram illustrating aspects of an example physically non-clonable function generator/device according to examples of the present application.
第2圖為說明根據本申請案的實例的第1圖的實例控制器的各態樣的方塊圖。 FIG. 2 is a block diagram illustrating aspects of the example controller of FIG. 1 according to an example of the present application.
第3圖為說明根據本申請案的實例的第1圖的物理不可複製函數裝置的實例資料結構的各態樣的方塊圖。 FIG. 3 is a block diagram illustrating aspects of an example data structure for the physically non-clonable function device of FIG. 1 according to an example of the present application.
第4A圖為說明根據本申請案的實例的物理不可複製函數裝置的組件之間的通信的各態樣的通信圖。 4A is a communication diagram illustrating aspects of communication between components of a physically non-clonable function device according to examples of the present application.
第4B圖為說明根據本申請案的實例的物理不可複製函數裝置的組件之間的通信的各態樣的另一通信圖。 4B is another communication diagram illustrating aspects of communication between components of a physically non-clonable function device according to examples of the present application.
第5圖為說明根據本申請案的實例的用於將亂數儲存在物理不可複製函數裝置的非揮發性記憶體中的方法的各態樣的處理流程圖。 5 is a process flow diagram illustrating aspects of a method for storing random numbers in non-volatile memory of a physically non-clonable function device according to an example of the present application.
第6圖為說明根據本申請案的實例的用於產生物理不可複製函數安全密鑰的實例方法的各態樣的處理流程圖。 6 is a process flow diagram illustrating aspects of an example method for generating a physically non-copyable functional security key according to examples of the present application.
第7圖為說明根據本申請案的實例的用於將亂數儲存在物理不可複製函數裝置的非揮發性記憶體中的方法的各態樣的另一處理流程圖。 7 is another process flow diagram illustrating aspects of a method for storing random numbers in non-volatile memory of a physically non-clonable function device according to examples of the present application.
第8圖為說明根據本申請案的實例的用於判定物理不可複製函數裝置的狀態的方法的各態樣的處理流程圖。 8 is a process flow diagram illustrating aspects of a method for determining the state of a physically non-clonable function device according to an example of the present application.
以下揭示內容提供用於實施所提供的主題的不同特徵的許多不同實施例或實例。下文描述組件及配置的特定實例以簡化本揭示內容。當然,此等僅為實例,且並不旨在進行限制。舉例而言,在下文的描述中,在第二特徵之上或上的第一特徵的形成可包括其中第一特徵與第二特 徵直接接觸地形成的實例,且亦可包括其中在第一特徵與第二特徵之間形成額外特徵,使得第一特徵與第二特徵可能不直接接觸的實例。另外,本揭示內容可能在各個實例中重複參考數字及/或字母。此重複係出於簡單及清楚的目的,且其本身並不指示所論述的各種實例及/或組態之間的關係。 The following disclosure provides many different embodiments, or examples, for implementing different features of the presented subject matter. Specific examples of components and configurations are described below to simplify the present disclosure. Of course, these are examples only, and are not intended to be limiting. For example, in the description below, the formation of a first feature on or over a second feature may include wherein the first feature and the second feature Examples in which features are formed in direct contact may also include examples in which additional features are formed between first and second features such that the first and second features may not be in direct contact. Additionally, this disclosure may repeat reference numerals and/or letters in various instances. This repetition is for simplicity and clarity, and by itself does not indicate a relationship between the various examples and/or configurations discussed.
如上所述,物理不可複製函數(physical unclonable function;PUF)為體現在實體結構中的實體對象,可用於產生易於評估但幾乎不可能預測的輸出。積體電路(integrated circuit;IC)裝置通常包括形成在由諸如矽的半導體材料形成的半導體基板或「晶片」上的電子電路。積體電路裝置的組件藉由光微影製程形成在基板上,而非一次構造一個項目。形成在基板上的電子裝置藉由導體或導線互連,導體或導線亦藉由光微影製程形成在基板上。儘管批量製造,但每一積體電路裝置由於實體隨機性而具有唯一性,即使使用相同的製造製程材料亦係如此。可提取出此種固有變異,且將其用作其唯一識別碼,如同人類的DNA。根據本文揭示的實例,此種變化用於建立用作物理不可複製函數的唯一積體電路裝置簽章,因為其係唯一的、特定裝置固有的、不可複製的(無法模仿或複製)、可重複的等。 As mentioned above, a physical unclonable function (PUF) is a physical object embodied in a physical structure that can be used to produce an output that is easy to evaluate but nearly impossible to predict. Integrated circuit (IC) devices typically include electronic circuits formed on a semiconductor substrate or "wafer" formed from a semiconductor material such as silicon. The components of an IC device are formed on a substrate by photolithography rather than being constructed one item at a time. The electronic devices formed on the substrate are interconnected by conductors or wires, and the conductors or wires are also formed on the substrate by photolithography. Although manufactured in batches, each IC device is unique due to physical randomness, even using the same manufacturing process materials. This inherent variation can be extracted and used as its unique identifier, just like human DNA. According to the examples disclosed herein, such variation is used to establish a unique IC device signature that functions as a physically non-clonable function because it is unique, device-specific, non-copiable (cannot be imitated or copied), repeatable wait.
第1圖為說明根據本揭示內容的態樣的積體電路裝置的實例的方塊圖,該積體電路裝置可包括物理不可複製函數(physical unclonable function;PUF)裝
置/產生器100。積體電路裝置包括形成電子裝置的基板,該基板可為由積體電路實施的各種類型的裝置中的任一者,諸如處理裝置或記憶體裝置。物理不可複製函數裝置100用以經由輸入埠116接收質詢。回應於該質詢,認證電路用以提供安全密鑰形式的回應,其由物理不可複製函數電路100經由輸出埠120來輸出。如上所指出,物理不可複製函數100係基於積體電路製造期間不同實體製程變化的發生而構造的。此等靜態實體變化允許積體電路具有特定於積體電路的唯一指紋(fingerprint)(或多個唯一指紋)。當經由輸入埠116接收到特定質詢時,產生對應的唯一回應。能夠產生多個指紋的積體電路為強物理不可複製函數,因為可使用多個質詢及回應對。
FIG. 1 is a block diagram illustrating an example of an integrated circuit device that may include a physically unclonable function (PUF) device in accordance with aspects of the present disclosure.
Set/generator 100. An integrated circuit device includes a substrate forming an electronic device, which may be any of various types of devices implemented by integrated circuits, such as a processing device or a memory device. The physically non-clonable function device 100 is configured to receive the challenge through the
使用某些物理不可複製函數產生技術,一些潛在的安全密鑰位元可能在一代物理不可複製函數與另一代之間有所不同。在本揭示內容中,此種密鑰位元稱為隨機位元。通常,隨機位元不適合用於密鑰產生,因為用具有隨機位元的密鑰加密的訊息可能無法可靠地解密。收集並識別出有用的位元,以為每一積體電路裝置產生唯一且可靠的密鑰。在本文揭示的一些實例中,維護經加擾隨機位元,而非保留用於產生安全密鑰的密鑰位元的記錄。在第1圖所示的實例中,隨機位元的經加擾版本儲存在非揮發性記憶體110中。產生安全密鑰包括存取記憶體110,且接著輸出回應密鑰。
Using certain physically non-clonable function generation techniques, some of the underlying security key bits may differ from one generation of physically non-clonable functions to another. In this disclosure, such key bits are referred to as random bits. In general, random bits are not suitable for key generation because messages encrypted with a key with random bits may not be reliably decrypted. The useful bits are collected and identified to generate a unique and secure key for each integrated circuit device. In some examples disclosed herein, rather than keeping a record of key bits used to generate a security key, scrambled random bits are maintained. In the example shown in FIG. 1 , a scrambled version of the random bits is stored in
物理不可複製函數裝置100用以產生包括預定數
目個密鑰位元的安全密鑰。如上所述,回應於所接收的質詢而提供安全密鑰,且由於該裝置的製造過程所導致的固有變化,該安全密鑰對於特定積體電路裝置100係唯一的。在一些實例中,物理不可複製函數裝置100包括亂數產生器104,例如,諸如靜態隨機存取記憶體(static random access memory;SRAM)陣列的記憶體陣列,其中該陣列的記憶體單元產生安全密鑰的密鑰位元。可基於所需安全密鑰的大小來判定用於密鑰產生的靜態隨機存取記憶體陣列的大小或靜態隨機存取記憶體陣列的存儲器單元的數目。
The physical non-copyable function device 100 is used to generate
The security key of each key bit. As described above, a security key is provided in response to a received challenge and is unique to a particular integrated circuit device 100 due to inherent variations in the manufacturing process of the device. In some examples, the physically non-clonable function device 100 includes a
提供處理記憶體110用於物理不可複製函數資料處理。在所說明的實例中,處理記憶體110為非揮發性記憶體(nonvolatile memory;NVM)。在一些實例中,處理記憶體110為一次性可編程(One-Time Programmable;OTP)記憶體或裝置。在下文中,處理記憶體110可以可互換地稱為非揮發性記憶體(nonvolatile memory;NVM)110或一次性可編程(One-Time Programmable;OTP)110,然而,應注意,處理記憶體110不限於非揮發性記憶體或一次性可編程記憶體或裝置。
The
以質詢的形式接收對安全密鑰的請求124。輸入位址區塊116處置此種請求或質詢,以在向處理記憶體110提出質詢之前確保質詢的正確性。基於有效請求,處理記憶體110擷取安全密鑰。在一些實例中,輸入位址區
塊116藉由對輸入位址進行加擾以使發送至處理記憶體110的對安全密鑰的請求隨機化來處理請求。
A
在第1圖所示的實例電路中,用於儲存經加擾位元的記憶體包含設置在物理不可複製函數裝置100自身上的非揮發性記憶體。在其他實例中,記憶體位於物理不可複製函數裝置100的外部。在第1圖中,記憶體為反熔絲一次性可編程110,其在物理不可複製函數100中標記已識別的經加擾隨機位元的位址。如下文將進一步論述的,一次性可編程110最初不含資訊。在調試過程期間,一次性可編程110在複數個步驟中的每一步驟結束時用經加擾位元及位址進行更新。在所有步驟結束時,一次性可編程110將含有關於所有經加擾位元的資訊。物理不可複製函數100使用該資訊來回應於接收到的質詢來產生安全密鑰。所說明的實例進一步包括控制器102。在經由一次性可編程110實施非揮發性記憶體110的實例中,控制器102與一次性可編程110介接以進行讀取及寫入模式。
In the example circuit shown in FIG. 1 , the memory used to store the scrambled bits includes non-volatile memory disposed on the physically non-clonable function device 100 itself. In other examples, the memory is located external to the physically non-clonable function device 100 . In FIG. 1 , the memory is an antifuse one-time programmable 110 , which marks an identified address of scrambled random bits in a physically non-clonable function 100 . As will be discussed further below, the one-time programmable 110 initially contains no information. During the debug process, the one-time programmable 110 is updated with the scrambled bits and address at the end of each of a plurality of steps. At the end of all steps, the one-time programmable 110 will contain information about all scrambled bits. The physically non-clonable function 100 uses this information to generate a security key in response to a received challenge. The illustrated example further includes a
所說明的認證電路100進一步包括輸入位址區塊116,其提供在物理不可複製函數裝置100外部的介面。舉例而言,輸入位址區塊116起始對物理不可複製函數裝置100的存取,且跟蹤與一次性可編程110存取及資料收集有關的所有異動。
The illustrated authentication circuit 100 further includes an
物理不可複製函數裝置100獲得所製造的裝置之間的固有差異以產生物理不可複製函數簽章。舉例而言,存在基於延遲鏈的物理不可複製函數,其中物理不可複製 函數將變化(差異)轉換為延遲變化。基於延遲鏈的物理不可複製函數使用一組由邏輯閘組成的延遲鏈。由於組件的靜態變化,每一鏈將具有不同的延遲。藉由對延遲進行取樣,可自亂數產生器(random number generator;RNG)104產生用於亂數的簽章。 The physically non-clonable function device 100 captures inherent differences between manufactured devices to generate a physically non-clonable function signature. For example, there are physically non-copyable functions based on delay chains, where physically non-copyable Function converts changes (differences) to delayed changes. Delay-chain-based physically non-reproducible functions use a set of delay chains consisting of logic gates. Each chain will have different latencies due to static changes in components. A signature for the random number can be generated from a random number generator (RNG) 104 by sampling the delay.
另一方法係基於記憶體的物理不可複製函數,其中雙穩態元件中的裝置的變化經轉換以產生「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。此等物理不可複製函數利用較小的記憶體單元變化來產生簽章。舉例而言,靜態隨機存取記憶體陣列可自單元的啟動狀態產生簽章,該簽章在不同靜態隨機存取記憶體之間係隨機的且係唯一的。
Another approach is based on the physically non-reproducible functions of memory, where changes in devices in bistable elements are converted to produce a "1" or a "0". Such memory-based physically non-replicable functions include, for example, static random access memory, dynamic random access memory (dynamic random access memory; DRAM), magnetoresistive random access memory (magnetoresistive random access memory); Any one of various memory cell arrays such as MRAM, resistive random-access memory (RRAM), and read-only memory (ROM). A particular type of memory-based physically non-clonable function is an SRAM physically non-clonable function, which includes a static random access memory (SRAM)
在一些組態中,亂數產生器104包括物理不可複製函數所基於的記憶體陣列。舉例而言,此種基於靜態隨
機存取記憶體的物理不可複製函數使用靜態隨機存取記憶體陣列106的記憶體初始資料內容(通電條件)來產生安全密鑰。所產生密鑰的自一個通電循環至下一通電循環不會改變狀態的位元稱為穩定位元。然而,嘗試識別並記錄待用於密鑰產生的每一穩定位元將需要大量時間,且記錄穩定位元可能會使密鑰產生暴露於旁側攻擊。另外,由於可能影響記憶體的穩定位元的環境影響、雜訊及老化,將需要大量額外位元來校正錯誤。
In some configurations, the
如上所述,一些實例經由靜態隨機存取記憶體實施物理不可複製函數產生器。舉例而言,可藉由使用靜態隨機存取記憶體裝置的通電狀態來產生物理不可複製函數簽章。即使靜態隨機存取記憶體裝置包括對稱單元(位元),製造差異仍可能導致靜態隨機存取記憶體裝置的每一位元在靜態隨機存取記憶體裝置通電時趨於處於高狀態(即,邏輯「1」)或低狀態(即,邏輯「0」)。位元的此等初始通電狀態會在整個靜態隨機存取記憶體裝置中隨機分佈,此會引起可由物理不可複製函數定義的可變性,以產生靜態隨機存取記憶體裝置的唯一密鑰。 As noted above, some examples implement a physically non-clonable function generator via SRAM. For example, the physical non-clonable function signature can be generated by using the power-on state of the SRAM device. Even though SRAM devices include symmetric cells (bits), manufacturing variances may still cause each bit of the SRAM device to tend to be in a high state when the SRAM device is powered on (i.e. , logic "1") or low state (ie, logic "0"). These initial power-on states of the bits are distributed randomly throughout the SRAM device, which causes variability that can be defined by a physically non-clonable function to generate the unique key of the SRAM device.
在將靜態隨機存取記憶體用作物理不可複製函數產生器的其他實例中,藉由比較記憶體裝置的兩個記憶體單元的存取速度(例如,讀取速度)來產生安全密鑰的每一位元。在此種實例中,由於物理不可複製函數簽章係基於讀取速度的比較,因此不需要進行迭代來使記憶體裝置通電及斷電。 In other examples where SRAM is used as a physically non-clonable function generator, the security key is generated by comparing the access speeds (e.g., read speeds) of two memory cells of a memory device. every bit. In such an example, since the physical non-clonable function signature is based on a comparison of read speeds, no iterations are required to power on and off the memory device.
無關於基於靜態隨機存取記憶體的亂數產生器104的類型,可對靜態隨機存取記憶體106的位元或簽章進行加擾。對靜態隨機存取記憶體位元進行加擾可進一步使來自靜態隨機存取記憶體106的已隨機位元進一步隨機化,且藉由讀取靜態隨機存取記憶體106防止安全性受到損害,此係因為一次性可編程110中儲存的位元與自靜態隨機存取記憶體106讀取的位元不同。加擾器108可為位元折疊電路。在其他組態中,加擾器108可為線性反饋移位暫存器(linear feedback shift register;LFSR),且視情況與一或多個XOR閘配對。無關於加擾器的類型,可對所讀取的靜態隨機存取記憶體位元進行加擾或將其更改為新組態,此使得物理不可複製函數100難以受損,因為靜態隨機存取記憶體即使被讀取亦與一次性可編程110中儲存的位元不相同。
Regardless of the type of SRAM-based
物理不可複製函數100的另一組件可為內置自測(built-in self-test;BIST)112。內置自測112可判定一次性可編程110及/或亂數產生器104的功能或恰當操作。內置自測112可發送且自一次性可編程110及亂數產生器104接收信號,以判定組件110、104兩者皆在起作用且在恰當地起作用。此操作資訊可傳達回至控制器102。
Another component of the physically non-clonable function 100 may be a built-in self-test (BIST) 112 . Built-in self-
驗證組件114可驗證儲存在一次性可編程110內及/或來自亂數產生器104的資訊或資料。舉例而言,亂數產生器104可儲存一次性可編程110內的位元,且驗證組
件114接著可自一次性可編程110讀取位元,並將其與亂數產生器104的暫存器中的資訊進行比較,以判定此等位元是否已恰當寫入至一次性可編程110。接著,可將由此驗證產生的任何類型的資訊發送至控制器102,以進行進一步的操作。在其他情況下,一次性可編程110亦可驗證正在讀取且發送至輸出暫存器118的資訊。以此方式,控制器102可判定至輸出暫存器118的輸出是否已經發送及/或是否正確。
The
輸出暫存器118可儲存來自一次性可編程110的位元以自物理不可複製函數100輸出。輸出暫存器118可由控制器102組態以改變密鑰的大小或將自物理不可複製函數100發送的回應位元的量。在至少一些組態中,輸出埠120可以並行或串行格式輸出設定數目的位元,例如16個位元。輸出暫存器118可儲存可大於輸出120的16個位元的不同大小的密鑰。因此,輸出暫存器118可用以儲存將自輸出120發送出的整個輸出密鑰作為一或多個信號128。當輸出埠120在一或多個連續讀取中自輸出暫存器118獲得所有密鑰位元且將整個密鑰作為信號128發送出去之後,輸出埠120可在若干信號128中發送密鑰位元,例如一次發送16個位元。
The
輸出埠120可為並行或串行埠,其將信號128發送至與物理不可複製函數100進行通信的積體電路上或外部的另一裝置或功能。輸出埠120可具有輸出埠120可在任何一個信號128中發送的設定數目個位元,例如16個
位元。輸出埠120可發送連續或重複的輸出,直至提供整個密鑰作為輸出信號128。
The
物理不可複製函數100亦可包括輸入位址區塊116。輸入位址區塊116可接受輸入質詢信號124,其可包括位址。該位址可由輸入位址區塊116發送至一次性可編程110,以擷取具有該位址的密鑰。可如本文中所描述將密鑰作為對質詢信號的回應而輸出。在至少一些組態中,輸入位址區塊116亦可對位址124進行加擾。以此方式,輸出密鑰自該位址隨機化,且防止藉由重複的質詢及回應來判定密鑰。輸入位址區塊116中的加擾器可為線性反饋移位暫存器或其他電路。
The physically non-clonable function 100 may also include an
控制器102的一組功能或組件可如第2圖所示。功能組件202至216可表示由控制器102執行或產生的不同類型的功能或過程。此等不同功能可體現為自記憶體加載至控制器102中的韌體,或可為永久地體現在控制器102的積體電路內的閘或其他硬體。無論如何,此等不同的功能有助於產生物理不可複製函數100的輸出,且控制可自物理不可複製函數100獲得的不同功能。
A set of functions or components of the
亂數產生器及/或亂數產生器介面202可與亂數產生器104相互作用。由此,控制器102可在至少一些組態中讀取或寫入至靜態隨機存取記憶體106。此外,控制器102可啟動靜態隨機存取記憶體106或亂數產生器104。控制器102亦可與加擾器108介接。因此,控制器102可啟動加擾器108、影響加擾器起作用的方式、自加擾器
108讀取資訊,或用加擾器108進行其他操作。
The random number generator and/or random number generator interface 202 can interact with the
控制器102亦可包括非揮發性記憶體介面204。非揮發性記憶體介面204可與非揮發性記憶體110相互作用。因此,控制器102可讀取或寫入資訊至非揮發性記憶體110。在一些組態中,控制器102可能僅能夠讀取非揮發性記憶體110的某些部分。舉例而言,控制器102可判定是否已經用亂數對一次性可編程110進行編程。此外,控制器102可啟動一次性可編程110或進行其他操作,包括例如使一次性可編程110向輸出暫存器118發送密鑰。
The
非揮發性記憶體的初始寫入功能206可進行亂數至非揮發性記憶體110的第一初始儲存。非揮發性記憶體的此初始寫入功能206可使靜態隨機存取記憶體106向加擾器108提供資料,接著可將其讀取或寫入至一次性可編程110。因此,非揮發性記憶體的初始寫入功能206控制將亂數儲存至非揮發性記憶體110中的過程。
The non-volatile memory initial write function 206 can perform a first initial storage of random numbers to the
非揮發性記憶體的驗證功能208可經由驗證區塊114來驗證寫入至一次性可編程110的資訊與加擾器108的暫存器中提供的資訊相同。因此,控制器102可與驗證區塊114、亂數產生器104及一次性可編程110相互作用,以判定是否自亂數產生器104將正確的資料寫入至一次性可編程110。
The
在一些組態中,控制器102可用作加擾器,以使用可選的亂數產生器位元的加擾器功能210來對來自靜態隨機存取記憶體106的位元進行加擾。以此方式,控制器
102用作加擾器108。因此,控制器102可包括位元折疊電路功能、線性反饋移位暫存器電路/功能或其他類型的加擾技術。控制器102可為一次性可編程110提供必要的位元加擾。
In some configurations, the
在非揮發性記憶體110儲存自加擾器108加擾的亂數之後,非揮發性記憶體的關閉功能212可停止對非揮發性記憶體110的寫入。因此,控制器102亦可使一次性可編程裝置110設定一或多個位元,其指示一次性可編程110已被寫入且密鑰已被儲存。此外,當啟動物理不可複製函數100時,控制器102可自一次性可編程110讀取此等設定的位元,且接著基於一次性可編程110被編程的狀態,可將例如1及/或0的位元寫入至靜態隨機存取記憶體106以防止讀取靜態隨機存取記憶體的啟動狀態。
After the
密鑰大小判定器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控制。
The input/
可表示作為密鑰儲存在一次性可編程110中的隨機位元的資料結構300的實例可如第3圖所示。資料結構300可具有與第3圖所示及提供的不同欄位或部分。如省略號310所表示,可存在比第3圖所示的更多或更少的欄位或部分。資料結構300可包括與一或多個亂數306相關聯的一或多個保留位元302、一或多個位址304的一部分。保留位元302可為用於向物理不可複製函數100內的控制器102或其他組件提供資訊的一或多個位元。舉例而言,保留位元302可具有一或多個位元,其經設定以指示一次性可編程110已用儲存為亂數306的密鑰進行編程。
An example of a data structure 300 that may represent random bits stored as a key in the one-time programmable 110 may be shown in FIG. 3 . Data structure 300 may have different fields or sections than those shown and provided in FIG. 3 . As indicated by ellipses 310, there may be more or fewer fields or sections than shown in FIG. 3 . Data structure 300 may include one or more reserved bits 302 , a portion of one or more addresses 304 associated with one or more nonces 306 . Reserved bits 302 may be one or more bits used to provide information to
位址304為指示部分306中的一組亂數或與其相關聯的一組識別符(identifier;ID)或資料。位址304可由輸入位址區塊116指定或瞄準。與位址304相關聯的亂數306可藉由使用位址304自資料結構300請求密鑰
來提取位址304。
The address 304 is a set of random numbers in the
亂數306為儲存在一次性可編程110內的來自靜態隨機存取記憶體106的經加擾位元的集合。此等亂數306為可自質詢/回應或在質詢/回應期間進行存取或擷取的密鑰。可將諸如部分308的部分中的亂數306輸入至資料結構300中。在其他組態中,部分308表示等於密鑰的一組隨機位元。此等部分308可包括發送至輸出暫存器118且接著發送至輸出埠120的輸出位元。由此,在可存取的亂數內可能存在若干密鑰308。可封包至安全密鑰中的此大量隨機位元允許使用一次性可編程110提供許多不同的安全密鑰的靈活性。
The nonce 306 is a collection of scrambled bits from the
可在物理不可複製函數100中發生的各種信令的實例可如第4A圖及第4B圖所示。控制器102可將重設信號402接收至輸入/輸出介面216中。重設信號402可為用於重設物理不可複製函數100的外部信號。回應於重設信號402,控制器102可發送重設或啟動信號404至亂數產生器104,例如至靜態隨機存取記憶體106,及/或將信號406發送至一次性可編程110。
Examples of various signaling that may occur in the physically non-clonable function 100 may be shown in Figures 4A and 4B. The
此外,控制器102可將測試信號408發送至內置自測112。內置自測112可在信號410a及410b中請求亂數產生器104及/或一次性可編程110的狀態。亂數產生器104可在信號412中以該狀態進行回應,而非揮發性記憶體110可在信號414中以該狀態進行回應。可在信號416中將此狀態資訊自內置自測112發送回至控制器102。
控制器102接著可知曉物理不可複製函數100內的不同組件的狀態,且若需要,則在外部報告該狀態。因此,此等信號402至416表示用於重設及/或自測以判定物理不可複製函數100的內部電路正常起作用的信令。
Additionally, the
接著,控制器102可接收狀態檢查信號418。回應於信號418,控制器102可利用信號420向非揮發性記憶體110查詢一次性可編程110的狀態。信號420可表示控制器102正自資料結構300讀取保留位元302。保留位元302可指示是否已經對一次性可編程110進行編程。此資訊可發送回至控制器102或由控制器102讀取。控制器102接著可接收信號422並在信號424中輸出狀態。狀態424可指示一次性可編程110是否已經被編程。
Next, the
若尚未對一次性可編程110進行編程,則控制器102可接著用以將資訊儲存至一次性可編程110中。在此信號序列中,控制器102可向亂數產生器104發送信號426以開始產生待儲存在一次性可編程110中的經加擾亂數。接著,亂數產生器104可在信號428中將此等經加擾亂數提供至一次性可編程110。儘管可以16位元區塊或其他大小的區塊讀出靜態隨機存取記憶體106,但可一次一位元地將位元讀入一次性可編程110中。隨機位元可儲存至非揮發性記憶體110中。
If the one-time programmable 110 has not been programmed, the
在將一組位元讀入一次性可編程110之後,一次性可編程110及亂數產生器104可各自將所儲存的位元作為信號430a及430b發送至驗證區塊114。驗證區塊114
可判定儲存在一次性可編程110中的位元是否與自亂數產生器104輸出的位元相同。若該些位元通過驗證,則驗證區塊114可將指示該驗證之信號432發送回至控制器102。若驗證區塊114指示位元不相同,則控制器102可接收指示寫入失敗的信號432。接著,控制器102可使靜態隨機存取記憶體106將經加擾位元重新發送至一次性可編程110。若驗證兩次失敗,則控制器102可輸出錯誤作為信號122。然而,若驗證正確,則控制器102可指示將隨機位元儲存至一次性可編程110的過程將繼續,如弧434所表示。
After reading a set of bits into one-time programmable 110, one-time programmable 110 and
在一些實例中,控制器102可繼續由弧434表示的過程。在所有可能的隨機位元儲存在一次性可編程110中之後,控制器102可發送信號436以預燒一次性可編程110且防止一次性可編程110接收更多位元。因此,此時一次性可編程110可能無法再儲存更多的位元,但可用於質詢及回應過程以產生或提供密鑰。
In some examples,
控制器102亦可接收第4B圖所示的密鑰大小信號438。密鑰大小信號438可指示待由物理不可複製函數100輸出的密鑰的大小。回應於信號438,控制器102接著可將信號440發送至輸出暫存器118以根據信號438中的資訊來設定密鑰大小。因此,輸出暫存器118可為被請求作為輸出的密鑰的所有位元提供可用的儲存容量。
The
控制器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發送輸出密鑰。
The
第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的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
5 is a process flow diagram generally illustrating aspects of an
在操作508中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402,作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。接著,亂數產生器介面202可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟動信號406發送至一次性可編程110。控制器102可亦將測試信號408發送至內置自測112以測試其他組件的功能。
In operation 508, registers, devices, components, and
接著,在操作512中,內置自測112可對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應返回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。
Next, in operation 512 , the built-in self-
在操作516中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢
查。狀態檢查可由控制器102的輸入/輸出介面216所接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。
In operation 516 , the
保留位元可具有一個位元來指示一次性可編程110已被寫入及/或被鎖定。在另一組態中,可設定兩個或更多個位元來指示一次性可編程110已被寫入及/或被鎖定。舉例而言,可藉由三個或更多個位元的多數表決來讀取及分析保留位元,以判定一次性可編程110已被寫入及/或被鎖定。接著,控制器102可基於保留位元來判定一次性可編程110的狀態。此狀態可由輸入/輸出介面216作為輸出信號424發送出去。
Reserved bits may have a bit to indicate that the one-time programmable 110 has been written and/or locked. In another configuration, two or more bits may be set to indicate that the one-time programmable 110 has been written to and/or locked. For example, reserved bits may be read and analyzed by a majority vote of three or more bits to determine that the one-time programmable 110 has been written and/or locked. Then, the
在操作520中,控制器102的非揮發性記憶體的初始寫入功能206可接著使亂數產生器104的靜態隨機存取記憶體106通電。具體言之,非揮發性記憶體的初始寫入功能206啟動或初始化靜態隨機存取記憶體106。初始化可在靜態隨機存取記憶體106中提供基於靜態隨機存取記憶體106的唯一性而隨機的第一組位元。在操作524中,可藉由對非揮發性記憶體的初始寫入功能206來自靜態隨機存取記憶體106中讀出此等唯一的隨機位元。接著,在操作528中,可將讀出的位元發送至加擾器108,在該加
擾器中,對來自靜態隨機存取記憶體106的隨機位元進行加擾。位元折疊電路或線性反饋移位暫存器可對此等位元進行加擾,以使得加擾器108中的位於不同於自靜態隨機存取記憶體106讀出的位於。接著,在操作532中,可將經加擾亂數位元儲存在加擾器108的暫存器或記憶體中以待儲存在一次性可編程110中。
In operation 520 , the non-volatile memory initial write function 206 of the
在操作536中,亂數產生器104可自具有經加擾位元的暫存器將經加擾位元寫入至一次性可編程110。在一些組態中,一次性可編程110在每一時脈循環僅可接收一個位元。以此方式,若加擾器108中的位元暫存器具有一個以上的位元,則亂數產生器104可在每一時脈循環內一次自亂數產生器104向一次性可編程110發送一個位元。該些位元被寫入至一次性可編程110中,直至已寫入位元區塊為止。此時,可將位元區塊自一次性可編程110讀出至驗證區塊114。
In operation 536 , the
在操作540中,驗證區塊114可將自一次性可編程110發送的位元區塊與來自加擾器108的暫存器的位元進行比較。驗證區塊114判定兩個位元區塊是否相同。若區塊不相同,則可將訊息432發送至控制器102的非揮發性記憶體的驗證功能208,控制器接著可重新啟動該過程以將位元區塊再次寫入至一次性可編程110。若區塊相同,則可將指示肯定比較的信號432發送至控制器102的非揮發性記憶體的驗證功能208,且流程繼續。
In
此時,在操作544中,控制器102可判定是否有
更多隨機位元待儲存至一次性可編程110中。若一次性可編程110未滿且存在更多位元待儲存,則方法500可伴隨「是」進行至操作524以儲存下一位元區塊。然而,若一次性可編程110具有儲存在一次性可編程裝置110內的完整的隨機位元集合,則方法500可伴隨「否」進行至操作548,其中控制器102可在操作548中鎖定一次性可編程110。
At this time, in operation 544, the
在操作548中,控制器102的非揮發性記憶體的關閉功能212可藉由設定一次性可編程裝置110內的保留位元302來鎖定一次性可編程110。因此,控制器102的非揮發性記憶體的關閉功能212可防止在一次性可編程110內進行任何進一步的資料儲存。此時,儲存在一次性可編程110中的亂數作為一組可能的密鑰308儲存在欄位306內。每一隨機位元306可與位址304相關聯。為了獲得密鑰,一次性可編程110可接受與欄位304中的位址匹配的位址。若位址訊息匹配,則一次性可編程110可讀出與接收到的位址相關聯的隨機位元,且將該組資料作為密鑰發送至輸出暫存器118。
In
第6圖為大體上說明根據本揭示內容的各態樣的用於產生安全密鑰的例示性方法600的各態樣的處理流程圖。在第6圖中說明方法600的操作的一次次序。方法600可包括更多或更少的操作或步驟,或可以與第6圖所示的不同的方式配置操作或步驟的次序。方法600可作為可由諸如物理不可複製函數100的控制器102的處理器執行且
編碼或儲存在電腦可讀媒體上的一組電腦可執行指令來執行。此外,方法600可由與處理器、特殊應用積體電路、場可編程閘陣列、系統單晶片、積體電路或其他硬體裝置(例如,控制器102)相關聯的閘或電路執行。在下文中,將參考結合第1圖至第5圖及第7圖至第8圖描述的系統、組件、裝置、模組、電路、韌體、軟體、信號、資料結構、方法等而解釋方法600;然而,熟習此項技術者將理解,方法600的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
FIG. 6 is a process flow diagram generally illustrating aspects of an
在操作608中,物理不可複製函數100可接收作為質詢的位址。可將位址輸入信號446(信號124的一部分)發送至輸入位址區塊116。此輸入位址446可伴隨可作為信號122的一部分發送至控制器102的質詢信號442或其他信號。位址信號442可由控制器102接收,且接著當提供位址信號448時,可將另一信號444發送至一次性可編程110以由一次性可編程110起始用密鑰的回應。
In operation 608, the physically non-clonable function 100 may receive the address as a challenge. Address input signal 446 (part of signal 124 ) may be sent to input
視情況,在操作612中,輸入位址區塊116可對輸入位址446進行加擾。輸入位址區塊116亦可包括線性反饋移位暫存器或其他類型的加擾器。輸入位址區塊116可對輸入位址446進行加擾以使所提供的安全密鑰更加隨機。在操作616中,可接著將經加擾位址作為信號448發送至一次性可編程110以存取一次性可編程110。因此,輸入位址區塊116將經加擾位址提供至一次性可編程110以擷取所需安全密鑰。
Optionally, in
在操作620中,控制器102的密鑰大小判定器214可接收密鑰大小指示符信號438。控制器102可使用此密鑰大小指示符訊息438來藉由將信號440發送至輸出暫存器118來設定輸出暫存器118中的輸出密鑰大小。此密鑰大小資訊亦可儲存在控制器102中。此後,在操作620中,當獲取密鑰時,控制器102可判定密鑰大小。控制器102可存取關於密鑰大小的所儲存資訊,且將該資訊提供至一次性可編程110及/或輸出暫存器118。
In
接著,在操作624中,一次性可編程110可在資料結構300內擷取與接收到的位址444相關聯的所儲存隨機位元306。因此,一次性可編程110可掃描與位址444相同或匹配的位址304。在發現匹配時,一次性可編程110可擷取與此位址304相關聯的亂數306;一次性可編程110擷取與控制器102設定的密鑰大小308相關聯的數個位元。
Next, in operation 624 , the one-time programmable 110 may retrieve the stored
在操作628中,可接著將此密鑰資訊作為信號450發送至輸出暫存器118。輸出暫存器118可接受完整的密鑰大小。接著,輸出暫存器118可將在輸出暫存器118中儲存的位元作為信號452輸出至輸出埠120,以待作為信號456(其可為信號128的一部分)發送出去。在一些情況下,輸出埠120可接受在儲存在輸出暫存器118中的密鑰308中的資料的較小部分。由此,輸出暫存器118可重複地將資料發送至輸出埠120。在操作632中,輸出暫存器118可讀取暫存器中的部分密鑰,且經由輸出埠120
將其發送出去,直至整個密鑰作為信號456發送。在至少一些情況下,控制器102的輸入/輸出介面216在密鑰準備好發送出去時可發送輸出就緒信號126。
This key information may then be sent as signal 450 to output register 118 in operation 628 . The
第7圖為大體上說明根據本揭示內容的態樣的用於產生亂數以儲存在一次性可編程110中的例示性方法700的各態樣的處理流程圖。在第7圖中說明方法700的操作的一般次序。方法700可包括更多或更少的操作或步驟,或可以與第7圖所示的不同的方式配置操作或步驟的次序。方法700可作為可由諸如物理不可複製函數100的控制器102的處理器執行且編碼或儲存在電腦可讀媒體上的一組電腦可執行指令來執行。此外,方法700可由與處理器、特殊應用積體電路、場可編程閘陣列、系統單晶片、積體電路或其他硬體裝置(例如,控制器102)相關聯的閘或電路執行。在下文中,將參考結合第1圖至第6圖及第8圖描述的系統、組件、裝置、模組、電路、韌體、軟體、信號、資料結構、方法等而解釋方法700;然而,熟習此項技術者將理解,方法700的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
FIG. 7 is a process flow diagram generally illustrating aspects of an
在操作708中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。亂數產生器介面202接著可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟
動信號406發送至一次性可編程110。控制器102亦可將測試信號408發送至內置自測112以測試其他組件的功能。
In
在操作712中,內置自測112可接著對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應返回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。
In operation 712 , the built-in self-
在操作716中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢查。狀態檢查可由控制器102的輸入/輸出介面216接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。
In operation 716 , the
保留位元可具有一個位元來指示一次性可編程110已被寫入及/或被鎖定。在另一組態中,可設定兩個或更多個位元來指示一次性可編程110已被寫入及/或被鎖定。舉例而言,可藉由三個或更多個位元的多數表決來讀取及分析保留位元,以判定一次性可編程110已被寫入及/或被鎖定。接著,控制器102可基於保留位元來判定一次性可編程110的狀態。此狀態可由輸入/輸出介面216作
為輸出信號424發送出去。
Reserved bits may have a bit to indicate that the one-time programmable 110 has been written and/or locked. In another configuration, two or more bits may be set to indicate that the one-time programmable 110 has been written to and/or locked. For example, reserved bits may be read and analyzed by a majority vote of three or more bits to determine that the one-time programmable 110 has been written and/or locked. Then, the
在操作720中,控制器102的非揮發性記憶體的初始寫入功能206可接著使亂數產生器104的靜態隨機存取記憶體106通電。具體言之,非揮發性記憶體的初始寫入功能206啟動或初始化靜態隨機存取記憶體106。初始化可在靜態隨機存取記憶體106中提供基於靜態隨機存取記憶體106的唯一性而隨機的第一組位元。在操作724中,可藉由對非揮發性記憶體的初始寫入功能206來自靜態隨機存取記憶體106中讀出此等唯一的隨機位元。接著,在操作728中,可將讀出的位元發送至加擾器108,在該加擾器中,對來自靜態隨機存取記憶體106的隨機位元進行加擾。位元折疊電路或線性反饋移位暫存器可對位元進行加擾,以使得加擾器108中的位元不同於自靜態隨機存取記憶體106讀出的位元。接著,在操作732中,可將經加擾亂數位元儲存在加擾器108的暫存器或記憶體中以待儲存在一次性可編程110中。
In operation 720 , the non-volatile memory initial write function 206 of the
在操作736中,亂數產生器104可自具有經加擾位元的暫存器將經加擾位元寫入至一次性可編程110。在一些組態中,一次性可編程110在每一時脈循環僅可接收一個位元。由此,若加擾器108中的位暫存器具有一個以上的位元,則亂數產生器104可在每一時脈循環內一次自亂數產生器104向一次性可編程110發送一個位元。該些位元被寫入至一次性可編程110,直至已寫入位元區塊為止。此時,可將位元區塊自一次性可編程110讀出至驗證
區塊114。
In operation 736 , the
在操作740中,驗證區塊114可將自一次性可編程110發送的位元區塊與來自加擾器108的暫存器的位元進行比較。驗證區塊114判定兩個位元區塊是否相同。若區塊不相同,則可將訊息432發送至控制器102的非揮發性記憶體的驗證功能208,控制器接著可重新啟動該過程以將位元區塊再次寫入至一次性可編程110。若區塊相同,則將指示肯定比較的信號432發送至控制器102的非揮發性記憶體的驗證功能208,且處理繼續。
In
此時,在操作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圖所示。
At this time, at operation 744 , the
在操作748中,控制器102的非揮發性記憶體的關閉功能212可藉由設定一次性可編程裝置110內的保留位元302來鎖定一次性可編程110。因此,控制器102的非揮發性記憶體的關閉功能212可防止在一次性可編程110內進行任何進一步的資料儲存。此時,儲存在一次性可編程110中的亂數作為一組可能的密鑰308儲存在欄位306內。每一隨機位元306可與位址304相關聯。為了獲得密鑰,一次性可編程110可接受與欄位304中的位址匹配的位址。若位址訊息匹配,則一次性可編程110可讀出與接收到的位址相關聯的隨機位元,其將該組資料作為密鑰發送至輸出暫存器118。
In
第8圖為大體上說明根據本揭示內容的態樣的用於用物理不可複製函數100開始過程的例示性方法800的各態樣的處理流程圖。在第8圖中說明方法800的操作的一般次序。方法800可包括更多或更少的操作或步驟,或可以與第8圖所示不同的方式來配置操作或步驟的次序。方法800可作為可由諸如物理不可複製函數100的控制器102的處理器執行且編碼或儲存在電腦可讀媒體上的一組電腦可執行指令來執行。此外,方法800可由與處理器、特殊應用積體電路、場可編程閘陣列、系統單晶片、積體電路或其他硬體裝置(例如,控制器102)相關聯的閘或電路執行。在下文中,將參考結合第1圖至第7圖描述的
系統、組件、裝置、模組、電路、韌體、軟體、信號、資料結構、方法等而解釋方法800;然而,熟習此項技術者將理解,方法800的一些或全部操作可藉由或使用與以下描述的元件不同的元件來執行。
FIG. 8 is a process flow diagram generally illustrating aspects of an
在操作808中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402,作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。亂數產生器介面202接著可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟動信號406發送至一次性可編程110。控制器102可亦將測試信號408發送至內置自測112以測試其他組件的功能。
In
在操作812中,內置自測112可接著對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應發送回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。
In operation 812 , the built-in self-
在操作816中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢查。狀態檢查可由控制器102的輸入/輸出介面216接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以
判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。
In operation 816 , the
保留位元可具有一個位元來指示一次性可編程110已被寫入及/或被鎖定。在另一組態中,可設定兩個或更多個位元來指示一次性可編程110已被寫入及/或被鎖定。舉例而言,可藉由三個或更多個位元的多數表決來讀取及分析保留位元,以判定一次性可編程110已被寫入及/或被鎖定。在操作820中,控制器102接著可基於保留位元來判定一次性可編程110的狀態。此狀態可由輸入/輸出介面216作為輸出信號424發送出去。
Reserved bits may have a bit to indicate that the one-time programmable 110 has been written and/or locked. In another configuration, two or more bits may be set to indicate that the one-time programmable 110 has been written to and/or locked. For example, reserved bits may be read and analyzed by a majority vote of three or more bits to determine that the one-time programmable 110 has been written and/or locked. In operation 820, the
若設定鎖定位元,則方法800伴隨「是」進行至操作824,其中控制器102可將位元寫入至靜態隨機存取記憶體106。此處,在初始化之後,靜態隨機存取記憶體106可含有與寫入或提供至加擾器且接著寫入至一次性可編程110的彼等位元相同或類似的一組位元。為了防止此等位元被讀出且可能允許外部裝置或功能判定一次性可編程110中的內容,控制器102可寫入位元(例如,1及/或0)至靜態隨機存取記憶體106中以改變儲存在靜態隨機存取記憶體106中的內容。以此方式,若讀取靜態隨機存取記憶體106,則靜態隨機存取記憶體106中的內容將與用於建立一次性可編程110中的密鑰的內容不同。
If the lock bit is set, the
若判定未設定鎖定位元,則在操作828中,過程800可伴隨「否」進行至將隨機位元儲存在一次性可編程
110中。在操作828中的隨機位元的儲存可結合第5圖及第7圖所描述的過程類似。
If it is determined that the lock bit is not set, then in operation 828,
因此,所揭示的實施例尤其提供一種可自靜態隨機存取記憶體或亂數產生器產生唯一簽章的物理不可複製函數。此等簽章可儲存在非揮發性記憶體中,其中此等簽章不會由於積體電路的熱量或壽命的變化而改變。在先前的基於靜態隨機存取記憶體的裝置中,靜態隨機存取記憶體中的簽章可能會隨著時間及熱量的變化而變化。在其他過去的一次性可編程型物理不可複製函數中,彼等先前的物理不可複製函數需要外部埠來將此等位元儲存在一次性可編程中。至物理不可複製函數的此外部埠為物理不可複製函數安全性的弱點,因為該埠可用於向一次性可編程寫入或自一次性可編程讀取。在本文的態樣中,物理不可複製函數內部的靜態隨機存取記憶體不使用外部埠,且因此減少或消除重新編程的風險。此外,利用物理不可複製函數內部的組件,本文的各態樣無需提供關於物理不可複製函數的鑄造工人資訊。即使具有上述差異,物理不可複製函數裝置亦可具有許多質詢/回應對,因為一次性可編程中儲存的位元數很大。 Thus, the disclosed embodiments provide, inter alia, a physically non-clonable function that can generate a unique signature from SRAM or random number generator. The signatures can be stored in non-volatile memory, where the signatures do not change due to changes in heat or lifetime of the integrated circuit. In previous SRAM-based devices, the signature in the SRAM may change with time and heat. In other past one-time programmable physically non-clonable functions, their previous physically non-clonable functions required external ports to store the bits in the one-time programmable. This external port to the physically non-clonable function is a security weakness of the physically non-clonable function because the port can be used to write to or read from the one-time programmable. In aspects herein, the SRAM inside the physically non-clonable function does not use external ports, and thus reduces or eliminates the risk of reprogramming. Furthermore, by utilizing components inside physically non-clonable functions, aspects of this paper do not need to provide foundry information about physically non-clonable functions. Even with the above differences, a physically non-clonable function device can have many challenge/response pairs because of the large number of bits stored in the one-time programmable.
因此,本文的物理不可複製函數裝置提供一種可靠的方式來產生多個簽章作為質詢及回應對,以用於安全功能。本文的物理不可複製函數在每一物理不可複製函數之間具有足夠的熵(隨機性)以保證唯一性。最終,物理不可複製函數可防止重新編程攻擊及「冷啟動」攻擊。 Therefore, the physically non-clonable function device herein provides a reliable way to generate multiple signatures as challenge and response pairs for security functions. The physically non-reproducible functions herein have enough entropy (randomness) between each physically non-reproducible function to guarantee uniqueness. Finally, physically non-clonable functions prevent reprogramming attacks and "cold boot" attacks.
本揭示內容的態樣包括一種產生用於積體電路裝置的安全密鑰的方法,包含:用亂數產生器產生複數個密鑰位元;將複數個密鑰位元儲存在非揮發性記憶體中;以及根據所儲存的複數個密鑰位元產生安全密鑰。 Aspects of the present disclosure include a method of generating a security key for an integrated circuit device, comprising: generating a plurality of key bits with a random number generator; storing the plurality of key bits in non-volatile memory body; and generate a security key according to the stored plurality of key bits.
在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中亂數產生器包含靜態隨機存取記憶體,其中在初始化靜態隨機存取記憶體之後,自靜態隨機存取記憶體讀取密鑰位元。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中亂數產生器進一步包含加擾器,其對自靜態隨機存取記憶體讀取的密鑰位元進行加擾。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中加擾器為位元折疊電路或線性反饋移位暫存器中的一者。 In one embodiment, a method of generating a security key for an integrated circuit device, wherein the random number generator comprises a static random access memory, wherein after initialization of the static random access memory, The body reads the key bits. In an embodiment, a method of generating a security key for an integrated circuit device, wherein the random number generator further includes a scrambler for scrambling the key bits read from the SRAM . In an embodiment, a method of generating a security key for an integrated circuit device, wherein the scrambler is one of a bit folding circuit or a linear feedback shift register.
在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中非揮發性記憶體包含一次性可編程裝置。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中密鑰位元儲存至一次性可編程裝置中,且其中密鑰位元表示兩個或更多個安全密鑰。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中一次性可編程OTP裝置接收位址,且擷取與位址相關聯的安全密鑰。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中在將位址提供至一次性可編程裝置之前對其進行加擾。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含接收密鑰大小指示符,以及根據密鑰大小指示 符設定安全密鑰的一密鑰大小。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含回應於接收到位址而輸出安全密鑰。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含在儲存密鑰位元之後鎖定一次性可編程OTP裝置,其中在一次性可編程裝置中設定鎖定位元以指示一次性可編程裝置被鎖定,其中在設定鎖定位元之後,一次性可編程裝置不儲存額外位元。在一實施例中,產生用於積體電路裝置的安全密鑰的方法,進一步包含判定是否設定鎖定位元。 In one embodiment, a method of generating a security key for an integrated circuit device, wherein the non-volatile memory comprises a one-time programmable device. In an embodiment, a method of generating a security key for an integrated circuit device, wherein the key bits are stored in a one-time programmable device, and wherein the key bits represent two or more security keys . In an embodiment, a method of generating a security key for an integrated circuit device, wherein a one-time programmable OTP device receives an address and retrieves a security key associated with the address. In an embodiment, a method of generating a security key for an integrated circuit device, wherein an address is scrambled before providing it to a one-time programmable device. In one embodiment, a method of generating a security key for an integrated circuit device further includes receiving a key size indicator, and according to the key size indication character sets a key size for the security key. In one embodiment, the method of generating a security key for an integrated circuit device further includes outputting the security key in response to receiving the address. In one embodiment, a method of generating a security key for an integrated circuit device further includes locking the one-time programmable OTP device after storing the key bits, wherein the lock bit is set in the one-time programmable device to Indicates that the one-time programmable device is locked, wherein the one-time programmable device does not store additional bits after the lock bit is set. In one embodiment, the method of generating a security key for an integrated circuit device further includes determining whether a lock bit is set.
在一實施例中,產生用於積體電路裝置的安全密鑰的方法,其中亂數產生器包含靜態隨機存取記憶體,且該非揮發性記憶體包含一次性可編程裝置,其中靜態隨機存取記憶體比一次性可編程裝置儲存的位元少,且靜態隨機存取記憶體初始化兩次或更多次以將密鑰位元提供至一次性可編程裝置。 In one embodiment, a method of generating a security key for an integrated circuit device, wherein the random number generator comprises static random access memory, and the non-volatile memory comprises a one-time programmable device, wherein the static random access memory The access memory stores fewer bits than the one-time programmable device, and the SRAM is initialized two or more times to provide key bits to the one-time programmable device.
本揭示內容的另一態樣包括一種具有物理不可複製函數產生器的積體電路裝置,該物理不可複製函數產生器用以輸出兩個或更多個安全密鑰,每一安全密鑰包含複數個密鑰位元,其中該物理不可複製函數產生器包含:靜態隨機存取記憶體,其在初始化之後被讀取以提供複數個密鑰位元中的一或多者;一次性可編程裝置,其:儲存自靜態隨機存取記憶體控制器讀取的位元;且在接收到位址後提供兩個或更多個安全密鑰中的一者。 Another aspect of the disclosure includes an integrated circuit device having a physically non-clonable function generator for outputting two or more security keys, each security key comprising a plurality of key bits, wherein the physically non-clonable function generator comprises: static random access memory, which is read after initialization to provide one or more of the plurality of key bits; a one-time programmable device, It: stores bits read from an SRAM controller; and provides one of two or more security keys upon receipt of an address.
在一實施例中,積體電路裝置,其中物理不可複製 函數產生器進一步包含加擾器,其對自靜態隨機存取記憶體讀取的密鑰位元進行加擾。在一實施例中,積體電路裝置,其中加擾器為位元折疊電路或線性反饋移位暫存器中的一者。 In one embodiment, an integrated circuit device wherein the physically non-reproducible The function generator further includes a scrambler, which scrambles the key bits read from the SRAM. In one embodiment, the integrated circuit device, wherein the scrambler is one of a bit folding circuit or a linear feedback shift register.
在一實施例中,積體電路裝置,其中物理不可複製函數產生器進一步包含輸入位址加擾器,輸入位址加擾器接收輸入位址且對輸入位址進行加擾以產生提供至一次性可編程裝置的位址。 In one embodiment, the integrated circuit device, wherein the physical non-copyable function generator further includes an input address scrambler, the input address scrambler receives the input address and scrambles the input address to generate a The address of the programmable device.
在一實施例中,積體電路裝置,其中物理不可複製函數產生器進一步包含控制器,其用於控制靜態隨機存取記憶體及該一次性可編程裝置的功能;以及輸出暫存器,其中控制器進一步接收密鑰大小指示符信號,且根據用於安全密鑰的該密鑰大小指示符信號設定輸出暫存器以儲存數個位元。 In one embodiment, the integrated circuit device, wherein the physically non-clonable function generator further includes a controller for controlling functions of the static random access memory and the one-time programmable device; and an output register, wherein The controller further receives the key size indicator signal and sets an output register to store a number of bits according to the key size indicator signal for the security key.
本揭示內容的另一態樣包括一種用於產生積體電路裝置安全密鑰的系統,該系統可具有亂數產生器,該亂數產生器包含:靜態隨機存取記憶體,其在初始化之後被讀取以提供多個位元;線性反饋移位暫存器,其對自靜態隨機存取記憶體讀取的複數個位進行加擾;輸入位址加擾器,其:接收輸入位址;將輸入位址加擾為經加擾位址;提供經加擾位址;與線性反饋移位暫存器及輸入位址加擾器通信的一次性可編程)裝置,其:儲存自線性反饋移位暫存器提供的經加擾位元;使經加擾位元與位址相關聯;自輸入位址加擾器接收經加擾位址;判定與經加擾位元相 關聯的位址,該位址與經加擾位址匹配;讀取具有與經加擾位址匹配的位址的經加擾位元;提供經加擾位元作為安全密鑰;與一次性可編程裝置通信的輸出暫存器,該輸出暫存器:自一次性可編程裝置接收安全密鑰;且輸出安全密鑰。 Another aspect of the disclosure includes a system for generating security keys for an integrated circuit device, which may have a random number generator comprising: static random access memory, which after initialization is read to provide a number of bits; a linear feedback shift register, which scrambles a plurality of bits read from SRAM; an input address scrambler, which: receives an input address ; scrambling an input address into a scrambled address; providing a scrambled address; a one-time programmable) device in communication with a linear feedback shift register and an input address scrambler, which: stores from a linear Feedback scrambled bits provided by shift register; associating scrambled bits with addresses; receiving scrambled addresses from input address scrambler; an associated address that matches the scrambled address; reads the scrambled bits having an address that matches the scrambled address; provides the scrambled bits as a security key; and the one-time An output register for programmable device communication, the output register: receives a security key from the one-time programmable device; and outputs the security key.
在一實施例中,用於產生積體電路裝置安全密鑰的系統,進一步包含控制器,其控制靜態隨機存取記憶體及一次性可編裝置的功能;接收密鑰大小指示符信號;以及設定輸出暫存器以根據用於安全密鑰的密鑰大小指示符信號儲存數個位元。 In one embodiment, a system for generating a security key for an integrated circuit device, further comprising a controller that controls functions of the SRAM and the one-time programmable device; receives a key size indicator signal; and The output register is set to store a number of bits according to the key size indicator signal for the security key.
前文概述若干實例的特徵,使得熟習此項技術者可更佳地理解本揭示內容的態樣。熟習此項技術者應理解,可容易地將本揭示內容用作設計或修改其他製程及結構的基礎,以達成與本文介紹的實例相同的目的及/或達成相同的優點。熟習此項技術者亦應認識到,此類等效構造不脫離本揭示內容的精神及範圍,且在不脫離本揭示內容的精神及範圍的情況下,其可進行各種改變、替換及變更。 The foregoing outlines features of several examples so that those skilled in the art may better understand aspects of the disclosure. Those skilled in the art will appreciate that this disclosure may be readily utilized as a basis for designing or modifying other processes and structures to achieve the same purposes and/or achieve the same advantages as the examples presented herein. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they can make various changes, substitutions and alterations herein without departing from the spirit and scope of the present disclosure.
100:物理不可複製函數裝置/產生器(物理不可複製函數電路、物理不可複製函數、積體電路裝置、認證電路) 100: Physically non-clonable function devices/generators (physically non-clonable function circuits, physically non-clonable functions, integrated circuit devices, authentication circuits)
102:控制器 102: Controller
104:亂數產生器 104: random number generator
106:靜態隨機存取記憶體陣列(靜態隨機存取記憶體) 106: Static Random Access Memory Array (SRAM)
108:加擾器 108: Scrambler
110:非揮發性記憶體(記憶體、處理記憶體、一次性可編成、一次性可編成裝置、反熔絲一次性可編成、組件) 110: Non-volatile memory (memory, processing memory, one-time programmable, one-time programmable device, antifuse one-time programmable, component)
112:內置自測 112:Built-in self-test
114:驗證組件(驗證區塊) 114: Verification component (verification block)
116:輸入埠(輸入位址區塊) 116: Input port (input address block)
118:輸出暫存器 118: output register
120:輸出埠(輸出) 120: output port (output)
122:信號(輸入信號) 122: signal (input signal)
124:請求(輸入質詢信號、位址、信號) 124: request (input challenge signal, address, signal)
126:信號(輸出信號、輸出就緒信號) 126: signal (output signal, output ready signal)
128:信號(輸出信號、輸出) 128: Signal (output signal, output)
Claims (10)
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 (en) | 2021-10-16 |
| TWI781544B true TWI781544B (en) | 2022-10-21 |
Family
ID=76611437
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110107560A TWI781544B (en) | 2020-03-31 | 2021-03-03 | Integrated circuit device and method and system of generating a security key for an integrated circuit device |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN113079019B (en) |
| TW (1) | TWI781544B (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115237831B (en) * | 2022-09-22 | 2023-02-07 | 瀚博半导体(上海)有限公司 | Data transmission method, device, chip, electronic equipment and medium |
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 (en) * | 2004-10-01 | 2010-04-14 | 美国博通公司 | Safe data processing method and system |
| CN102117387A (en) * | 2010-01-04 | 2011-07-06 | Vixs系统公司 | Secure key access device and applications thereof |
| CN105894268A (en) * | 2015-02-12 | 2016-08-24 | 三星电子株式会社 | Payment processing method and electronic device supporting the same |
| CN106845975A (en) * | 2015-12-05 | 2017-06-13 | 上海阿艾依智控系统有限公司 | The embedded devices and methods therefor that continues to pay dues is interlocked based on radio-frequency identification card and smart mobile phone |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008027327A (en) * | 2006-07-25 | 2008-02-07 | Sony Corp | MEMORY ACCESS CONTROL DEVICE AND METHOD, AND COMMUNICATION DEVICE |
| 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/en active
- 2021-03-30 CN CN202110337813.XA patent/CN113079019B/en 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 (en) * | 2004-10-01 | 2010-04-14 | 美国博通公司 | Safe data processing method and system |
| TW200830832A (en) * | 2006-12-22 | 2008-07-16 | Atmel Corp | Key protection mechanism |
| CN102117387A (en) * | 2010-01-04 | 2011-07-06 | Vixs系统公司 | Secure key access device and applications thereof |
| CN105894268A (en) * | 2015-02-12 | 2016-08-24 | 三星电子株式会社 | Payment processing method and electronic device supporting the same |
| CN106845975A (en) * | 2015-12-05 | 2017-06-13 | 上海阿艾依智控系统有限公司 | The embedded devices and methods therefor that continues to pay dues is interlocked based on radio-frequency identification card and smart mobile phone |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202139041A (en) | 2021-10-16 |
| CN113079019B (en) | 2024-04-30 |
| CN113079019A (en) | 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 | |
| CN101421792B (en) | Semiconductor device identifier generation method and semiconductor device | |
| Rosenblatt et al. | A self-authenticating chip architecture using an intrinsic fingerprint of embedded DRAM | |
| CN108958707A (en) | Circuit with PUF and random number generator and method of operating the same | |
| 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 | |
| TWI792739B (en) | Method for controlling device activation and associated electronic device | |
| 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 (en) | Undefined lifecycle state identifier for managing the security of integrated circuit devices | |
| US11329834B2 (en) | System and method for generating and authenticating a physically unclonable function | |
| US7339400B1 (en) | Interface port for electrically programmed fuses in a programmable logic device | |
| CN108958650A (en) | Electronic system and method of operating the same | |
| US12348626B2 (en) | Integrated circuit (IC) signatures with random number generator and one-time programmable device | |
| TWI781544B (en) | Integrated circuit device and method and system of generating a security key for an integrated circuit device | |
| CN111723409B (en) | Integrated circuit, memory circuit and method for operating an integrated circuit | |
| TWI716685B (en) | Electronic system and operation method thereof | |
| US11809566B2 (en) | Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same | |
| US20250392458A1 (en) | Integrated circuit (ic) signatures with random number generator and one-time programmable device | |
| US12135799B2 (en) | Hardware storage unique key | |
| CN120474689A (en) | OTP key storage method, system, medium and program product | |
| US20200401690A1 (en) | Techniques for authenticating and sanitizing semiconductor devices |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| GD4A | Issue of patent certificate for granted invention patent |