Security Element Program Authentication via Segment Reordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing vehicle processor authentication methods face challenges in quickly verifying program authenticity without allowing unauthorized access to program instructions and ensuring rapid processor startup, as they require secure communication and quick integrity checks.
Innovation Solution
An apparatus and method that uses a security element coupled to the processor to reorder and hash program segments, comparing the hashes to authenticate the program, and if unauthorized, inhibits execution or alerts the operator, utilizing a transfer order table and exclusive OR operations for secure verification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a security element is used to verify program authenticity, then program integrity is improved, but communication security and startup speed are worsened
Solution Approach 1:
The program is divided into multiple segments, and only specific segments are selected for hashing and verification rather than the entire program. This segmentation reduces the computational burden and communication overhead while maintaining security, as the hash is computed on a subset of program segments rather than all segments.
Solution Approach 2:
Instead of performing a complete hash verification of the entire program, the system performs a partial verification by selecting and hashing only certain program segments. This partial action approach provides sufficient security for startup verification while significantly reducing the time and computational resources required compared to full program verification.
2Reliability
If a security element is used to verify program authenticity, then program integrity is improved, but processor startup time is worsened
Solution Approach 1:
The program verification is segmented into selective hashing of specific program segments rather than processing the entire program. This allows the critical authenticity check to be performed quickly on essential segments during startup, reducing the time penalty while maintaining security.
Solution Approach 2:
The system performs a partial verification by hashing only selected program segments rather than the complete program. This partial action provides adequate security for startup purposes while dramatically reducing the verification time compared to full program hashing, thus resolving the contradiction between security and startup speed.
3Productivity
If program segments are hashed and verified, then authentication speed is improved, but security against reading program instructions is worsened
Solution Approach 1:
The invention extracts only the essential verification elements (specific program segments) needed for authentication while leaving the rest of the program protected. By selecting and hashing only critical segments rather than exposing or processing the entire program, the system achieves fast authentication without compromising the security of the full program instructions.
Solution Approach 2:
The hash function serves as an intermediary that transforms selected program segments into a verification value without exposing the original program instructions. This intermediary process allows authentication to be performed on the hash values rather than the actual program code, maintaining security while enabling rapid verification.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The authenticity of a program executed by a processor is determined by a security element that computes a hash code over re-ordered segments of a known-to-be-authentic copy of a program executed by the processor. The authenticity of the same segments are re-ordered by and provided by the processor to the security element, which computes a second hash code for the re-ordered segments received from the processor. If the hash values for the segments are identical, the program segments are identical. If the hash values for any segment are different, the two programs are different. When a processor's program is determined to be different from a known good copy, the processor can be stopped or an alarm signal generated.