Feistel cipher named after block cipher pioneer Horst Feistel, is a general cipher design principle. It is a design model or structure used to build various symmetric block ciphers, such as DES. A cryptographic system based on the Feistel cipher structure uses the same algorithm for both encryption and decryption.
The
Feistel structure is based on the Shannon structure proposed in 1945,
demonstrating the confusion and diffusion implementation processes. Confusion
produces a complex relationship between the ciphertext and encryption key,
which is done by using a substitution algorithm. On the other hand, diffusion
creates a complex relationship between plain text and cipher text by using a
permutation algorithm.
The
Feistel cipher proposed the structure that implements substitution and
permutation alternately. Substitution replaces plain text elements with
ciphertext. Permutation changes the order of the plain text elements rather
than being replaced by another element as done with substitution.
Feistel Cipher Encryption
The Feistel cipher encryption process involves numerous rounds of processing plain text. Each round includes the substitution step and then the permutation step.
The Feistel cipher structure depends on the following parameters and design features:
Block size: Block ciphers are considered more secure when the block size is larger. Though, larger block sizes reduce the execution speed for the encryption and decryption process. Typically, block ciphers have a block size of 64-bits, but modern blocks like AES (Advanced Encryption Standard) are 128-bits.
Key size: Like the block size, larger key sizes are considered more secure but may decrease encryption and decryption speed.
Number of rounds: The number of rounds can also impact the security of a block cipher. While more rounds increase security, the cipher is more complex to decrypt. Thus, the number of rounds depends on a business’s desired level of data protection.
Subkey generation function: The more complex a subkey generation functions is, the more difficult it is for expert cryptanalysts to decrypt the cipher.
Round function: A complex round function helps boost the block cipher’s security. More complex function is harder for the cryptanalyst to attack.
Feistel Cipher Decryption:
The Feistel cipher model uses the same algorithm for encryption and decryption. There are a couple of key rules to consider during the decryption process:
The cipher text block contains two halves, the left (LD0) and the right (RD0).
Like the encryption algorithm, the round function is executed on the right half of the cipher block with the key K16. The function’s result is XORed with the left half of the cipher text block. The XOR function’s output becomes the new right half (RD1), while RD0 switches with LD0 for the next round. Indeed, every round uses the same function, and once the fixed number of rounds is executed, the plain text block is achieved.
0 Comments
if you have any doubts plz let me know...