Anda di halaman 1dari 23

O algoritmo AES: Apresentao e Descrio da Estrutura

Raquel de Arajo Fbio Borges Gerson Nunes

O algoritmo AES: Apresentao e Descrio da Estrutura p.1/23

Histria do Algoritmo

Em 1997, o NIST (National Institute of Standards and Technology), rgo dos EUA, lanou um concurso para adotar um novo algoritmo de criptograa simtrica para proteger informaes condenciais. O novo algoritmo, que passaria a se chamar AES (Advanced Encryption Standard), substituiria o DES (Data Encryption Standard).

O algoritmo AES: Apresentao e Descrio da Estrutura p.2/23

Histria do Algoritmo

O novo algoritmo deveria ter pr-requisitos como: No possuir patentes; Cifrar em blocos de 128 bits com chaves de 128, 192 ou 256 bits; Possibilidade de implementao tanto em software quanto em hardware; Ser mais rpido do que o 3DES.

O algoritmo AES: Apresentao e Descrio da Estrutura p.3/23

Histria do Algoritmo

Em 1998, apresentaram-se 15 candidatos e, um ano depois, 5 destes foram escolhidos como nalistas: MARS, RC6, Rijndael, Serpent e Twosh. Em 2000, aps anlises da comunidade criptogrca mundial, escolhido como padro o algoritmo Rijndael, criado pelos belgas Vincent Rijmen e Joan Daemen.

O algoritmo AES: Apresentao e Descrio da Estrutura p.4/23

Conceitos Bsicos
Nb Nk

nmero de bits do bloco dividido por 32.

nmero de bits da chave dividido por 32.

Nr

nmero de rodadas, que igual a 10, 12 e 14 para Nk igual a 4, 6 ou 8, respectivamente.

O algoritmo AES: Apresentao e Descrio da Estrutura p.5/23

Conceitos Bsicos
Estado

o bloco de dados, ou seja, a matriz que contm inicialmente a mensagem e possui 4 linhas e Nb colunas.
Exemplo de estado

P S b L

A T N N

L R O C

E A b C

50 41

4c 4f

45 20

ASCII

53 54 20 4e 4c 4e

52 41 43 43

O algoritmo AES: Apresentao e Descrio da Estrutura p.6/23

Conceitos Bsicos

A chave principal alocada em uma matriz de 4 linhas e Nk colunas.


Exemplo de chave principal

B I b C

O S D N

L T O P

S A b q

42

4f

4c 4f

53 41 20 71

ASCII

49 53 54 20 44 43 4e 50

O algoritmo AES: Apresentao e Descrio da Estrutura p.7/23

Etapas do Algoritmo
SubBytes

- Substitui cada byte individualmente por outro em uma caixa de substituio.

ShiftRows

- Rotaciona ciclicamente os bytes de cada linha, trocando sua posio.

MixColumns

- Multiplicao, sobre GF (28 ), de uma matriz xa pelo estado. - um XOR byte a byte entre o estado e a chave da rodada.

AddRoundKey

O algoritmo AES: Apresentao e Descrio da Estrutura p.8/23

SubBytes
Exemplo da transformao SubBytes

a6 72 c1 f7 45 00 35 d4 82 fc e6 50 be 15 09 99

SubBytes

24 6e 13 ae

40 63 b0 59

78 96 8e 01

68 48 53 ee

O algoritmo AES: Apresentao e Descrio da Estrutura p.9/23

SubBytes
S-box usada no AES
x 0 0 1 2 3 4 5 6 y 7 8 9 a b c d e f 63 ca b7 04 09 53 d0 51 cd 60 e0 e7 ba 70 e1 8c 1 7c 82 fd c7 83 d1 ef a3 0c 81 32 c8 78 3e f8 a1 2 77 c9 93 23 2c 00 aa 40 13 4f 3a 37 25 b5 98 89 3 7b 7d 26 c3 1a ed fb 8f ec dc 0a 6d 2e 66 11 0d 4 f2 fa 36 18 1b 20 43 92 5f 22 49 8d 1c 48 69 bf 5 6b 59 3f 96 6e fc 4d 9d 97 2a 06 d5 a6 03 d9 e6 6 6f 47 f7 05 5a b1 33 38 44 90 24 4e b4 f6 8e 42 7 c5 f0 cc 9a a0 5b 85 f5 17 88 5c a9 c6 0e 94 68 8 30 ad 34 07 52 6a 45 bc c4 46 c2 6c e8 61 9b 41 9 01 d4 a5 12 3b cb f9 b6 a7 ee d3 56 dd 35 1e 99 a 67 a2 e5 80 d6 be 02 da 7e b8 ac f4 74 57 87 2d b 2b af f1 e2 b3 39 7f 21 3d 14 62 ea 1f b9 e9 0f c fe 9c 71 eb 29 4a 50 10 64 de 91 65 4b 86 ce b0 d d7 a4 d8 27 e3 4c 3c ff 5d 5e 95 7a bd c1 55 54 e ab 72 31 b2 2f 58 9f f3 19 0b e4 ae 8b 1d 28 bb f 76 c0 15 75 84 cf a8 d2 73 db 79 08 8a 9e df 16

O algoritmo AES: Apresentao e Descrio da Estrutura p.10/23

InvSubBytes
Exemplo da transformao InvSubBytes

24 6e 13 ae

40 78 63 96 b0 8e 59 01

68 48 53 ee InvSubBytes

a6 72 45 00 82 fc be 15

c1

f7

35 d4 e6 50 09 99

O algoritmo AES: Apresentao e Descrio da Estrutura p.11/23

InvSubBytes
S-box inversa usada no AES
x 0 0 1 2 3 4 5 6 y 7 8 9 a b c d e f 52 7c 54 08 72 6c 90 d0 3a 96 47 fc 1f 60 a0 17 1 09 e3 7b 2e f8 70 d8 2c 91 ac f1 56 dd 51 e0 2b 2 6a 39 94 a1 f6 48 ab 1e 11 74 1a 3e a8 7f 3b 04 3 d5 82 32 66 64 50 00 8f 41 22 71 4b 33 a9 4d 7e 4 30 9b a6 28 86 fd 8c ca 4f e7 1d c6 88 19 ae ba 5 36 2f c2 d9 68 ed bc 3f 67 ad 29 d2 07 b5 2a 77 6 a5 ff 23 24 98 b9 d3 0f dc 35 c5 79 c7 4a f5 d6 7 38 87 3d b2 16 da 0a 02 ea 85 89 20 31 0d b0 26 8 bf 34 ee 76 d4 5e f7 c1 97 e2 6f 9a b1 2d c8 e1 9 40 8e 4c 5b a4 15 e4 af f2 f9 b7 db 12 e5 eb 69 a a3 43 95 a2 5c 46 58 bd cf 37 62 c0 10 7a bb 14 b 9e 44 0b 49 cc 57 05 03 ce e8 0e fe 59 9f 3c 63 c 81 c4 42 6d 5d a7 b8 01 f0 1c aa 78 27 93 83 55 d f3 de fa 8b 65 8d b3 13 b4 75 18 cd 80 c9 53 21 e d7 e9 c3 d1 b6 9d 45 8a e6 df be 5a ec 9c 99 0c f fb cb 4e 25 92 84 06 6b 73 6e 1b f4 5f ef 61 7d

O algoritmo AES: Apresentao e Descrio da Estrutura p.12/23

ShiftRows
Exemplo da transformao ShiftRows

24 6e 13 ae

40 78 63 96 b0 8e 59 01

68 48 53 ee Shif tRows

24 40 63 96 8e 53 ee ae

78 68 48 6e 13 b0 59 01

O algoritmo AES: Apresentao e Descrio da Estrutura p.13/23

InvShiftRows
Exemplo da transformao InvShiftRows

24 40 63 96 8e 53 ee ae

78 68 48 6e 13 b0 59 01 InvShif tRows

24 40 78 6e 63 96 13 b0 8e ae 59 01

68 48 53 ee

O algoritmo AES: Apresentao e Descrio da Estrutura p.14/23

MixColumns
S1,1 S2,1 S3,1 S4,1 01 01 03 02 S1,2 S2,2 S3,2 S4,2 S1,3 S1,4 S2,3 S2,4 = S3,3 S3,4 S4,3 S4,4 S1,1 S1,2 S1,3 S 2,1 S2,2 S2,3 S3,1 S3,2 S3,3 S4,1 S4,2 S4,3

02 01 01 03

03 02 01 01

01 03 02 01

S1,4 S2,4 S3,4 S4,4

O algoritmo AES: Apresentao e Descrio da Estrutura p.15/23

InvMixColumns
0E 09 0D 0B 0B 0E 09 0D 0D 0B 0E 09 09 0D 0B 0E S1,1 S2,1 S3,1 S4,1 S1,2 S2,2 S3,2 S4,2 S1,1 S2,1 S3,1 S4,1 S1,3 S2,3 S3,3 S4,3 S1,2 S2,2 S3,2 S4,2 S1,4 S2,4 S3,4 S4,4 S1,3 S2,3 S3,3 S4,3 S1,4 S2,4 S3,4 S4,4

O algoritmo AES: Apresentao e Descrio da Estrutura p.16/23

AddRoundKey
Transformao AddRoundKey
s1,1 s2,1 s3,1 s4,1 s1,2 s2,2 s3,2 s4,2 s1,3 s2,3 s3,3 s4,3 s1,4 s2,4 s3,4 s4,4 s1,1 s2,1 s3,1 s4,1 s1,2 s2,2 s3,2 s4,2 k1,1 k1,2 k1,3 k1,4 s1,3 s2,3 s3,3 s4,3 k2,1 k2,2 k2,3 k2,4 s1,4 s2,4 s3,4 s4,4 k3,1 k3,2 k3,3 k3,4 k4,1 k4,2 k4,3 k4,4 =

O algoritmo AES: Apresentao e Descrio da Estrutura p.17/23

Gerao de Chaves
wi seqncia de 4 bytes
Chaves de rodada
w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 ... ...

chave da rodada 0

chave da rodada 1

O algoritmo AES: Apresentao e Descrio da Estrutura p.18/23

Gerao de Chaves

RotWord - Rotaciona a palavra uma posio (correspondente a um byte) esquerda; SubWord - Aplica a S-box do AES em cada byte da palavra; Rcon(j) - uma constante diferente a cada rodada (j). Essa constante dada por Rcon(j)=(RC[j],00,00,00), onde RC[1]=1 e RC[j]=2 RC[j-1], com a multiplicao sobre GF (28 ).

O algoritmo AES: Apresentao e Descrio da Estrutura p.19/23

Gerao de Chaves
Em pseudocdigo, para N k 6:

KeyExpansion (byte key [4*Nk],word w[Nb*(Nr+1)],Nk) word temp for i from 0 to Nk-1 w[i]=word(key[4*i],key[4*i+1],key[4*i+2],key[4*i+3]) for i from Nk to Nb*(Nr + 1)-1 temp=w[i - 1] if (i mod Nk=0) temp=SubWord(RotWord(temp)) xor Rcon[i/Nk] w[i]=w[i - Nk] xor temp

O algoritmo AES: Apresentao e Descrio da Estrutura p.20/23

Gerao de Chaves
Exemplo Vamos supor que a chave principal tenha 128 bits e a
chave de rodada 6 seja: 5c 3a 11 02 14 6f 5b af bc 52 40 dd 50 f4 61 78. Vamos calcular a primeira palavra da chave de rodada 7:
i temp = w[i-1] RotWord SubWord Rcon(7) temp = SubWord Rcon(7) w[i-Nk] w[i] = temp w[i-Nk] 28 50f46178 f4617850 bfefbc53 40000000 fffebc53 5c3a1102 acd5ad51

O algoritmo AES: Apresentao e Descrio da Estrutura p.21/23

Cifragem e Decifragem
Nb bytes texto aberto
Nb bytes

Nb bytes texto cifrado


Nb bytes Nk bytes

AddRoundKey Rodada 1 SubBytes ShiftRows MixColumns AddRoundKey Rodada Nr-1

K0

Rodada 1

AddRoundKey InvShiftRows InvSubBytes

Nk bytes

KN r

AddRoundKey
Nk bytes

Nk bytes

K2

K1

Rodada Nr-1

InvMixColumns InvShiftRows InvSubBytes

SubBytes ShiftRows MixColumns

AddRoundKey AddRoundKey Rodada Final


Nk bytes

Nk bytes

KN r1

K1

Rodada Final InvMixColumns InvShiftRows InvSubBytes

SubBytes ShiftRows AddRoundKey


Nk bytes

KN r

AddRoundKey
Nb bytes

Nk bytes

K0

Nb bytes texto cifrado

Nb bytes textoAES: Apresentao e Descrio da Estrutura p.22/23 O algoritmo aberto

ltimo Slide

Obrigado. Quaisquer sugestes sero bem-vindas.

O algoritmo AES: Apresentao e Descrio da Estrutura p.23/23

Anda mungkin juga menyukai