HSM Crypto Co-Processor Execution for Secure Algorithm Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Hardware Security Modules (HSMs) face challenges in efficiently adding new cryptographic algorithms without disrupting service, managing complex key derivation operations, and ensuring security against unauthorized access to cryptographic keys, particularly in multi-tenant environments.
Innovation Solution
A method and device utilizing a first processor and a processing module, including a crypto co-processor, to execute cryptographic algorithms through a custom assembly language and masking component, ensuring secure execution of user-defined programs while maintaining separation of encrypted and unencrypted data, and enforcing access control policies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If new cryptographic algorithm code is downloaded and upgraded in the HSM, then the algorithm functionality is improved, but service interruption occurs
Solution Approach 1:
The patent implements preliminary action by pre-loading multiple sets of cryptographic algorithm code into the HSM before they are needed. The system maintains a pool of pre-downloaded algorithm implementations that can be immediately activated without service interruption. When a new algorithm is required, the system can switch to a pre-loaded version rather than downloading during operation.
Solution Approach 2:
The patent introduces an intermediary mechanism in the form of a code execution environment that separates the algorithm download/activation process from the cryptographic service execution. This intermediary layer allows new code to be prepared and validated without disrupting ongoing cryptographic operations, enabling smooth transitions between algorithm versions.
2Adaptability or versatility
If user-defined code is executed in the HSM, then cryptographic operation flexibility is improved, but security risk increases
Solution Approach 1:
The patent applies local quality by creating a restricted execution environment with specific security properties. User-defined code is executed within a sandboxed processing module that has limited access to system resources and cryptographic keys. The execution environment enforces local security policies that allow flexible cryptographic operations while preventing unauthorized access or malicious actions.
Solution Approach 2:
The patent introduces an intermediary processing module that acts as a mediator between user-defined code and the HSM's secure resources. This intermediary layer validates, monitors, and controls the execution of user-provided algorithms, ensuring they operate within security boundaries while maintaining the flexibility needed for custom cryptographic operations.
3Productivity
If all machine code instructions are made executable, then processing capability is improved, but security control is reduced
Solution Approach 1:
The patent implements local quality by applying different execution permissions to different machine code instructions based on their security characteristics. Certain instruction sets are designated as safe for unrestricted execution, while others require additional validation or are restricted entirely. This granular control allows the system to maximize processing capability for safe operations while maintaining security control over potentially harmful instructions.
Data Source
AI summary
A device and a method for performing a cryptographic algorithm is described herein.. A method performed by a device, the device comprising a first processor and a processing module, the method comprising: obtaining, by the first processor, first data, comprising a representation of computer program code that embodies a cryptographic algorithm; obtaining, by the first processor, second data; receiving, by the first processor, a request for a first mechanism to be performed, the request comprising: information identifying the first mechanism; information identifying the first data as corresponding to a program; and information identifying the second data as corresponding to an input; transmitting, by the first processor, to the processing module, a second request for the first mechanism to be performed, the second request comprising: information identifying the first mechanism; information identifying the first data as corresponding to the program; and information identifying the second data as corresponding to the input; and executing, by the processing module, the program represented in the first data taking the second data as the input.


