6

I recently read about the concept of Feistel Networks and Substitution Permutation Networks but what is exactly the difference between the two ?

Biv
  • 10,088
  • 2
  • 42
  • 68
blacklight
  • 581
  • 7
  • 13

2 Answers2

6

In a Feistel networks (from the German IBM cryptographer Horst Feistel), the input is divided into two blocks ($L_0$ and $R_0$) which interact with each other. Main example is DES.

basic construction:

enter image description here


In a SPN (Substitution Permutation Network), the input is divided into multiple small blocks, applied to a S-box (substitution), then the bits positions are mixed (permutation). The key addition may occur before or after these two operations.

Present block cipher:

enter image description here

Biv
  • 10,088
  • 2
  • 42
  • 68
-2

From Wikipedia:

Although a Feistel network that uses S-boxes (such as DES) is quite similar to SP networks, there are some differences that make either this or that more applicable in certain situations. For a given amount of confusion and diffusion, an SP network has more "inherent parallelism"1 and so — given a CPU with many execution units — can be computed faster than a Feistel network.[2] CPUs with few execution units — such as most smart cards — cannot take advantage of this inherent parallelism. Also SP ciphers require S-boxes to be invertible (to perform decryption); Feistel inner functions have no such restriction and can be constructed as one-way functions.

SEJPM
  • 46,697
  • 9
  • 103
  • 214