Skip to content
uencoder

Feistel Network

A Feistel network is a symmetric structure for block ciphers that splits the input into left and right halves and, each round, modifies one half with the round function F and swaps them; encryption and decryption share the same structure.

Purpose

It lets the round function F be an arbitrary non-bijective mapping while remaining invertible, simplifying design and implementation, and lets encryption and decryption share code.

Mechanism

Each round: L_{i+1} = R_i, R_{i+1} = L_i XOR F(R_i, K_i). Decryption runs the same structure with round keys in reverse order. DES, 3DES, Blowfish, and Twofish are all Feistel ciphers.

Use cases

  • DES/3DES structure
  • Blowfish/Twofish design
  • General block-cipher framework

Related tools

References