Cryptographically Encoded Pointers for Memory Safety

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing techniques face challenges in providing effective memory safety due to issues like buffer overflows and dangling pointers, which require additional metadata for protection, leading to performance overhead and increased storage needs.

Innovation Solution

The implementation of cryptographic computing systems that use cryptographically encoded pointers to proactively block out-of-bound memory accesses by encrypting and decrypting memory addresses within the processor core, leveraging cryptographic isolation to enforce fine-grain memory protection without the need for additional metadata storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If metadata is used to provide memory safety protection, then memory safety is improved, but storage requirements and performance overhead increase

Engineering Contradiction:
Improvememory safetyVSAvoidstorage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent combines the pointer value and metadata into a single unified data structure. The metadata (including bounds information, access permissions, and validation data) is integrated directly with the pointer rather than being stored separately, eliminating the need for additional metadata storage while maintaining memory safety protections

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified pointer structure serves multiple functions simultaneously: it stores the memory address, contains bounds validation information, tracks access permissions, and provides type checking capabilities. This multi-functional design replaces what would traditionally require multiple separate data structures

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

2Reliability

If fine-grain metadata is implemented for memory protection, then memory safety is improved, but performance deteriorates

Engineering Contradiction:
Improvememory safetyVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs memory safety validation checks at the time of pointer creation and allocation, rather than during every memory access operation. Bounds information and access permissions are pre-computed and embedded in the pointer, allowing for fast validation during execution without repeated metadata processing

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces complex runtime metadata lookup and validation mechanisms with simplified hardware-supported pointer validation. The unified pointer structure enables direct comparison and validation operations that can be executed efficiently with minimal computational overhead

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If additional metadata storage is used for memory protection, then memory safety is improved, but device complexity increases

Engineering Contradiction:
Improvememory safetyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges previously separate components (pointers and metadata structures) into a single unified pointer. This consolidation simplifies the overall system architecture by eliminating the need for complex metadata management structures, lookup tables, and separate validation systems

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11625337B2Encoded pointer based data encryption
Publication Date: 2023.04.11 INTEL CORP
  • US11625337B2 patent drawing
  • US11625337B2 patent drawing
  • US11625337B2 patent drawing

AI summary

Technologies disclosed herein provide cryptographic computing. An example method comprises storing, in a register, an encoded pointer to a memory location, wherein the encoded pointer comprises first context information and a slice of a memory address of the memory location, wherein the first context information includes an identification of a data key; decoding the encoded pointer to obtain the memory address of the memory location; using the memory address obtained by decoding the encoded pointer to access encrypted data at the memory location; and decrypting the encrypted data based on the data key.