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


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

| improve this answer | |
  • $\begingroup$ Funfact: You usually start with and end with a key operation in an SPN as otherwise this round is trivially reversable. $\endgroup$ – SEJPM May 19 '16 at 13:37
  • $\begingroup$ Yup I know. ;) But it didn't match the Present diagram from iacr.org/authors/tikz $\endgroup$ – Biv May 19 '16 at 13:38
  • $\begingroup$ thanks! this realy helped me, you see i watched a video lately where they explained DES with the feistel network, but then they showed how the function in the feistel network worked (which really looked like a spn network) so that why i was confused with the diffrence between them, anyway thanks for helping! $\endgroup$ – blacklight May 19 '16 at 13:43
  • $\begingroup$ I have an OT question: In the common descryption of Feistel ciphers there are exchanges of L and R on the successive steps. But that could apparently be avoided by a suitable re-formulation of the algorithm which IMHO would be better for understanding. Could I be right in that? $\endgroup$ – Mok-Kong Shen May 20 '16 at 8:53
  • $\begingroup$ @Mok-KongShen You mean something like this or this ? While it seem easier to implement (because you consider a big round function as 2 iteration of the usual round function : L -> R ; R -> L). The usual representation is better in a traditional sense as it is the one you are likely to find in books, explanations etc. So yes, easier to implement, but not a standard representation. $\endgroup$ – Biv May 20 '16 at 9:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.