[go: up one dir, main page]

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 PDF

Info

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
Application number
TW110107560A
Other languages
Chinese (zh)
Other versions
TW202139041A (en
Inventor
呂士濂
李坤錫
王仕良
琮永 張
池育德
李承恩
Original Assignee
台灣積體電路製造股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/106,856 external-priority patent/US11528135B2/en
Application filed by 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW202139041A publication Critical patent/TW202139041A/en
Application granted granted Critical
Publication of TWI781544B publication Critical patent/TWI781544B/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3271Cryptographic 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/3278Cryptographic 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details 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

Systems and methods of generating a security key for an integrated circuit device include generating a plurality of key bits with a physically unclonable function (PUF) device. The PUF device can include a random number generator that can create random bits. The random bits may be stored in a nonvolatile memory. The number of random bits stored in the nonvolatile memory allows for a plurality of challenge and response interactions to obtain a plurality of security keys from the PUF device.

Description

積體電路裝置以及產生用於積體電路裝置的安全密鑰的方法及系統 Integrated circuit device and method and system for generating a security key for an integrated circuit device

本案是關於一種積體電路裝置,特別是關於一種包含物理不可複製函數產生器的積體電路裝置及產生用於積體電路裝置的安全密鑰的方法及系統。 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 input port 116 . In response to the challenge, the authentication circuit is configured to provide a response in the form of a security key, which is output by the physical non-clonable function circuit 100 via the output port 120 . As noted above, the physically non-clonable function 100 is constructed based on the occurrence of different physical process variations during the fabrication of integrated circuits. Such static physical variations allow the integrated circuit to have a unique fingerprint (or unique fingerprints) specific to the integrated circuit. When a specific challenge is received via the input port 116, a corresponding unique response is generated. An integrated circuit capable of generating multiple fingerprints is a strongly physically irreproducible function because multiple challenge and response pairs can be used.

使用某些物理不可複製函數產生技術,一些潛在的安全密鑰位元可能在一代物理不可複製函數與另一代之間有所不同。在本揭示內容中,此種密鑰位元稱為隨機位元。通常,隨機位元不適合用於密鑰產生,因為用具有隨機位元的密鑰加密的訊息可能無法可靠地解密。收集並識別出有用的位元,以為每一積體電路裝置產生唯一且可靠的密鑰。在本文揭示的一些實例中,維護經加擾隨機位元,而非保留用於產生安全密鑰的密鑰位元的記錄。在第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 non-volatile memory 110 . Generating the security key includes accessing the memory 110 and then outputting the response key.

物理不可複製函數裝置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 random number generator 104, for example, a memory array such as a static random access memory (SRAM) array, wherein the memory cells of the array generate secure The key bits of the key. The size of the SRAM array or the number of memory cells of the SRAM array used for key generation may be determined based on the size of the required security key.

提供處理記憶體110用於物理不可複製函數資料處理。在所說明的實例中,處理記憶體110為非揮發性記憶體(nonvolatile memory;NVM)。在一些實例中,處理記憶體110為一次性可編程(One-Time Programmable;OTP)記憶體或裝置。在下文中,處理記憶體110可以可互換地稱為非揮發性記憶體(nonvolatile memory;NVM)110或一次性可編程(One-Time Programmable;OTP)110,然而,應注意,處理記憶體110不限於非揮發性記憶體或一次性可編程記憶體或裝置。 The processing memory 110 is provided for physically non-copyable function data processing. In the illustrated example, processing memory 110 is nonvolatile memory (NVM). In some examples, the processing memory 110 is a one-time programmable (One-Time Programmable; OTP) memory or device. Hereinafter, the processing memory 110 may be interchangeably referred to as a non-volatile memory (nonvolatile memory; NVM) 110 or a one-time programmable (One-Time Programmable; OTP) 110, however, it should be noted that the processing memory 110 is not Limited to non-volatile memory or one-time programmable memory or devices.

以質詢的形式接收對安全密鑰的請求124。輸入位址區塊116處置此種請求或質詢,以在向處理記憶體110提出質詢之前確保質詢的正確性。基於有效請求,處理記憶體110擷取安全密鑰。在一些實例中,輸入位址區 塊116藉由對輸入位址進行加擾以使發送至處理記憶體110的對安全密鑰的請求隨機化來處理請求。 A request 124 for a security key is received in the form of a challenge. The input address block 116 handles such requests or queries to ensure the validity of the queries before presenting them to the processing memory 110 . Based on the valid request, the processing memory 110 retrieves the security key. In some instances, the input address field Block 116 processes the request by scrambling the input address to randomize the request for the security key sent to processing memory 110 .

在第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 controller 102 . In the example where non-volatile memory 110 is implemented via one-time programmable 110, controller 102 interfaces with one-time programmable 110 for read and write modes.

所說明的認證電路100進一步包括輸入位址區塊116,其提供在物理不可複製函數裝置100外部的介面。舉例而言,輸入位址區塊116起始對物理不可複製函數裝置100的存取,且跟蹤與一次性可編程110存取及資料收集有關的所有異動。 The illustrated authentication circuit 100 further includes an input address block 116 that provides an interface external to the physically non-clonable function device 100 . For example, the input address block 116 initiates access to the physical non-clonable functional device 100 and tracks all transactions related to one-time programmable 110 access and data collection.

物理不可複製函數裝置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) array 106 . These physically non-copyable functions utilize small memory cell changes to generate signatures. For example, an SRAM array can generate a signature from the start-up state of a cell that is random and unique among different SRAMs.

在一些組態中,亂數產生器104包括物理不可複製函數所基於的記憶體陣列。舉例而言,此種基於靜態隨 機存取記憶體的物理不可複製函數使用靜態隨機存取記憶體陣列106的記憶體初始資料內容(通電條件)來產生安全密鑰。所產生密鑰的自一個通電循環至下一通電循環不會改變狀態的位元稱為穩定位元。然而,嘗試識別並記錄待用於密鑰產生的每一穩定位元將需要大量時間,且記錄穩定位元可能會使密鑰產生暴露於旁側攻擊。另外,由於可能影響記憶體的穩定位元的環境影響、雜訊及老化,將需要大量額外位元來校正錯誤。 In some configurations, the random number generator 104 includes a memory array upon which the physically non-copyable functions are based. For example, this static random The physical non-clonable function of the machine access memory uses the memory initial data content (power-on condition) of the SRAM array 106 to generate the security key. Bits of the generated key that do not change state from one power cycle to the next are called stable bits. However, attempting to identify and record each stable bit to be used in key generation would require a significant amount of time, and recording the stable bits may expose the key generation to side attacks. Additionally, due to environmental influences, noise, and aging that may affect the memory's stable bits, a large number of additional bits will be required to correct errors.

如上所述,一些實例經由靜態隨機存取記憶體實施物理不可複製函數產生器。舉例而言,可藉由使用靜態隨機存取記憶體裝置的通電狀態來產生物理不可複製函數簽章。即使靜態隨機存取記憶體裝置包括對稱單元(位元),製造差異仍可能導致靜態隨機存取記憶體裝置的每一位元在靜態隨機存取記憶體裝置通電時趨於處於高狀態(即,邏輯「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 random number generator 104, the bits or signatures of the SRAM 106 can be scrambled. Scrambling the SRAM bits further randomizes the already randomized bits from the SRAM 106 and prevents security from being compromised by reading the SRAM 106, which This is because the bits stored in the one-time programmable memory 110 are different from the bits read from the SRAM 106 . The scrambler 108 may be a bit folding circuit. In other configurations, the scrambler 108 may be a linear feedback shift register (LFSR), optionally paired with one or more XOR gates. Regardless of the type of scrambler, the read SRAM bits can be scrambled or changed to a new configuration, which makes the physically non-clonable function 100 difficult to corrupt because the SRAM Even if the bank is read, it is not the same as the bit stored in the one-time programmable 110.

物理不可複製函數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-test 112 may determine the functionality or proper operation of one-time programmable 110 and/or random number generator 104 . Built-in self-test 112 can send and receive signals from one-time programmable 110 and random number generator 104 to determine that both components 110, 104 are functioning and are functioning properly. This operational information can be communicated back to the controller 102 .

驗證組件114可驗證儲存在一次性可編程110內及/或來自亂數產生器104的資訊或資料。舉例而言,亂數產生器104可儲存一次性可編程110內的位元,且驗證組 件114接著可自一次性可編程110讀取位元,並將其與亂數產生器104的暫存器中的資訊進行比較,以判定此等位元是否已恰當寫入至一次性可編程110。接著,可將由此驗證產生的任何類型的資訊發送至控制器102,以進行進一步的操作。在其他情況下,一次性可編程110亦可驗證正在讀取且發送至輸出暫存器118的資訊。以此方式,控制器102可判定至輸出暫存器118的輸出是否已經發送及/或是否正確。 The verification component 114 may verify information or data stored in the one-time programmable device 110 and/or from the random number generator 104 . For example, the random number generator 104 can store the bits in the one-time programmable 110, and verify the group Component 114 can then read the bits from one-time programmable 110 and compare them with the information in the scratchpad of random number generator 104 to determine whether the bits have been properly written to the one-time programmable 110. Any type of information resulting from this verification can then be sent to the controller 102 for further operations. In other cases, the one-time programmable 110 may also verify the information being read and sent to the output register 118 . In this way, the controller 102 can determine whether the output to the output register 118 has been sent and/or is correct.

輸出暫存器118可儲存來自一次性可編程110的位元以自物理不可複製函數100輸出。輸出暫存器118可由控制器102組態以改變密鑰的大小或將自物理不可複製函數100發送的回應位元的量。在至少一些組態中,輸出埠120可以並行或串行格式輸出設定數目的位元,例如16個位元。輸出暫存器118可儲存可大於輸出120的16個位元的不同大小的密鑰。因此,輸出暫存器118可用以儲存將自輸出120發送出的整個輸出密鑰作為一或多個信號128。當輸出埠120在一或多個連續讀取中自輸出暫存器118獲得所有密鑰位元且將整個密鑰作為信號128發送出去之後,輸出埠120可在若干信號128中發送密鑰位元,例如一次發送16個位元。 The output register 118 may store bits from the one-time programmable 110 for output from the physically non-clonable function 100 . The output register 118 can be configured by the controller 102 to change the size of the key or the amount of response bits that will be sent from the physically non-clonable function 100 . In at least some configurations, the output port 120 can output a set number of bits, such as 16 bits, in parallel or serial format. The output register 118 can store keys of different sizes that can be larger than the 16 bits of the output 120 . Therefore, the output register 118 can be used to store the entire output key to be sent from the output 120 as one or more signals 128 . After the output port 120 obtains all key bits from the output register 118 in one or more consecutive reads and sends the entire key as a signal 128, the output port 120 may send the key bits in a number of signals 128 Bits, for example, 16 bits are sent at a time.

輸出埠120可為並行或串行埠,其將信號128發送至與物理不可複製函數100進行通信的積體電路上或外部的另一裝置或功能。輸出埠120可具有輸出埠120可在任何一個信號128中發送的設定數目個位元,例如16個 位元。輸出埠120可發送連續或重複的輸出,直至提供整個密鑰作為輸出信號128。 The output port 120 may be a parallel or serial port that sends a signal 128 to another device or function on the integrated circuit or external to the physically non-clonable function 100 . The output port 120 can have a set number of bits that the output port 120 can send in any one signal 128, for example 16 bits. Output port 120 may send continuous or repeated output until the entire key is provided as output signal 128 .

物理不可複製函數100亦可包括輸入位址區塊116。輸入位址區塊116可接受輸入質詢信號124,其可包括位址。該位址可由輸入位址區塊116發送至一次性可編程110,以擷取具有該位址的密鑰。可如本文中所描述將密鑰作為對質詢信號的回應而輸出。在至少一些組態中,輸入位址區塊116亦可對位址124進行加擾。以此方式,輸出密鑰自該位址隨機化,且防止藉由重複的質詢及回應來判定密鑰。輸入位址區塊116中的加擾器可為線性反饋移位暫存器或其他電路。 The physically non-clonable function 100 may also include an input address block 116 . The input address block 116 accepts an input challenge signal 124, which may include an address. The address can be sent by the input address block 116 to the one-time programmable 110 to retrieve a key with that address. The key may be output as a response to the challenge signal as described herein. In at least some configurations, the input address block 116 may also scramble the addresses 124 . In this way, the output key is randomized from this address and the key is prevented from being determined by repeated challenges and responses. The scrambler in the input address block 116 can be a linear feedback shift register or other circuits.

控制器102的一組功能或組件可如第2圖所示。功能組件202至216可表示由控制器102執行或產生的不同類型的功能或過程。此等不同功能可體現為自記憶體加載至控制器102中的韌體,或可為永久地體現在控制器102的積體電路內的閘或其他硬體。無論如何,此等不同的功能有助於產生物理不可複製函數100的輸出,且控制可自物理不可複製函數100獲得的不同功能。 A set of functions or components of the controller 102 may be as shown in FIG. 2 . Functional components 202 through 216 may represent different types of functions or processes performed or generated by controller 102 . These various functions may be embodied as firmware loaded into the controller 102 from memory, or may be permanently embodied as gates or other hardware in the integrated circuit of the controller 102 . Regardless, these different functions contribute to generating the output of the physically non-clonable function 100 and control the different functions available from the physically non-clonable function 100 .

亂數產生器及/或亂數產生器介面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 random number generator 104 . Thus, the controller 102 can read from or write to the SRAM 106 in at least some configurations. In addition, the controller 102 can enable the SRAM 106 or the random number generator 104 . Controller 102 may also interface with scrambler 108 . Thus, the controller 102 can enable the scrambler 108, affect the way the scrambler functions, self-scrambler 108 to read information, or use the scrambler 108 to perform other operations.

控制器102亦可包括非揮發性記憶體介面204。非揮發性記憶體介面204可與非揮發性記憶體110相互作用。因此,控制器102可讀取或寫入資訊至非揮發性記憶體110。在一些組態中,控制器102可能僅能夠讀取非揮發性記憶體110的某些部分。舉例而言,控制器102可判定是否已經用亂數對一次性可編程110進行編程。此外,控制器102可啟動一次性可編程110或進行其他操作,包括例如使一次性可編程110向輸出暫存器118發送密鑰。 The controller 102 may also include a non-volatile memory interface 204 . The non-volatile memory interface 204 can interact with the non-volatile memory 110 . Therefore, the controller 102 can read or write information to the non-volatile memory 110 . In some configurations, the controller 102 may only be able to read certain portions of the non-volatile memory 110 . For example, controller 102 may determine whether one-time programmable 110 has been programmed with a random number. Additionally, the controller 102 may enable the one-time programmable 110 or perform other operations including, for example, causing the one-time programmable 110 to send a key to the output register 118 .

非揮發性記憶體的初始寫入功能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 non-volatile memory 110 . This initial write function 206 of the non-volatile memory enables the SRAM 106 to provide data to the scrambler 108 , which can then be read or written to the one-time programmable 110 . Therefore, the non-volatile memory initial write function 206 controls the process of storing nonces into the non-volatile memory 110 .

非揮發性記憶體的驗證功能208可經由驗證區塊114來驗證寫入至一次性可編程110的資訊與加擾器108的暫存器中提供的資訊相同。因此,控制器102可與驗證區塊114、亂數產生器104及一次性可編程110相互作用,以判定是否自亂數產生器104將正確的資料寫入至一次性可編程110。 The verification function 208 of the non-volatile memory can verify through the verification block 114 that the information written to the one-time programmable 110 is the same as the information provided in the register of the scrambler 108 . Therefore, the controller 102 can interact with the verification block 114 , the random number generator 104 and the one-time programmable programming 110 to determine whether correct data is written from the random number generator 104 to the one-time programmable programming 110 .

在一些組態中,控制器102可用作加擾器,以使用可選的亂數產生器位元的加擾器功能210來對來自靜態隨機存取記憶體106的位元進行加擾。以此方式,控制器 102用作加擾器108。因此,控制器102可包括位元折疊電路功能、線性反饋移位暫存器電路/功能或其他類型的加擾技術。控制器102可為一次性可編程110提供必要的位元加擾。 In some configurations, the controller 102 can be used as a scrambler to scramble bits from the SRAM 106 using the optional random number generator bit scrambler function 210 . In this way, the controller 102 acts as a scrambler 108 . Accordingly, the controller 102 may include bit folding circuit functionality, linear feedback shift register circuitry/function, or other types of scrambling techniques. The controller 102 can provide the necessary bit scrambling for the one-time programmable 110 .

在非揮發性記憶體110儲存自加擾器108加擾的亂數之後,非揮發性記憶體的關閉功能212可停止對非揮發性記憶體110的寫入。因此,控制器102亦可使一次性可編程裝置110設定一或多個位元,其指示一次性可編程110已被寫入且密鑰已被儲存。此外,當啟動物理不可複製函數100時,控制器102可自一次性可編程110讀取此等設定的位元,且接著基於一次性可編程110被編程的狀態,可將例如1及/或0的位元寫入至靜態隨機存取記憶體106以防止讀取靜態隨機存取記憶體的啟動狀態。 After the non-volatile memory 110 stores the random number scrambled from the scrambler 108 , the shutdown function 212 of the non-volatile memory can stop writing to the non-volatile memory 110 . Therefore, the controller 102 can also cause the one-time programmable device 110 to set one or more bits indicating that the one-time programmable device 110 has been written and the key has been stored. Furthermore, when the physically non-clonable function 100 is enabled, the controller 102 can read the set bits from the one-time programmable 110, and then based on the state in which the one-time programmable 110 is programmed, can set, for example, 1 and/or Bits of 0 are written to the SRAM 106 to prevent reading the boot state of the SRAM.

密鑰大小判定器214可為可接收信號122的介面,該信號指示期望作為輸出的密鑰大小。密鑰大小判定器214接著可與輸出暫存器118相互作用以設定用於儲存及接收與具有所設定的密鑰大小的密鑰相關聯的位元的暫存器的大小。此後,控制器102可控制輸出暫存器118以將密鑰發送至輸出埠120。 Key size determiner 214 may be an interface that may receive signal 122 indicating the key size desired as output. The key size determiner 214 may then interact with the output register 118 to set the size of the register for storing and receiving bits associated with a key having the set key size. Thereafter, the controller 102 can control the output register 118 to send the key to the output port 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/output interface 216 can interact with circuits, devices, functions, etc. outside the physically non-clonable function 100 . The input signal 122 can be sent to the input/output interface 216 of the controller 102 to perform certain functions. In addition, the I/O interface 216 may also send the signal 126 or other signals sent from the physically non-clonable function 100 . The input/output interface 216 can be Interacts with output register 118 and/or output port 120 to send output signals 126 , 128 . The output signals 126 , 128 may include indications that the output 128 is ready in the output register 118 and/or the output port 120 . When a challenge (possibly with an address) is received to request a security key, the input/output interface 216 may also interact with the input address block 116, which may receive the address and The address is scrambled to receive an indication at the controller that the address has been received. The input address block 116 may provide an address to the non-volatile memory 110 to have a key read, which is placed in the output register 118 . Therefore, external communication can be controlled by the input/output interface 216 of the controller 102 .

可表示作為密鑰儲存在一次性可編程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 controller 102 or other components within physically non-clonable function 100 . For example, reserved bits 302 may have one or more bits set to indicate that one-time programmable 110 has been programmed with the key stored as nonce 306 .

位址304為指示部分306中的一組亂數或與其相關聯的一組識別符(identifier;ID)或資料。位址304可由輸入位址區塊116指定或瞄準。與位址304相關聯的亂數306可藉由使用位址304自資料結構300請求密鑰 來提取位址304。 The address 304 is a set of random numbers in the indication part 306 or a set of identifiers (identifier; ID) or data associated therewith. Address 304 may be specified or targeted by input address block 116 . The nonce 306 associated with the address 304 can request a key from the data structure 300 by using the address 304 to extract address 304.

亂數306為儲存在一次性可編程110內的來自靜態隨機存取記憶體106的經加擾位元的集合。此等亂數306為可自質詢/回應或在質詢/回應期間進行存取或擷取的密鑰。可將諸如部分308的部分中的亂數306輸入至資料結構300中。在其他組態中,部分308表示等於密鑰的一組隨機位元。此等部分308可包括發送至輸出暫存器118且接著發送至輸出埠120的輸出位元。由此,在可存取的亂數內可能存在若干密鑰308。可封包至安全密鑰中的此大量隨機位元允許使用一次性可編程110提供許多不同的安全密鑰的靈活性。 The nonce 306 is a collection of scrambled bits from the SRAM 106 stored in the one-time programmable 110 . These nonces 306 are keys that can be accessed or extracted from or during a challenge/response. Random numbers 306 in sections such as section 308 may be entered into data structure 300 . In other configurations, portion 308 represents a random set of bits equal to the key. These portions 308 may include output bits that are sent to the output register 118 and then to the output port 120 . Thus, there may be several keys 308 within the nonce accessible. This large number of random bits that can be packed into a security key allows the flexibility of using one-time programmable 110 to provide many different security keys.

可在物理不可複製函數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 controller 102 can receive the reset signal 402 into the input/output interface 216 . The reset signal 402 may be an external signal for resetting the physically non-clonable function 100 . In response to the reset signal 402 , the controller 102 may send a reset or enable signal 404 to the random number generator 104 , eg, to the SRAM 106 , and/or send a signal 406 to the one-time programmable 110 .

此外,控制器102可將測試信號408發送至內置自測112。內置自測112可在信號410a及410b中請求亂數產生器104及/或一次性可編程110的狀態。亂數產生器104可在信號412中以該狀態進行回應,而非揮發性記憶體110可在信號414中以該狀態進行回應。可在信號416中將此狀態資訊自內置自測112發送回至控制器102。 控制器102接著可知曉物理不可複製函數100內的不同組件的狀態,且若需要,則在外部報告該狀態。因此,此等信號402至416表示用於重設及/或自測以判定物理不可複製函數100的內部電路正常起作用的信令。 Additionally, the controller 102 may send a test signal 408 to the BIST 112 . Built-in self-test 112 may request the status of random number generator 104 and/or one-time programmable 110 in signals 410a and 410b. Random number generator 104 may respond with this state in signal 412 , and non-volatile memory 110 may respond with this state in signal 414 . This status information may be sent from BIST 112 back to controller 102 in signal 416 . The controller 102 can then be aware of the status of the different components within the physically non-clonable function 100 and, if desired, report the status externally. Accordingly, these signals 402 to 416 represent signaling for resetting and/or self-testing to determine that the internal circuitry of the physically irreproducible function 100 is functioning properly.

接著,控制器102可接收狀態檢查信號418。回應於信號418,控制器102可利用信號420向非揮發性記憶體110查詢一次性可編程110的狀態。信號420可表示控制器102正自資料結構300讀取保留位元302。保留位元302可指示是否已經對一次性可編程110進行編程。此資訊可發送回至控制器102或由控制器102讀取。控制器102接著可接收信號422並在信號424中輸出狀態。狀態424可指示一次性可編程110是否已經被編程。 Next, the controller 102 may receive a status check signal 418 . In response to the signal 418 , the controller 102 can use the signal 420 to query the status of the one-time programmable memory 110 from the non-volatile memory 110 . The signal 420 may indicate that the controller 102 is reading the reserved bits 302 from the data structure 300 . Reserved bit 302 may indicate whether one time programmable 110 has already been programmed. This information can be sent back to the controller 102 or read by the controller 102 . Controller 102 may then receive signal 422 and output the status in signal 424 . Status 424 may indicate whether one-time programmable 110 has been programmed.

若尚未對一次性可編程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 controller 102 can then be used to store information into the one-time programmable 110 . During this sequence of signals, the controller 102 may send a signal 426 to the random number generator 104 to begin generating the scrambled numbers to be stored in the one-time programmable 110 . Random number generator 104 may then provide these scrambled numbers to one-time programmable 110 in signal 428 . Bits can be read into one-time programmable 110 one bit at a time, although SRAM 106 can be read in 16-bit blocks or other sized blocks. The random bits can be stored in the non-volatile memory 110 .

在將一組位元讀入一次性可編程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 random number generator 104 may each send the stored bits to verification block 114 as signals 430a and 430b. Verify block 114 It can be determined whether the bits stored in the one-time programmable 110 are the same as the bits output from the random number generator 104 . If the bits pass verification, the verification block 114 may send a signal 432 back to the controller 102 indicating the verification. If the verification block 114 indicates that the bits are different, the controller 102 may receive a signal 432 indicating a write failure. Then, the controller 102 can cause the SRAM 106 to resend the scrambled bits to the one-time programmable 110 . If the verification fails twice, the controller 102 may output an error as the signal 122 . However, if the verification is correct, the controller 102 may indicate that the process of storing random bits to the one-time programmable 110 will continue, as represented by arc 434 .

在一些實例中,控制器102可繼續由弧434表示的過程。在所有可能的隨機位元儲存在一次性可編程110中之後,控制器102可發送信號436以預燒一次性可編程110且防止一次性可編程110接收更多位元。因此,此時一次性可編程110可能無法再儲存更多的位元,但可用於質詢及回應過程以產生或提供密鑰。 In some examples, controller 102 may continue the process represented by arc 434 . After all possible random bits are stored in the one-time programmable 110, the controller 102 may send a signal 436 to burn-in the one-time programmable 110 and prevent the one-time programmable 110 from receiving more bits. Therefore, the one-time programmable 110 may not be able to store any more bits at this time, but can be used in the challenge and response process to generate or provide a key.

控制器102亦可接收第4B圖所示的密鑰大小信號438。密鑰大小信號438可指示待由物理不可複製函數100輸出的密鑰的大小。回應於信號438,控制器102接著可將信號440發送至輸出暫存器118以根據信號438中的資訊來設定密鑰大小。因此,輸出暫存器118可為被請求作為輸出的密鑰的所有位元提供可用的儲存容量。 The controller 102 may also receive the key size signal 438 shown in FIG. 4B. The key size signal 438 may indicate the size of the key to be output by the physically unclonable function 100 . In response to signal 438 , controller 102 may then send signal 440 to output register 118 to set the key size based on the information in signal 438 . Therefore, the output register 118 may provide available storage capacity for all bits of the key requested as output.

控制器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 controller 102 may then receive a challenge signal 442 to request a key. This signal 442 can trigger the controller 102 to send a signal 444 to the one-time Programmable 110 is ready to receive address input as a challenge. The controller 102 can also interface with the input address block 116 to determine when an input address is received and to control the output of the address to the one-time programmable 110 . An input address may be received at input address block 116 in signal 446 . The input address may then be scrambled, and the scrambled address may be sent as signal 448 to one-time programmable 110 . The one-time programmable 110 can access the address in the address data 304 and read out the random number 306 associated with the received address. The associated nonce 306 represents the key, which may then be sent as a signal 450 to the output register 118 and/or the verification block 114 (not shown). Output register 118 may then provide the key in signal 452 to output port 120 in smaller portions. The controller 102 can also send a signal 454 to indicate that the output register 118 and/or the output port 120 are ready for output. The output key may be sent from the output port 120 in a continuous signal 456 after receiving an indication that the output is acceptable.

第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 exemplary method 500 for generating random numbers and storing them in one-time programmable 110 in accordance with aspects of the present disclosure. The general sequence of operations of method 500 is illustrated in FIG. 5 . Method 500 may include more or fewer operations or steps, or the order of operations or steps may be configured differently than in FIG. 5 . The method 500 may be performed as a set of computer-executable instructions executable by a processor of the controller 102 such as the physically non-clonable function 100 and encoded or stored on a computer-readable medium. In addition, the method 500 can be implemented with a processor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (Field Programmable Gate Array; FPGA), system on chip (System on Chip; SOC), another integrated circuit or other hardware devices (eg, controller 102 ) associated gates or circuits are implemented. Hereinafter, the method 500 will be explained with reference to the systems, components, devices, modules, circuits, firmware, software, signals, data structures, methods, etc. described in conjunction with FIGS. 1-4B and 6-8. however, those skilled in the art will understand that some or all of the operations of method 500 may be performed by or using elements different from those described below.

在操作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 controller 102 may be reset. The input/output interface 216 of the controller 102 can receive the reset signal 402 as part of the signal 122 . The reset signal 402 instructs the controller 102 to reset or initiate the physically non-clonable function 100 . Next, the random number generator interface 202 can send a reset or enable signal 404 to the SRAM 106 . The NVM interface 204 can send a reset or enable signal 406 to the one-time programmable 110 . The controller 102 may also send a test signal 408 to the BIST 112 to test the functionality of other components.

接著,在操作512中,內置自測112可對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應返回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。 Next, in operation 512 , the built-in self-test 112 may perform a self-test on the random number generator 104 and/or the one-time programmable 110 . The non-volatile memory 110 and random number generator 104 can return a response to the built-in self-test 112, which can indicate whether those components 104, 110 are functioning and functioning properly. This self-test information can then be sent back to the controller 102 .

在操作516中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢 查。狀態檢查可由控制器102的輸入/輸出介面216所接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。 In operation 516 , the controller 102 may then receive an optional status check signal 418 and then perform a status check on the one-time programmable 110 . check. The status check may be initiated by an input signal 418 received by the I/O interface 216 of the controller 102 . In other cases, the controller 102 may check the status without an input signal. The non-volatile memory interface 204 of the controller 102 can send a signal 420 to the one-time programmable device 110 to determine the status of the one-time programmable device 110 . The signal 420 reads the reserved bit 302 in the one-time programmable 110 to determine whether the reserved bit indicates that the one-time programmable 110 has been written into a random bit and locked.

保留位元可具有一個位元來指示一次性可編程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 controller 102 can determine the state of the one-time programmable 110 based on the reserved bits. This status can be sent out by the I/O interface 216 as an output signal 424 .

在操作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 controller 102 may then power up the SRAM 106 of the random number generator 104 . Specifically, the NVM initial write function 206 enables or initializes the SRAM 106 . The initialization may provide a random first set of bits in the SRAM 106 based on the uniqueness of the SRAM 106 . In operation 524, the unique random bits may be read from the SRAM 106 by the initial write function 206 to the non-volatile memory. Next, in operation 528, the read bits may be sent to the scrambler 108, where In the scrambler, the random bits from the SRAM 106 are scrambled. The bits may be scrambled by a bit folding circuit or a linear feedback shift register such that the location in the scrambler 108 is different from the location read from the SRAM 106 . Next, in operation 532 , the scrambled bits may be stored in a register or memory of the scrambler 108 to be stored in the one-time programmable 110 .

在操作536中,亂數產生器104可自具有經加擾位元的暫存器將經加擾位元寫入至一次性可編程110。在一些組態中,一次性可編程110在每一時脈循環僅可接收一個位元。以此方式,若加擾器108中的位元暫存器具有一個以上的位元,則亂數產生器104可在每一時脈循環內一次自亂數產生器104向一次性可編程110發送一個位元。該些位元被寫入至一次性可編程110中,直至已寫入位元區塊為止。此時,可將位元區塊自一次性可編程110讀出至驗證區塊114。 In operation 536 , the random number generator 104 may write the scrambled bits to the one-time programmable 110 from the scratchpad having the scrambled bits. In some configurations, the one-time programmable 110 can receive only one bit per clock cycle. In this way, if the bit register in the scrambler 108 has more than one bit, the random number generator 104 can send from the random number generator 104 to the one-time programmable 110 once per clock cycle. one bit. The bits are written into the one-time programmable 110 until the bit-block has been written. At this point, the bit-block can be read from the one-time programmable 110 to the verification block 114 .

在操作540中,驗證區塊114可將自一次性可編程110發送的位元區塊與來自加擾器108的暫存器的位元進行比較。驗證區塊114判定兩個位元區塊是否相同。若區塊不相同,則可將訊息432發送至控制器102的非揮發性記憶體的驗證功能208,控制器接著可重新啟動該過程以將位元區塊再次寫入至一次性可編程110。若區塊相同,則可將指示肯定比較的信號432發送至控制器102的非揮發性記憶體的驗證功能208,且流程繼續。 In operation 540 , the verification block 114 may compare the block of bits sent from the one-time programmable 110 with the bits from the scratchpad of the scrambler 108 . The verification block 114 determines whether two bit-blocks are the same. If the blocks are not the same, a message 432 can be sent to the verify function 208 of the non-volatile memory of the controller 102, and the controller can then restart the process to write the block of bits to the one-time programmable 110 again . If the blocks are the same, a signal 432 indicating a positive comparison may be sent to the verify function 208 of the non-volatile memory of the controller 102, and the process continues.

此時,在操作544中,控制器102可判定是否有 更多隨機位元待儲存至一次性可編程110中。若一次性可編程110未滿且存在更多位元待儲存,則方法500可伴隨「是」進行至操作524以儲存下一位元區塊。然而,若一次性可編程110具有儲存在一次性可編程裝置110內的完整的隨機位元集合,則方法500可伴隨「否」進行至操作548,其中控制器102可在操作548中鎖定一次性可編程110。 At this time, in operation 544, the controller 102 may determine whether there is More random bits are to be stored in the one-time programmable 110 . If the one-time programmable 110 is not full and there are more bits to store, method 500 may proceed with YES to operation 524 to store the next block of bits. However, if the one-time programmable device 110 has a complete set of random bits stored in the one-time programmable device 110, then the method 500 may proceed to operation 548 with a "NO", wherein the controller 102 may lock once in operation 548 programmable 110.

在操作548中,控制器102的非揮發性記憶體的關閉功能212可藉由設定一次性可編程裝置110內的保留位元302來鎖定一次性可編程110。因此,控制器102的非揮發性記憶體的關閉功能212可防止在一次性可編程110內進行任何進一步的資料儲存。此時,儲存在一次性可編程110中的亂數作為一組可能的密鑰308儲存在欄位306內。每一隨機位元306可與位址304相關聯。為了獲得密鑰,一次性可編程110可接受與欄位304中的位址匹配的位址。若位址訊息匹配,則一次性可編程110可讀出與接收到的位址相關聯的隨機位元,且將該組資料作為密鑰發送至輸出暫存器118。 In operation 548 , the non-volatile memory disable function 212 of the controller 102 may lock the one-time programmable device 110 by setting the reserved bit 302 in the one-time programmable device 110 . Thus, the shutdown function 212 of the non-volatile memory of the controller 102 prevents any further data storage within the one-time programmable memory 110 . At this point, the nonce stored in the one-time programmable 110 is stored in the field 306 as a set of possible keys 308 . Each random bit 306 may be associated with an address 304 . To obtain the key, one-time programmable 110 accepts an address that matches the address in field 304 . If the address information matches, the one-time programmable 110 can read the random bits associated with the received address and send the set of data as a key to the output register 118 .

第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 exemplary method 600 for generating a security key in accordance with aspects of the present disclosure. A sequence of operations of method 600 is illustrated in FIG. 6 . Method 600 may include more or fewer operations or steps, or the order of operations or steps may be configured differently than shown in FIG. 6 . Method 600 may be executed by a processor such as controller 102 of physically non-clonable function 100 and A set of computer-executable instructions encoded or stored on a computer-readable medium for execution. Additionally, method 600 may be performed by gates or circuitry associated with a processor, application specific integrated circuit, field programmable gate array, system-on-chip, integrated circuit, or other hardware device (eg, controller 102 ). Hereinafter, the method 600 will be explained with reference to the systems, components, devices, modules, circuits, firmware, software, signals, data structures, methods, etc. described in conjunction with FIGS. 1-5 and 7-8. however, those skilled in the art will appreciate that some or all of the operations of method 600 may be performed by or using elements different from those described below.

在操作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 address block 116 . This input address 446 may be accompanied by a challenge signal 442 or other signal that may be sent to the controller 102 as part of the signal 122 . The address signal 442 may be received by the controller 102 and then when the address signal 448 is provided, another signal 444 may be sent to the one-time programmable 110 to initiate the response with the key by the one-time programmable 110 .

視情況,在操作612中,輸入位址區塊116可對輸入位址446進行加擾。輸入位址區塊116亦可包括線性反饋移位暫存器或其他類型的加擾器。輸入位址區塊116可對輸入位址446進行加擾以使所提供的安全密鑰更加隨機。在操作616中,可接著將經加擾位址作為信號448發送至一次性可編程110以存取一次性可編程110。因此,輸入位址區塊116將經加擾位址提供至一次性可編程110以擷取所需安全密鑰。 Optionally, in operation 612 the input address block 116 may scramble the input address 446 . The input address block 116 may also include a linear feedback shift register or other types of scramblers. The input address block 116 may scramble the input address 446 to make the provided security key more random. In operation 616 , the scrambled address may then be sent as signal 448 to the one-time programmable 110 to access the one-time programmable 110 . Thus, the input address block 116 provides the scrambled address to the one-time programmable 110 to retrieve the desired security key.

在操作620中,控制器102的密鑰大小判定器214可接收密鑰大小指示符信號438。控制器102可使用此密鑰大小指示符訊息438來藉由將信號440發送至輸出暫存器118來設定輸出暫存器118中的輸出密鑰大小。此密鑰大小資訊亦可儲存在控制器102中。此後,在操作620中,當獲取密鑰時,控制器102可判定密鑰大小。控制器102可存取關於密鑰大小的所儲存資訊,且將該資訊提供至一次性可編程110及/或輸出暫存器118。 In operation 620 , the key size determiner 214 of the controller 102 may receive the key size indicator signal 438 . Controller 102 may use this key size indicator message 438 to set the output key size in output register 118 by sending signal 440 to output register 118 . This key size information may also be stored in the controller 102 . Thereafter, in operation 620, when acquiring the key, the controller 102 may determine the key size. Controller 102 may access stored information regarding key sizes and provide this information to one-time programmable 110 and/or output register 118 .

接著,在操作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 random bit 306 associated with the received address 444 within the data structure 300 . Therefore, one-time programmable 110 can scan address 304 that is the same as or matches address 444 . When a match is found, the one-time programmable 110 may retrieve a nonce 306 associated with this address 304 ; the one-time programmable 110 may retrieve a number of bits associated with the key size 308 set by the controller 102 .

在操作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 output register 118 can accept the full key size. The output register 118 may then output the bits stored in the output register 118 as a signal 452 to the output port 120 to be sent out as a signal 456 (which may be part of the signal 128 ). In some cases, output port 120 may accept a smaller portion of the data stored in key 308 in output register 118 . Thus, the output register 118 can repeatedly send data to the output port 120 . In operation 632, the output register 118 can read a portion of the keys in the register, and pass through the output port 120 This is sent out until the entire key is sent as signal 456 . In at least some cases, the I/O interface 216 of the controller 102 may send an output ready signal 126 when the key is ready to be sent.

第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 exemplary method 700 for generating random numbers for storage in one-time programmable 110 in accordance with aspects of the present disclosure. The general sequence of operations of method 700 is illustrated in FIG. 7 . Method 700 may include more or fewer operations or steps, or the order of operations or steps may be configured differently than shown in FIG. 7 . Method 700 may be performed as a set of computer-executable instructions executable by a processor of controller 102 such as physically non-clonable function 100 and encoded or stored on a computer-readable medium. Additionally, method 700 may be performed by gates or circuitry associated with a processor, application specific integrated circuit, field programmable gate array, system-on-chip, integrated circuit, or other hardware device (eg, controller 102 ). Hereinafter, method 700 will be explained with reference to the systems, components, devices, modules, circuits, firmware, software, signals, data structures, methods, etc. described in connection with FIGS. Those skilled in the art will appreciate that some or all of the operations of method 700 may be performed by or using elements other than those described below.

在操作708中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。亂數產生器介面202接著可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟 動信號406發送至一次性可編程110。控制器102亦可將測試信號408發送至內置自測112以測試其他組件的功能。 In operation 708, registers, devices, components, and controller 102 may be reset. The input/output interface 216 of the controller 102 may receive the reset signal 402 as part of the signal 122 . The reset signal 402 instructs the controller 102 to reset or initiate the physically non-clonable function 100 . The random number generator interface 202 can then send a reset or enable signal 404 to the SRAM 106 . The non-volatile memory interface 204 can reset or enable The activation signal 406 is sent to the one-time programmable 110. The controller 102 can also send a test signal 408 to the BIST 112 to test the functionality of other components.

在操作712中,內置自測112可接著對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應返回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。 In operation 712 , the built-in self-test 112 may then perform a self-test on the random number generator 104 and/or the one-time programmable 110 . The non-volatile memory 110 and random number generator 104 can return a response to the built-in self-test 112, which can indicate whether those components 104, 110 are functioning and functioning properly. This self-test information can then be sent back to the controller 102 .

在操作716中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢查。狀態檢查可由控制器102的輸入/輸出介面216接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。 In operation 716 , the controller 102 may then receive an optional status check signal 418 and then perform a status check on the one-time programmable 110 . A status check may be initiated by an input signal 418 received by the I/O interface 216 of the controller 102 . In other cases, the controller 102 may check the status without an input signal. The non-volatile memory interface 204 of the controller 102 can send a signal 420 to the one-time programmable device 110 to determine the status of the one-time programmable device 110 . The signal 420 reads the reserved bit 302 in the one-time programmable 110 to determine whether the reserved bit indicates that the one-time programmable 110 has been written into a random bit and locked.

保留位元可具有一個位元來指示一次性可編程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 controller 102 can determine the state of the one-time programmable 110 based on the reserved bits. This state can be made by the input/output interface 216 is sent out as output signal 424 .

在操作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 controller 102 may then power up the SRAM 106 of the random number generator 104 . Specifically, the NVM initial write function 206 enables or initializes the SRAM 106 . The initialization may provide a random first set of bits in the SRAM 106 based on the uniqueness of the SRAM 106 . In operation 724, the unique random bits may be read from the SRAM 106 by the initial write function 206 to the non-volatile memory. Next, in operation 728 , the read bits may be sent to the scrambler 108 where random bits from the SRAM 106 are scrambled. A bit folding circuit or a linear feedback shift register can scramble the bits so that the bits in the scrambler 108 are different from the bits read from the SRAM 106 . Next, in operation 732 , the scrambled bits may be stored in a register or memory of the scrambler 108 to be stored in the one-time programmable 110 .

在操作736中,亂數產生器104可自具有經加擾位元的暫存器將經加擾位元寫入至一次性可編程110。在一些組態中,一次性可編程110在每一時脈循環僅可接收一個位元。由此,若加擾器108中的位暫存器具有一個以上的位元,則亂數產生器104可在每一時脈循環內一次自亂數產生器104向一次性可編程110發送一個位元。該些位元被寫入至一次性可編程110,直至已寫入位元區塊為止。此時,可將位元區塊自一次性可編程110讀出至驗證 區塊114。 In operation 736 , the random number generator 104 may write the scrambled bits to the one-time programmable 110 from the scratchpad having the scrambled bits. In some configurations, the one-time programmable 110 can receive only one bit per clock cycle. Thus, if the bit register in the scrambler 108 has more than one bit, the random number generator 104 can send one bit from the random number generator 104 to the one-time programmable 110 once per clock cycle. Yuan. The bits are written to the one-time programmable 110 until the bit-block has been written. At this point, the bit-block can be read from the one-time programmable 110 to verify Block 114.

在操作740中,驗證區塊114可將自一次性可編程110發送的位元區塊與來自加擾器108的暫存器的位元進行比較。驗證區塊114判定兩個位元區塊是否相同。若區塊不相同,則可將訊息432發送至控制器102的非揮發性記憶體的驗證功能208,控制器接著可重新啟動該過程以將位元區塊再次寫入至一次性可編程110。若區塊相同,則將指示肯定比較的信號432發送至控制器102的非揮發性記憶體的驗證功能208,且處理繼續。 In operation 740 , the verification block 114 may compare the block of bits sent from the one-time programmable 110 with the bits from the scratchpad of the scrambler 108 . The verification block 114 determines whether two bit-blocks are the same. If the blocks are not the same, a message 432 can be sent to the verify function 208 of the non-volatile memory of the controller 102, and the controller can then restart the process to write the block of bits to the one-time programmable 110 again . If the blocks are identical, a signal 432 indicating a positive comparison is sent to the verify function 208 of the non-volatile memory of the controller 102 and processing continues.

此時,在操作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 controller 102 may determine whether there are more random bits to store the one-time programmable 110 . If the OTP is not full and there are more bits to store, method 700 may proceed with YES to operation 720 to store the next block of bits. However, if the one-time programmable 110 has a complete set of random bits stored in the one-time programmable device 110, the method 700 may proceed to operation 748 with a "NO" where the controller 102 may lock the one-time programmable 110 . In operation 744 , there may be more random bits to be stored in the one-time programmable 110 . However, the size of the SRAM 106 may be smaller than the one-time programmable 110 , for example, the size of the one-time programmable 110 may be 16 kbit, while the size of the SRAM 106 may be 1 kbit. Under these circumstances, the SRAM 106 can be re-initialized by the controller 102 to restart the process of reading random bits. In this way, several iterations of initializing and reading bits from the SRAM 106 can be used for writing to the larger one-time programmable 110 . Therefore, method 700 Operation 720 is returned instead of operation 724 in several iterations, as shown in FIG. 5 .

在操作748中,控制器102的非揮發性記憶體的關閉功能212可藉由設定一次性可編程裝置110內的保留位元302來鎖定一次性可編程110。因此,控制器102的非揮發性記憶體的關閉功能212可防止在一次性可編程110內進行任何進一步的資料儲存。此時,儲存在一次性可編程110中的亂數作為一組可能的密鑰308儲存在欄位306內。每一隨機位元306可與位址304相關聯。為了獲得密鑰,一次性可編程110可接受與欄位304中的位址匹配的位址。若位址訊息匹配,則一次性可編程110可讀出與接收到的位址相關聯的隨機位元,其將該組資料作為密鑰發送至輸出暫存器118。 In operation 748 , the non-volatile memory disable function 212 of the controller 102 can lock the one-time programmable device 110 by setting the reserved bit 302 in the one-time programmable device 110 . Thus, the shutdown function 212 of the non-volatile memory of the controller 102 prevents any further data storage within the one-time programmable memory 110 . At this point, the nonce stored in the one-time programmable 110 is stored in the field 306 as a set of possible keys 308 . Each random bit 306 may be associated with an address 304 . To obtain the key, one-time programmable 110 accepts an address that matches the address in field 304 . If the address information matches, the one-time programmable 110 can read the random bits associated with the received address, which sends the set of data as a key to the output register 118 .

第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 exemplary method 800 for initiating a process with a physically non-clonable function 100 in accordance with aspects of the present disclosure. The general sequence of operations of method 800 is illustrated in FIG. 8 . Method 800 may include more or fewer operations or steps, or the order of operations or steps may be configured differently than shown in FIG. 8 . Method 800 may be performed as a set of computer-executable instructions executable by a processor of controller 102 such as physically non-clonable function 100 and encoded or stored on a computer-readable medium. Additionally, method 800 may be performed by gates or circuitry associated with a processor, application specific integrated circuit, field programmable gate array, system-on-chip, integrated circuit, or other hardware device (eg, controller 102 ). In the following, reference will be made to the Method 800 is explained in terms of systems, components, devices, modules, circuits, firmware, software, signals, data structures, methods, etc.; however, those skilled in the art will appreciate that some or all of the operations of method 800 may be implemented by or using Elements different from those described below are performed.

在操作808中,可重設暫存器、裝置、組件及控制器102。控制器102的輸入/輸出介面216可接收重設信號402,作為信號122的一部分。重設信號402向控制器102指示重設或啟動物理不可複製函數100。亂數產生器介面202接著可將重設或啟動信號404發送至靜態隨機存取記憶體106。非揮發性記憶體介面204可將重設或啟動信號406發送至一次性可編程110。控制器102可亦將測試信號408發送至內置自測112以測試其他組件的功能。 In operation 808, registers, devices, components, and controller 102 may be reset. The input/output interface 216 of the controller 102 can receive the reset signal 402 as part of the signal 122 . The reset signal 402 instructs the controller 102 to reset or initiate the physically non-clonable function 100 . The random number generator interface 202 can then send a reset or enable signal 404 to the SRAM 106 . The NVM interface 204 can send a reset or enable signal 406 to the one-time programmable 110 . The controller 102 may also send a test signal 408 to the BIST 112 to test the functionality of other components.

在操作812中,內置自測112可接著對亂數產生器104及/或一次性可編程110執行自測。非揮發性記憶體110及亂數產生器104可將回應發送回至內置自測112,該回應可指示彼等組件104、110是否起作用且恰當地起作用。接著可將此自測資訊發送回至控制器102。 In operation 812 , the built-in self-test 112 may then perform a self-test on the random number generator 104 and/or the one-time programmable 110 . The non-volatile memory 110 and random number generator 104 can send a response back to the built-in self-test 112, which can indicate whether those components 104, 110 are functioning and functioning properly. This self-test information can then be sent back to the controller 102 .

在操作816中,控制器102可接著接收可選的狀態檢查信號418,且接著對一次性可編程110執行狀態檢查。狀態檢查可由控制器102的輸入/輸出介面216接收的輸入信號418來起始。在其他情況下,控制器102可在無輸入信號的情況下檢查狀態。控制器102的非揮發性記憶體介面204可將信號420發送至一次性可編程110以 判定一次性可編程110的狀態。信號420讀取一次性可編程110中的保留位元302,以判定保留位元是否指示一次性可編程110已被寫入隨機位元且被鎖定。 In operation 816 , the controller 102 may then receive the optional status check signal 418 and then perform a status check on the one-time programmable 110 . A status check may be initiated by an input signal 418 received by the I/O interface 216 of the controller 102 . In other cases, the controller 102 may check the status without an input signal. The non-volatile memory interface 204 of the controller 102 can send a signal 420 to the one-time programmable 110 to The state of the one-time programmable 110 is determined. The signal 420 reads the reserved bit 302 in the one-time programmable 110 to determine whether the reserved bit indicates that the one-time programmable 110 has been written into a random bit and locked.

保留位元可具有一個位元來指示一次性可編程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 controller 102 may then determine the state of the one-time programmable 110 based on the reserved bits. This status can be sent out by the I/O interface 216 as an output signal 424 .

若設定鎖定位元,則方法800伴隨「是」進行至操作824,其中控制器102可將位元寫入至靜態隨機存取記憶體106。此處,在初始化之後,靜態隨機存取記憶體106可含有與寫入或提供至加擾器且接著寫入至一次性可編程110的彼等位元相同或類似的一組位元。為了防止此等位元被讀出且可能允許外部裝置或功能判定一次性可編程110中的內容,控制器102可寫入位元(例如,1及/或0)至靜態隨機存取記憶體106中以改變儲存在靜態隨機存取記憶體106中的內容。以此方式,若讀取靜態隨機存取記憶體106,則靜態隨機存取記憶體106中的內容將與用於建立一次性可編程110中的密鑰的內容不同。 If the lock bit is set, the method 800 proceeds with YES to operation 824 , where the controller 102 can write the bit to the SRAM 106 . Here, after initialization, the SRAM 106 may contain a set of bits that are the same as or similar to those bits written or provided to the scrambler and then written to the one-time programmable 110 . To prevent these bits from being read and possibly allow an external device or function to determine the contents of the one-time programmable 110, the controller 102 may write the bits (eg, 1 and/or 0) to the SRAM 106 to change the content stored in the SRAM 106 . In this way, if the SRAM 106 is read, the content in the SRAM 106 will be different from the content used to establish the key in the one-time programmable 110 .

若判定未設定鎖定位元,則在操作828中,過程800可伴隨「否」進行至將隨機位元儲存在一次性可編程 110中。在操作828中的隨機位元的儲存可結合第5圖及第7圖所描述的過程類似。 If it is determined that the lock bit is not set, then in operation 828, process 800 may proceed with NO to store the random bit in the one-time programmable 110 in. The storage of random bits in operation 828 may be similar to the process described in conjunction with FIG. 5 and FIG. 7 .

因此,所揭示的實施例尤其提供一種可自靜態隨機存取記憶體或亂數產生器產生唯一簽章的物理不可複製函數。此等簽章可儲存在非揮發性記憶體中,其中此等簽章不會由於積體電路的熱量或壽命的變化而改變。在先前的基於靜態隨機存取記憶體的裝置中,靜態隨機存取記憶體中的簽章可能會隨著時間及熱量的變化而變化。在其他過去的一次性可編程型物理不可複製函數中,彼等先前的物理不可複製函數需要外部埠來將此等位元儲存在一次性可編程中。至物理不可複製函數的此外部埠為物理不可複製函數安全性的弱點,因為該埠可用於向一次性可編程寫入或自一次性可編程讀取。在本文的態樣中,物理不可複製函數內部的靜態隨機存取記憶體不使用外部埠,且因此減少或消除重新編程的風險。此外,利用物理不可複製函數內部的組件,本文的各態樣無需提供關於物理不可複製函數的鑄造工人資訊。即使具有上述差異,物理不可複製函數裝置亦可具有許多質詢/回應對,因為一次性可編程中儲存的位元數很大。 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)

一種產生用於一積體電路裝置的一安全密鑰的方法,包含以下步驟:一亂數產生器產生複數個密鑰位元;一非揮發性記憶體儲存該些密鑰位元,該非揮發性記憶體包含一一次性可編程裝置;一物理不可複製函數產生器根據儲存在該非揮發性記憶體中的該些密鑰位元產生該安全密鑰;以及該物理不可複製函數產生器在儲存該些密鑰位元之後鎖定該一次性可編程裝置,其中在該一次性可編程裝置中設定一鎖定位元以指示該一次性可編程裝置被鎖定,其中在設定該鎖定位元之後,該一次性可編程裝置不儲存額外位元。 A method for generating a security key for an integrated circuit device, comprising the following steps: a random number generator generates a plurality of key bits; a non-volatile memory stores the key bits, the non-volatile The non-volatile memory includes a one-time programmable device; a physical non-copyable function generator generates the security key according to the key bits stored in the non-volatile memory; and the physical non-copyable function generator is in locking the one-time programmable device after storing the key bits, wherein a lock bit is set in the one-time programmable device to indicate that the one-time programmable device is locked, wherein after setting the lock bit, The one-time programmable device does not store extra bits. 如請求項1所述之方法,其中該亂數產生器包含一靜態隨機存取記憶體,其中在初始化該靜態隨機存取記憶體之後,自該靜態隨機存取記憶體讀取該些密鑰位元,其中該亂數產生器進一步包含一加擾器,其對自該靜態隨機存取記憶體讀取的該些密鑰位元進行加擾,該加擾器為一位元折疊電路或一線性反饋移位暫存器中的一者。 The method as recited in claim 1, wherein the random number generator comprises a static random access memory, wherein after initializing the static random access memory, the keys are read from the static random access memory bit, wherein the random number generator further includes a scrambler, which scrambles the key bits read from the static random access memory, and the scrambler is a bit folding circuit or One of the linear feedback shift registers. 如請求項1所述之方法,其中該一次性可編程裝置接收一位址,且擷取與該位址相關聯的該安全密鑰。 The method of claim 1, wherein the one-time programmable device receives an address and retrieves the security key associated with the address. 如請求項1所述之方法,其中該些密鑰位元儲存至該一次性可編程裝置中,且其中該些密鑰位元表示兩個或更多個安全密鑰。 The method of claim 1, wherein the key bits are stored in the one-time programmable device, and wherein the key bits represent two or more security keys. 如請求項1所述之方法,其中該一次性可編程裝置接收一位址,且擷取與該位址相關聯的該安全密鑰,在將該位址提供至該一次性可編程裝置之前對其進行加擾,該方法進一步包含以下步驟:接收一密鑰大小指示符;根據該密鑰大小指示符設定該安全密鑰的一密鑰大小;以及回應於接收到該位址而輸出該安全密鑰。 The method of claim 1, wherein the one-time programmable device receives an address, and retrieves the security key associated with the address, before providing the address to the one-time programmable device scrambling it, the method further comprising the steps of: receiving a key size indicator; setting a key size of the security key according to the key size indicator; and outputting the security key. 如請求項1所述之方法,進一步包含以下步驟:該物理不可複製函數產生器判定是否設定該鎖定位元。 The method as claimed in claim 1, further comprising the following steps: the physically non-copyable function generator determines whether to set the lock bit. 如請求項1所述之方法,其中該亂數產生器包含一靜態隨機存取記憶體,且該非揮發性記憶體包含一一次性可編程裝置,其中該靜態隨機存取記憶體比該一次性可編程裝置儲存的位元少,且該靜態隨機存取記憶體初始化兩次或更多次以將該些密鑰位元提供至該一次性可編程裝置。 The method as described in claim 1, wherein the random number generator comprises a static random access memory, and the non-volatile memory comprises a one-time programmable device, wherein the static random access memory is more than the one-time The one-time programmable device stores few bits, and the SRAM is initialized two or more times to provide the key bits to the one-time programmable device. 一種積體電路裝置,包含:一物理不可複製函數產生器,其輸出兩個或更多個安全密鑰,每一該安全密鑰包含複數個密鑰位元,其中該物理不可複製函數產生器包含:一靜態隨機存取記憶體,其在初始化之後被讀取以提供該些密鑰位元中的一或多者;一一次性可編程裝置,其:儲存自該靜態隨機存取記憶體讀取的該些密鑰位元;以及在接收到一位址後,根據該些密鑰位元提供兩個或更多個該些安全密鑰中的一者;一加擾器,其對自該靜態隨機存取記憶體讀取的該些密鑰位元進行加擾,其中該加擾器為一位元折疊電路或一線性反饋移位暫存器中的一者;一輸入位址加擾器,該輸入位址加擾器接收一輸入位址且對該輸入位址進行加擾以產生提供至該一次性可編程裝置的該位址;一控制器,其用於控制該靜態隨機存取記憶體及該一次性可編程裝置的功能;以及一輸出暫存器,其中該控制器進一步接收一密鑰大小指示符信號,且根據用於該安全密鑰的該密鑰大小指示符信號設定該輸出暫存器以儲存數個位元。 An integrated circuit device comprising: a physically non-clonable function generator outputting two or more security keys, each of the security keys comprising a plurality of key bits, wherein the physically non-clonable function generator comprising: a static random access memory which is read after initialization to provide one or more of the key bits; a one-time programmable device which: stores from the static random access memory The key bits read by the body; and after receiving an address, provide one of two or more of the security keys according to the key bits; a scrambler whose scrambling the key bits read from the SRAM, wherein the scrambler is one of a bit folding circuit or a linear feedback shift register; an input bit an address scrambler that receives an input address and scrambles the input address to generate the address provided to the one-time programmable device; a controller for controlling the SRAM and functions of the one-time programmable device; and an output register, wherein the controller further receives a key size indicator signal, and according to the key size used for the security key The indicator signal sets the output register to store a number of bits. 一種產生用於一積體電路裝置的一安全密鑰的系統,該系統包含:一亂數產生器,其包含:一靜態隨機存取記憶體,其在初始化之後被讀取以提供複數個位元;以及一線性反饋移位暫存器,其將自該靜態隨機存取記憶體讀取的該些位元加擾為複數個經加擾密鑰位元;一輸入位址加擾器,其:接收一輸入位址;將該輸入位址加擾為一經加擾位址;以及提供該經加擾位址;一一次性可編程裝置,其與該線性反饋移位暫存器及該輸入位址加擾器通信以:儲存自該線性反饋移位暫存器提供的該些經加擾密鑰位元;使該些經加擾密鑰位元與一位址相關聯;自該輸入位址加擾器接收該經加擾位址;判定與該些經加擾密鑰位元相關聯的該位址,該位址與該經加擾位址匹配;讀取具有與該經加擾位址匹配的該位址的該些經加擾密鑰位元;以及將該些經加擾密鑰位元提供為該安全密鑰;以及一輸出暫存器,其與該一次性可編程裝置通信,該輸出暫存器: 自該一次性可編程裝置接收該安全密鑰;以及輸出該安全密鑰。 A system for generating a security key for an integrated circuit device comprising: a random number generator comprising: a static random access memory which is read after initialization to provide a plurality of bits and a linear feedback shift register that scrambles the bits read from the SRAM into a plurality of scrambled key bits; an input address scrambler, which: receives an input address; scrambles the input address into a scrambled address; and provides the scrambled address; a one-time programmable device in conjunction with the linear feedback shift register and The input address scrambler communicates to: store the scrambled key bits provided from the linear feedback shift register; associate the scrambled key bits with an address; The input address scrambler receives the scrambled address; determines the address associated with the scrambled key bits, the address matches the scrambled address; reads the scrambled key bits of the address matched by the scrambled address; and providing the scrambled key bits as the security key; and an output register which is associated with the primary programmable device communication, the output register: receiving the security key from the one-time programmable device; and outputting the security key. 如請求項9所述之系統,進一步包含:一控制器,其:控制該靜態隨機存取記憶體及該一次性可編程裝置的功能;接收一密鑰大小指示符信號;以及設定該輸出暫存器以根據用於該安全密鑰的該密鑰大小指示符信號儲存數個位元。 The system as recited in claim 9, further comprising: a controller that: controls functions of the SRAM and the one-time programmable device; receives a key size indicator signal; and sets the output temporary The memory stores a number of bits according to the key size indicator signal for the security key.
TW110107560A 2020-03-31 2021-03-03 Integrated circuit device and method and system of generating a security key for an integrated circuit device TWI781544B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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