Authenticated Encryption Device Using Two-Round Feistel Structure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing authenticated encryption systems require two-pass processing, leading to increased time and load due to the need for separate encryption and MAC functions, and often require a decode function that is slower than the encryption function, particularly in systems like OCB mode which necessitates both encryption and decode functions for processing.
Innovation Solution
A two-round Feistel structure is applied using an encryption function with an auxiliary variable for each two blocks to generate encrypted text or decoded plaintext, and the encryption function is used to calculate a checksum for generating an authentication tag, allowing for one-pass and one-rate authenticated encryption with parallel processing using only one encryption function.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If two-pass processing is used for authenticated encryption, then security and authentication are achieved, but processing time increases and computational load increases
Solution Approach 1:
The patent combines encryption and authentication into a single integrated process. The authenticated encryption unit performs both encryption and authentication tag generation in one operation, eliminating the need for separate encryption and MAC computation passes. This merging of functions directly resolves the contradiction by maintaining security while reducing processing time.
Solution Approach 2:
The patent performs preliminary computation of authentication tags during the encryption process itself, rather than as a separate subsequent step. By computing authentication-related values concurrently with encryption operations, the system achieves authentication without additional processing time, resolving the time-loss contradiction.
2Reliability
If separate encryption and MAC functions are used, then security is maintained, but device complexity increases
Solution Approach 1:
The patent employs a single encryption function that serves multiple purposes: it performs both the encryption of plaintext and the generation of authentication tags. This multi-functional encryption unit replaces what would traditionally require separate encryption and MAC computation units, thereby reducing device complexity while maintaining security through the unified design.
Solution Approach 2:
The patent merges the encryption function and authentication function into a single integrated unit. The authenticated encryption unit uses the same encryption algorithm for both encrypting data and generating authentication tags, eliminating the need for separate functional units and reducing overall system complexity.
3Ease of operation
If decode function is used for decryption, then decryption is achieved, but processing speed decreases compared to encryption function
Solution Approach 1:
The patent inverts the traditional approach by using the encryption function for both encryption and decryption operations. Instead of having separate encryption and decryption functions with different performance characteristics, the system uses the same encryption function in different operational modes, ensuring that decryption speed matches encryption speed and eliminating the performance penalty of specialized decode functions.
Data Source
AI summary
To achieve one-pass and one-rate authenticated encryption capable of performing parallel processings and totally performing encryption and decode processings by only one encryption function. An authenticated encryption device comprises an authenticated encryption means for applying a two-round Feistel structure using an encryption function assigned with an auxiliary variable for a round function per two blocks to an input plaintext or encrypted text thereby to generate an encrypted text or decoded plaintext. The authenticated encryption means finds an encrypted text chunk CC[i]=(C[i_1], C[i_2]) corresponding to an i-th plaintext chunk MC[i]=(M[i_1], M[i_2]) when dividing a plaintext into chunks per two blocks as:C[i_1]=F_K((N,Tw_i_1),M[i_1])xor M[i_2],C[i_2]=F_K((N,Tw_i_2),C[i_1])xor M[i_1].


