How is key length of feistel cipher calculated? - Cryptography Stack Exchange most recent 30 from crypto.stackexchange.com 2022-01-26T16:31:28Z https://crypto.stackexchange.com/feeds/question/40461 https://creativecommons.org/licenses/by-sa/4.0/rdf https://crypto.stackexchange.com/q/40461 2 How is key length of feistel cipher calculated? eneski https://crypto.stackexchange.com/users/39914 2016-10-04T18:54:19Z 2016-10-04T19:59:44Z <p>In Feitsel Algorithim</p> <p>If our block size is n, then our key length would be n x 2^n .</p> <p>But this does not make sense for me. For example: Let's assume that we have 4 bit block size. If our block size is 4, how can the key length be 64 bit?</p> https://crypto.stackexchange.com/questions/40461/-/40462#40462 1 Answer by Ella Rose for How is key length of feistel cipher calculated? Ella Rose https://crypto.stackexchange.com/users/29554 2016-10-04T19:59:44Z 2016-10-04T19:59:44Z <p>You have some confusion here: The formula N * (2 ** N) for key size is for <em>ideal</em> block ciphers that select one of (2 ** N)! permutations. Shortly after that formula, your book starts to go into the Feistel construction (emphasis is mine):</p> <blockquote> <p>The Feistel Cipher</p> <p>Feistel proposed [FEIS73] that we can approximate the ideal block cipher by utilizing the concept of a product cipher, which is the execution of two or more simple ciphers in sequence in such a way that the final result or product is cryptographically stronger than any of the component ciphers. <strong>The essence of the approach is to develop a block cipher with a key length of k bits and a block length of n bits, allowing a total of 2 ^ K possible transformations, rather than the 2 ^ N! transformations available with the ideal block cipher</strong></p> </blockquote> <p>So the idea is to compromise on the huge key length and sacrifice the ability of picking one of <em>all</em> possible permutations, to utilize a smaller key that can select one of <em>enough</em> possible permutations. A cipher will typically use a key length that is equal to it's target block size, to simplify the key addition layer.</p>