-
Notifications
You must be signed in to change notification settings - Fork 2
Encryption
Michael Mattioli edited this page Feb 24, 2020
·
2 revisions
AES-128 uses 10 rounds of encryption along with a "pre round" (think of it as round 0 with only a single operation) to encrypt the provided plain text. At a very high level, the entire encryption process can be described as follows:
- Round 0 performs AddRoundKey on the state.
- Rounds 1 through 9 perform the following operations on the state (in order):
- SubBytes
- ShiftRows
- MixColumns
- AddRoundKey
- Round 10 performs the same operations on the state as rounds 1 through 9 with the exception of MixColumns; MixColumns is omitted from the final round (in order):
- SubBytes
- ShiftRows
- AddRoundKey
The state after performing the AddRoundKey operation in round 10 is the cipher text. The following table aims to graphically demonstrate the entire encryption process.
| Round | Operation | |
|---|---|---|
| 0 | AddRoundKey | ⬇️ |
| 1 - 9 | SubBytes | ⬇️ |
| 1 - 9 | ShiftRows | ⬇️ |
| 1 - 9 | MixColumns | ⬇️ |
| 1 - 9 | AddRoundKey | ⬇️ |
| 10 | SubBytes | ⬇️ |
| 10 | ShiftRows | ⬇️ |
| 10 | AddRoundKey | 🔚 |