β
Each operation contributes to AESβs security in a specific way:
* Without KeyExpansion, all rounds would use the same key, K, and AES would be vulnerable to slide attacks.
* Without AddRoundKey, encryption wouldnβt depend on the key; hence, anyone could decrypt any ciphertext without the key.
* SubBytes brings nonlinear operations, which add cryptographic strength. Without it, AES would just be a large system of linear equations that is solvable using high-school algebra.
* Without ShiftRows, changes in a given column would never affect the other columns, meaning you could break AES by building four 232 element codebooks for each column. (Remember that in a secure block cipher, flipping a bit in the input should affect all the output bits.)
* Without MixColumns, changes in a byte would not affect any other bytes of the state. A chosen-plaintext attacker could then decrypt any ciphertext after storing 16 lookup tables of 256 bytes each that hold the encrypted values of each possible value of a byte.
β
β
Jean-Philippe Aumasson (Serious Cryptography: A Practical Introduction to Modern Encryption)