Low-Complexity Verification Code for Data Corruption Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current measures for detecting data corruption in Real-Time Operating Systems (RTOS) and application programs are inadequate, particularly in resource-constrained devices, as they rely on inefficient methods such as NULL pointer checks and code hardening, which fail to detect corruption effectively and incur high overhead when using digital digests like SHA.

Innovation Solution

The implementation of a low-complexity verification code generation and storage method, utilizing a unique secret derived from a hardware true random number generator, which generates a verification code based on data values and storage addresses, allowing for early detection of data corruption with minimal processing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If basic sanity checks (NULL pointer checks) are used for data corruption detection, then the implementation is simple, but the detection effectiveness is poor because it only detects NULL values and cannot identify other corruption types

Engineering Contradiction:
Improvedata corruption detection effectivenessVSAvoidverification mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing verification codes (hashes) for all data objects during system initialization or data creation, and storing them alongside the data. This allows corruption detection to occur instantly during verification without requiring complex real-time analysis, resolving the contradiction between detection effectiveness and implementation complexity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of the data's essential verification information (the verification code/hash) and stores it separately from the original data. This copy can be quickly compared against newly computed hashes to detect corruption, providing effective detection without requiring complex verification mechanisms on the original data

Inventive Principle:
Principle #26Copying

2Reliability

If digital digest algorithms (SHA) are used for data corruption detection, then the detection accuracy is high, but the processing overhead is prohibitive for resource-constrained real-time systems

Engineering Contradiction:
Improvedata corruption detection accuracyVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies partial action by using simplified hash algorithms or truncated versions of full cryptographic hashes that provide sufficient corruption detection capability for embedded systems. This partial implementation maintains adequate detection accuracy while significantly reducing the processing overhead and resource consumption compared to full SHA algorithms

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes the parameters of the hash algorithm to optimize for resource-constrained environments, using smaller hash sizes, simpler algorithms, or custom-designed verification functions that provide adequate corruption detection with lower computational cost, thus resolving the contradiction between detection accuracy and processing overhead

Inventive Principle:
Principle #35Parameter changes

3Reliability

If code hardening techniques are applied to prevent data corruption, then the prevention capability is improved, but the ability to detect externally introduced corruption remains ineffective

Engineering Contradiction:
Improvedata corruption preventionVSAvoidexternal corruption detection
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces an intermediary verification mechanism (independent verification codes and validation routines) that operates separately from the application code. This intermediary layer can detect corruption introduced by external sources or security breaches without being affected by code hardening measures, resolving the contradiction between prevention capability and detection difficulty

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240119182A1Methods and apparatus for enhanced data corruption detection
Publication Date: 2024.04.11 LAMIE WILLIAM E
  • US20240119182A1 patent drawing
  • US20240119182A1 patent drawing
  • US20240119182A1 patent drawing

AI summary

Method and apparatus for providing enhanced detection of data corruption in computer programs (e.g., real-time operating systems (RTOS) and application programs). In one exemplary embodiment, such detection is effected via use of a low-complexity verification code algorithm, which can be implemented in as little as four (4) assembly instructions. This low overhead approach advantageously makes the data corruption detection feasible in real-time and/or resource constrained devices. Additionally, the data corruption detection verification code of the present disclosure can be used as a verification fingerprint for any important data, such as that in RTOS-based applications relating to, e.g., (i) function pointers, (ii) function return addresses, (iii) stack and/or buffer corruption, and (iv) linked-list and general pointer corruption.