Vous êtes sur la page 1sur 30

Advanced Encryption Standard

The AES Cipher


Block length is limited to 128 bit The key size can be independently specified to 128, 192 or 256 bits
Key size (words/bytes/bits) Number of rounds Expanded key size (words/byte) 4/16/128 6/24/192 10 12 44/176 52/208 8/32/256 14 60/240

Key-block-rounds combinations

The AES Cipher


Key received as input array of 4 rows and Nk columns Nk = 4,6, or 8, parameter which depends key size Input key is expanded into an array of 44/52/60 words of 32 bits each 4 different words serve as a key for each round
k0 k1 k4 k5 k8 k9 k12 k13 w0 w1 w2 w42 w43

k2
k3

k6
k7

k10
k11

k14
k15

The AES Cipher


Single 128 bit block as input Copied to a State array with Nb columns
(Nb= block length / 32 = 128/32 = 4)

The AES Cipher


Number of rounds, Nr, depends on key size Each round is a repetition of functions that perform a transformation over State array Consists of 4 main functions: one permutation and three substitutions
Substitute bytes, Shift rows, Mix columns, Add round key

Addition / Subtraction
XOR operation on the bits

Multiplication
Irreducible polynomial

SubBytes Transformation
[b ] is the multiplicative inverse of [sr,c] br,c = sr,c mod m(x)
Irreducible polynomial

SubBytes()Transformation Substitution Bytes

S - Box

SubBytes()Transformation
For example, if s 1,1 = {53}, then the substitution value would be determined by the intersection of the row with index 5 and the column with index 3 in the S-Box. This would result in s 1,1 {ed}.

InvSubBytes() Transformation

ShiftRows() Transformation

InvShiftRows() Transformation

MixColumns() Transformation

MixColumns() Transformation

InvMixColumns() Transformation

AddRoundKey() Transformation

Key Expansion

Key Expansion

The AES Cipher


AddRoundKey() round key is added to the State using XOR operation MixColumns() takes all the columns of the State and mixes their data, independently of one another, making use of arithmetic over GF(2^8) ShiftRows() processes the State by cyclically shifting the last three rows of the State by different offsets SubBytes() uses S-box to perform a byte-by-byte substitution of State

plaintext

The AES Cipher

Add round key

Substitute bytes Shift rows Mix columns Add Round key Round 1

Substitute bytes Substitute bytes Shift rows Mix columns Add round key

Round 9

Shift rows Add round key Cipher text

W[4,7]

W[36,39]

W[40,43]

key

The AES Cipher


Only Add round key makes use of the key Other three functions are used for diffusion and confusion Final round consists of only three stages

ciphertext

The AES Inverse Cipher

Add round key

Inv. Shift rows Inv. Sub bytes Add round key Inv. Mix Columns Round 1

Inv. Shift rows Inv. Shift rows Inv. Sub bytes Add round key Inv. Mix columns

Round 9

Inv. Sub bytes Add round key plaintext

W[36,39]

W[4,7]

W[0,3]

key

The AES Inverse Cipher


Decryption algorithm uses the expanded key in reverse order All functions are easily reversible and their inverse form is used in decryption Decryption algorithm is not identical to the encryption algorithm Again, final round consists of only three stages

Cipher Example

Vous aimerez peut-être aussi