O algoritmo AES - Apresentação e Descrição da Estrutura.slides

download O algoritmo AES - Apresentação e Descrição da Estrutura.slides

of 23

  • date post

    14-Apr-2015
  • Category

    Documents

  • view

    28
  • download

    0

Embed Size (px)

Transcript of O algoritmo AES - Apresentação e Descrição da Estrutura.slides

O algoritmo AES: Apresentao e Descrio da EstruturaRaquel 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

SubBytesExemplo 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

SubBytesS-box usada no AESx 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

InvSubBytesExemplo 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

InvSubBytesS-box inversa usada no AESx 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

ShiftRowsExemplo 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

InvShiftRowsExemplo 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

AddRoundKeyTransformao AddRoundKeys1,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 Chaveswi seqncia de 4 bytesChaves de rodadaw0 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 ChavesEm 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 ChavesExemplo Vamos supor que a chave principal tenha 128 bits e achave 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 DecifragemNb bytes texto abertoNb bytes

Nb bytes texto cifradoNb bytes Nk bytes

AddRoundKey Rodada 1 SubBytes ShiftRows MixColumns AddRoundKey Rodada Nr-1

K0

Rodada 1

AddRoundKey InvShiftRows InvSubBytes

Nk bytes

KN r

AddRoundKeyNk bytes

Nk bytes

K2

K1

Rodada Nr-1

InvMixColumns InvShiftRows InvSubBytes

SubBytes ShiftRows MixColumns

AddRoundKey AddRoundKey Rodada FinalNk bytes

Nk bytes

KN r1

K1

Rodada Final InvMixColumns InvShiftRows InvSubBytes

SubBytes ShiftRows AddRoundKeyNk bytes

KN r

AddRoundKeyNb 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