Fiestal cipher
Fiestal cipher
The plaintext block is divided into two halves, L0 andR0. The two
halves of the data pass through n rounds of processing and then
combine to produce the ciphertext block.
Each round i has as inputs Li-1 and Ri-1, derived from the previous
Block size: Larger block sizes mean greater security but reduced
Number of rounds: The essence of the Feistel cipher is that a single round
offers inadequate security but that multiple rounds offer increasing security.
making the algorithm easy to analyze. That is, if the algorithm can
Use the ciphertext as input to the algorithm, but use the subkeys K in
reverse order.
That is, use Kn in the first round, Kn-1 in the second round, and so on
until K is used in the last round. This is a nice feature because it
means we need not implement two different algorithms, one for
encryption and one for decryption.
Figure. Feistel
Encryption and
Decryption
If you clearly observe that the output of the first round of the decryption
process is equal to a 32-bit swap of the input to the sixteenth round of
the encryption process. First, consider the encryption process.
LE16 = RE15
RE16 = LE15 x F(RE15, K16)