Cryptographic Component Software Validation via Simulator
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods are inadequate for validating the proper execution of cryptographic components due to protected memory access, making it difficult to test and validate cryptographic functions, especially when the component is in an operational configuration, leading to increased costs and complexity.
Innovation Solution
A method and system that utilize a simulator to test and validate cryptographic software by comparing the states of memories and results between a cryptographic component and a simplified software replica, allowing for the verification of correct operation without direct access to the memory, using a second software to reproduce cryptographic functions and generate comparable memory states and results.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory access is protected in cryptographic components, then security is improved, but the ability to validate and test software functionality deteriorates
Solution Approach 1:
The patent creates a copy of the cryptographic component's software in a test environment where memory can be accessed and validated. The software is compiled twice: once for the cryptographic component with protected memory, and once for a test version with accessible memory. This allows validation of software functionality without compromising the security of the actual cryptographic component.
Solution Approach 2:
The validation process is segmented into two separate environments: a production environment where the cryptographic component operates with protected memory, and a test environment where a copy of the software runs with accessible memory. This segmentation allows each environment to serve its specific purpose without compromising the other.
2Reliability
If memory access is restricted for security, then data protection is improved, but testing and validation costs increase
Solution Approach 1:
Instead of attempting to access protected memory in the cryptographic component during testing, the patent creates a separate copy of the software that can be freely accessed and tested. This eliminates the need for expensive and complex hardware modifications or security bypasses while still enabling thorough validation.
Solution Approach 2:
The software is compiled and tested in advance in a permissive environment before being deployed to the cryptographic component. This preliminary validation ensures software correctness before deployment, avoiding the need for expensive post-deployment testing or rework.
3Productivity
If direct memory access is used for validation, then validation speed is improved, but security is compromised
Solution Approach 1:
The patent achieves fast validation by copying the software to a test environment where memory access is unrestricted. This allows rapid reading and comparison of memory contents during testing while the original cryptographic component maintains its security protections intact.
Solution Approach 2:
The test environment acts as an intermediary that provides the benefits of fast memory access without directly accessing the protected cryptographic component. The intermediary copy allows validation operations to proceed quickly while security boundaries remain intact.
Data Source
Figure 1
AI summary
The method for validating the state of a memory (M1) of a simulator (11) of a cryptographic component capable of saving data generated by a cryptographic function, comprises: ▪ A step carried out in the simulator (11) including a first execution of a first cryptographic function generating: o a first state (M1STATUS) of the first memory (M1); o a first result (RESULT_1) of the first command (CDE_1); ▪ a step carried out in a test bench (10) including a second execution of a second simplified cryptographic function, the first and second functions performing the same operations generating: o a second state (M2STATUS) of the memory (M2); o a second result (RESULT_2) of the second command (CDE_2). ▪ A validation step including comparisons (COMP_A, COMP_B): o of the first state (M1STATUS) and the second state (M2STATUS); o of the first result (RESULT_1) and the second result (RESULT_2).