0
7.3kviews
What is Feistel Cipher?
1 Answer
0
194views

Feistel Cipher

  • Feistel cipher named after block cipher pioneer Horst Feistel, is a general cipher design principle.
  • A feistel cipher can have three types of components: self-invertible, invertible and non-invertible. This cipher combines all non-invertible elements in a unit and uses the same unit in the encryption and decryption algorithm.
  • In a Feistel cipher, the plaintext block P is split into left and right halves, $P = (L_0, R_0)$
  • For each round i = 1,2,... ,n new left and right halves are computed according to the rules

$L_i =R_i-1 …………… (I)$

$R_i = L_i-1 ⊕ F (R_i-1, K_i) …………….(II) $

where Ki is the subkey for round i.

  • The subkey is derived from the key Ki according to a specified key schedule algorithm. Finally the ciphertext C is the output of the final round, namely,

$C = (L_n , R_n)$

Solving equations (I) and (II) for R i-1 and $L_i-1$

$R_i-1 = L_i$

$L_i-1 = R_i ⊕ F( R_i-1 , K_i )$

and the final result is the original plaintext $P=(L_0 , R_0)$.

  • Any round function F will work in a Feistel cipher provided that the output of F produces the correct number of bits. There is no requirement that the function F be invertible.
Please log in to add an answer.