Table of contents
Open Table of contents
What it is
Claude Shannon, the “father of information theory” identified Confusion and Diffusion as the two properties necessary to construct a secure (symmetric) cipher.
Using both properties together ensures that tools such as statistical analysis won’t give an attacker any significant advantage when trying to break the cipher.
It’s important to stress that both, Confusion and Diffusion have to be used together to thwart Cryptanalysis. If only one is present, it can still be possible to break the cipher.
Concatenations of Confusion and Diffusion in a setup with multiple rounds are called Product Ciphers.
Well-known Product Ciphers are the Data Encryption Standard (DES) and the Advanced Encryption Standard (AES).
Confusion
The goal of confusion is to obfuscate the linkage between the key and the ciphertext.
With confusion each bit of the generated ciphertext should depend on multiple bits of the key.
In modern day ciphers such as DES or AES this is done via Substitution Boxes.
Diffusion
The goal of diffusion is to hide statistical properties of the plaintext.
With diffusion, one tries to impact as many ciphertext bits as possible when only one bit of the plaintext is changed (and vice versa). This is oftentimes also referred to as the Avalanche Effect.
In DES diffusion is implemented as bit permutations via Permutation Boxes whereas in AES Mixcolumn operations are used.
The relationship to substitution and permutation
Confusion directly maps to the implementation of substitution (e.g. via Substitution Boxes (also known as an “S-Box”)) whereas diffusion can be mapped to the integration of permutation (e.g. via Permutation Boxes (also known as a “P-Box”)).
In modern day ciphers multiple of such substitution-permutation layers are chained together to form Substitution-Permutation Networks that provide strong confusion and diffusion properties.
To read more about substitution and permutation you can check out the dedicated blog post here.
Using one without the other
As stated in the introduction, it’s important to make use of both, Confusion and Diffusion when implementing strong ciphers.
To show, why that is let’s take a look at the infamous Caesar Cipher in which each letter of the plaintext is replaced with a letter positions shifted to the left (or right). Letters that would “fall off” at the start or end simply wrap-around.
To encrypt a word, one simply writes down the word and then shifts all the letters positions to the right (or left). To decrypt the word, one has to do the reverse (shift all the letters of the ciphertext positions to the left (or right)).
As an example, let’s say that we shift characters 7 positions to the right so that a
is replaced with h
, b
with i
, etc. (in this case ).
The word hello
is then encrypted as olssv
. Taking olssv
and shifting the characters positions left results in the plaintext hello
.
Looking at this it’s easy to see that is the key for encryption and decryption.
While this cipher has properties of confusion (we’re trying to hide the linkage between the ciphertext and the key) it’s trivial to break by doing a statistical analysis on the ciphertext to see how often certain characters appear. The letter most often used in the English language is “e”, for example. Following this procedure we can figure out which ciphertext letter would map to “e”, for example. Repeating this for other letters would allow us to trivially decrypt the ciphertext.
Of course, it’s even easier to break the Caesar’s Cipher with a brute-force attack by trying out each potential key but that wouldn’t highlight how a statistical analysis can be performed on the ciphertext even if some simple form of confusion is used.
References
The following resources have been invaluable for me to learn the concepts discussed in this article.
You should definitely give them a read if you want to dive deeper into the topic.