ISA accessible physical unclonable function
AssigneeIntel Corporation
InventorsSiddhartha Chhabra, Prashant Dewan, Baiju Patel
Life of this patent
Estimating the term…
Abstract
Techniques for encrypting data using a key generated by a physical unclonable function (PUF) are described. An apparatus according to the present disclosure may include decoder circuitry to decode an instruction and generate a decoded instruction. The decoded instruction includes operands and an opcode. The opcode indicates that execution circuitry is to encrypt data using a key generated by a PUF. The apparatus may further include execution circuitry to execute the decoded instruction according to the opcode to encrypt the data to generate encrypted data using the key generated by the PUF.
Claims18
An apparatus comprising:
- decoder circuitry to decode a single instruction to generate a decoded instruction, the instruction associated with a ring 0 protection level and including one or more fields to identify a source/destination operand which as a source is to provide an identity challenge for a physically unclonable function (PUF) circuit to generate a key and as a destination is to store an operation status after execution, one or more fields to identify a first source operand which is to provide an indication of a signature algorithm to use, one or more fields to identify a second source operand which is to store or encode a location of an input data structure, and one or more fields to identify a destination operand that is to store or encode a location of where a signed response generated during execution is to be placed, wherein the input data structure is to hold a wrapping key used during execution and stores data and secret information to be decrypted, and one or more fields comprising an opcode, wherein the opcode indicates that execution circuitry is to at least decrypt secret information from the input data structure of the second source operand with a PUF generated wrapping key, generate a signed response of the unwrapped secret information using the identity challenge of the source/destination operand according to the signature algorithm indicated by the first source operand, store the signed response in the identified destination, and store operational status of execution in the identified source/destination operand;
- and
- execution circuitry to execute the decoded instruction according to the opcode.
A method comprising:
- decoding a single instruction to generate a decoded instruction, wherein the instruction is associated with a ring 0 protection level and includes one or more fields to identify a source/destination operand which as a source is to provide an identity challenge for a physically unclonable function (PUF) circuit to generate a wrapping key and as a destination is to store an operation status after execution, one or more fields to identify a first source operand which is to provide an indication of a signature algorithm to use, one or more fields to identify a second source operand which is to store or encode a location of an input data structure, and one or more fields to identify a destination operand that is to store or encode a location of where a signed response generated during execution is to be placed, wherein the input data structure is to hold a wrapping key used during execution and stores data and secret information to be decrypted, and one or more fields comprising an opcode, wherein the opcode indicates that execution circuitry is to at least unwrap the secret information by decrypting secret information from the input data structure of the second source operand with a PUF generated wrapping key, generate a signed response of the unwrapped secret information using the identity challenge of the source/destination operand according to the signature algorithm indicated by the first source operand, store the signed response in the identified destination, and store operational status of execution in the identified source/destination operand;
- and
- executing the decoded instruction according to the opcode.
A non-transitory machine-readable medium storing an instance of a single instruction that, when processed by one or more processors, is to cause the one or more processors to:
- decode the instance of the single instruction to generate a decoded instruction, wherein the instruction is associated with a ring 0 protection level and the instruction includes 1) one or more fields to identify a first destination operand that is to store or encode a location of where a signed response generated during execution is to be placed, 2) one or more fields to identify a second destination operand, the second destination operand is to either store an encrypted data structure after execution of the instruction, or a location to store an encrypted data structure after execution of the instruction, 3) one or more fields to identify a source/destination operand which as a source is to provide an identity challenge for a physically unclonable function (PUF) circuit to generate a wrapping key and as a destination is to store an operation status after execution, 4) one or more fields to identify a first source operand which is to provide an indication of a signature algorithm to use, 5) one or more fields to identify a second source operand, wherein the second source operand is to either store an input data structure to be used in an encryption process or a location of an input data structure to be used in an encryption process, and 6) one more fields comprising an opcode, wherein the input data structure holds a wrapping key used during execution and stores data and secret information to be decrypted, wherein the opcode indicates that execution circuitry is to at least unwrap the secret information by decrypting secret information from the input data structure of the second source operand with a PUF generated wrapping key, generate a signed response of the unwrapped secret information using the identity challenge of the source/destination operand according to the signature algorithm indicated by the first source operand, store the signed response in the identified destination, and store operational status of execution in the identified source/destination operand;
- and
- execute the decoded instruction according to the opcode.
Dependencies are inferred from the claim text.