Integrated circuit lifecycle security with redundant and overlapping crosschecks
US-2017124354-A1 · May 4, 2017 · US
US11582033B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11582033-B2 |
| Application number | US-202017119513-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 11, 2020 |
| Priority date | Dec 16, 2015 |
| Publication date | Feb 14, 2023 |
| Grant date | Feb 14, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A secret key value that is inaccessible to software is scrambled according to registers consisting of one-time programmable (OTP) bits. A first OTP register is used to change the scrambling of the secret key value whenever a lifecycle event occurs. A second OTP register is used to undo the change in the scrambling of the secret key. A third OTP register is used to affect a permanent change to the scrambling of the secret key. The scrambled values of the secret key (whether changed or unchanged) are used as seeds to produce keys for cryptographic operations by a device.
Opening claim text (preview).
What is claimed is: 1. A method of generating encryption keys, comprising: configuring a semiconductor device having circuitry with a secret key value, the secret key value not accessible to software running on the semiconductor device; configuring one-time electrically programmable semiconductor memory bits with initial values, each one-time electrically programmable semiconductor memory bit being limited to one change in value from a respective initial value; receiving a first lifecycle advance value from lifecycle advance bits stored by a first subset of the one-time electrically programmable semiconductor memory bits; receiving a first lifecycle rollback value from lifecycle rollback bits stored by a second subset of the one-time electrically programmable semiconductor memory bits; generating, using a lifecycle state generating process, a first lifecycle state value from the first lifecycle advance value and the first lifecycle rollback value; receiving a first personality value from personality bits stored by a third subset of the one-time electrically programmable semiconductor memory bits; using a one-way processing function, generating a first key split value based on the secret key value, the first personality value, and the first lifecycle state value; and generating, from the first key split value, a first encryption key, wherein changing a lifecycle advance bit value stored by the first subset of the one-time electrically programmable semiconductor memory bits without changing a lifecycle rollback bit value stored by the second subset of the one-time programmable semiconductor memory bits will generate a second encryption key that is not equal to the first encryption key. 2. The method of claim 1 , further comprising: changing at least a first lifecycle advance bit thereby changing the first lifecycle advance value stored by the first subset of the one-time electrically programmable semiconductor memory bits to a second lifecycle advance value; generating, using the lifecycle state generating process, a second lifecycle state value from the second lifecycle advance value and the first lifecycle rollback value; using the one-way processing function, generating a second key split value based on the secret key value, the first personality value, and the second lifecycle state value, the second lifecycle state value being different from the first lifecycle state value; and generating, from the second key split value, the second encryption key for use in securing data processed by the semiconductor device, the second encryption key being different from the first encryption key as a result of the second lifecycle state value being different from the first lifecycle state value. 3. The method of claim 2 , further comprising: changing at least a first lifecycle rollback bit thereby changing the first lifecycle rollback value stored by the second subset of the one-time electrically programmable semiconductor memory bits to a second lifecycle rollback value; generating, using the lifecycle state generating process, the first lifecycle state value from the second lifecycle advance value and the second lifecycle rollback value; using the one-way processing function, generating the first key split value based on the secret key value, the first personality value, and the first lifecycle state value as generated from the second lifecycle advance value and the second lifecycle rollback value; and generating, from the first key split value that was generated from the first lifecycle state value that was further generated from the second lifecycle advance value and the second lifecycle rollback value, the first encryption key. 4. The method of claim 1 , wherein the first lifecycle state value is generated by the lifecycle state generating process when a lifecycle advance value stored by the first subset of the one-time electrically programmable semiconductor memory bits equals a lifecycle rollback value stored by the second subset of the one-time electrically programmable semiconductor memory bits. 5. The method of claim 1 , wherein the lifecycle state generating process maps a first plurality of pairs of lifecycle advance values and lifecycle rollback values to the first lifecycle state value. 6. The method of claim 5 , wherein a second plurality of pairs of lifecycle advance values and lifecycle rollback values that are not mapped by the lifecycle state generating process to the first lifecycle state value are mapped by the lifecycle state generating process to values other than the first lifecycle state value. 7. The method of claim 1 , further comprising: changing at least a first personality bit thereby changing the first personality value stored by the third subset of the one-time electrically programmable semiconductor memory bits to a second personality value; using the one-way processing function, generating a personalized key split value based on the secret key value, the second personality value, and the first lifecycle state value; and generating, from the personalized key split value, a personalized encryption key for use in securing data processed by the semiconductor device, the personalized encryption key being different from the first encryption key as a result of the second personality value being different from the first personality value. 8. A method of operating an integrated circuit, comprising: programming at least one of a plurality of one-time programmable memory bits where each one-time programmable memory bit is limited to one change in value from a respective initial value, the plurality of one-time programmable memory bits including lifecycle advance bits stored by a first subset of the plurality of one-time programmable memory bits, lifecycle rollback bits stored by a second subset of the plurality of the one-time programmable memory bits, and personality bits stored by a third subset of the plurality of one-time programmable memory bits; using a lifecycle value generating process, generating lifecycle values from lifecycle advance values stored by the lifecycle advance bits and lifecycle rollback values stored by the lifecycle rollback bits; using a one-way processing function, generating key split values based on personality bit values, lifecycle values, and a secret key value; and generating, based on the key split values, a plurality of encryption key values wherein changing a lifecycle advance bit value stored by the first subset of the one-time programmable memory bits without changing a lifecycle rollback bit value stored by the second subset of the one-time programmable memory bits changes the plurality of encryption key values generated by key amalgamation circuitry. 9. The method of claim 8 , wherein the plurality of encryption key values are generated by key amalgamation circuitry. 10. The method of claim 8 , wherein changing a lifecycle advance bit value stored by the first subset of the one-time programmable memory bits and changing a corresponding lifecycle rollback bit value stored by the second subset of the one-time programmable memory bits does not change the plurality of encryption key values generated. 11. The method of claim 8 , wherein a first set of lifecycle advance bit values and a corresponding first set of lifecycle rollback bit values result in a first set of encryption key values being generated. 12. The method of claim 11 , wherein a second set of lifecycle advance bit values and a corresponding second set of lifecycle rollback bit values result in a second set of encryption key values being generated that are not in the first set of encryption key values. 13. The method of claim 8 , w
Secret sharing or secret splitting, e.g. threshold schemes · CPC title
Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage · CPC title
Generation of secret information including derivation or calculation of cryptographic keys or passwords · CPC title
Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system (cryptographic typewriters G09C3/00) · CPC title
Revocation or update of secret information, e.g. encryption key update or rekeying · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.