US2022138329A1PendingUtilityA1

Microprocessor pipeline circuitry to support cryptographic computing

Assignee: INTEL CORPPriority: Jun 29, 2019Filed: Jan 14, 2022Published: May 5, 2022
Est. expiryJun 29, 2039(~12.9 yrs left)· nominal 20-yr term from priority
G06F 12/1475Y02D10/00G06F 21/54G06F 21/78G06F 12/0646H04L 9/0822G06F 12/1408H04L 9/32H04L 2209/125G06F 12/0897G06F 21/602G06F 12/0207G06F 9/30043G06F 2009/45587H04L 9/0836H04L 9/0631G06F 21/12G06F 12/1458H04L 9/0869H04L 9/0894G06F 9/48H04L 9/14G06F 12/1466G06F 9/321G06F 21/64H04L 9/3242G06F 2212/1032G06F 2212/1052H04L 9/0861G06F 21/6227G06F 9/30101G06F 12/0811G06F 2221/2107G06F 9/30178G06F 12/0875G06F 21/72G06F 21/556H04L 9/0637G06F 9/5016G06F 21/79G06F 2212/1041G06F 2212/402G06F 9/45558
77
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In one embodiment, a processor of a cryptographic computing system includes a register to store an encryption key and address generation circuitry to obtain a pointer representing a linear address to be accessed by a read or write operation, the pointer being at least partially encrypted, obtain the key from the register and a context value, decrypt the encrypted portion of the pointer using the key and the context value as a tweak input, and generate an effective address for use in the read or write operation based on an output of the decryption.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A processor comprising:
 a register to store an encryption key; and   address generation circuitry to:
 obtain a pointer representing a linear address to be accessed by a read or write operation, the pointer being at least partially encrypted; 
 obtain the key from the register and a context value; 
 decrypt the encrypted portion of the pointer using the key and the context value as a tweak input; and 
 generate an effective address for use in the read or write operation based on an output of the decryption. 
   
     
     
         2 . The processor of  claim 1 , wherein the context value is obtained from another register of the processor. 
     
     
         3 . The processor of  claim 1 , wherein the context value is obtained from bits of the pointer. 
     
     
         4 . The processor of  claim 1 , wherein the context value is obtained from memory. 
     
     
         5 . The processor of  claim 1 , wherein the pointer comprises an encrypted base address, plaintext upper bits, and a plaintext offset, and the address generation circuitry is to generate the effective address by:
 decrypting the encrypted base address portion to yield a decrypted base address; and   combining the decrypted base address, the upper bits, and the offset.   
     
     
         6 . The processor of  claim 5 , wherein the address generation circuitry is to generate the effective address by:
 concatenating the decrypted base address with a set of complimentary upper bits and the offset to yield an intermediate base address; and   combining the upper bits with the intermediate base address.   
     
     
         7 . The processor of  claim 6 , wherein the address generation circuitry is to combine the upper bits with the intermediate base address using one or more of an XOR, ADD, or logical AND function. 
     
     
         8 . The processor of  claim 1 , further comprising:
 a data cache unit storing encrypted data; and   memory access circuitry to:
 access the encrypted data stored in the data cache unit; and 
 decrypt the encrypted data based on the key and the effective address. 
   
     
     
         9 . The processor of  claim 8 , wherein the effective address is used as a tweak input to the decryption. 
     
     
         10 . The processor of  claim 8 , wherein the circuitry is to decrypt the encrypted data by:
 generating a key stream based on the effective address and a counter value; and   performing an XOR operation on the key stream and the encrypted data to yield decrypted data.   
     
     
         11 . A method comprising:
 obtaining a pointer representing a linear address to be accessed by a read or write operation, the pointer being at least partially encrypted;   obtaining the key from a processor register and a context value;   decrypting the encrypted portion of the pointer using the key and the context value as a tweak input; and   generating an effective address for use in the read or write operation based on an output of the decryption.   
     
     
         12 . The method of  claim 11 , wherein the context value is obtained from another processor register. 
     
     
         13 . The method of  claim 11 , wherein the context value is obtained from bits of the pointer. 
     
     
         14 . The method of  claim 11 , wherein the context value is obtained from memory. 
     
     
         15 . The method of  claim 11 , wherein the pointer comprises an encrypted base address, plaintext upper bits, and a plaintext offset, and generating the effective address comprises:
 decrypting the encrypted base address portion to yield a decrypted base address; and   combining the decrypted base address, the upper bits, and the offset.   
     
     
         16 . The method of  claim 15 , generating the effective address comprises:
 concatenating the decrypted base address with a set of complimentary upper bits and the offset to yield an intermediate base address; and   combining the upper bits with the intermediate base address.   
     
     
         17 . The method of  claim 16 , wherein combining the upper bits with the intermediate base address comprises using one or more of an XOR, ADD, or logical AND function. 
     
     
         18 . The processor of  claim 11 , further comprising:
 accessing encrypted data stored in a data cache unit; and   decrypting the encrypted data based on the key and the effective address.   
     
     
         19 . The method of  claim 18 , wherein the effective address is used as a tweak input to the decryption. 
     
     
         20 . The method of  claim 18 , wherein decrypting the encrypted data comprises:
 generating a key stream based on the effective address and a counter value; and   performing an XOR operation on the key stream and the encrypted data to yield decrypted data.   
     
     
         21 . A system comprising:
 memory; and   a processor coupled to the memory, the processor comprising:
 a register to store an encryption key; and 
 address generation circuitry to:
 obtain a pointer representing a linear address to be accessed by a read or write instruction stored in the memory, the pointer being at least partially encrypted; 
 obtain the key from the register and a context value; 
 decrypt the encrypted portion of the pointer using the key and the context value as a tweak input; and 
 generate an effective address for use in the read or write operation based on an output of the decryption. 
 
   
     
     
         22 . The system of  claim 21 , wherein the pointer comprises an encrypted base address, plaintext upper bits, and a plaintext offset, and the address generation circuitry is to generate the effective address by:
 decrypting the encrypted base address portion to yield a decrypted base address; and   combining the decrypted base address, the upper bits, and the offset.   
     
     
         23 . The system of  claim 22 , wherein the address generation circuitry is to generate the effective address by:
 concatenating the decrypted base address with a set of complimentary upper bits and the offset to yield an intermediate base address; and   combining the upper bits with the intermediate base address.   
     
     
         24 . The system of  claim 23 , wherein the address generation circuitry is to combine the upper bits with the intermediate base address using one or more of an XOR, ADD, or logical AND function. 
     
     
         25 . The system of  claim 21 , wherein the processor further comprises memory access circuitry to:
 access encrypted data stored in the memory; and   decrypt the encrypted data based on the key and the effective address.

Join the waitlist — get patent alerts

Track US2022138329A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.