Cryptomodule Block Processing for Limited Memory Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing encryption modes with authentication, such as GCM, require excessive storage capacity to verify the integrity and decrypt encrypted messages, which is not feasible for cryptomodules with limited memory, especially in devices like mobile phones.
Innovation Solution
A method that divides the encrypted message into blocks, verifies integrity block by block, and decrypts block by block, using authentication codes to ensure security and minimize storage requirements, allowing the cryptomodule to store only two blocks of data at a time, with the option to erase keys and codes after use to conserve memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If classic encryption method with authentication (GCM) is used, then integrity and authenticity of encrypted data is ensured, but storage capacity requirement becomes excessively large
Solution Approach 1:
The patent divides the encrypted message into multiple data blocks (B1, B2, ..., BN) and processes them sequentially. The integrity verification and decryption operations are performed block by block, with each block processed and then erased from memory. This segmentation allows the cryptomodule to handle large encrypted messages without requiring storage capacity proportional to the entire message size, resolving the contradiction between ensuring integrity/authenticity and limiting storage requirements.
Solution Approach 2:
The patent implements a dynamic memory management approach where data blocks are loaded into the cryptomodule memory, processed, and then immediately erased. The memory is reused for the next block, creating a dynamic flow rather than static storage. This dynamic operation allows the system to maintain security and integrity verification while using minimal storage capacity at any given time, addressing the contradiction between reliability and storage requirements.
2Reliability
If entire decrypted message is stored before integrity verification, then integrity can be verified, but this operation mode is incompatible with cryptomodules having limited storage capacity
Solution Approach 1:
The patent segments the integrity verification process into individual block-level operations. Instead of verifying integrity of the entire message at once, the system calculates intermediate integrity codes (li) for each data block sequentially. This segmentation enables integrity verification to proceed with minimal storage requirements, making the operation mode compatible with cryptomodules having limited storage capacity while maintaining reliability.
Solution Approach 2:
The patent performs preliminary integrity code calculation for each data block before decryption. The intermediate integrity code (li) is calculated using the integrity key (CI), the data block (Bi), and the previous integrity code (li-1). This preliminary action allows the system to verify integrity progressively as each block is processed, eliminating the need to store the entire decrypted message before verification, thus adapting to limited storage constraints.
3Reliability
If authentication codes are generated for each data block, then security between integrity verification and decryption is enhanced, but additional storage and processing requirements are introduced
Solution Approach 1:
The patent segments the authentication process into individual operations for each data block. The authentication code (Ai) is generated for each block using the verification key (CV) and the block's rank (i). This segmentation allows the system to maintain strong security authentication while managing complexity through structured, sequential processing of each block independently, rather than requiring complex batch operations.
Solution Approach 2:
The authentication code (Ai) acts as an intermediary element that provides security between the integrity verification step and the decryption step. The authentication code depends on the data block (Bi), the verification key (CV), and the block rank (i). This intermediary mechanism enhances security by ensuring that only properly authenticated blocks are decrypted, while the structured approach to generating and verifying these codes manages the added complexity through systematic processing.
Data Source
Figure 1~2
AI summary
One aspect of the invention relates to a method for verifying the integrity and decrypting an encrypted message comprising a plurality of ordered data blocks, a cryptomodule performing the following steps: - Store or activate an integrity key; - Calculate an initial integrity code; - Generate and store a verification key; - For each data block: • Store the data block; • Update an intermediate integrity code with the integrity key, the data block, and the initial integrity code or the intermediate integrity code of the previous data block; • Generate an authentication code using the verification key, the authentication code depending on the index i of the data block; • Erase the data block; - Analyze the final integrity code; - If integrity is verified: • Store or activate a decryption key specific to the encrypted message; • For each data block: • Store the data block;• Verify the authenticity and rank of the data block using its authentication code; • If the authenticity and rank of the data block are verified, decrypt the data block with the decryption key; • Transmit the decrypted data block to the terminal; • Delete the encrypted and decrypted data blocks.