TME/MKTME
Intel Total Memory Encryption (TME)
Intel introduced Total Memory Encryption (TME) with its 11th Generation Core vPro mobile processor, aiming to safeguard against attackers who gain physical access to a computer's memory to steal data. TME secures the entire computer's memory using a single transient key generated during the boot process through a combination of hardware-based random number generators and security measures integrated into the system's chipset. The memory encryption is executed by dedicated encryption engines on each memory controller, utilizing the NIST standard AES-XTS algorithm with 128-bit or 256-bit keys.
Multi-key Total Memory Encryption (MKTME)
MKTME is an extension of TME that supports multiple keys and memory encryption at the granularity of pages. During each memory transaction, MKTME selects an encryption key based on the Host Key Identifier (HKID), which occupies a configurable number of bits from the top of the physical address. The range of HKIDs is determined during system boot by the BIOS. MKTME allows for software-provided keys and introduces a new instruction, PCONFIG, to program the key and encryption mode associated with a specific HKID. These HKID-key tuples are stored in the Key Encryption Table (KET), securely held by each MKTME encryption engine. The cryptographic keys in the KET remain within the processor and are never exposed to software.
MKTME is applicable in both native and virtualized environments. In virtualized setups, hypervisors manage memory encryption for different virtual machines (VMs) by associating HKIDs with the physical addresses of the VMs through Extended Page Table (EPT) mechanisms.
Last updated
Was this helpful?