chapter twelve

12 Principles for secure encryption

 

This chapter covers

  • Five principles for secure encryption
  • Large blocks and long keys
  • Confusion, or non-linearity
  • Diffusion and saturation

Let’s pull together everything we learned in chapter 11. In sections 12.1 to 12.5 we will distill the 5 underlying principles that make a block cipher secure. One hallmark of a secure block cipher is that changing any bit in the key or any bit in the plaintext will cause about 50% of the bits in the ciphertext block to change, preferably in a random-looking pattern. Let’s call this the Fifty-Fifty property. This chapter will describe how to make that happen.

12.1  Large Blocks

We have seen that a bigram cipher can be solved just like a simple substitution cipher by compiling bigram frequencies and contact frequencies. This can also be done for trigrams and tetragrams, although a very large amount of ciphertext is needed. For block ciphers done by hand, the smallest block size that should be considered is 5 characters. For computer ciphers the minimum block size is 8 bytes. One purpose of a large block size is to prevent Emily from solving the cipher like a code. That is, Emily would find repeated ciphertext blocks and deduce their meaning from their frequency and their positions in the message. To take an extreme case, if the block size is 1 character, then no matter how large the key is, and how many encryption steps are used, the cipher is still just a simple substitution.

12.2  Long Keys

12.2.1    Redundant Keys

12.3  Confusion

12.3.1    Correlation Coefficient

12.3.2    Base 26 Linearity

12.3.3    Base 256 Linearity

12.3.4    Adding a Backdoor

12.3.5    Condensed Linearity

12.3.6    Hybrid Linearity

12.3.7    Constructing an S-Box

12.3.8    S-Box with Key

12.4  Diffusion

12.5  Saturation

12.6  Summary