Cryptographic pointer address encoding
AssigneeIntel Corporation
InventorsDavid M. Durham, Baiju Patel
Life of this patent
Estimating the term…
Abstract
A computing device includes technologies for securing indirect addresses (e.g., pointers) that are used by a processor to perform memory access (e.g., read/write/execute) operations. The computing device encodes the indirect address using metadata and a cryptographic algorithm. The metadata may be stored in an unused portion of the indirect address.
Claims20
One or more non-transitory, computer-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a processor to:
- encrypt at least a part of an indirect address, wherein the indirect address comprises a plurality of unused bits and a plurality of used bits, and wherein the used bits are indicative of a memory location;
- determine metadata associated with the indirect address, the metadata indicative of a memory access permitted by the indirect address;
- store at least a portion of the metadata or a derivative of at least a portion of the metadata in the unused bits of the indirect address;
- and
- output the indirect address in response to encryption of the at least a part of the indirect address and in response to storage in the unused bits of the indirect address.
Address encoding hardware logic to, in response to execution of a first processor instruction:
- encrypt at least a part of an indirect address, wherein the indirect address comprises a plurality of unused bits and a plurality of used bits, and wherein the used bits are indicative of a memory location;
- determine metadata associated with the indirect address, the metadata indicative of a memory access permitted by the indirect address;
- store at least a portion of the metadata or a derivative of at least a portion of the metadata in the unused bits of the indirect address;
- and
- output the indirect address in response to encryption of the at least a part of the indirect address and in response to storage in the unused bits of the indirect address.
A method for cryptographically encoding indirect addresses, the method comprising:
- executing, by a processor, a first processor instruction, wherein executing the first processor instruction comprises:
- encrypting at least a part of an indirect address, wherein the indirect address comprises a plurality of unused bits and a plurality of used bits, and wherein the used bits are indicative of a memory location;
- determining metadata associated with the indirect address, the metadata indicative of a memory access permitted by the indirect address;
- storing at least a portion of the metadata or a derivative of at least a portion of the metadata in the unused bits of the indirect address;
- and
- outputting the indirect address in response to encrypting the at least a part of the indirect address and in response to storing in the unused bits of the indirect address.
Dependencies are inferred from the claim text.