Stored Code Authentication Using Cryptographic Hash Lookup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems fail to adequately authenticate and ensure the integrity of data, particularly executable code and firmware, making them vulnerable to hacker attacks and unauthorized changes, which can lead to dangerous system failures in IoT devices and autonomous vehicles.
Innovation Solution
Implementing a cryptographic measurement system that compares data portions to expected values stored in a lookup table to determine authenticity and integrity, using cryptographic engines to authenticate and verify the data before allowing its execution or storage, and entering a rescue mode if the data is found to be unauthorized.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If cryptographic hash functions are used to authenticate data, then data integrity and authenticity are improved, but system complexity increases due to additional authentication mechanisms
Solution Approach 1:
The system pre-stores cryptographic hash values of expected data in a lookup table during system initialization or firmware update. When data needs authentication, the system simply compares the computed hash of the data against the pre-stored hash values, eliminating the need for complex real-time authentication algorithms during data verification operations.
Solution Approach 2:
Instead of storing the actual data and verifying it through complex cryptographic operations, the system creates and stores copies of the data's cryptographic fingerprints (hash values) in a lookup table. This allows rapid verification by comparing hash values rather than performing complex cryptographic operations on the actual data during runtime.
2Speed
If data is stored in lookup tables for authentication, then verification speed is improved, but memory requirements increase
Solution Approach 1:
The system extracts only the essential authentication information (cryptographic hash values) from the data and stores these condensed representations in the lookup table, rather than storing the complete data. This extraction approach significantly reduces memory requirements while maintaining the ability to verify data authenticity through hash comparison.
Solution Approach 2:
The lookup table stores temporary hash values that can be regenerated or updated when needed, rather than persisting large amounts of data permanently. This allows the system to use minimal memory for authentication purposes while maintaining flexibility to update authentication data without requiring substantial memory capacity.
3Reliability
If the system rejects unauthorized data, then security is improved, but system availability decreases due to potential execution failures
Solution Approach 1:
The system performs cryptographic authentication of data before execution or storage operations. By verifying data integrity in advance using pre-stored hash values, the system can reject unauthorized data proactively, preventing security breaches while ensuring that only authenticated data is executed, thus maintaining system availability for legitimate operations.
Solution Approach 2:
The lookup table acts as an intermediary between the data source and the execution environment. It mediates authentication by providing pre-verified hash values that enable rapid comparison, allowing the system to make informed decisions about data acceptance without directly handling complex cryptographic operations during the execution path, thus balancing security with availability.
Data Source
AI summary
The authenticity and/or integrity of data is determined based on cryptographic measurements. In some cases, the data is executable code of a computer program stored in system memory. In other cases, the data is firmware stored in a storage device or a boot device. In yet other cases, the data is executable code that is part of an update being received by an application controller. For example, the update may be a secure over-the-air (SOTA) update of software stored in firmware (e.g., on a storage device or a boot device).


