Aggregate Authentication Code for Memory Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory protection methods are inefficient in preventing unauthorized alteration of meta-data structures in heap memory, as attackers can corrupt these structures to manipulate memory allocation, necessitating a computationally inexpensive solution to ensure data integrity.

Innovation Solution

A method involving the generation of individual authentication codes for memory elements, combining them into an aggregate authentication code, and storing this code for periodic verification, rather than checking each element individually, which reduces processing resources and ensures data integrity by discarding compromised elements if verification fails.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If individual authentication codes are generated and verified for each memory element on every access, then data integrity protection is strengthened, but computational overhead and processing time increase significantly

Engineering Contradiction:
Improvedata integrity protectionVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple individual authentication codes into a single aggregate authentication code that represents the integrity state of multiple memory elements. This aggregate code is verified periodically rather than checking each individual code on every access, thereby maintaining data integrity protection while significantly reducing computational overhead and improving processing efficiency.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If frequent verification of memory element integrity is performed, then security against corruption is improved, but system performance and access speed deteriorate

Engineering Contradiction:
Improvesecurity against corruptionVSAvoidmemory access speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent implements periodic verification of the aggregate authentication code at predetermined intervals or after a specified number of accesses, rather than verifying each memory element on every access. This periodic approach maintains security against corruption by regularly detecting integrity violations while preserving memory access speed during normal operations between verification points.

Inventive Principle:
Principle #19Periodic action

3Measurement precision

If comprehensive authentication code verification is performed on all memory elements, then detection precision of corrupted data is maximized, but computational resources are excessively consumed

Engineering Contradiction:
Improvedetection precision of corrupted dataVSAvoidcomputational resource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent extracts the essential integrity information from multiple individual authentication codes and consolidates it into a single aggregate authentication code. This extraction process maintains the ability to detect corrupted data with high precision while dramatically reducing computational resource consumption by verifying one aggregate code instead of multiple individual codes on each access.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9443107B2Method for protecting the integrity of a group of memory elements using an aggregate authentication code
Publication Date: 2016.09.13 QUALCOMM INC
  • US9443107B2 patent drawing
  • US9443107B2 patent drawing
  • US9443107B2 patent drawing

AI summary

One feature pertains to an efficient algorithm to protect the integrity of a plurality of data structures by computing an aggregate message authentication code (MAC) over the plurality of data structures. An aggregate MAC may be constructed from a plurality of MAC values associated with a plurality of data structures. The aggregate MAC binds the plurality of data structures and attests to their combined integrity simultaneously. Rather than checking the integrity of a data structure when it is accessed, the aggregate MAC is periodically checked or verified, to ascertain the integrity of all data structures. If the aggregate MAC computed is different from the previously stored aggregate MAC, then all data structures that are part of the aggregate MAC are discarded.