6

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

Biv
  • 9,879
  • 2
  • 37
  • 66
blacklight
  • 551
  • 7
  • 12

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
  • 9,879
  • 2
  • 37
  • 66
  • 1
    Funfact: You usually start with and end with a key operation in an SPN as otherwise this round is trivially reversable. – SEJPM May 19 '16 at 13:37
  • Yup I know. ;) But it didn't match the Present diagram from http://www.iacr.org/authors/tikz/ – Biv May 19 '16 at 13:38
  • 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! – blacklight May 19 '16 at 13:43
  • 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? – Mok-Kong Shen May 20 '16 at 08:53
  • @Mok-KongShen You mean something like [this](http://i.stack.imgur.com/QvV4W.jpg) or [this](https://duckopensource.files.wordpress.com/2014/04/fulldess.gif) ? 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. – Biv May 20 '16 at 09:04
  • In addition : SPN needs inverse s boxes and P boxes . While fiestel doesn't require F inverse –  Mar 04 '17 at 09:30
  • I'll anyway write a detailed answer later –  Mar 04 '17 at 09:31
  • DES is a very good example for fiestel. While AES for SPN. You can check online –  Mar 04 '17 at 09:33
  • There are few hybrid ciphers that have both the properties of SPN and fiestel. –  Mar 04 '17 at 09:34
  • You know that you are commenting my **answer** ? – Biv Mar 04 '17 at 09:36
-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
  • 45,265
  • 7
  • 94
  • 199
  • What are your "[1]" and "[2]", did you forgot to cite references? – DannyNiu Sep 21 '20 at 07:54
  • 3
    What's the point of you making a verbatim copy of Wikipedia and other wikis if many people could already access them? – DannyNiu Sep 21 '20 at 07:56
  • 3
    Hi, it appears that you copied this answer from [Wikipedia](https://en.wikipedia.org/wiki/Substitution%E2%80%93permutation_network). You're using someone else's work without giving the author credit. This amounts to plagiarism, and is not welcome on Cryptography Stack Exchange. Remember to always add prominent attribution when using other sources. Thanks! (this comment relates to a previous revision of this answer) – SEJPM Sep 21 '20 at 09:04
  • For those stalking my [recent activities](https://cs.meta.stackexchange.com/a/1727/75503), I didn't visit Wikipedia to know where the text come from, my search engine turned up the content of its mirroring sites. – DannyNiu Sep 21 '20 at 09:15