I was trying to understand the internal structure of AES (Advanced Encryption Standard)
The Standard order of steps within a round:
- Substitute Bytes
- Shift Rows
- Mix Columns
- Add Round Key
Substitute Bytes, Shift Rows & Mix Columns satisfies the two most important properties required for a secure cipher i.e confusion and diffusion
Substitute Bytes
provides Confusion
i.e. that each binary digit (bit) of the ciphertext should depend on several parts of the key.
Shift Rows
along with Mix Column
provides Diffusion
i.e. if we change a single bit of the plaintext, then (statistically) half of the bits in the ciphertext should change
Changing the order of Step 1
and Step 2
won't have any effect. But to what extent can we change the order of other steps? Does it weakens the security of AES
, and if so, how?