Integrated circuit and computer readable medium for generating cryptographic keys

By introducing a one-time programmable memory bits and life cycle management system into integrated circuits, an encryption key that depends on life cycle state is generated, which solves the problems of key leakage and data access in electronic devices, and realizes the security of keys and data accessibility.

CN114157422BActive Publication Date: 2024-12-31CRYPTOGRAPHY RESEARCH INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202111457136.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2015-12-16
Filing Date
2016-12-15
Publication Date
2024-12-31
Estimated Expiration
2036-12-15

AI Technical Summary

Technical Problem

During the life cycle of an electronic device, how to protect the key from leakage, prevent unauthorized use, and ensure that the end user can access their data when the device is returned.

Method used

设计了一种集成电路,包含一次性可编程存储器位、生命周期值生成电路、单向函数电路和密钥融合电路,通过生成依赖生命周期状态的加密密钥,实现密钥的提前、回滚和个性变化,确保密钥的安全性和可访问性。

Benefits of technology

It effectively protects data and communication on the device, prevents unauthorized access, and ensures the security of the key and data accessibility when the device life cycle changes, and meets the needs of end users.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114157422B_ABST
    Figure CN114157422B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to methods, integrated circuits, and computer-readable media for generating cryptographic keys. A software-inaccessible secret key value is scrambled according to a register consisting of one-time programmable (OTP) bits. A first OTP register is used to change the scrambling of the secret key value when a lifecycle event occurs. A second OTP register is used to cancel a change in the scrambling of the secret key. A third OTP register is used to affect a permanent change in the scrambling of the secret key. The scrambled value of the secret key (whether changed or unchanged) is used as a seed to generate a key for cryptographic operations performed by a device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with international application number PCT / US2016 / 066762, international application date December 15, 2016, entering the Chinese national stage on June 11, 2018, Chinese national application number 201680072688.1, and invention name “Method for generating encryption keys, integrated circuit and computer-readable medium”.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims the benefit of U.S. Provisional Patent Application Serial No. 62 / 268,018, filed on December 6, 2015, and entitled “CRYPTOGRAPHIC MANAGEMENT OF LIFECYCLE STATES,” which is incorporated herein by reference for all purposes. Technical Field

[0004] Embodiments of the present disclosure relate generally to encryption techniques, and more particularly, to methods and integrated circuits for generating encryption keys. Background Art

[0005] Many electronic devices (e.g., cell phones, tablet computers, set-top boxes, etc.) use secure encryption keys. For example, these keys can be used to protect data on the device, protect communications, and / or authenticate the device. As the device undergoes various lifecycle events, it is desirable to protect the keys used by the device from being disclosed (thereby protecting data on the device, preventing unauthorized use, etc.).

[0006] For example, an end user, after using a device for a period of time and storing sensitive data therein, may encounter the need to send the device back to the manufacturer for repair. In this case, the end user does not want the manufacturer or repair center to access the sensitive data stored on the device. However, the end user also wants this data to be accessible to them when the device is returned. Summary of the invention

[0007] According to a first aspect of the present disclosure, an integrated circuit is provided. The integrated circuit includes: a circuit for providing a secret key value, the secret key value is inaccessible to software controlling the integrated circuit; a one-time programmable memory bit, each one-time electrically programmable semiconductor memory bit is limited to a change in value from a corresponding initial value, the one-time programmable memory bit includes a life cycle advance bit stored by a first subset of the one-time programmable memory bits, a life cycle rollback bit stored by a second subset of the one-time programmable memory bits, and a personality bit stored by a third subset of the one-time programmable memory bits; a life cycle value generation circuit, which is configured to generate a life cycle value from a life cycle advance value stored by the life cycle advance bit and a life cycle rollback value stored by the life cycle rollback bit using a life cycle value generation process; a one-way function circuit, which is used to generate a key split value based on a personality bit value, a life cycle value, and a secret key value using a one-way processing function; and a key fusion circuit, which is used to generate multiple encryption key values ​​based on the key split value.

[0008] According to a second aspect of the present disclosure, there is provided a computer-readable medium storing a representation of a circuit component, the circuit component comprising: a circuit for providing a secret key value, the secret key value being inaccessible to software controlling an integrated circuit; one-time programmable memory bits, each one-time programmable memory bit being limited to a single change in value from a corresponding initial value, the one-time programmable memory bits comprising a lifecycle advance bit stored by a first subset of the one-time programmable memory bits, a lifecycle rollback bit stored by a second subset of the one-time programmable memory bits, and a personality bit stored by a third subset of the one-time programmable memory bits; a lifecycle value generation circuit for generating a lifecycle value using the lifecycle value The process generates a life cycle value from a life cycle advance value stored by a life cycle advance bit and a life cycle rollback value stored by a life cycle rollback bit, the life cycle value including a first life cycle state value generated from a first life cycle advance value and a first life cycle rollback value; a one-way function circuit, which is used to use a one-way processing function to generate a key split value based on a personality bit value, a life cycle value and a secret key value, the key split value including a first key split value based on a secret key value, a first personality value and a first life cycle state value; and a key fusion circuit, which is used to generate multiple encryption key values ​​based on the key split value, the multiple encryption key values ​​including a first encryption key generated from the first key split value.

[0009] According to a third aspect of the present disclosure, an integrated circuit is provided, which includes: one-time programmable memory bits, each one-time electrically programmable semiconductor memory bit is limited to a one-time change in value from a corresponding initial value, the one-time programmable memory bits include life cycle advance bits stored by a first subset of the one-time programmable memory bits, life cycle rollback bits stored by a second subset of the one-time programmable memory bits, and personality bits stored by a third subset of the one-time programmable memory bits; a life cycle value generation circuit, which is configured to use a life cycle value generation process to generate a life cycle value from the life cycle advance value stored by the life cycle advance bit and the life cycle rollback value stored by the life cycle rollback bit; a one-way function circuit, which is used to use a one-way processing function to generate a key split value based on the personality bit value, the life cycle value and the secret key value; and a key fusion circuit, which is used to generate multiple encryption key values ​​based on the key split value. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 is a block diagram illustrating a lifecycle management system.

[0011] Figure 2 is a flow chart illustrating a method of generating a lifecycle state-dependent encryption key.

[0012] Figure 3 is a block diagram illustrating a device including a password lifecycle management system.

[0013] Figure 4A and Figure 4B is a flow chart illustrating a method of configuring and deconfiguring a life cycle state of password management.

[0014] FIG. 5A to FIG. 5C An example life cycle state generation process is shown.

[0015] Figure 6 is a flow chart illustrating a method of generating lifecycle-dependent encryption keys.

[0016] Figure 7 is a diagram illustrating the generation of accessible key split values.

[0017] Figure 8 It is a block diagram of the processing system. DETAILED DESCRIPTION

[0018] Many electronic devices (e.g., cell phones, tablet computers, set-top boxes, etc.) use secure encryption keys. For example, these keys can be used to protect data on the device, protect communications, and / or authenticate the device. As the device undergoes various lifecycle events, it is desirable to protect the keys used by the device from being disclosed (thereby protecting data on the device, preventing unauthorized use, etc.).

[0019] For example, an end user, after using a device for a period of time and storing sensitive data therein, may encounter the need to send the device back to the manufacturer for repair. In this case, the end user does not want the manufacturer or repair center to access the sensitive data stored on the device. However, the end user also wants this data to be accessible to them when the device is returned.

[0020] In one embodiment, a secret key value that is not accessible to software (e.g., hardwired into the device) is scrambled according to a register consisting of one-time programmable bits. These one-time programmable (OTP) bits can only be changed from their initial value to another value once by hardware design, and cannot be returned to the initial value (e.g., a bit that reflects whether an on-chip fuse has been blown or is still intact).

[0021] Whenever a lifecycle event occurs (e.g., a device is sent to a repair center), a first of the OTP registers is used to change the scrambling of the secret key value. By changing the scrambling of the secret key value, the key used by the device is also changed, thereby preventing data, authorizations, or authentications previously used by the device from being copied or used (e.g., by repair center personnel).

[0022] The second OTP register in the OTP register is used to undo the change to the scrambling of the secret key. Thus, the second OTP register can "restore" the key used by the device to its pre-lifecycle event value, thereby restoring the ability to use the data, authorization and / or authentication used before the lifecycle event.

[0023] The third of the OTP registers is used to effect a permanent change to the scrambling of a secret key, thereby permanently preventing data, authorizations, or authentications from being accessed or used. For example, the bits in this register may be used when a user sells a device and therefore does not want the new owner to read the previous owner's data, or use authorizations and authentications associated with the previous owner.

[0024] Figure 1 is a block diagram showing a life cycle management system. Figure 1 In the embodiment, the system 100 includes a one-time programmable (OTP) memory 120, a life cycle value generator 130, a one-way function 140, a key fusion 150, a secret key 170, and an OTP programming circuit 180. The OTP memory 120 includes a life cycle advance register 121, a life cycle rollback register 122, and a personality register 123.

[0025] The OTP memory 120 may be, for example, a one-time electrically programmable semiconductor memory (e.g., manufactured on a semiconductor substrate or using semiconductor materials). The bits stored by the OTP memory 120 can only be changed from their initial value to another value once by hardware design. Once the bits stored by the OTP memory 120 are electrically changed from the initial value, they cannot be returned to their initial value. For example, the bits comprising the OTP memory 120 may be implemented as "fused" bits. These fused bits undergo an irreversible physical process (e.g., destruction of the conductive element) once they are changed (i.e., blown), and therefore cannot be changed back to their initial state.

[0026] The OTP programming circuit 180 is operably coupled to the OTP memory 120. The OTP programming circuit 180 is operably coupled to the OTP memory 120 to program bits in the OTP memory 120 (e.g., blow fuses to change the values ​​of the lifecycle advance register 121, the lifecycle rollback register 122, the personality register 123, etc.). The OTP programming circuit 180 can be controlled to program bits in the OTP memory 120 (e.g., blow fuses to change the values ​​of the lifecycle advance register 121, the lifecycle rollback register 122, the personality register 123, etc.). Figure 1 1 (not shown) to change the bits in the OTP memory 120. This processor and / or software can change the bits in the OTP memory 120 in response to commands from a user of the device.

[0027] The secret key 170 is operably coupled to the one-way function 140. The secret key 170 (also referred to as a device generated one-time programmable key split - DGOK) stores a secret key value 175 in hardware. The secret key 170 provides the secret key value 175 to the one-way function 140. The secret key 170 may be embedded, for example, in a netlist of the device, an area of ​​secure flash memory, or some other non-volatile form / circuitry. In one embodiment, the secret key 170 stores a 256-bit secret key value 175.

[0028] The lifecycle advance register 121 is operably coupled to the lifecycle value generator 130. The lifecycle advance register 121 stores a lifecycle advance value 125. The OTP memory 120 provides the lifecycle advance value 125 stored by the lifecycle advance register 121 to the lifecycle value generator 130. The lifecycle rollback register 122 is operably coupled to the lifecycle value generator 130. The lifecycle rollback register 122 stores a lifecycle rollback value 126. The OTP memory 120 provides the lifecycle rollback value 126 stored by the lifecycle rollback register 122 to the lifecycle value generator 130.

[0029] The life cycle value generator 130 receives the life cycle advance value 125 and the life cycle rollback value 126 from the OTP memory 120. The life cycle value generator 130 generates a life cycle state value 135. The life cycle value generator 130 uses a life cycle state generation process / function to process the life cycle advance value 125 and the life cycle rollback value 126. This life cycle state generation process generates the life cycle state value 135 from the life cycle advance value 125 and the life cycle rollback value 126. The life cycle state value 135 is provided to the one-way function 140.

[0030] The personality register 123 is operably coupled to the one-way function 140. The personality register 123 stores the personality value 127. The OTP memory 120 provides the personality value 127 stored by the personality register 123 to the one-way function 140. In some embodiments, a processor and / or software on a device having the system 100 may be able to read the contents of one or more of the lifecycle advance register 121, the lifecycle rollback register 122, and the personality register 123 from the OTP memory 120, or otherwise obtain one or more of the lifecycle advance value 125, the lifecycle rollback value 126, or the personality value 127.

[0031] The one-way function 140 generates a key split value 145 using the secret key value 175, the life cycle state value 135, and the personality value 127. The one-way function 140 can generate the key split value 145 by a process that includes, for example, using the personality value 127 as a key tree path and using the secret key value 127 as an Advanced Encryption Standard (AES) key. Likewise, the process by which the one-way function 140 is used to generate the key split value 145 can include using the life cycle state value 135 as a key tree path and using the result of a previous process of the personality value 127 and the secret key value 175 as an AES key. Other one-way functions / processes can be used to generate the key split value 145 from the secret key value 175, the life cycle state value 135, and the personality value 127. Therefore, it should be understood that any difference (even a one-bit difference) between a given life cycle state value 135 or a given personality value 127 will result in a different key split value 145. In addition, if the one-way function process is appropriately selected, determining the secret key value 175 from the key split value 145 should be economically infeasible, even when the lifecycle state value 135, lifecycle advance value 125, lifecycle rollback value 126 and / or personality value 127 are known.

[0032] The key split value 145 is provided to the key merge 150. Based on the key split value 145 and the base key identification value 151, the key merge 150 generates an encryption key 160 for use by the device in encryption operations. Figure 1Specifically, Figure 1 , keys 160 include key #1 161, key #2 162, and key #3 163. Keys 160 may include, for example, elliptic curve cryptography (ECC) keys for signing (i.e., authentication), ECC private keys for encryption / decryption; AES-256 device-specific keys and / or AES-128 device-specific keys. Other keys for other purposes may also be generated by key fusion 150 from key split values ​​145.

[0033] In one embodiment, the device with system 100 can go through various life cycles. These life cycles may need to protect and / or change the desire of key 160. For example, after secret key 170 has been provisioned with secret key value 175, the device can be subjected to laboratory debugging or silicon debugging. This can occur, for example, after packaging, and the device and / or IC keep system 100 back to the supplier for initial debugging and classification. In another example, the device can be used on site by the user and then sent back to the OEM, ODM, repair shop or chip supplier for fault analysis. When the fault of the device is repaired, the device can be shipped back to the end user. In this case, it is hoped that the device provides the same function (and stored data) as the function available before the device is sent for repair. In another example, the end user can sell the device to another user. In this case, the first user may not want to disclose their key (and their data) to the second user.

[0034] In one embodiment, personality register 123 is configured with an initial value, such as a sixteen (16) bit zero value (i.e., 0x0000h). During operation, the bits of personality register 123 may be continuously changed by OTP programming 180 in the manner of a thermometer-coded counter. Such changes to the bit values ​​in personality register 123 by OTP programming 180 may be controlled by a privileged process (e.g., an operating system) running on the device. Since the bits of OTP memory (and therefore personality register 123) may only be changed once, when all bits of personality register 123 have been changed (e.g., set to "1" for a value of 0xFFFFh), attempts to further change the value of personality register 123 may result in a signaled error.

[0035] In one example, a user of the device may cause personality register 123 to be incremented (or otherwise change at least one bit in personality register 123) before relinquishing possession of the device (e.g., to a new owner). In another example, an ODM may increment (or otherwise change at least one bit in personality register 123) before sending the device to an OEM. This ensures that no secrets are "left behind" for discovery by the ODM. In these examples, the user and / or ODM may read the contents of personality register 123 to ensure that system 100 will generate an encryption key 160 that is different from the encryption key 160 generated before the contents of personality register 123 were changed.

[0036] In one embodiment, the lifecycle advance register 121 is configured with an initial value, such as a sixteen (16) bit zero value (i.e., 0x0000h). Similarly, the lifecycle rollback register 122 is configured with an initial value, such as a sixteen (16) bit zero value (i.e., 0x000h). During operation, the bits of the lifecycle advance register 121 and the bits of the lifecycle rollback register 122 can be continuously and independently changed by the OTP programming 180 in the manner of a thermometer-coded counter.

[0037] The changes to the contents of the lifecycle advance register 121 and the contents of the lifecycle rollback register 122 by the OTP programming 180 may be controlled by a privileged process (e.g., an operating system) running on the device. The changes to the values ​​of the individual bits in the lifecycle advance register 121 and the bits of the lifecycle rollback register 122 by the OTP programming 180 may be controlled by the corresponding privileged processes running on the device. For example, for a 16-bit lifecycle advance register 121 and a 16-bit lifecycle rollback register 122, only up to 16 privileged processes are allowed to each change the value of a single corresponding bit in the lifecycle advance register 121 and / or the lifecycle rollback register 122. In other words, for example, in order to change a specific bit in the lifecycle advance register 121 or the lifecycle rollback register 122, authorization will need to be obtained from the corresponding system authorization process (e.g., a root process). Therefore, in this example, the device may have up to sixteen (16) of these "root" authorization entities.

[0038] The lifecycle advance register 121 may be incremented (or otherwise have the one-time programmable bits changed) when it is desired to give the device a temporary set of encryption keys 160. For example, when a user sends a device to an OEM for debugging / diagnostics, the user may control the device to increment the lifecycle advance register 121. Thus, the OEM will not receive or be able to economically discover the set of keys 160 that the device was using before the lifecycle advance register 121 was incremented. Instead, the OEM will be able to obtain temporary keys 160 generated from the new lifecycle state value 135 (which is generated from the changed lifecycle advance value 125).

[0039] When the OEM returns the device to the user, the user can restore the original key 160 by incrementing (or changing the appropriate one-time programmable bit) in the lifecycle rollback register 122. Thus, incrementing the lifecycle advance register 121 causes the temporary key 160 to be generated, and incrementing the lifecycle rollback register 122 cancels the effect and causes the original key 160 to be generated. The lifecycle value generator 130 is configured so that certain values ​​stored in the lifecycle rollback register 122 cancel the effect of certain values ​​(e.g., equal values) stored in the lifecycle advance register 121. The lifecycle value generator 130 can be configured so that other pairings can be selected, whereby the selected lifecycle rollback value 126 cancels the effect of the corresponding lifecycle advance value 125.

[0040] In one embodiment, changes to the lifecycle advance register 121 may be mixed. For example, user #1 may increment the lifecycle advance register 121 to use a first set of temporary keys 160, then user #2 may increment the lifecycle advance register 121 to use a second set of temporary keys 160. User #2 (or user #1) may then increment the lifecycle rollback register 122 to return to using the first set of temporary keys. The lifecycle rollback register 122 may be incremented again to return to using the original keys 160.

[0041] Since the bits of the OTP memory (and therefore the lifecycle advance register 121 and the lifecycle rollback register 122) can only be changed once, when all bits of the lifecycle advance register 121 or the lifecycle rollback register 122 have been changed (for example, set to "1" for the value 0xFFFFh), attempting to further change the values ​​of the lifecycle advance register 121 and the lifecycle rollback register 122 may result in a signaling notification error.

[0042] Figure 2 is a flow chart illustrating a method of generating a lifecycle state-dependent encryption key. Figure 2The steps shown may be performed by one or more elements of system 100. A device is configured with a secret key that is inaccessible via software (202). For example, system 100 may be configured with secret key 170 for providing secret key value 175 to one-way function 140. The device is configured such that secret key 170 (and therefore secret key value 175) cannot be read or written by software running on the device.

[0043] Initial values ​​are configured to a one-time programmable (OTP) memory (204). For example, the OTP memory 120 (and therefore, in particular the lifecycle advance register 121, the lifecycle rollback register 122, and the personality register 123) may be configured with an initial value that can only be changed once. For example, when the OTP memory 120 is composed of fused bits, the initial (i.e., intact or un-fused) state of the fusible link determines the initial value stored by the OTP memory 120 (and therefore, in particular the lifecycle advance register 121, the lifecycle rollback register 122, and the personality register 123). In another example, if the OTP memory 120 includes an area of ​​secure flash memory (or some other non-volatile memory configured to be programmed only once), the initial value stored by the OTP memory 120 (and therefore, in particular the lifecycle advance register 121, the lifecycle rollback register 122, and the personality register 123) may be programmed by a manufacturer (OEM or ODM, etc.).

[0044] Receive a lifecycle advance value from the OTP memory (206). For example, the lifecycle value generator 130 may receive the lifecycle advance value 125 from the OTP memory 120 (and in particular the lifecycle advance register 121). Receive a lifecycle rollback value from the OTP memory (208). For example, the lifecycle value generator 130 may receive the lifecycle rollback value 126 from the OTP memory 120 (and in particular the lifecycle advance rollback register 122).

[0045] Generate a life cycle state value from the life cycle advance value and the life cycle rollback value (210). For example, the life cycle value generator 130 can use a life cycle state generation process to calculate the life cycle state value 135 based on the life cycle advance value 125 and the life cycle rollback value 126. The example life cycle state generation process can include or a bitwise exclusive OR (XOR) of the life cycle advance value 125 and the life cycle rollback value 126 to produce the life cycle state value 135.

[0046] A personality value is received from the OTP memory (212). For example, the one-way function 140 may receive the personality value 127 from the OTP memory 120 (and in particular the personality register 123). A key split value is generated based on the secret key value, the personality value, and the life cycle state value (214). For example, the one-way function 140 may generate the key split value 145 using the secret key value 175, the life cycle state value 135, and the personality value 127 as inputs to a one-way scrambling function. An example scrambling function may include using the personality value 127 and / or the life cycle state value 135 as a key tree path with the secret key value 175 as an AES key (or vice versa).

[0047] Generate an encryption key from the key split value (216). For example, key fusion 150 can generate a key 160 based on key split value 145 and base key identifier 151. Key 160 can include, for example, an ECC key for signing; an ECC private key for encryption / decryption; an AES-256 device-specific key; and / or an AES-128 device-specific key.

[0048] Figure 3 is a block diagram showing a device including a password lifecycle management system. Figure 3 In the embodiment, the device 300 includes a lifecycle key generator 310, a processor 390, a user input 391, an interface 392, and a test interface 393. The lifecycle key generator 310 includes a one-time programmable memory 320, a lifecycle value generator 330, a device generated one-time programmable key split (DGOK) 370, a key split generator 340, a key generator 350, an OTP programmer 380, and an OTP reading circuit 381. It should be understood that the one-time programmable memory 320 can be, for example, a one-time electrically programmable semiconductor memory (e.g., manufactured on a semiconductor substrate or using semiconductor materials).

[0049] DGOK 370 (also referred to as a secret key) is operably coupled to the key splitting generator 340. DGOK 370 stores secret values ​​in hardware. In one embodiment, the DGOK may be stored in a secure (i.e., inaccessible to the processor 390 and / or the test interface 393) location of the OTP memory 320. In another embodiment, the DGOK 370 may be embedded in the design (i.e., netlist) or configuration of the device 300, such that the DGOK 370 is inaccessible (i.e., cannot be read, written, calculated, or otherwise or discerned) via the processor 390 and / or the test interface 393. DGOK 370 provides secret values ​​to the key splitting generator 340. In one embodiment, the DGOK 370 provides a 256-bit secret value to the key splitting generator 340.

[0050] The lifecycle advance register 321 is operably coupled to the lifecycle value generator 330. The OTP memory 320 provides the lifecycle advance value stored by the lifecycle advance register 321 to the lifecycle value generator 330. The lifecycle rollback register 322 is operably coupled to the lifecycle value generator 330. The OTP memory 320 provides the lifecycle rollback value stored by the lifecycle rollback register 322 to the lifecycle value generator 330.

[0051] The life cycle value generator 330 receives the life cycle advance value and the life cycle rollback value from the OTP memory 320. The life cycle value generator 330 uses a life cycle state generation process / function to process the life cycle advance value and the life cycle rollback value. This life cycle state generation process generates a life cycle state value based on the corresponding life cycle advance value and life cycle rollback value it receives. These life cycle state values ​​are provided to the key splitting generator 340.

[0052] The personality register 323 is operably coupled to the key split generator 340. The personality register 323 stores a personality value. The OTP memory 320 provides the personality value stored by the personality register 323 to the key split generator 340. Using the OTP programming 380 and the OTP reading circuit 381, the processor 390 can read and write the contents of one or more of the life cycle advance register 321, the life cycle rollback register 322, and the personality register 323 under the control of software on the device 300. The test interface 393 can also be used to read and write or otherwise obtain and / or set the contents of one or more of the life cycle advance register 321, the life cycle rollback register 322, and the personality register 323.

[0053] The key splitting generator 340 uses DGOK 370, the life cycle state value from the life cycle state generator 330 and the personality value from the personality register 323 to generate the key splitting value. The key splitting generator 340 can generate the key splitting value by a process including, for example, using a given personality value as a key tree path and using DGOK 370 as an AES key. Similarly, the process that the key splitting generator 340 is used to generate the key splitting value can also include using the life cycle state value as a key tree path and using the result of the previous process as an AES key. Other one-way functions / processes can be used to generate the key splitting value from DGOK 370, the life cycle state value and the personality value. Therefore, it should be understood that any difference (even a one-bit difference) between a given life cycle state value or a given personality value will cause different key splitting values ​​to be generated and provided to the processor 390. In addition, if the one-way function process is appropriately selected, it should be economically infeasible to determine DGOK 370 from the key splitting value or the key provided to the processor 390. Likewise, it should not be economically feasible to determine DGOK 370 from any data and / or circuitry that may be accessed or controlled by test interface 393 .

[0054] The key split value output by the key split generator 340 is provided to the key generator 350. Based on the key split value and the base key identification value, the key generator 350 generates an encryption key for use by the processor 390 in an encryption operation. These encryption operations may include, for example, elliptic curve cryptography (ECC) for signing (i.e., authentication), ECC encryption and / or decryption, AES-256 encryption and / or decryption, and / or AES-128 encryption and / or decryption. Other encryption operations used for other purposes may also be generated by the key generator 350 from the key split value.

[0055] The processor 390 is operably coupled to the lifecycle key generator 310. The processor 390 is operably coupled to the lifecycle key generator 310 to at least control the generation of keys by the lifecycle key generator 310. The processor 390 is operably coupled to the key generator 350 of the lifecycle key generator 310 to receive keys that have been generated by the key generator 350. The processor 390 is operably coupled to the OTP memory 320 of the lifecycle key generator 310 to read and write values ​​stored by the OTP memory 320. In particular, the processor 390 is operably coupled to the OTP memory 320 to read and write lifecycle advance registers 321, lifecycle rollback registers 322, and personality registers 323. The test interface 393 is operably coupled to the processor 390 and the lifecycle key generator 310 to control and test circuits. The test interface 393 may be or include, for example, a test access port (TAP) for boundary scan and other serial test / access operations.

[0056] Device 300 can go through various life cycles. By changing the values ​​in life cycle advance register 321 and personality register 323, the keys generated by life cycle key generator 310, used by processor 390 and / or accessible via test interface 393 can be changed. By changing the keys used by processor 390, data (and / or authentication and / or authorization) associated with device 300 is protected from unauthorized use / access. Likewise, by changing the keys accessible by test interface 393, data (and / or authentication and / or authorization) associated with device 300 is protected from unauthorized use / access.

[0057] During operation, the bits of personality register 323 may be continuously (and permanently) changed by processor 390 in response to commands received via user interface 391 and / or interface 392. These changes to personality register 323 may take the form of a thermometer-coded counter. Since changes to personality register 323 are permanent and irreversible, when the value in personality register 323 is changed, the key generated by lifecycle key generator 310 is permanently changed.

[0058] During operation, the bits of the lifecycle advance register 321 may be continuously (and permanently) changed by the processor 390 in response to commands received via the user interface 391 and / or the interface 392. These changes to the lifecycle advance register 321 may take the form of a thermometer-coded counter. Changes to the lifecycle advance register 321 are permanent and irreversible. However, the effects of changes to the lifecycle advance register 321 may be undone by corresponding changes to the lifecycle rollback register 322. Thus, changes to the lifecycle advance register 321 that cause the lifecycle key generator 310 to generate a temporary key may be cancelled by appropriate changes to the lifecycle rollback register 322. Changes to the lifecycle rollback register 322 that cancel the effects of changes to the lifecycle advance register 321 are determined by the lifecycle value generator 330. In other words, the lifecycle value generation process implemented by the lifecycle value generator 330 is configured such that certain values ​​in the lifecycle rollback register 322 cancel the effects of certain values ​​in the lifecycle advance register 321.

[0059] For example, if the lifecycle value generation process is a bitwise XOR operation between the lifecycle rollback register 322 and the lifecycle advance register 321, then as long as the lifecycle rollback register 322 and the lifecycle advance register 321 are equal (e.g., both are 0x0000h, 0x00FFh, etc.), the same resulting lifecycle state value (e.g., 0x0000h) will be provided to the key split generator 340, resulting in the lifecycle key generator 310 providing the same set of keys to the processor 390. If the lifecycle rollback register 322 and the lifecycle advance register 321 are not equal, different lifecycle state values ​​will be provided to the key split generator 340, resulting in the lifecycle key generator 310 providing corresponding different sets of keys to the processor 390.

[0060] To illustrate, consider the above example where the lifecycle value generation process is a bitwise XOR operation between the lifecycle rollback register 322 and the lifecycle advance register 321. If the lifecycle advance register 321 is 0x00FFh, and the lifecycle rollback register 322 is 0x007Fh, the lifecycle state generator will provide the value 0x0080h to the key split generator 340. Since 0x0080h is not equal to 0x000h, and the key split generator 340 implements a one-way function that depends on all input values ​​including the lifecycle state value, the key split values ​​generated by the key split generator 340 (and therefore the keys generated by the lifecycle key generator 310) will be different.

[0061] In another example, if the lifecycle advance register 321 is a thermometer code that increments from 0x00FFh to 0x01FFh, and the lifecycle rollback register 322 is also a thermometer code that increments from 0x007Fh to 0x00FF, the lifecycle state generator will provide a value of 0x00100 to the key split generator 340. Since 0x00100h (the current lifecycle state value) is not equal to 0x0080h (the previous lifecycle state value), the key split value generated by the key split generator 340 (and therefore the key generated by the lifecycle key generator) will be different from the pre-increment value, even though both values ​​represent a single increment of the lifecycle state.

[0062] Therefore, it should be understood that the lifecycle value generator 330 is configured so that some (but not all) values ​​stored in the lifecycle rollback register 322 cancel the effects of some corresponding values ​​stored in the lifecycle advance register 321. In other embodiments, the lifecycle value generator 330 can be configured so that any pairing of a lifecycle advance value and a lifecycle rollback value cancels (or cannot undo) the effect of the corresponding lifecycle advance value.

[0063] Figure 4A and Figure 4B is a flow chart illustrating a method of configuring and deconfiguring a life cycle state of password management. Figure 4A and Figure 4B The steps in can be performed by one or more elements of the system 100 and / or the device 300. A first life cycle state value is generated from the first life cycle advance value and the first life cycle rollback value (402). For example, the key state generator 330 can generate the first life cycle state value from the contents of the life cycle advance register 321 and the life cycle rollback register 322. This first life cycle state value is provided to the key split generator 340.

[0064] A first key split value is generated based on the first life cycle state value, the personality value, and the secret key value (404). For example, the key split generator 340 can generate a first key split value that is provided to the key generator 350. This first key split value can be the result of a one-way function that takes the first life cycle state value from the life cycle state generator 330, the contents of the personality register 323, and the DGOK 370 as inputs to produce a key split value. Based on the first key split value, (multiple) first keys are generated (406). For example, the key generator 350 can generate one or more keys based on the first key split value received from the key split generator 340.

[0065] The value of the first lifecycle advance bit is changed to produce a second lifecycle advance value (408). For example, the processor 390 can control the OTP programming 380 to change the value of the bit in the lifecycle advance register 321. The processor 390 can control the OTP programming 380 to change the value of the bit in the lifecycle advance register 321 in response to the user input 391 and / or a command received via the interface 392 (e.g., a command received via a wireless interface).

[0066] A second life cycle state value is generated from the second life cycle advance value and the first life cycle rollback value (410). For example, the key state generator 330 may generate the second life cycle state value from the changed contents of the life cycle advance register 321 and the unchanged contents of the life cycle rollback register 322. This second life cycle state value is provided to the key split generator 340.

[0067] A second key split value is generated based on the second life cycle state value, the personality value, and the secret key (412). For example, the key split generator 340 can generate a second key split value that is provided to the key generator 350. This second key split value can be the result of a one-way function that uses the second life cycle state value from the life cycle state generator 330, the contents of the personality register 323, and the DGOK 370 as inputs to produce the second key split value. A second key is generated based on the second key split value (414). For example, the key generator 350 can generate one or more keys based on the second key split value received from the key split generator 340.

[0068] The value of the first life cycle rollback bit is changed to produce a second life cycle rollback value (416). For example, the processor 390 can control the OTP programming 380 to change the value of the bit in the life cycle rollback register 322. The processor 390 can control the OTP programming 380 to change the value of the bit in the life cycle rollback register 322 in response to the user input 391 and / or a command received via the interface 392 (e.g., a command received via a wireless interface).

[0069] A first life cycle state value is generated from the second life cycle advance value and the second life cycle rollback value (418). For example, the key state generator 330 may generate the first life cycle state value from the changed content of the life cycle advance register 321 and the changed content of the life cycle rollback register 322. This first life cycle state value is provided to the key split generator 340.

[0070] A first key split value is generated based on the personality value, the secret key value, and the first life cycle state value generated from the second life cycle advance value and the second life cycle rollback value (420). For example, the key split generator 340 may generate the first key split value as a result of a one-way function having as input the first life cycle state value from the life cycle state generator 330 (e.g., generated by the changed contents of the life cycle advance register 321 and the changed contents of the life cycle rollback register 322), the contents of the personality register 323, and the DGOK 370. A first key is generated based on the first key split value generated from the first life cycle state value (which in turn is generated from the second life cycle advance value and the second life cycle rollback value) (422). For example, the key generator 350 may generate one or more keys based on the first key split value received from the key split generator 340, wherein the first key split value is generated from the changed contents of the life cycle advance register 321 and the changed contents of the life cycle rollback register 322.

[0071] FIG. 5A to FIG. 5C An example life cycle state generation process is shown. FIG. 5A to FIG. 5C The process shown in can be performed by one or more elements of system 100 and / or device 300 (eg, life cycle state generator 330). Figure 5A The first life cycle advance value 515 is shown as binary digit 1000b. The first life cycle rollback value 516 is also shown as binary digit 1000b. The first life cycle advance value 515 and the first life cycle rollback value 516 are input to the life cycle state generation function F(A,R) 530, where A represents the input parameter corresponding to the life cycle advance value and R represents the input parameter corresponding to the life cycle rollback value. The output of the life cycle state generation function 530 is the first life cycle state value 517. Figure 5A , the output of the lifecycle state generation function 530 in response to the first lifecycle advance value 515 and the first lifecycle rollback value 516 is binary 0000b.

[0072] Figure 5B The second life cycle advance value 525 is shown as binary bit 1100b. The first life cycle rollback value 516 is shown as binary bit 1100b. Figure 5B The second life cycle advance value 525 and the first life cycle rollback value 516 are input to the life cycle state generation function 530. The output of the life cycle state generation function 530 is the second life cycle state value 527. Figure 5B , the output of the lifecycle state generation function 530 in response to the second lifecycle advance value 525 and the first lifecycle rollback value 516 is binary 0100b.

[0073] Figure 5C The second life cycle advance value 525 is shown as binary bit 1100b. The second life cycle rollback value 526 is shown as binary bit 1100b. Figure 5C The second life cycle advance value 525 and the first life cycle rollback value 526 are input to the life cycle state generation function 530. The output of the life cycle state generation function 530 is the first life cycle state value 517. Figure 5C In the example, the output of the life cycle state generation function 530 in response to the second life cycle advance value 525 and the second life cycle rollback value 526 is binary 0000b. Therefore, it should be understood that FIG. 5A to FIG. 5C The life cycle state generation function 530 shown in FIG. 5 is a bitwise XOR operation (ie, ). It should also be understood that the other lifecycle state generation function 530 may include other functionality, including any mapping of lifecycle advance values ​​and corresponding lifecycle rollback values ​​that produce the same output lifecycle state value for multiple mappings.

[0074] Figure 6 is a flow chart illustrating a method of generating lifecycle-dependent encryption keys. Figure 6 The steps shown in can be performed by one or more elements of the system 100 and / or the device 300. Generate a life cycle state value from a life cycle advance value and a life cycle rollback value (602). For example, the life cycle state generator 330 can calculate the life cycle state value from the content of the life cycle advance register 321 and the content of the life cycle rollback register 322.

[0075] Generate a first key split value based on the life cycle state value, the secret key value, and the first personality value (604). For example, the key split generator 340 can calculate the first key split value based on the life cycle state value, the content of the personality register 323, and the DGOK value 370. This first key split value can be provided to the key generator 350.

[0076] A first key is generated based on the first key split value (606). For example, key generator 350 may generate a first key based on the first key split value received from key split generator 340. This first key may be provided to processor 390 for use in cryptographic operations.

[0077] The value of the personality bit is changed to produce a second personality value (608). For example, processor 390 can control OTP programming 380 to change the value of at least one bit in personality register 323. Processor 390 can control OTP programming 380 to change the value of a bit in personality register 323 in response to user input 391 and / or a command received via interface 392 (e.g., a command received via a wireless interface).

[0078] Generate a second key split value based on the life cycle state value, the secret key value, and the second personality value (610). For example, the key split generator 340 can calculate the second key split value based on the life cycle state value, the changed content of the personality register 323, and the DGOK value 370. This second key split value can be provided to the key generator 350.

[0079] A second key is generated based on the second key split value (612). For example, key generator 350 may generate a second key based on the second key split value received from key split generator 340. This second key may be provided to processor 390 for use in cryptographic operations. It should be appreciated that since changes to personality register 323 are permanent and irreversible, the key generated by lifecycle key generator 310 after the bits in personality register 323 are changed is permanently changed.

[0080] Figure 7 is a diagram illustrating the generation of accessible key split values. Figure 7 The functions shown in can be implemented by one or more elements of the system 100 and / or the system 300 and the key splitting generator 340 in particular. Figure 7 , the DGOK value 775 and the personality value 727 are input to a first scrambling (e.g., one-way) function 741, F1(P,D), where P represents the personality value and D represents the DGOK (secret key) value. For example, the DGOK value 370 and the personality register 323 may provide input to the key splitting generator 340. The key splitting generator 340 may use the DGOK value 370 and the contents of the personality register 323 to implement a first scrambling function. For example, this first scrambling function may include using the contents of the personality register 323 as a key tree path and using the DGOK value as an AES key.

[0081] The lifecycle advance value 725 and the lifecycle rollback value 726 are input to a bitwise exclusive OR (XOR) function 730 to generate a lifecycle state value. The lifecycle state value and the output from the first scrambling function are input to a second scrambling function 742 - F2 (L, F1), where L represents the lifecycle state value and F1 represents the output of the first scrambling function. The output of the second scrambling function is a device generated accessible key split (DGAK), such as key split 145.

[0082] The above methods, systems and devices can be implemented in a computer system or stored in a computer system. The above methods can also be stored on a non-transitory computer-readable medium. The devices, circuits and systems described herein can be implemented using computer-aided design tools available in the art and implemented by computer-readable files containing software descriptions of such circuits. This includes but is not limited to one or more elements of the system 100, the device 300 and its components. These software descriptions can be: behavior, register transfer, logic components, transistors and layout geometry level descriptions. In addition, the software description can be stored on a storage medium or transmitted via a carrier wave.

[0083] Data formats in which such descriptions may be implemented include, but are not limited to, formats supporting behavioral languages ​​such as C, formats supporting register transfer level (RTL) languages ​​such as Verilog and VHDL, formats supporting geometric description languages ​​such as GDSII, GDSIII, GDSIV, CIF, and MEBES, and other suitable formats and languages. In addition, data transmission of such files on machine-readable media may be accomplished electronically over different media on the Internet, or, for example, via email. Note that physical files may be implemented on machine-readable media such as 4 mm tape, 8 mm tape, 3-1 / 2 inch floppy disk media, CDs, DVDs, etc.

[0084] Figure 8 8 is a block diagram illustrating one embodiment of a processing system 800 for including, processing, or generating representations of circuit components 820. The processing system 800 includes one or more processors 802, memory 804, and one or more communication devices 806. The processor 802, memory 804, and communication device 806 communicate using any suitable type, number, and / or configuration of wired and / or wireless connections 808.

[0085] Processor 802 executes instructions of one or more processes 812 stored in memory 804 to process and / or generate circuit components 820 in response to user input 814 and parameters 816. Process 812 can be any suitable electronic design automation (EDA) tool or part thereof for designing, simulating, analyzing and / or verifying electronic circuits and / or generating photomasks for electronic circuits. Representation 820 includes data describing all or part of system 100, device 300, and components thereof, as shown in the figure.

[0086] The representation 820 may include one or more of behavioral, register transfer, logic component, transistor, and layout geometry level descriptions. In addition, the representation 820 may be stored on a storage medium or transmitted via a carrier wave.

[0087] Data formats in which representation 820 may be implemented include, but are not limited to, formats supporting behavioral languages ​​such as C, formats supporting register transfer level (RTL) languages ​​such as Verilog and VHDL, formats supporting geometry description languages ​​such as GDSII, GDSIII, GDSIV, CIF, and MEBES, and other suitable formats and languages. Additionally, data transmission of such files on machine-readable media may be accomplished electronically through various media on the Internet, or, for example, via email.

[0088] User input 814 may include input parameters from a keyboard, mouse, voice recognition interface, microphone and speaker, graphic display, touch screen, or other type of user interface device. This user interface may be distributed among multiple interface devices. Parameters 816 may include specifications and / or characteristics that are input to help define representation 820. For example, parameters 816 may include information defining device type (e.g., NFET, PFET, etc.), topology (e.g., block diagram, circuit description, diagram, etc.), and / or device description (e.g., device attributes, device size, supply voltage, simulated temperature, simulation model, etc.).

[0089] Memory 804 includes non-transitory computer-readable storage media that stores any suitable type, number, and / or configuration of processes 812 , user inputs 814 , parameters 816 , and circuit components 820 .

[0090] The communication device 806 includes any suitable type, number, and / or configuration of wired and / or wireless devices for transmitting information from the processing system 800 to another processing or storage system (not shown) and / or receiving information from another processing or storage system (not shown). For example, the communication device 806 can transmit the circuit component 820 to another system. The communication device 806 can receive the process 812, the user input 814, the parameter 816, and / or the circuit component 820, and cause the process 812, the user input 814, the parameter 816, and / or the circuit component 820 to be stored in the memory 804.

[0091] The above description of the invention has been presented for the purpose of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and other modifications and changes are possible in light of the above teachings. The embodiments are selected and described in order to best explain the principles of the invention and its practical application, so that other technicians in the field can best utilize the invention in various embodiments and various modifications suitable for the specific use intended. It is intended that the attached claims be interpreted as including other alternative embodiments of the invention in addition to the scope limited by the prior art.

Claims

1. An integrated circuit, comprising: circuitry for providing a secret key value that is inaccessible to software controlling the integrated circuit; one-time programmable memory bits, each one-time electrically programmable semiconductor memory bit being restricted to a single change in value from a corresponding initial value, the one-time programmable memory bits comprising a lifecycle advance bit stored by a first subset of the one-time programmable memory bits, a lifecycle rollback bit stored by a second subset of the one-time programmable memory bits, and a personality bit stored by a third subset of the one-time programmable memory bits; a lifecycle value generation circuit configured to generate a lifecycle value from a lifecycle advance value stored by the lifecycle advance bit and a lifecycle rollback value stored by the lifecycle rollback bit using a lifecycle value generation process; a one-way function circuit for generating a key split value based on a personality bit value, a life cycle value and the secret key value using a one-way processing function; A key fusion circuit, which is used to generate multiple encryption key values ​​based on the key split value; as well as a one-time programmable programming circuit for programming the one-time programmable memory bits, The lifecycle advance bit is used to change the encryption of the secret key value, the lifecycle rollback bit is used to cancel the change to the encryption of the secret key value, and the personality bit is used to permanently change the encryption of the secret key value.

2. The integrated circuit of claim 1 , wherein changing the value of the lifecycle advance bit stored by the first subset of the one-time programmable memory bits without changing the value of the lifecycle rollback bit stored by the second subset of the one-time programmable memory bits changes the multiple cryptographic key values ​​generated by the key fusion circuit.

3. The integrated circuit of claim 2 , wherein changing the value of a lifecycle advance bit stored by the first subset of the one-time programmable memory bits and changing the value of a corresponding lifecycle rollback bit stored by the second subset of the one-time programmable memory bits does not change the multiple cryptographic key values ​​generated by the key fusion circuit.

4. The integrated circuit of claim 2, wherein a first set of values ​​for the lifecycle advance bit and a corresponding first set of values ​​for the lifecycle rollback bit result in a first set of cryptographic key values ​​being generated by the key merge circuitry.

5. The integrated circuit of claim 4 , wherein a second set of values ​​for the lifecycle advance bit and a corresponding second set of values ​​for the lifecycle rollback bit result in a second set of encryption key values ​​being generated by the key fusion circuit, the second set of encryption key values ​​not being in the first set of encryption key values.

6. The integrated circuit of claim 1, wherein changing any personality bit value stored by the third subset of the one-time programmable memory bits changes the plurality of encryption key values ​​generated by the key fusing circuit.

7. The integrated circuit of claim 6, wherein the value of a corresponding lifecycle rollback bit disables the effect of a corresponding lifecycle advance bit on the cryptographic key value generated by the key fusion circuit.

8. A computer readable medium storing a representation of a circuit assembly, the circuit assembly comprising: circuitry for providing a secret key value that is inaccessible to software controlling the integrated circuit; one-time programmable memory bits, each one-time programmable memory bit being restricted to a single change in value from a corresponding initial value, the one-time programmable memory bits comprising a lifecycle advance bit stored by a first subset of the one-time programmable memory bits, a lifecycle rollback bit stored by a second subset of the one-time programmable memory bits, and a personality bit stored by a third subset of the one-time programmable memory bits; a life cycle value generating circuit, configured to generate a life cycle value from a life cycle advance value stored by the life cycle advance bit and a life cycle rollback value stored by the life cycle rollback bit using a life cycle value generating process, the life cycle value comprising a first life cycle state value generated from a first life cycle advance value and a first life cycle rollback value; a one-way function circuit for generating a key split value based on a personality bit value, a life cycle value and the secret key value using a one-way processing function, the key split value comprising a first key split value based on the secret key value, a first personality value and the first life cycle state value; a key fusion circuit for generating a plurality of encryption key values ​​based on the key split value, the plurality of encryption key values ​​including a first encryption key generated from the first key split value; as well as a one-time programmable programming circuit for programming the one-time programmable memory bits, The lifecycle advance bit is used to change the encryption of the secret key value, the lifecycle rollback bit is used to cancel the change to the encryption of the secret key value, and the personality bit is used to permanently change the encryption of the secret key value.

9. A computer-readable medium according to claim 8, wherein changing at least a first life cycle advance bit is to change the first life cycle advance value stored by the first subset of the one-time programmable memory bits to a second life cycle advance value, a second life cycle state value is to be generated by the life cycle value generation circuit from the second life cycle advance value and the first life cycle rollback value, a second key split value based on the secret key value, the first personality value and the second life cycle state value is to be generated by the one-way function circuit, the second life cycle state value is to be different from the first life cycle state value, and the key fusion circuit is to generate a second encryption key from the second key split value, wherein as a result of the second life cycle state value being different from the first life cycle state value, the second encryption key is different from the first encryption key.

10. The computer-readable medium of claim 9, wherein at least a first lifecycle rollback bit is changed to change the first lifecycle rollback value stored by the second subset of the one-time programmable memory bits to a second lifecycle rollback value, and the first lifecycle state value is to be generated from the second lifecycle advance value and the second lifecycle rollback value.

11. A computer-readable medium according to claim 10, wherein the one-way processing function is to generate the first key split value based on the secret key value, the personality value and the first life cycle state value generated from the second life cycle advance value and the second life cycle rollback value, and the first encryption key is to be generated from the first key split value generated from the first life cycle state value, and the first life cycle state value is further generated from the second life cycle advance value and the second life cycle rollback value.

12. The computer-readable medium of claim 8, wherein changing any personality bit value stored by the third subset of the one-time programmable memory bits changes the plurality of encryption key values ​​generated by the key fusing circuit.

13. The computer-readable medium of claim 12, wherein the lifecycle state generation process maps a first plurality of pairs of lifecycle advance values ​​and lifecycle rollback values ​​to the first lifecycle state value.

14. An integrated circuit comprising: one-time programmable memory bits, each one-time electrically programmable semiconductor memory bit being restricted to a single change in value from a corresponding initial value, the one-time programmable memory bits comprising a lifecycle advance bit stored by a first subset of the one-time programmable memory bits, a lifecycle rollback bit stored by a second subset of the one-time programmable memory bits, and a personality bit stored by a third subset of the one-time programmable memory bits; a lifecycle value generation circuit configured to generate a lifecycle value from a lifecycle advance value stored by the lifecycle advance bit and a lifecycle rollback value stored by the lifecycle rollback bit using a lifecycle value generation process; a one-way function circuit for generating a key split value based on a personality bit value, a lifetime value, and a secret key value using a one-way processing function; A key fusion circuit, which is used to generate multiple encryption key values ​​based on the key split value; as well as a one-time programmable programming circuit for programming the one-time programmable memory bits, The lifecycle advance bit is used to change the encryption of the secret key value, the lifecycle rollback bit is used to cancel the change to the encryption of the secret key value, and the personality bit is used to permanently change the encryption of the secret key value.

15. The integrated circuit of claim 14, wherein changing the value of the lifecycle advance bit stored by the first subset of the one-time programmable memory bits without changing the value of the lifecycle rollback bit stored by the second subset of the one-time programmable memory bits changes the multiple cryptographic key values ​​generated by the key fusion circuit.

16. The integrated circuit of claim 15, wherein changing the value of a lifecycle advance bit stored by the first subset of the one-time programmable memory bits and changing the value of a corresponding lifecycle rollback bit stored by the second subset of the one-time programmable memory bits does not change the multiple cryptographic key values ​​generated by the key fusion circuit.

17. The integrated circuit of claim 15, wherein a first set of values ​​for the lifecycle advance bit and a corresponding first set of values ​​for the lifecycle rollback bit result in a first set of cryptographic key values ​​being generated by the key merge circuitry.

18. An integrated circuit according to claim 17, wherein a second set of values ​​of the lifecycle advance bit and a corresponding second set of values ​​of the lifecycle rollback bit result in a second set of encryption key values ​​being generated by the key fusion circuit, and the second set of encryption key values ​​is not in the first set of encryption key values.

19. The integrated circuit of claim 14, wherein changing any personality bit value stored by the third subset of the one-time programmable memory bits changes the plurality of encryption key values ​​generated by the key fusing circuit.

20. The integrated circuit of claim 19, wherein the value of a corresponding lifecycle rollback bit disables the effect of a corresponding lifecycle advance bit on the cryptographic key value generated by the key merge circuit.