Authenticated Encryption Using Split Message Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing authenticated encryption schemes, such as AES-GCM and AES-GCM-SIV, face challenges in maintaining message confidentiality and integrity, particularly when IV misuse occurs and in resource-constrained devices where performance issues hinder the practicality of SIV solutions.
Innovation Solution
A method involving splitting a message into two parts, encrypting each part using distinct encryption keys and a nonce, generating an initialization vector from the encrypted nonce and associated data, and combining the encrypted parts with the nonce and initialization vector to form ciphertext, which is then decrypted using reverse operations to ensure message integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If AES-GCM scheme is used with repetition of the same IV under the same encryption key, then encryption speed is improved, but message confidentiality is completely lost
Solution Approach 1:
The message is divided into two parts: associated data (A) and plaintext (M). This segmentation allows different processing methods for each part, with the associated data being used to generate a unique initialization vector through the FL function, ensuring confidentiality even when encryption keys are reused.
Solution Approach 2:
The initialization vector is generated in advance by applying the FL function to the associated data and encryption key before the actual encryption process. This preliminary generation of a unique IV for each encryption operation ensures that even with key repetition, message confidentiality is maintained while allowing efficient encryption processing.
2Reliability
If SIV mode is used to provide resistance to IV misuse, then message confidentiality and integrity are improved, but processing performance deteriorates in resource-constrained devices
Solution Approach 1:
The complex SIV generation process is extracted and replaced with a simpler approach using the FL function applied directly to associated data. This extraction of the essential functionality (generating unique IVs from associated data) maintains security while reducing processing overhead for resource-constrained devices.
Solution Approach 2:
The approach changes the parameters used for IV generation from the complex SIV algorithm to a simpler FL function application on associated data. This parameter change maintains the security property of unique IV generation while significantly reducing computational complexity for devices with performance constraints.
3Reliability
If encrypted data is used to prevent cipher-text malleability and tampering, then message integrity is improved, but vulnerability to IV misuse and authentication failures increases
Solution Approach 1:
The FL function is applied beforehand to the associated data to generate a unique initialization vector for each encryption operation. This prior cushioning ensures that even if IVs are misused or repeated, the associated data binding provides protection against authentication failures and tampering, maintaining message integrity while reducing vulnerability to IV misuse.
Data Source
AI summary
An encoder encrypts a message by generating a nonce, using a first encryption key to encode the nonce, splitting the message into a first part and a second part, using the first encryption key and the encoded nonce to encrypt the first part of the message into a first ciphered part, using a second encryption key, the encoded nonce and the first ciphered part to generate an initialization vector, using the first encryption key and the initialization vector to encrypt the second part of the message into a second ciphered part, and generating a ciphertext comprising the first ciphered part, the second ciphered part, the initialization vector and the nonce. A decoder uses a reverse process to decrypt the message. The decryption comprises generating a copy of the initialization vector, which is compared to the initialization vector in order to verify that the message is properly decrypted.


