I was doing some cryptography exercises, one of which was an example of a feistel network. It said that the function $f_k$ was a permutation for all k but didn't explain why that makes a difference. So what is the importance of a function being a permutation in a feistel network?
1 Answer
I assume that you are referring to the round function. This is false. The whole advantage of a Feistel network is that $f_k$ does not need to be a permutation. Indeed in DES, it is not a permutation. In an substitution-permutation network it needs to be a permutation so that it can be inverted, but in Feistel inversion is possible in any case. Thus, you have more freedom in choosing $f_k$.
-
$\begingroup$ It's not important for $f_k$ to be a permutation in a feistel network. A feistel network is advantageous because you have the freedom to use a function that is not invertible since the Feistel network is invertible in any case. $\endgroup$ Nov 20, 2016 at 15:36
-
$\begingroup$ You have it the opposite. A permutation is invertible. What makes something potentially more secure is having more freedom in choosing the round function. When it does not have to be a permutation there is more freedom. $\endgroup$ Nov 20, 2016 at 16:20