Feistel cipher
A Feistel cipher is a block cipher with a particular structure (known as a Feistel network). As cryptographers have performed much analysis of this structure and the strengths and weaknesses it produces, many--but by no means all--modern block ciphers are Feistel ciphers. DES is one of the earliest and best known such cipher.Split the plaintext block into two equal pieces, (L0, R0)
For each round i =1,2,...,n, compute
Li = Ri-1
Ri = Li-1 ⊕ f(Ri-1, Ki)
where f is the round function and Ki is the sub-key.Then the ciphertext is (Ln, Rn).
Regardless of the function f, decryption is accomplished via
Ri-1 = Li
Li-1 = Ri ⊕ f(Ri-1, Ki)
Unbalanced Feistel ciphers use a modified structure where L0 and R0 are not of equal lengths. The Skipjack encryption algorithm is an example of such a cipher.