# Feistel cipher key generation and round function algorithms

I'm getting confused of what is the actual structure of the key generation and the round function algorithms that Feistel cipher uses. I have been reading many resources about block cipher. All resources starts talking about Feistel cipher, but non of them explains how the key generation and the round function work. They all suddenly jump to explain The DES method. I know perfectly how DES works,and also know that DES is a form of Feistel cipher with specific features which are:

64-bits Key
64-bits Plain text
16 Rounds


So, are the key generation and the round function of Feistel cipher same as DES cipher? if yes, are there another key generation and round function algorithms else the one of DES?. Sorry for the many questions, but I really confused. Thanks in advance.

In the best maths I can manage, Feistel ≠ DES but rather DES ∈ Feistel. This is important as that's what's confusing you. It's just that DES is extremely prominent in the literature so articles are drawn towards it. The following is two Feistel rounds (ostensibly just a single round as they have to be in LH and RH pairs):-

This is also important in that this is the super set. And being so, there is no particular architecture for either the function or the key schedule that generates the round keys. DES architecture is just what the designers thought up to create it. Similarly, Blowfish ∈ Feistel, but you can come up with our own function and key schedule. I'm just a country boy and not a cryptographer, but as I understand it the overall security of a Feistel network will be proportional to the security of the key schedule times the security of function. Approximately, but you get the idea. It is possible to use anything from a strong hash function to simple compression techniques for function This will directly affect the security requirements for the key schedule.

It is interesting to note that whilst there are proven architectures for Feistel compression functions (and indeed native block ciphers like substitution and permutation), there are no equivalent standardised architectures for a key schedule. You can have anything, ranging from Blowfish's computationally expensive method, through AES' to the dodgy striping technique of RC4. The basic requirement of the key schedule (even more important than security) is that the key can be repetitively slotted into the main architecture at the correct bit width. Otherwise, it won't even begin to work.

There are of course certain fundamental requirements for both, and these are too extensive to list here. Now that you know the nature of these two fundamental components, you can do your own research. Look at things like:-

Are there any specific requirements for the function FF in a Feistel cipher?