Microprocessor Secure Function Execution via Cryptographic Signatures
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for executing binary code of secure functions are not robust against fault injection attacks, which can cause modifications to machine instructions or data, leading to integrity issues and security breaches in cryptographic systems.
Innovation Solution
A method for executing binary code of secure functions that includes instrumentation to detect and signal execution faults, using cryptographic signatures and error-correcting codes to verify the integrity of instructions and data, and employing a compiler to generate secure binary code with encrypted instructions and initialization vectors for each basic block.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If binary code is executed without additional security instrumentation, then execution speed is maintained, but vulnerability to fault injection attacks increases
Solution Approach 1:
The patent applies preliminary action by computing cryptographic signatures and error-correcting codes for all instructions and data before execution. These security checks are prepared in advance during code compilation and loading, allowing the microprocessor to verify integrity without adding significant runtime overhead. The signatures are computed once and stored with the binary code, enabling fast verification during execution.
Solution Approach 2:
The patent uses copying by creating and verifying cryptographic signatures (copies of integrity information) for each instruction and data element. Instead of complex real-time monitoring, the system creates signature copies that can be quickly compared against original values during execution, simplifying the verification process while maintaining strong security guarantees.
2Reliability
If cryptographic signatures are verified for each instruction, then instruction integrity is ensured, but execution time increases
Solution Approach 1:
Cryptographic signatures are computed in advance during code compilation and loading phases, not during instruction execution. This preliminary computation allows the verification process during execution to be much faster, as it only requires comparing pre-computed signature values rather than performing full cryptographic verification of each instruction.
Solution Approach 2:
The patent replaces complex real-time cryptographic verification mechanisms with simpler comparison operations. Instead of performing full cryptographic verification for each instruction during execution, the system uses pre-computed signatures that can be verified through faster comparison operations, substituting a heavy mechanical verification process with a lighter comparison-based system.
3Reliability
If error-correcting codes are applied to all data, then data integrity is improved, but memory usage increases
Solution Approach 1:
The patent applies error-correcting codes selectively rather than uniformly to all data. Different levels of protection are applied based on the criticality and type of data: cryptographic signatures are applied to instructions and sensitive data, while error-correcting codes are applied to data in transit and storage. This local quality approach ensures high reliability for critical elements while minimizing overall memory overhead.
Solution Approach 2:
The patent changes the parameters of error protection by using different code types and strengths for different data elements. Instead of applying a single error-correcting code to all data, the system varies the protection parameters (code type, redundancy level) based on data sensitivity and location, optimizing the balance between integrity and memory usage.
4Reliability
If control flow verification is implemented, then control flow integrity is ensured, but detection complexity increases
Solution Approach 1:
The patent uses copying by creating cryptographic signatures of control flow information that can be verified against expected values. Instead of implementing complex real-time monitoring of control flow paths, the system creates signature copies of control flow metadata that can be quickly compared to detect unauthorized modifications, simplifying the detection process while maintaining strong integrity guarantees.
Data Source
Figure 1~4
Figure 5~8
Figure 9~11
AI summary
In this process, a hardware security module of a microprocessor: 1) verifies (176) the integrity and authenticity of a cryptogram contained in a line of code loaded using a message authentication code contained in that same line and triggers (172) the signaling of an execution fault if the integrity or authenticity of the cryptogram is not confirmed, then 2) decrypts (178) the cryptogram to obtain a decrypted instruction or decrypted data if the integrity and authenticity of the cryptogram are confirmed, then: - in the case of a decrypted instruction, the decrypted instruction is stored (180) in an instruction queue to be executed successively by an arithmetic and logic unit of the microprocessor, and - in the case of decrypted data, the decrypted data is stored in an internal register of the microprocessor awaiting processing by the unit arithmetic and logic.