Block Cipher Principles
Stream Cipher and Block Cipher
- A stream cipher is one that encrypts a data stream one bit or one byte at a time. Example of stream cipher is the auto keys vigenere cipher and vernam 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. Example of the block cipher is DES.
Motivation for the Feistel Cipher Structure: Block Cipher Principles
- A block cipher operates on a plaintext block of n bits to produce a ciphertext block of n bits.
- There are 2r possible different plaintext blocks and for the encryption to be reversible each must produce unique ciphertext block.
- Reversible encryption is also called as singular encryption. For example singular and non-singular transformation for n=2.
Reversible Mapping: Block Cipher Principles
[table id=2 /]
Irreversible Mapping: Block Cipher Principles
[table id=3 /]
- If we limit ourselves to reversible mapping the number of different transformation is 2r!.
- Figure below illustrates the logic of a general substitution cipher for n=4
- A 4-bit input produces one of 16 possible input states, which mapped by substitution cipher into one of unique 16 possible output states, each of which represented by 4-bit ciphertext.
- Moreover, The encryption and decryption mapping can define by tabulation, as shown in the table. This the most general form of block cipher and can use to define any reversible mapping between plaintext and
- Feistel refers to this as the ideal block cipher. Because it allows for the maximum number of possible encryption mappings from the plaintext block.
- But there is the practical problem with the ideal block cipher is if we use small block size such as n=4 then it is vulnerable to statistical analysis of the plain text.
- If n is sufficiently large and an arbitrary reversible substitution between plaintext. And ciphertext allowed then statistical analysis is infeasible.
- Moreover, The ideal block cipher is not practical for large block size according to implementation and performance point of view.
- For such transformation mapping itself is a key and we require nX2n bits for n bit ideal block cipher. Which is not practical.
- In considering these difficulties, Feistel points out that what needed is an approximation to the ideal cipher system for large n, built up out of components that are easily realizable.