Cryptography Reference
In-Depth Information
and the Feistel structure is computed and XORed in again. The two “halves” are not necessarily of equal length
(which are called unbalanced).
Basic Feistel Encryption Algorithm
The basic Feistel encryption algorithm structure is r rounds long, with the round function f .
1. Split the initial plaintext, P , into two halves: The “left half” ( L 0 ) consists of the most significant bits,
and the “right half” ( R 0 ) consists of the least significant bits.
2. For each round, i = 1, ... , r , do the following:
(a) Calculate R i = L i -1 f ( R i-1 , K i ) that is, the previous left half XORed with the round function
(whose arguments are the previous right half and the current round key).
(b) Calculate L i = R i -1
This structure will make more sense after looking at Figure 4-6 , which shows the encryption in action.
Figure 4-6 The Feistel structure for the first two rounds. The remaining rounds just repeat the structure.
The algorithm then terminates after the appropriate number of rounds, with the output ciphertext, C, obtained
by concatenating the two halves after r rounds: Lr and Rr. For example, with three rounds, we would have the
following progression:
 
 
Search WWH ::




Custom Search