Now, let's delve into the foundational principles of modern symmetric ciphers, centering our exploration on the widely adopted Data Encryption Standard (DES) and its key block cipher structure.
Figure 2.1 Block cipher.
A block cipher is one in which a block of plaintext is treated as a whole and used to produce a ciphertext block of equal length. Typically, a block size of $64$ or $128$ bits is used.
<aside> <img src="/icons/map-pin_gray.svg" alt="/icons/map-pin_gray.svg" width="40px" /> If we consider a block cipher with a block size of $64$ bits, every $64$-bit chunk of plaintext is processed independently to produce a $64$-bit block of ciphertext.
</aside>
Now that we've established the fundamental concept of block ciphers, let's delve into a specific and widely employed structure known as the Feistel Cipher.
The Feistel Cipher is a specific structure used in the design of block ciphers. It employs a symmetric key algorithm to encrypt and decrypt data in fixed-size blocks.
Figure 2.2 Feistel encryption and decryption (16 rounds).
The core idea of a Feistel Cipher involves dividing the block into two halves and applying a series of functions in a repeated manner. This process iterates through multiple rounds, enhancing the overall security of the encryption. In the figure above:
All rounds have the same structure.
This structure is a particular form of the substitution-permutation network (SPN). Now, having explored the foundational principles of symmetric block ciphers and delved into the design concepts of Feistel ciphers, we'll shift our focus to a new topic.