I have read about Feistel network and so far only advantages have been listed. Are there any disadvantages to the design? Please could you explain in fairly basic terms?
Well, what are we comparing Feistel networks to? The other major design paradigm is SPN: https://en.wikipedia.org/wiki/Substitution-permutation_network. In comparison to SPN, the cons are:
- Not a direct implementation of confusion and diffusion. Feistel networks have more structure that has no clear justification. (Some point to the security proof but if you assume a cryptographically secure round function, how wrong can things go? A better question is: "if your round function is weak, what does the Feistel network add?").
- Parallelism is about half of an equivalent SPN, which is a disadvantage for hardware implementations.
I have found a disadvantage because at least 3 rounds of the Feistel cipher are required. More details can be found here: Is this a structural weakness of Feistel networks? - the computation cost will be higher.