Secure I/O Encryption Engine for Enclave-Accelerator Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current secure execution environments, such as Intel SGX, do not effectively protect data when it is transferred across the on-chip boundary to hardware accelerators, relying on software-based encryption and incurring performance penalties or relying on link encryption technologies, which have limitations.

Innovation Solution

Implementing multi-key total memory encryption (MKTME) and trusted domain extensions (TDXIO) to enable secure and transparent encryption and decryption of data between secure enclaves and accelerators, using shared encryption keys for memory transfers and bypassing software-based decryption, thereby protecting data integrity and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software-based encryption is used to protect I/O data across the on-chip boundary, then data security is improved, but processing performance deteriorates due to encryption/decryption overhead

Engineering Contradiction:
Improvedata securityVSAvoidprocessing performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a dedicated encryption engine as an intermediary component between the secure enclave and I/O devices. This engine handles all encryption and decryption operations for I/O data transfers, offloading this computationally intensive task from the main processor while ensuring data security. The encryption engine acts as a specialized mediator that protects data confidentiality without burdening the general-purpose CPU, thus resolving the contradiction between security and performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If link encryption technologies are used to protect data in transit, then data security is improved, but adaptability to different I/O operations deteriorates due to limitations of existing link encryption

Engineering Contradiction:
Improvedata securityVSAvoidadaptability to I/O operations
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal encryption engine that can handle multiple types of I/O operations (memory-mapped I/O, direct memory access, interrupt operations) through a single standardized interface. This encryption engine is designed to work with various I/O devices and operation types without requiring device-specific encryption implementations, thus providing both security and adaptability. The engine can dynamically adjust to different I/O protocols and data formats while maintaining consistent security protection.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If I/O data is encrypted to leave the secure enclave, then data security is improved, but access speed deteriorates due to decryption requirements

Engineering Contradiction:
Improvedata securityVSAvoidaccess speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent implements preliminary encryption of data before it leaves the secure enclave boundary. The encryption engine encrypts data in advance during I/O write operations, so that data is already protected when stored in I/O devices. For read operations, the engine uses pre-computed decryption keys and optimized decryption paths, reducing the time penalty. This preliminary action approach ensures data is secured before potential exposure while minimizing access speed impact through efficient key management and optimized cryptographic operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240073013A1High performance secure io
Publication Date: 2024.02.29 INTEL CORP
  • US20240073013A1 patent drawing
  • US20240073013A1 patent drawing
  • US20240073013A1 patent drawing

AI summary

An apparatus comprises a hardware processor to perform an attestation procedure to attest a remote device, establish a session key for a communication session with the remote device, define a linear address (LA) region outside an established address range for a secure enclave, generate, for the linear address (LA) region, a unique encryption key accessible only to the enclave, assign a key identifier to the unique encryption key, store the linear address (LA) region and the unique encryption key in an enclave control structure, set a pending bit in the enclave control structure to a value to indicate that contents of the linear address region cannot be changed without approval from the secure enclave, clear the pending bit to indicate that the linear address range is available for use by the enclave, wrap the key identifier and the unique encryption key with the session key, and send the key identifier and the unique encryption key to the remote device.