Cryptomodule Block Processing for Limited Memory Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveintegrity and authenticity verificationVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improveintegrity verificationVSAvoidcompatibility with limited storage cryptomodules
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvesecurity authenticationVSAvoidprocessing and storage operations
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3672141B1Method for verifying the integrity and decryption of an encrypted message, associated cryptomodule and terminal
Publication Date: 2023.06.07 AIRBUS DS SLC
  • EP3672141B1 patent drawingFigure 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.