Flash Storage Code Integrity Validation via Snippet Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Execute in place (XIP) from flash storage introduces security challenges as existing verification methods at run-time can degrade performance and create attack vectors for malicious code injection.

Innovation Solution

A device with a controller and a data integrity engine that determines a hash value for executable code during boot, extracts a subset of data bits to form a snippet, and stores it locally. At run-time, the integrity of the code is validated by comparing a hash value of the code to the stored snippet.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If full data verification is performed at run-time, then code integrity security is improved, but performance degrades and latency increases

Engineering Contradiction:
Improvecode integrity securityVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the code verification process by dividing the code into blocks and selecting only specific bits (snippets) from each block for verification rather than verifying all data bits. This segmentation approach maintains security by verifying critical portions while reducing the overall verification burden, thus improving performance without compromising code integrity security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts only essential portions of the code data for verification by selecting specific bits based on a bit pattern to form snippets. This extraction principle reduces the volume of data requiring run-time verification from the entire code block to just critical snippets, thereby reducing latency and improving performance while maintaining adequate security verification.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If full data verification is performed at run-time, then code integrity security is improved, but storage overhead and latency increase

Engineering Contradiction:
Improvecode integrity securityVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The verification process is segmented to focus only on critical snippets rather than entire code blocks. This segmentation reduces the time required for verification by limiting the scope to essential portions, thereby reducing latency while maintaining code integrity security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial verification by checking only a subset of code bits (snippets) rather than performing excessive full verification. This partial action approach provides sufficient security for critical portions while avoiding the time penalty of complete verification, thus reducing latency.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If code is executed from flash storage without verification, then performance is improved, but security vulnerabilities increase

Engineering Contradiction:
ImproveperformanceVSAvoidsecurity vulnerabilities
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent performs preliminary verification during the boot sequence by determining hash values and selecting snippet bits before normal operation begins. This preliminary action ensures that verification is completed in advance, allowing secure code execution from flash storage during runtime without performance degradation, while addressing security vulnerabilities proactively.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system performs self-verification by comparing run-time hash values against previously stored snippet values. This self-service mechanism enables the system to autonomously verify code integrity without external intervention, maintaining performance while reducing security vulnerabilities through continuous self-checking.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250117141A1External memory data integrity validation
Publication Date: 2025.04.10 TEXAS INSTRUMENTS INC
  • US20250117141A1 patent drawing
  • US20250117141A1 patent drawing

AI summary

In some examples, a method includes determining, during a boot sequence of a controller, a hash value for data of a block of a flash storage device, the block including executable code, determining a bit pattern based on a randomly generated number, extracting a subset of data bits of the hash value according to the bit pattern to obtain a snippet, and storing the snippet to a secure storage device.