US 12,321,467 B2
Cryptographic computing isolation for multi-tenancy and secure software components
Salmin Sultana, Hillsboro, OR (US); David M. Durham, Beaverton, OR (US); Michael LeMay, Hillsboro, OR (US); Karanvir S. Grewal, Hillsboro, OR (US); and Sergej Deutsch, Hillsboro, OR (US)
Assigned to Intel Corporation, Santa Clara, CA (US)
Filed by Intel Corporation, Santa Clara, CA (US)
Filed on Jun. 30, 2022, as Appl. No. 17/854,814.
Prior Publication US 2022/0335140 A1, Oct. 20, 2022
Int. Cl. G06F 21/60 (2013.01); G06F 9/30 (2018.01); G06F 21/31 (2013.01); G06F 21/33 (2013.01); G06F 21/80 (2013.01)
CPC G06F 21/602 (2013.01) [G06F 9/30043 (2013.01); G06F 9/30101 (2013.01); G06F 21/31 (2013.01); G06F 21/335 (2013.01); G06F 21/805 (2013.01)] 23 Claims
OG exemplary drawing
 
1. A processor comprising:
circuitry to be coupled to memory configured to store one or more instructions, the circuitry to:
execute the one or more instructions to instantiate a first process based on a request to launch an application associated with two or more software components to be invoked during the first process, wherein to instantiate the first process is to:
create a context table to be used by the first process;
encrypt a first software component of the two or more software components using a first cryptographic key;
encrypt a second software component of the two or more software components using a second cryptographic key, wherein the encrypted second software component includes an encrypted main program of the application;
store, in a first entry in the context table, first context information identifying the encrypted first software component and second context information representing the first cryptographic key; and
store, in a second entry in the context table, fourth context information identifying the encrypted second software component of the application and fifth context information representing the second cryptographic key, wherein subsequent to instantiating the first process, the circuitry is further to:
fetch an encrypted first code block of the encrypted main program from the memory;
decrypt the encrypted first code block of the encrypted main program to generate an unencrypted first instruction; and
execute the unencrypted first instruction to transition from executing the encrypted main program to executing the encrypted first software component.