Advanced Encryption Standard (AES)
Advanced Encryption Standard (AES)
(AES)
INTRODUCTION
Initial criteria:
security – effort for practical cryptanalysis
cost – in terms of computational efficiency
algorithm & implementation characteristics
Final criteria
general security
ease of software & hardware implementation
implementation attacks
flexibility (in encrpt/decrypt, keying, other factors)
Rijndael
data block of 4 columns of 4 bytes is state
key is expanded to array of words has 9/11/13 rounds in
which state undergoes:
byte substitution (1 S-box used on every byte)
Note
Substitution
Permutation
Mixing
Key Adding
Substitution
SubBytes
The first transformation, SubBytes, is used at the
encryption site. To substitute a byte, we interpret the byte
as two hexadecimal digits.
Note
The 16 input bytes are substituted by looking up a fixed table (S-box) given in
design. The result is in a matrix of four rows and four columns.
Shiftrows
Each of the four rows of the matrix is shifted to the left. Any entries that ‘fall
off’ are re-inserted on the right side of row. Shift is carried out as follows
ShiftRows transformation
Example
MixColumns transformation
InvMixColumns
The InvMixColumns transformation is basically the same
as the MixColumns transformation.
AddRoundKey
AddRoundKey proceeds one column at a time.
AddRoundKey adds a round key word with each state
column matrix; the operation in AddRoundKey is matrix
addition.
The 16 bytes of the matrix are now considered as 128 bits and are XORed to
the 128 bits of the round key. If this is the last round then the output is the
ciphertext. Otherwise, the resulting 128 bits are interpreted as 16 bytes and we
begin another similar round.
AddRoundKey transformation
KEY EXPANSION