Electronic system and root key extractor based on PUF root key entangled with multiple digital input sequences
Through the PUF and digital algorithm system, multiple root keys are entangled with user-defined inputs, solving the flexibility and security issues of root key generation and update in the existing technology, and enhancing the overall security and adaptability of the device.
Patent Information
- Application Number
- CN202410777238.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-29
- Filing Date
- 2024-06-17
- Publication Date
- 2025-09-09
- Estimated Expiration
- 2044-06-17
AI Technical Summary
Existing PUF technology cannot effectively entangle the root key with user-defined input, which limits its scope of application. It also relies on the boot cycle to generate a single fixed root key, which lacks flexibility and security.
The physical unclonable function (PUF) and digital algorithm system are adopted to allow multiple root keys to be entangled with multiple user-defined inputs, and true random numbers are generated and recovered through the root key extractor, including a key extractor controller, a key derivation function unit, a true random number generator, a fuzzy extractor, a message authentication code unit and a format-preserving encryption unit, to achieve dynamic generation and management of multiple unique root keys.
It enables the flexible generation and update of multiple true random keys during the device life cycle, enhances security, provides isolated secure channels, and is suitable for multi-factor authentication, cryptographic wallets, and cryptographic key management systems, reducing integration costs.
Smart Images

Figure CN119232364B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to information security, and more particularly to a digital circuit method for digitally entangled a single root key obtained from a physically unclonable function (PUF) with multiple digital inputs outside the PUF system. Background Art
[0002] In the prior art, PUF circuits were used to create, update, or retrieve a unique sequence of truly random numbers, often referred to as a root key of a certain bit length. The root key was created and retrieved based on the truly random behavior of an entropy source. This entropy source consists of multiple entropy source elements, each of which exhibits unpredictable binary state output behavior due to nanoscale variations in semiconductor technology. Therefore, the entropy source exhibits both static and dynamic entropy behaviors. The static entropy enables it to converge to a state that successfully creates and retrieves a unique root key, while the dynamic entropy enables it to successfully create truly random numbers for security functions.
[0003] In previous technologies, the static nature of the entropy source was not completely stable, requiring a further computational engine, namely a fuzzy extraction computational engine, to extract the unique root key through digital element correction and comparison with specific checkpoint data (also known as auxiliary material). The auxiliary data is generated during the creation of the unique root key and used as input to the fuzzy extraction computational engine to correct for random variations in the entropy source, thereby consistently retrieving the correct root key upon each retrieval. The auxiliary data itself is not sensitive and can be stored outside the device's security boundary. The auxiliary data can only be used and is compatible with the specific entropy source that remains within the hardware security boundary.
[0004] A major drawback of related prior art stems from practical circuit implementation constraints in these systems, which limit the ability to associate PUF-based root keys with direct input from users and / or custom applications. Indeed, compared to what might be a strong password or digital token, the auxiliary data is relatively long, typically limited to a sequence of 32 or 64 bytes. Devices using such PUF systems to derive one or more root keys integrate the storage of this auxiliary data to avoid requiring users or applications to manage and load this lengthy data themselves. Consequently, users and / or applications using the root keys cannot address the issue of entanglement of a specific PUF root key with other digital inputs (typically a system password or digital token) beyond the scope of the PUF. Any such ideally secure access credential must be validated or authenticated by an external security module, the most secure component of a trusted internal system and therefore the optimal subsystem for providing users and / or applications with custom input for direct locking and unlocking mechanisms of specific root keys.
[0005] To overcome these shortcomings and provide entanglement of useful user- and / or application-defined inputs for a specific root key to establish systems such as storage-less password PUF authentication or token PUF authentication, it is necessary to design a PUF root key creation and retrieval structure that can allow additional digital inputs in addition to the existing auxiliary data, thereby expanding the potential applications of PUF systems and addressing all aspects of electronic security, from root functions (such as secure boot and firmware protection) to running security applications (such as password authentication for multi-factor authentication). Summary of the Invention
[0006] The technical problem to be solved by the present application is to provide an electronic system and a root key extractor, which use a physical unclonable function (PUF) and a proposed digital algorithm system to entangle multiple root keys and generate true random numbers. The present application has advantages over the existing PUF technology, including the ability to create and recover multiple true random root keys and true random numbers without being affected by the boot cycle. These functions enhance security, make it possible to establish isolated secure channel digital certificates, and provide flexibility in key management throughout the device life cycle. In the electronic device of the present application, it is used to entangle multiple root keys with multiple arbitrary user-defined and self-generated input data. The present application utilizes a physical unclonable function (PUF) and a proposed digital algorithm system to achieve the entanglement.
[0007] To achieve the aforementioned objectives, the present application discloses an electronic system for creating and recovering a large number of inherently unique digital sequences, or root keys, with multiple input sources from within and outside a host system and input to a cryptographic service module. The electronic system comprises: a PUC input source, a key extractor, a set of encrypted digital inputs, a set of auxiliary data, and the cryptographic service module. First, the PUC input source outputs different bitstream PUF raw data after each different measurement request, which can be independent of the boot cycle request at any given time. Second, the root key extractor generates a key and associated digital auxiliary data in a registration mode. In an update mode, it adds new associated digital auxiliary data based on new user input, entangles the associated digital auxiliary data with the root key, and recovers the generated root key using fully valid input and the PUF source raw data. Furthermore, the encrypted digital input (also known as a token) can be created, stored, or volatilized from various sources and corresponds to a digital sequence of a fixed length, which is accessed by the root key extractor. Furthermore, each portion of the auxiliary data set is associated with a specific root key and one or more encrypted digital inputs, accessed by a root key extractor; and the cryptographic service module uses the root key created or recovered by the root key extractor as input.
[0008] In one embodiment, the output of the root key extractor includes: a certain number of bit streams obtained from the source of the PUF raw data, the PUF raw data is used to generate true random numbers and an original true random root key; a digital input sequence obtained from any user-defined digital input, the digital input sequence can have any bit length and come from various sources; a specific portion of auxiliary data generated during the root key registration process or updated during the update process, and used as input during the root key recovery or update process, entangled with the specific user-defined digital input; a specific portion of auxiliary data stored locally or externally.
[0009] To achieve another object of the aforementioned invention, the present application discloses a root key extractor for extracting multiple unique, inherent digital root keys from multiple non-random and random digital inputs, and generating digital outputs along with its own digital input auxiliary data. The root key extractor comprises a key extractor controller, a key derivation function unit, a true random number generator (TRNG), a fuzzy extractor, a message authentication code unit, a format-preserving encryption unit, and a memory storage device. The key extractor controller manages a digital circuit for system input and output information, controlling the data sequencing and operational flow between each unit comprising the root key extractor. The key derivation function unit generates a unique random key for encrypting a specific root key generated by a TRNG during enrollment. The key derivation function takes as input a user-defined digital input, a TRNG, and a discrete, different measurement version of PUF source data. Furthermore, the TRNG uses a set number of inputs from the PUF source and generates as many TRNGs as needed for the system to generate the original root key and create random vectors in the auxiliary data used in the root key recovery process. Furthermore, the fuzzy extractor can generate a specific vector from a version of the PUF source original data during the enrollment process, and use the latest specific vector to correct the new version of the PUF source data to the initial data measured and used during enrollment to create the root key. The message authentication code unit then generates a vector for verifying the specific key based on a specific bitstream value from the PUF source. During enrollment, the bitstream from the PUF source comes directly from the PUF input source, and during recovery, from the fuzzy extractor correction mechanism. Furthermore, the format-preserving encryption unit will function as a symmetric encryption and decryption unit, encrypting the root key in the auxiliary data during enrollment and decrypting the root key for output after the message authentication code unit verifies successful recovery. Furthermore, the memory storage accesses a set of auxiliary data during enrollment, using the auxiliary data in a write mode of operation and reading it in a recovery mode, during which time it stores digital values created by the fuzzy extractor, the format-preserving encryption unit, the true random number generator, and the message authentication code unit. The root key extractor operates in an enrollment mode, generating a root key based on an input; in a recovery mode, recovering the originally generated root key based on the same predictable digital input and a different unpredictable digital input from a PUF source with a certain number of bit variations; and in an update mode, combining the enrollment mode and the recovery mode to add additional root key digital input entanglements.
[0010] In the first example, the electronic system of the present application is able to generate multiple true random keys and true random numbers that depend on the boot cycle and are not fixed throughout the life cycle of the device. This feature has significant advantages over existing PUF technologies, which generally rely on the boot cycle or generate a single fixed root key. By being able to create and recover multiple true random root keys.
[0011] In the second example, unlike traditional PUF technology that generates a single root key during device initialization, this application allows for the generation of multiple root keys that have no mathematical relationship to the key derivation function (KDF). This ensures improved security by reducing the risk of key compromise and enabling the creation of isolated secure channels for different stakeholders and applications.
[0012] The dynamic nature of the PUF system disclosed in this application provides additional advantages. It allows for the continuous generation of true random numbers, facilitating the generation of new cryptographic keys, random numbers, or other cryptographic parameters as needed, eliminating reliance on fixed or pre-generated random number seeds and enhancing overall security. Secondly, the ability to generate multiple true random keys enhances the integrity and security of cryptographic operations, enabling the creation of isolated secure channel digital certificates for different stakeholders and applications, and facilitating the establishment of multiple roots of trust. This feature significantly enhances overall security and enables secure communications and authentication in various areas, including FIDO authentication, point-to-point encryption, crypto wallets, and cryptographic key management systems.
[0013] In addition, the flexibility of updating and changing the root key throughout the device lifecycle adds another layer of security. Compared with PUF technology with a fixed root key, this application allows the root key to be rotated as needed, reducing the impact of key corruption or algorithm vulnerabilities. The integration disclosed in this application is very straightforward, requiring minimal design modifications, and is designed to be compatible with standard processor units (such as CPUs, MCUs, and GPUs), reducing integration costs and promoting widespread application. It can be seamlessly integrated into existing electronic devices without incurring significant additional cost or complexity.
[0014] The details of other functions and embodiments of the present application are described below with reference to the drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments recorded in this application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0016] Figure 1 Schematic diagram of an electronic system that integrates encryption functions, fuzzy extractors, and dynamically measurable physical unclonable function entropy for this application.
[0017] Figure 2 This is a schematic diagram of the array structure composed of physical unclonable functional units in this application.
[0018] Figure 3A A schematic diagram of the system architecture and communication paths between each subsystem of the root key extractor of this application.
[0019] Figure 3B Based on Figure 3A Schematic diagram of the inputs, outputs, and their relationship to the generated root keys specified in the root key registration procedure of the designed system.
[0020] Figure 3C Based on Figure 3A Schematic diagram of the inputs, outputs, and their relationship to the generated root key specified in the root key recovery procedure of the designed system.
[0021] Figure 3D Based on Figure 3A Schematic diagram of the inputs, outputs, and their relationship to the generated root key specified in the root key update procedure of the designed system.
[0022] Figure 4A A schematic diagram illustrating the arrangement of multiple user-defined inputs and their relationship to the index root key accessed by the data access digital controller of the present application.
[0023] Figure 4B Schematic diagram of how a single user-defined digital input or token may be arranged for this application with the least significant bit pattern first.
[0024] Figure 4C Schematic diagram of how a single user-defined digital input or token may be arranged for this application with the most significant bit pattern first.
[0025] Figure 5A For this application Figure 3A The root key registration procedure of the system (such as Figure 3B ) and / or update programs (such as Figure 3D ) is a schematic diagram of the arrangement of multiple auxiliary data created during the process.
[0026] Figure 5B A schematic diagram of the arrangement of a single auxiliary data portion with the least significant bit pattern first in this application.
[0027] Figure 5C This is a schematic diagram of the arrangement of a single auxiliary data portion with the most significant bit pattern first in this application.
[0028] Figure 6 This application is made by Figure 3A Schematic diagram of the structure of a single root key generated or recovered by the designed root key extractor.
[0029] Explanation of symbols
[0030] 100: Electronic System 200: PUF Input Source
[0031] 210: Row 220: Column
[0032] 230: PUF unit 300: Root key extractor
[0033] 310: Key Extractor Controller 320: Key Derivation Function Unit
[0034] 330: True Random Number Generator 340: Fuzzy Extractor
[0035] 350: Message Authentication Code Unit 360: Format Preserving Encryption Unit
[0036] 400: Encrypted digital input set 410: Valid digital input
[0037] 411: Load digital input 412: Most significant bit
[0038] 413: Least significant bit 420: Data access digital controller
[0039] 500: Auxiliary data set 501: Memory storage
[0040] 510: Auxiliary data group 511: Specific auxiliary data
[0041] 512: Most significant bit 513: Least significant bit
[0042] 520: Data access digital controller 600: Root key
[0043] 610: Bit 700: Cryptographic Services Module DETAILED DESCRIPTION
[0044] The positional relationships described in the following embodiments include up, down, left, and right. Unless otherwise specified, they are based on the directions of the components shown in the drawings.
[0045] This application describes an electronic system and root key extractor that can dynamically create and manage multiple unique inherent digital root keys based on multiple internal and external fixed and random input sources, and the multiple root keys will serve as the basic security input of the encryption service module, including some standardized cryptographic suites.
[0046] The primary goal of a PUF system is to retrieve a unique, static sequence of numbers from a source of randomness or entropy, which serves as a root digital identity, also referred to herein as a root key. This unique, static sequence of numbers will resist any possible prediction while providing the appropriate input for the PUF system to extract a unique sequence of numbers and a random number.
[0047] The encryption service module is usually composed of a key exchange algorithm, an authentication algorithm, an encryption algorithm, and a message authentication code algorithm, such as ECDH, ECDSA, AES, RSA, SHA, but not limited to these.
[0048] An integrated PUF system mechanism is capable of retrieving a unique digital sequence inherent to a single silicon manufacturing system. The PUF entropy source will be able to provide unpredictable unique sequences for the multiple algorithms and security protocols. These sequences are never known to the manufacturer, designer, or user, thereby preventing database cyber attacks that currently require manual or machine-defined settings and storage of these multiple unique identifiers.
[0049] Intrinsically retrievable unique digital identities can be used as input deviations for authentication mechanisms, network identification, or message authentication algorithms, often referred to as "salts." In fact, the cryptographic suites required to deploy secure electronic environments are standardized and fixed, so electronic designers need to inherently implement uniqueness, either manually or using PUFs, to make these standard behaviors unique.
[0050] In this application, a dynamic system is described for providing an entropy source for a PUF mechanism and a random number generator, integrated into a single semiconductor CMOS technology, allowing the generation of multiple true random root keys and true random numbers. This makes it possible to entangle multiple root keys with multiple arbitrary user-defined and self-generated input data using a physically unclonable function (PUF) and a proposed digital algorithm system.
[0051] The system of the present application can provide a reliable and dynamically measurable entropy source that is independent of the startup cycle of the electronic device, ensuring that true random numbers are provided at any time without relying on a pseudo-random number generator, thereby ensuring the generation of multiple true random keys as a secure basis for establishing an encryption channel.
[0052] Current state-of-the-art PUF technologies typically rely on a one-time operation during the boot cycle or a single-trigger enrollment sequence, limiting their flexibility and adaptability. Existing PUF technologies often rely on the boot cycle, can only generate a single root key, or cannot update and change the root key during the device's lifecycle. They may also be limited in their ability to generate multiple true random numbers that are mathematically unrelated to the key derivation function (KDF), even if the multiple KDFs are considered to meet the security requirements of international standards.
[0053] The uniqueness of this application lies in its ability to be used and reused independently of any other system or boot sequence without imposing design constraints on the host electronic system. This application only requires a single semiconductor CMOS technology for manufacturing and can be seamlessly integrated into any standard processor unit (CPU, MCU, GPU) or custom ASIC system without adding additional design costs, as a plug-and-play integrated subsystem.
[0054] The dynamic nature of this application makes it a standalone subsystem that can be integrated into existing electronic devices without inherent design modifications, significantly reducing the costs associated with the development of new integrated circuits, especially for CPUs, MCUs, and GPUs. This flexibility makes the proposed PUF system easy to adopt and deploy, allowing it to be integrated into existing electronic devices as a standalone subsystem without inherent design modifications, significantly reducing the costs associated with the development of new integrated circuits, especially for CPUs, MCUs, and GPUs.
[0055] Traditional PUF system enrollment and recovery systems are systems designed for enrollment and recovery, which may involve the use of OTP-PUF self-injection root keys and / or the use of common error correction codes (ECC) often used with SRAM-PUF, which may bring limitations in flexibility and scalability.
[0056] Please refer to Figure 1 The present application provides an electronic system 100, which is an electronic system 100 for generating multiple root keys 600 indexed from 1 to X. The electronic system 100 includes: a dynamically measurable physical unclonable function (PUF) input source (referred to as PUF input source 200), a root key extractor digital processing system (referred to as a root key extractor 300), creating a root key 600 associated with an auxiliary data set 500, and receiving an additional encrypted digital input set 400 (also referred to as an input token), and a cryptographic service module 700.
[0057] The PUF input source 200 outputs different bitstream PUF raw data after each different measurement request, which can be independent of the boot cycle request at any given time. The PUF input source 200 and its associated measurement digital trigger can come from multiple physical sources, the only requirement being that they must be the same physical source when associated with one or more root keys to be generated or recovered.
[0058] The root key extractor 300 locally accesses one or more indexed non-volatile memories via a standard serial and / or bus peripheral communication protocol. The root key extractor 300 operates in a root key registration mode, using no user-defined inputs but instead system-defined hard-coded inputs, and creates an index portion of the auxiliary data set 500 associated with the root key 600 in accessible non-volatile memory. Furthermore, the root key extractor 300 operates in a root key recovery mode using user-defined inputs and creates an index portion of the auxiliary data associated with the root key in accessible non-volatile memory. The root key extractor 300 operates in a root key update mode using user-defined inputs and appends new recovery data blocks to the index portion of the auxiliary data set 500 associated with the root key 600 in accessible non-volatile memory. The root key extractor 300 operates in any mode associated with the root key 600 and obtains raw data from a physically unclonable function that is distinct from the functions used for other and numerous other root key extractor 300 operating modes.
[0059] The root key extractor 300 is responsible for initiating a measurement trigger request on the PUF input source 200. This is defined in such a way that it can dynamically measure when a trigger request is made via an internal digital transmission link. After receiving a measurement request from the root key extractor 300, the PUF input source 200 will output the current measurement data of its PUF unit 230 array structure, such as Figure 1 The original PUF data is shown in Figure 2 As shown in E in FIG. In another embodiment, the PUF input source 200 can be a dynamic measurement issued by a third-party digital controller on a digital trigger. The root key extractor 300 is a digital hardware circuit design or a software program, or a combination of hardware circuit and software designs. It is assumed, and necessary to assume, that the root key extractor 300 can trigger a new measurement request for the PUF input source 200 at any given time. Therefore, after each request, a new version of the original PUF data E is obtained, each time with a certain static entropy and dynamic entropy that is compatible with generating true random numbers and successfully registering and / or recovering the root key 600.
[0060] The raw PUF data from the PUF input source 200 may be delivered in various orders, not limited to a specific array element order, such as via a single bit transmission for each PUF element 230, via a cy-dimensional vector for each PUF element row 210, via an rx-dimensional vector for each PUF element column 220, via a logical combination of the two, or via a partial complete raw PUF data E. The measurement request may further be designed as a digital instruction for multiple measurement requests, including or excluding instructions regarding a specific raw data output format.
[0061] The root key extractor 300 loads and / or reads a specific or indexed digital input, also referred to as a token associated with a target or index, where X is the total number of root keys currently managed by the system, ranging from 1 to X. The multiple digital inputs can be defined by an external digital system, i.e., user-defined, hard-coded within the system, or ultimately from other PUF-based entities. Figure 4A In the example, the root key extractor 300 uses a specific loaded digital input 411, also called a token, which is cryptographically entangled during the registration with the latest root key X. When registering a new root key 600, also called root key creation, the root key extractor 300 will generate Figure 5A Finally, for a single root key 600, the root key extractor uses an original PUF data set E (such as Figure 2 As shown), a series of measurements, and a digital input or token X n To create or register a new true random root key X, and generate the related auxiliary information X n A new series of raw PUF data measurements is used, the same digital input X that was used to register the root key X, and the auxiliary data X used for the generation of this specific root key X. n , the root key extractor is able to recover and converge to a unique and stable root key X.
[0062] Furthermore, the encrypted digital input set 400 can be created, stored, or volatile from various sources and correspond to a digital sequence of a certain length, and can be accessed by the root key extractor 300. The encrypted digital input set 400 is stored entirely in a local memory storage; alternatively, the encrypted digital input set 400 is partially or completely not stored in the local memory storage. Furthermore, one or more encrypted digital input sets 400 from an encrypted digital input set 400 can be hard-coded within a digital design of the electronic system; alternatively, one or more encrypted digital input sets 400 from an encrypted digital input set 400 are volatile inputs originating from outside the electronic system. Each portion of the set of auxiliary data 500 is associated with a specific root key 600 and one or more encrypted digital input sets 400, and can be accessed by the root key extractor 300.
[0063] In some embodiments of the present application, the digital input is further from X1 to X nIn fact, the root key extractor 300 is not only capable of generating multiple root keys 600 indexed as X, but is also capable of defining multiple digital inputs for recovering the same root key X600. Therefore, once the root key X600 is recovered, the root key extractor 300 will be able to generate new specific auxiliary data 511 to match the new loaded digital input 411 and recover the same root key X600. Figure 4A and Figure 5A In [1], n is defined, which represents the number of different digital inputs X and related specific auxiliary data 511 that can be used to recover the root key 600 with index X. For example, root key 3 can be recovered using digital input 31 and auxiliary data 31, or digital input 32 and auxiliary data 32. If two digital inputs 31 and 32 are defined, root key 3 can be loaded and recovered. In the last example, for root key 3, we have n = 2. Therefore, for one root key X600, there will be the same number of digital inputs X. n and specific auxiliary data X n 511. Since the index X of the root key is variable, the index n of each index X may be different.
[0064] Each root key X600 can be deprecated at any time by starting a new registration process for an existing root key index X600. n If all, some or all of the root keys X600 remain the same, part or all of them are new, each new root key X600 will be a new true random number, guaranteed by the new random changes in the original PUF data measurement request from the new PUF input source 200. n 411 may be different, newly generated association-specific auxiliary data X n 511 will also be new random data.
[0065] Finally, each root key X600 is used as the current root key of the cryptographic service module 700. The cryptographic service module 700 may include all or part of standard ciphers, as well as proprietary ciphers, standardized security protocols, and proprietary protocols. The cryptographic service module 700 uses the root key 600 created or recovered by the root key extractor 300 as input. The cryptographic service module 700 is a digital hardware circuit design composed of an encryption algorithm. In one embodiment, the cryptographic service module 700 is a software program design composed of a cryptographic algorithm. In another embodiment, the cryptographic service module 700 is a combination of hardware circuit and software design.
[0066] Figure 1 The electronic system 100 described in the specification operates under power but is completely independent of the power-up and power-down cycles of the host device into which the present application is integrated as a subsystem.
[0067] Please refer to Figure 2 , Figure 2 Further described in Figure 1 The system and architecture design of the PUF input source 200 in the embodiment of the present invention includes a PUF unit set 230E. rx,cy , arranged in rows 210 and columns 220, where rx is the number of rows and cy is the number of columns, which have a minimum value of 2 and an unlimited maximum value, respectively. Each PUF unit 230 can be measured according to a digital trigger measurement signal, independent of the startup cycle, and converge to an unpredictable binary level, which can be a low level or a high level, corresponding to the current system logic level '0' or '1', respectively. The dimension of the complete binary data E in the PUF input source 200 of the PUF unit 230 is (rx, cy), which is Figure 1 The original PUF data of the root key extractor 300 is input and can be collected row by row 210 or column by column 220, and a certain logic gate circuit design is used for counting and / or accumulation processing.
[0068] Please refer to Figure 3A , describes Figure 1 The detailed implementation of the root key extractor 300 described in
[15] is for extracting multiple unique intrinsic digital root keys from multiple non-random and random digital inputs, and generating digital outputs and its own set of digital input auxiliary data 500; wherein the root key extractor 300 performs a key registration function and a recovery function. The key registration function generates specific auxiliary data 511, which is entangled with the loading digital input 411, while the recovery function recovers the corresponding root key 600 based on the specific auxiliary data 511 and the correct loading digital input 411.
[0069] The root key extractor 300 comprises a key extractor controller 310, a key derivation function (KDF) 320, a true random number generator (TRNG) 330, a fuzzy extractor 340, a message authentication code (MAC) unit 350, and a format-preserving encryption unit 360. The key extractor controller 310 loads digital input 411 and reads and writes specific auxiliary data 511 from a memory storage 501. The key extractor controller 310 is responsible for managing a digital circuit that inputs and outputs system messages, while also controlling the data sequence and operation flow between each unit that makes up the root key extractor 300. The memory storage 501 accesses an auxiliary data set 500 during the registration process, uses the auxiliary data set 500 in a write mode, and reads it in a restore mode. During this process, it stores digital values created by the fuzzy extractor 340, the format-preserving encryption unit 360, the true random number generator 330, and the message authentication code unit 350.
[0070] The key derivation function unit 320 uses a bit sequence input key of arbitrary length and multiple bit sequences of arbitrary length to perform a key derivation operation, and uses the output bit sequence of arbitrary length as the derived key. This can be achieved through a standard KDF algorithm or other methods. The key derivation function unit 320 will generate a unique random key for encrypting the specific root key 600 generated by the true random number generator during registration. The key derivation function unit 320 uses a user-defined digital input, a true random number, and a discrete measurement version of the PUF input source data as input, with each measurement being different.
[0071] The true random number generator 330 processes random bit inputs from the PUF raw data E provided by the PUF input source 200, extracts multiple input entropies, and outputs true random numbers. The true random number generator 330 uses a certain amount of input from the PUF source and generates as many true random numbers as the system requires, which are used to generate the original root key 600 and create random vectors in the auxiliary data used in the root key 600 recovery process.
[0072] The fuzzy extractor 340 can operate in either enrollment mode or recovery mode. In enrollment mode, the input is a bit sequence of arbitrary length, and the output is the valid auxiliary data set 510. The input bit sequence E from the PUF input source 200 is referred to as the original bit sequence corresponding to the output specific auxiliary data 511. During the enrollment process, the fuzzy extractor 340 can generate a specific vector from a version of the PUF input source original data. The latest specific vector is used to calibrate the new version of the PUF source data to the initial data measured and used during enrollment to create the root key 600.
[0073] When operating in recovery mode, the input is a bit sequence from the PUF input source 200 that is different from the original bit sequence used to generate the associated specific auxiliary data 511, and the output is the original bit sequence used to generate the specific auxiliary data 511, where the new input bit sequence has the same length as the original bit sequence. The original bit sequence associated with the generated specific auxiliary data 511 is a bit sequence that is similar to the new bit sequence, where "similar" is defined as the ratio of different bits between the two bit sequences.
[0074] The fuzzy extractor 340 uses the specific auxiliary data 511 corresponding to the original bit sequence to repair a new bit sequence similar to the original bit sequence. It can be implemented using any error correction technology, such as error correction code, or any method that can achieve the same function.
[0075] The message authentication code unit 350 generates a vector for verifying a specific key based on a specific bit stream value from a PUF input source. During enrollment, the bit stream from the PUF input source comes directly from the PUF input source, and during recovery, comes from the fuzzy extractor correction mechanism. Furthermore, the message authentication code unit 350 can operate in both signature mode and verification mode. When operating in signature mode, the input is a bit sequence of arbitrary length as a message and a bit sequence of arbitrary length as a key, and the output is a bit sequence generated from the input message and input key pair as an authentication code. When operating in verification mode, the input is a bit sequence of arbitrary length as a verification message, a bit sequence of arbitrary length as a verification key, and an authentication code. Verification succeeds, confirming the correctness or integrity of the verification message, and outputting a verification message only if the input verification message and verification key pair are exactly the same as the message and key pair used to create the authentication code. Otherwise, verification fails, and no message is output.
[0076] The format-preserving encryption unit 360 is an encryption or decryption function whose input is a bit sequence of arbitrary length as a key and a bit sequence of arbitrary length as data. The output is the result of encrypting or decrypting the input data using the input key, which is a bit sequence of the same length as the input data. During the registration process, the format-preserving encryption unit 360 encrypts the root key 600 in the auxiliary data set 500 and decrypts and outputs the root key 600 after the message authentication code unit 350 verifies successful recovery.
[0077] exist Figure 3A In the example, the valid auxiliary data set 510 for recovering the root key X600 is arranged to be Figure 5A A data access digital controller 520 reads and writes data as described in .
[0078] The key extractor controller 310 is a controller for managing and arranging communication and data transmission between each sub-unit in the root key extractor 300. The key extractor controller 310 includes a key derivation function unit (KDF) 320, a true random number generator (TRNG) 330, a fuzzy extractor 340, a message authentication code (MAC) unit 350, and a format-preserving encryption unit 360. It is loaded with digital input 411 through the key extractor controller 310 and reads and writes specific auxiliary data 511 from the auxiliary data set 500.
[0079] Please refer to Figure 4A , Figure 4A The management and generation of X valid digital inputs 410 are illustrated, which are entangled with each root key 600 for encryption operations. FIG4 depicts a set of 'X' rows representing X root keys, denoted as X1 to X n Each row corresponds to a unique root key X600 and is entangled with a variable number of 'n' digital inputs that can initiate the same root key X600.
[0080] The entangling process begins with the first loaded digital input 411, or X1, which plays a crucial role in creating the root key X600. This initial digital input, which can come from a variety of sources such as user input, chip ID, application-specific numbers, or local memory, establishes the root key X600 through cryptographic operations and error correction of the PUF input source data from the PUF input source 200.
[0081] Once the root key X is created, it can be created by adding additional digits to X2 to X n Incorporating this into the entanglement process with the root key X600, further entanglement of more digital inputs is achieved, and the same index X associated with the new specific auxiliary data 511 is associated with n These digital inputs 400 can have any bit size and have a flexible nature that allows them to be changed at will. Similar to the first digital input X1, these subsequent digital inputs X2 to X n Can come from different sources and play different roles in the encryption system. Figure 4A 410 in the figure represents a valid digital input X n 410, can recover the valid auxiliary data group X n 510 associated root key X600, where X n is exactly the same double index value. Therefore, Figure 5A The valid auxiliary data set 510 in the example corresponds to a valid digital input X for a specific root key X600. n 410.
[0082] Figure 4A Also included is a data access digital controller 420. This module represents a digital access interface that efficiently facilitates access to the various sources of the plurality of digital inputs. The data access digital controller 420 acts as an interface to securely retrieve and integrate digital inputs, whether volatile or non-volatile, into the entangling process, providing a seamless and efficient means of communication between the encryption system and the sources containing the digital inputs.
[0083] Figure 4A The entanglement of the root key 600 with multiple digital inputs is shown to achieve a strong and versatile encryption system. The root key 600 is represented by the 'X' line and is entangled with a variable number of valid digital inputs 410 (from X1 to X n ) are cryptographically entangled. The multiple inputs can come from different sources and can be dynamically modified. The data access digital controller, as a key component, facilitates access to these valid digital inputs 410, ensuring the security and efficient operation of the cryptographic system.
[0084] Please refer to Figure 5A , the figure illustrates the loading of digital input X with each n 411 and root key X600 correspond to specific auxiliary data X n The figure shows the integration of non-volatile memory, which can be on-chip or off-chip, for storing the valid auxiliary data set X for starting and recovering a specific root key X. n 510.
[0085] Each load digital input 411, indexed by X n , associated with the corresponding root key X600 and having the same index X n Therefore, in addition to the valid digital input X n In addition to the auxiliary data set 410, there is also the effective auxiliary data set 510, which is represented as auxiliary data X n , which complements each load digital input X n 411 and root key pair X600. Unlike the loaded digital input 411, which can be modified and comes from various sources, the specific auxiliary data 511 is generated by the root key extractor 300 and saved in non-volatile memory. It needs to be stored in a reliable manner. However, even if the entire content of the auxiliary data is publicly known, without complete knowledge of the specific digital value, it does not constitute a specific security vulnerability.
[0086] The root key extractor 300 facilitates the storage and retrieval of auxiliary data through the data storage access digital controller 520 to access specific auxiliary data 511 of various indices. The root key extractor 300 is responsible for providing the data to be loaded by the digital input X.n Each root key X600 started by 411 creates specific auxiliary data X n 511. The specific auxiliary data 511 is calculated based on the encryption algorithm, for each root key X600 and loading digital input X n 411 combination for customization.
[0087] To ensure accessibility of the valid auxiliary data set 510, a non-volatile memory system should be used. This non-volatile memory can be integrated on-chip or off-chip, depending on the specific implementation requirements. The non-volatile memory securely stores the specific auxiliary data 511, protecting it from power supply effects.
[0088] The effective auxiliary data group 510 and the data storage access digital controller 520 realize the connection with each load digital input X n 411 and root key X600 associated with specific auxiliary data X n The efficient retrieval of 511 facilitates the disentanglement and recovery process of each target root key X 600.
[0089] Figure 5A The integrated non-volatile memory is shown for storing and retrieving auxiliary data associated with each digital input and root key pair. The root key extractor 300 loads the digital input X600 for each root key and n 411 Generate specific auxiliary data X n 511. Non-volatile memory, either on-chip or off-chip, stores auxiliary data, ensuring its availability during the entanglement and recovery process.
[0090] Please refer to Figure 4B The figure shows the loading digital input X in the least significant bit (LSB) first mode. n 411. The figure shows the number sequence X n The sequence can be composed of bytes of any bit size 'p' and can be written or read in least significant bit (LSB) first mode. LSB first mode means that bits are transmitted or processed starting from the least significant bit 413 to the most significant bit 512.
[0091] Please refer to Figure 4C , the figure shows the loading of digital input X n 411 is presented in the most significant bit (MSB) first mode. Figure 4B Similarly, the diagram depicts a sequence of numbers X with bit size 'p' n However, in the most significant bit (MSB) first mode, the bits are transmitted or processed starting with the most significant bit 512 and proceeding gradually toward the least significant bit 413.
[0092] Please refer to Figure 5A , the figure shows that certain auxiliary data X is presented in a least significant bit (LSB) first mode n 511, MSB 512 is indicated. Specific auxiliary data X n 511 with each loaded digital input X n 411 and complements the entanglement and recovery process of the specific root key 600. With a valid digital input X n 410 Similar, valid auxiliary information X n 510 can have any bit size 'q' and can be written or read in least significant bit (LSB) first mode.
[0093] Please refer to Figure 5B and Figure 5C , the figure shows that certain auxiliary data X is presented in a most significant bit (MSB) first mode n 511. The figure shows the digital sequence X of the valid auxiliary data group 510 n , whose bit size is 'q'. In the most significant bit (MSB) first mode, the specific auxiliary data X n The bits 511 are transmitted or processed starting from the most significant bit 512 and then proceeding towards the least significant bit 513.
[0094] from Figure 4B and 4C as well as Figure 5A and 5B and Figure 5C The bit sizes 'p' and 'q' derived from the above can vary depending on the specific implementation and requirements of the cryptographic system. In addition, the load digital input X can be written or read in LSB first and MSB first modes. n 411 and specific assistance data X n The 511's flexibility enhances system versatility and compatibility, enabling seamless integration with a variety of applications and protocols, such as I2C, SPI, and other buses and protocols.
[0095] Please refer to Figure 6 , which describes the root key X, indexed by RK x,j , each bit 610 and its association with the valid auxiliary data set 510 and the valid digital input 410. Each root key X600 has a unique index and can have a variable length 'j' depending on the specific implementation requirements. The root key X600 serves as the fundamental cryptographic key for secure operations within the system.
[0096] Associated with each root key X600 is a corresponding valid helper data set 510 and a valid digital input 410. The valid helper data set 510 includes data stored in non-volatile memory that is used to supplement the entanglement and recovery process for a particular root key X600. The valid helper data set 510 entries are initially created by the root key extractor and are designed to be stored in non-volatile memory on-chip or off-chip.
[0097] Similarly, valid digital inputs 410 consist of arbitrary user-defined and / or automatically generated digital data that can initiate and contribute to the entanglement of the root key X600. These loaded digital inputs 411 can come from a variety of sources, such as user input, chip ID, application-specific numbers, or local hard-coded memory. They can have any bit size and can be modified as needed to enhance the security and flexibility of the cryptosystem.
[0098] The association of each root key X600 with its corresponding valid auxiliary data set 510 and valid digital input 410 ensures strong cryptographic operations, safeguarding the integrity and confidentiality of sensitive data protected by the root key X600. By entangling the root key X600 with a unique combination of the valid auxiliary data set 510 and valid digital input 410, the system enables more direct interaction with host applications while achieving a high level of security and cryptographic strength.
[0099] Please refer to Figure 3B and 3C , which presents the registration process of the root key extractor 300 in more detail ( Figure 3B ) and restore( Figure 3C )'s input and output data streams.
[0100] Please refer to Figure 3B , the registration process of the root key 600, in which a certain number n of PUF original data, Figure 2 Indicated as E, Figure 3B Indicated as [P a1 、P a2 ,...P an ], used as input to a root key extractor 300, where a corresponds to the index X of a particular auxiliary data 511 n ,exist Figure 3B and 5A The n in 200 is irrelevant. The n PUF raw data obtained from 200 are input to KDF 320, TRNG 330, Fuzzy Extractor 340 and MAC 350, all of which require a variable amount of PUF raw data input between 1 and n.
[0101] TRNG330 uses a certain number n of PUF original data and generates a certain number z of true random numbers for auxiliary data with index a, such as Figure 3B As shown in [S a1 、S a2 、S a3 ,…S az ]. TRNG330 uses a certain number n of PUF raw data and generates a root key X600 in plain text, such as Figure 3B The index shown in is a, which is represented by k a .
[0102] Therefore, KDF 320 uses [S a1 、S a2 、S a3 ,…S az ] as input, and loading digital input 411, such as Figure 3B As shown, and [tkn az 、tkn az 、tkn az ,…tkn az ]like Figure 3B As shown, where tkn az is the input key of KDF320, and the PUF raw data input P ax and random number S ax where x ranges from 1 to z, is the input data of KDF320. KDF320 generates an output binary sequence based on its input, such as [e a1 、e a2 、e a3 、…e az ] as shown.
[0103] Therefore, FPE360 accepts [e a1 、e a2 、e a3 、…e az ] and k a As input, use [e a1 、e a2 、e a3 、…e az ] as input key and k a Perform format-preserving encryption on the input data to produce [g a1 、g a2 、g a3 ,…g az The values generated by FPE360 are stored in Supplementary Material a.
[0104] The fuzzy extractor 340 uses the PUF raw data input, indexed as x, denoted as Pax Because it can be a vector array [P a1 、P a2 ,...P an ], but the same version is used during the registration process and a discrete extracted vector ha is generated, i.e., mathematically, h a It is the only auxiliary data in the recovery process, and the other components constitute the specific auxiliary data 511 value (t az 、s az 、g az ) is encrypted data and is used during the recovery process a , PUF input source 200, loading digital input 411, also known as Token[tkn az 、tkn az 、tkn az ,…tkn az ], and the present system invention.
[0105] MAC350 uses KDF320 to output e ax , and the same version Px of the PUF original data used by the fuzzy extractor 340 during the enrollment process, to generate a message authentication code t az , expressed as [t az ,s az ,g az ], stored in the special auxiliary data 511 as a component, except [g a1 、g a2 、g a3 ,…g az ]、[S a1 、S a2 、S a3 ,…S az ] and h a .
[0106] Thus, the valid helper data set 510 for a single root key 600 is composed of h a This is common to all valid digital inputs 410 for recovering the same root key 600 and also includes as many loading digital inputs 411 entangled in the valid digital inputs 410 (t az ,s az ,g az ) collection, such as Figure 3B and Figure 3C [tkn az ,tkn az ,tkn az ,…tkn az ].
[0107] The vector ha is associated with the root key 600, and each taz ,s az ,g az The version of is associated with the entanglement of the loaded digital input 411, namely [tkn az ,tkn az ,tkn az ,…tkn az ].
[0108] Please refer to Figure 3C , the root key 600 recovery process, in which a different version of the PUF original data P is collected from the PUF input source 200 than in the registration process ax , when used as the original input, it is marked as P ax ”, and provide it to the fuzzy extractor 340 as input. During the root key 600 recovery process, the fuzzy extractor 340 loads the vector h a and with P ax ” inputs to generate a corrected P ax " version, marked as P ax '. Therefore, KDF 320 uses the vector s from the specific auxiliary data 511 ax , the same load digital input 411 or tkn used to create or associate with the root key a az , and combined with the output of the fuzzy extractor 340, a vector e is generated ax '. KDF 320 uses tkn az As the input key, and P ax ' and Sax as input data to feed the MAC unit 350, with its output e ax '. Therefore, MAC350 receives e ax '、P ax ' and t in the specific auxiliary data 511 ax , to verify e ax 'As a valid e ax , used to decrypt g by FPE360 ax , effectively recovering the root key a,k a , by using the proven e ax Decrypt g as input key ax .
[0109] exist Figure 3C The e mentioned in ax ' and P ax The value of ' should be the same as Figure 3B e used during the registration process ax and P ax The same value is expected to be used by FPE360 through e ax Successfully decrypted g ax If during the registration and recovery processax ' and e ax The value is different, which may be caused by loading digital input 411tkn az Incorrect, and / or PUF raw data measurement P ax "The data corresponding to the enrollment process has too many bit differences and instabilities, so it is necessary to assume and have a PUF input source that matches the expected static and dynamic entropy, including bit errors. If the recovery process fails, Figure 3A The root key extractor 310 in will output an error message.
[0110] Please refer to Figure 3D , the root key extractor 300 update process, wherein a new load digital input token 411 is added as a valid input to use another part of the auxiliary data based on the data index a z , and uses the new expected loading digital input token 411 to entangle the target root key with the convergence to recover the specific root key 600. The process begins by recovering the root key using the already valid loading digital input 411 and the related specific auxiliary data 511, which are used to recover the root key. a1 , ta1, sa1 and h a Indicates that tkn a1 , ta1, sa1 are not necessarily the first sets created initially, but can actually be any previously valid sets. To simplify the explanation, we Figure 3D In the example, we write it as a1, because in reality z and z+1 are not necessarily consecutive indices. Enter the new number into tkn az+1 The process of adding to the target root key 600 is the same as Figure 3C The recovery process is exactly the same as described in , so a valid other tkn az Enter. In order to continue the process and add a new tkn az+1 , obtained by MAC350 az , for example in Figure 3D Indicated as e a1 , used to decrypt g read from the auxiliary data az k in a , and with Figure 3B The registration process is the same as described in a A new version of e (denoted as e az+1 ) is encrypted into g az+1 To save in and want to add to the valid input tkn az+1 The new loading number in the list is entered in a new section of the associated auxiliary data 411. az+1 、s az+1 and t az+1 How to obtain Figure 3BThe registration process is exactly the same as described in Figure 3D The are added after the recovery process.
[0111] Overall, Figure 3D A combination of recovery and re-registration is described in order to associate as many new loading digital inputs 411 as possible with new specific assistance data 511 into said valid assistance data set 510 for a specific root key 600 .
[0112] Intended use case: Dynamic PUF-based secure root key system for multifunctional electronic devices
[0113] In this intended use example, we consider an electronic device driven by a microcontroller unit (MCU) that incorporates the present application. The purpose of the system is to enhance the security and integrity of various critical functions within the electronic device.
[0114] Secure Boot (Root Key 1): The first root key, Root Key 1, is dedicated to secure boot operations. It ensures the authenticity and integrity of the device firmware during the boot process. The MCU uses Root Key 1 to verify the digital signature of the firmware, ensuring that only trusted and authorized firmware is executed, thereby mitigating the risk of unauthorized modification or malicious code injection. In addition, Root Key 1 assists in creating the digital input required to recover Root Key 2. This ensures that Root Key 2 can still be recovered even in the event of a device reset or power outage, maintaining the continuity of the secure firmware update operations it is responsible for. Root Key 1 may be associated with two sets of digital inputs and corresponding administrator and user permissions to boot the device.
[0115] Secure Firmware Update (Root Key 2): Root Key 2 is specifically used for secure firmware updates. It is used to authenticate and verify the integrity of firmware updates received by electronic devices. The MCU uses Root Key 2 to verify the digital signature of the firmware update before applying the update. This process ensures that only authorized, untampered firmware is installed, preventing potential security vulnerabilities. With Root Key 2 management, only the administrator's digital input can be reused as the digital input to launch Root Key 2 and perform firmware updates.
[0116] System Applications (Root Key 3): Root Key 3 is used to protect system-level applications in electronic devices. This Root Key 3 is unique because it receives a numeric input directly from the end user, similar to a password. The user provides a specific numeric input, such as an encryption key, PIN code, or password, which is used for startup and entangled with Root Key 3. This personalized input adds an additional layer of security, ensuring that system applications can only be accessed and operated by authorized users.
[0117] Subsystem and application specific root keys (Root Key 4, Root Key 5, etc.):
[0118] A dynamic, multiple root key system, entangled with various digital input sources, can be expanded to accommodate different subsystems and applications within an electronic device. Root Key 4, Root Key 5, and so on, are designated for specific subsystems or applications, providing isolated and secure channels for each function. These root keys are generated using their respective input data, ensuring that the cryptographic service modules associated with each subsystem or application operate using highly secure and independent root keys. This isolation prevents any potential compromise or unauthorized access from affecting other subsystems or applications, enhancing the overall security of the electronic device.
[0119] By using this application in the MCU of an IoT device, a strong security architecture is established. The architecture implements secure boot, authenticated firmware updates, secure system applications, and isolated subsystems, all of which utilize cryptographic service modules and highly secure root keys, while allowing external digital input entanglement to bring the high security characteristics of PUF technology into the application security domain, rather than being completely limited to intrinsic entanglement. In some cases, this can simplify security design and reduce power consumption, although this is not always ideal, so these external digital inputs are optional.
[0120] As described above, the present application discloses a system that utilizes a physically unclonable function (PUF) and a proposed digital algorithm system to entangle multiple root keys and generate true random numbers. The present application has advantages over existing PUF technology, including the ability to create and recover multiple true random root keys and true random numbers independently of the boot cycle. These features enhance security, enable the establishment of isolated secure channels, and provide flexibility in key management throughout the device life cycle. The present application is compatible with existing electronic devices and can be integrated with minimal design modifications. The disclosed invention has the ability to establish secure communication channels, generate true random numbers, provide unique intrinsic digital identities, etc., paving the way for a new era of secure interaction.
[0121] The embodiments and / or implementation methods described above are only used to illustrate the preferred embodiments and / or implementation methods for realizing the technology of the present application, and do not impose any form of limitation on the implementation methods of the technology of the present application. Any person skilled in the art may make slight changes or modifications to other equivalent embodiments without departing from the scope of the technical means disclosed in the content of the present application, but they should still be regarded as technologies or embodiments that are essentially the same as those of the present application.
Claims
1. An electronic system, characterized in that: For creating and recovering a large number of inherently unique digital sequences, the electronic system comprises: a physical unclonable function input source that outputs a different bitstream of PUF raw data after each different measurement request, wherein the measurement request can be independent of the boot cycle request at any given time; a key extractor that generates a key and associated digital assistance data in a registration mode, adds new associated digital assistance data in an update mode based on new user input, entangles the associated digital assistance data with the root key, and recovers the generated root key using sufficiently valid input and PUF-derived raw data; A set of encrypted digital inputs, which may be created, stored, or volatilized from various sources and correspond to a digital sequence of a certain length, and are accessed by the root key extractor; a set of auxiliary data, each portion of which is associated with a specific root key and one or more encrypted digital inputs, and is accessed by the root key extractor; and a cryptographic service module using as input the root key created or recovered by the root key extractor; The output of the root key extractor includes: Obtaining a certain number of bit streams from a source of the PUF original data, the PUF original data being used to generate a true random number and an original true random root key; a digital input sequence obtained from any user-defined digital input, the digital input sequence may be of any bit length and may come from a variety of sources; A specific portion of auxiliary data generated during the root key registration process or updated during the update process, or used as input during the root key recovery or update process, is entangled with a specific user-defined digital input; A specific portion of auxiliary data stored locally or externally.
2. The electronic system according to claim 1, wherein: The root key extractor locally accesses one or more indexed non-volatile memories via standard serial and / or bus peripheral communication protocols.
3. The electronic system according to claim 1, wherein: The root key extractor operates in a root key registration mode, does not use any user-defined input, but instead uses system-defined hard-coded input, and creates an auxiliary data index portion related to the root key in accessible non-volatile memory.
4. The electronic system according to claim 1, wherein: The root key extractor operates in a root key recovery mode using user-defined input and creates an auxiliary data index portion associated with the root key in accessible non-volatile memory.
5. The electronic system according to claim 1, wherein: The root key extractor operates in a root key update mode using user-defined input and appends new recovery data blocks to the auxiliary data index portion associated with the root key in accessible non-volatile memory. The electronic system according to claim 1 , wherein: The root key extractor operates in any mode associated with the root key and obtains raw data from a physically unclonable function that is different from the functions that have been used for other and many other root key extractor operating modes.
7. A root key extractor, characterized in that A root key extractor for extracting a plurality of unique inherent digital root keys having a plurality of non-random and random digital inputs and producing a digital output and its own digital input auxiliary data, the root key extractor comprising: A key extractor controller, a digital circuit responsible for managing system input and output messages, and controlling the data sequence and operation flow between each unit that constitutes the root key extractor; A key derivation function that generates a unique random key used to encrypt a specific root key generated by the true random number generator during enrollment, taking as input a user-defined digital input, a true random number, and a discrete measured version of the PUF source data, which is different for each measurement; a true random number generator that uses a certain amount of input from the PUF source and generates as many true random numbers as the system needs, which are used to generate the original root key and create random vectors in the auxiliary data used in the root key recovery process; a fuzzy extractor that generates a specific vector from a version of the PUF source original data during the enrollment process, and uses the latest specific vector to calibrate the new version of the PUF source data to the initial data measured and used during the enrollment process to create the root key; a message authentication code unit that generates a vector for verifying a specific key based on a specific bitstream value from a PUF source, the bitstream from the PUF source coming directly from the PUF source during enrollment and from a fuzzy extractor correction mechanism during recovery; a format-preserving encryption unit, which will function as a symmetric encryption and decryption unit to encrypt the root key in the auxiliary data during the registration process and decrypt the root key for output after successful recovery is verified by the message authentication code unit; and a memory storage device for accessing a set of auxiliary data during the enrollment process, for using said auxiliary data in a write mode of operation, and for reading said auxiliary data in a restore mode, during which digital values created by said fuzzy extractor, said format-preserving encryption unit, said true random number generator, and said message authentication code unit are stored; The root key extractor operates in a registration mode and generates a key based on the input; wherein in recovery mode, the originally generated root key is recovered based on the same predictable digital input and a different unpredictable digital input from a PUF source with a certain number of bit variations; In the update mode, the registration mode and the recovery mode are combined to add an additional root key digital input entanglement.
8. The root key extractor according to claim 7, characterized in that The key extraction controller operates in a root key registration mode, using user-defined input and random bit data from a physical unclonable function source to generate a random root key and associated auxiliary material.
9. The root key extractor according to claim 7, characterized in that The key extraction controller operates in root key recovery mode, using the same user-defined input as the target root key, the associated helper data created in enrollment mode, and random bit data from a physical unclonable function source.
10. The root key extractor according to claim 7, characterized in that The key extraction controller operates in a root key update mode, using additional user-defined input, random bit data from a physically unclonable function source, and associated auxiliary data to append a new recovery data block to the associated root key auxiliary data portion to include the new user-defined input as an authorized digital input to successfully recover the same root key.
Citation Information
Patent Citations
Ultra-lightweight RFID authentication method
CN110677254A
Key generation system and method for efficiently extracting DRAM PUF
CN114091068A