2
$\begingroup$

The key size used for an AES cipher specifies the number of repetitions of transformation rounds that convert the input, called the plaintext, into the final output, called the ciphertext. The number of cycles of repetition are as follows:

10 cycles of repetition for 128-bit keys.
12 cycles of repetition for 192-bit keys.
14 cycles of repetition for 256-bit keys.

Each round consists of several processing steps, each containing four similar but different stages, including one that depends on the encryption key itself. A set of reverse rounds are applied to transform ciphertext back into the original plaintext using the same encryption key.

So 10 cycles of repetition for 128-bits keys. This are the rounds:

KeyExpansions—round

keys are derived from the cipher key using Rijndael's key schedule. AES requires a separate 128-bit round key block for each round plus one more.

InitialRound

AddRoundKey—each byte of the state is combined with a block of the round key using bitwise xor.

Rounds

SubBytes—a non-linear substitution step where each byte is replaced with another according to a lookup table. 
ShiftRows—a transposition step where the last three rows of the state are shifted cyclically a certain number of steps. 
MixColumns—a mixing operation which operates on the columns of the state, combining the four bytes in each column. 
AddRoundKey

Final Round (no MixColumns)

SubBytes
ShiftRows 
AddRoundKey.

So my question is: it says 10 cycles, but does that mean that the initial round is performed once, the normal rounds 9 times, and the final round also once? Because the expanded key is 176-bytes, so the addroundkey function can be used 176/16 = 11 times.

Can someone give me help on the correct division of cycles on the 3 times of rounds (initial, normal, final)?

$\endgroup$
1
  • $\begingroup$ yes but that does mean 10 normal rounds or 1 initial round, 8 normal rounds and 1 final round? $\endgroup$ Commented Nov 15, 2015 at 12:47

1 Answer 1

2
$\begingroup$

So my question is: it says 10 cycles, but does that mean that the initial round is performed once, the normal rounds 9 times, and the final round also once? Because the expanded key is 176-bytes, so the addroundkey function can be used 176/16 = 11 times.

For the 128-bit AES, that is correct.

InitialRound, which consists of AddRoundKey is performed once.

Rounds, which consist of SubBytes, ShiftRows, MixColumns, AddRoundKey is performed nine times.

Final Round, which consists of SubBytes, ShiftRows and AddRoundKey is performed once.

Also, you might want to check out this two flash animations which offer great insight into how 128-bit Rijndael (the cipher AES is based on) works and also allows you to view the intermediate results as the cipher progresses.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.