Você está na página 1de 11

INSTITUTO SUPERIOR DE TRANSPORTES E COMUNICAÇÕES

SEGURANÇA INFORMÁTICA E DAS COMUNICAÇÕES

TRABALHO DE INVESTIGAÇÃO

TEMA: ADVANCED ENCRYPTION STANDARD (AES)

LEIT

I41

Discentes:

Docente:

Emírcio Zeca Vieira


Índice
Introdução...............................................................................................................................1
Objectivos...............................................................................................................................2
Objectivo Geral...................................................................................................................2
Objectivos Específicos........................................................................................................2
Metodologia............................................................................................................................2
Estrutura do trabalho...............................................................................................................2
Desenvolvimento....................................................................................................................3
Algoritmo AES........................................................................................................................3
Etapas do AES.....................................................................................................................4
Etapa de SubBytes...........................................................................................................4
Etapa de ShiftRows..........................................................................................................5
Etapa MixColumns..........................................................................................................5
Etapa AddRoundKey.......................................................................................................6
A derivação da chave – Key Schedule.................................................................................7
Decriptação..........................................................................................................................7
Conclusão................................................................................................................................8
Referências bibliográficas.......................................................................................................8

Índice de figura
Figura 1 Matrix SubBytes.......................................................................................................4
Figura 2 S-box.........................................................................................................................5
Figura 3 ShiftRows.................................................................................................................5
Figura 4 Multiplicação em GF................................................................................................6
Figura 5 MixColumns.............................................................................................................6
Figura 6 AddRoundKey..........................................................................................................7
Introdução
Este capítulo apresenta as considerações iniciais com uma visão geral do trabalho, a
metodologia usada e os objectivos.

Considerações iniciais

Este trabalho propõe a fazer um estudo sobre o advanced encryption standard (aes),
isto é, o aes é uma técnica para proteger dados usando algoritmos de criptografia que do
grego kryptós (esconder) e grápho (escrita), estuda formas de camuflar uma mensagem a
ser transmitida por meios não totalmente imunes a “xeretas” de maneira que estes consigam
entender o que é comunicado. Na qual existem dois tipos de criptografias: Simétrica e
assimétrica.

- A criptografia simétrica é usada para garantir a confidencialidade de determinado


dado e garante que apenas os destinatários autorizados, aqueles que conheçam a chave de
decifração, possam recuperar os dados originais (BOND et al., 2003).

Um exemplo de cifra simétrica é o algoritmo AES que é o foco deste trabalho, que
do inglês: Advanced Encryption Standard, que é uma evolução do DES e foi desenvolvido
porque a chave do DES era muito curta. O AES é uma cifra cíclica muito complexa e foi
projetado com três tamanhos de chave: 128, 192 ou 256 bits (FOROUZAN; FEGAN,
2008).

- A Criptografia Assimétrica é aquela que utiliza algoritmos diferentes de


criptografia simétrica e exige o uso de duas chaves: a chave privada, que é mantida em
segredo pelo proprietário e utilizada para criptografar dados, e a chave pública, que é
conhecida por pessoas autorizadas pelo proprietário da chave privada e é utilizada para
decifrar os dados (FOROUZAN; FEGAN,2008). Porém, se um dado é criptografado com a
chave pública, somente o proprietário da chave privada pode decifrar este dado (BOND et
al., 2003).

1
Objectivos
Objectivo Geral
 Analisar e descrever o algoritmo Advanced Encryption Standard (AES), sua
importância como cifra simétrica, e sua aplicação em diversos contextos,
compreendendo seus princípios fundamentais e etapas.

Objectivos Específicos
 Descrever e explorar as características do algoritmo AES, incluindo sua estrutura de
chave e funcionamento em blocos
 Compreender as etapas cruciais do AES: SubBytes, ShiftRows, MixColumns e
AddRoundKey, destacando a importância de cada uma.
 Analisar a etapa de derivação da chave (Key Schedule) e sua contribuição para a
segurança global do algoritmo.

Metodologia
 Foi utilizada uma pesquisa descritiva para analisar e descrever os diferentes
conceitos relacionados ao tema proposto;
 Foram utilizadas como palavra chave de pesquisa “Criptografia”, “Advanced
encryption standard”.

Estrutura do trabalho
O trabalho, além desta introdução, organiza-se em 4 capítulos da seguinte forma:

 Capítulo 1 – No primeiro capítulo é apresentada uma introdução sobre o trabalho,


contando com os objectivos e a metodologia usada;
 Capítulo 2 – No segundo capítulo é feita uma fundamentação teórica e aplicação do
algoritmo AES.
 Capítulo 3 – Este capítulo apresenta as conclusões finais do trabalho.
Desenvolvimento

Algoritmo AES
O algoritmo Advanced Encryption Standard, ou simplesmente: AES, é a cifra
simétrica mais utilizada actualmente. O "Standard" contido no nome, se refere ao algoritmo
ser um padrão do Governo dos Estados Unidos. É utilizado em muitas indústrias e várias
aplicações comerciais, dentre as quais se pode citar o protocolo de segurança IP, o IPsec,
como também o protocolo TLS, a encriptação de dispositivos WiFi (padrão IEEE 802.11i),
o protocolo SSH (Secure Shell) e aplicativos como Skype (PAAR; PELZL, 2009) e
WhatsApp (WHATSAPP, 2016).

O AES surgiu de um concurso promovido pelo NIST em janeiro de 1997, pois a


chave do seu antecessor, o DES, era muito pequena e o algoritmo já mostrava algumas
vulnerabilidades desde 1990, com criptoanálise diferencial. Em 2 de outubro do ano 2000,
o algoritmo chamado: Rijndael, desenvolvido por Vincent Rijmen e Joan Daemen, foi
escolhido como padrão de criptografia e, mais tarde, em 26 de Novembro de 2001, após
inúmeros testes, foi finalmente anunciado pelo NIST (National Institute of Standards and
Technology) Instituto Nacional de Padrões e Tecnologia dos EUA em tradução livre (FIPS,
2001a).

Este algoritmo AES possui chaves de 128 bits, 192 ou 256 bits ou 16, 24 e 32 bytes
respectivamente. Entende-se por chave (key) o conjunto de dados digitais sobre o qual a
cifra opera (FOROUZAN; FEGAN, 2008). Por se tratar de um algoritmo de criptografia
simétrica com blocos de 128 bits, a função de cifragem, que é a função responsável por
transformar e embaralhar os dados, recebe blocos de 16 bytes (128 bits) por vez e devolve,
também, 16 bytes por vez. Chama-se o conjunto de blocos que será encriptado de
"mensagem" (message) ou "texto puro" (plaintext), e o conjunto retornado pela função de
cifragem de "cifra" ou "texto cifrado" (cyphertext). O processo de decifragem é feito de
forma análoga, porém, contrária ao de cifragem e, portanto, recebe um conjunto de blocos
cifrados (cifra) e devolve a mensagem idêntica a original, se, somente se, a chave for a
mesma que foi utilizada para encriptar os dados. O processo de cifragem também pode ser
chamado de encriptação ou mesmo "criptografia", da mesma forma que o processo de
decifragem é sinónimo de "decriptação “ou "descriptografia" (FIPS, 2001a).

Etapas do AES
O AES consiste em quatro operações ou etapas principais: SubBytes, ShiftRows,
MixColumns e AddRoundKey. A quantidade de rodadas depende do comprimento da chave,
que se segue abaixo:

Etapa de SubBytes
Em criptografia, existe um conceito importante, responsável por proporcionar mais
segurança as cifras, que é o conceito de confusão. Consiste em uma operação onde o
relacionamento entre a chave e o texto cifrado é ofuscado. Essa operação tem como
objetivo cortar a relação entre o texto original e o texto encriptado. No algoritmo AES, a
confusão é obtida através da Substitution-Box, ou S-Box (PAAR; PELZL, 2009). O S-BOX
trata-se de uma matriz quadrada, não-linear, utilizada como tabela de substituição em
diversas transformações de byte.

A etapa de SubBytes, ou transformação de SubBytes, é uma substituição não linear


que opera de forma independente em cada byte do array de state usando a tabela de
substituição S-Box (FIPS, 2001a, tradução nossa). A Rijndael S-Box é revertível, e é
construída pela composição de duas transformações:

1. Calcula-se o inverso multiplicativo do byte, ou seja, um byte tal que


multiplicado por ele mesmo, resulta em 1. O elemento 0 (zero) é mapeado para
ele mesmo.
2. Aplica-se uma transformação afim, que pode ser expressa de forma de matriz
como:

Durante a etapa de SubBytes, os bytes do array state são


substituídos a partir da S-Box, gerando valores diferentes
e, aparentemente aleatórios, proporcionando assim,
confusão (PAAR; PELZL, 2009).
Figura 1 Matrix SubBytes
Sendo que a S-Box utilizada nesta etapa é apresentada abaixo:
Com a figura ao lado, podemos destacar como por exemplo a posição state 1.1 = {53}, então
o valor da substituição será determinado pela intersecção da linha de índice 5 e coluna de
índice 3. Portanto, o resultado da substituição na posição state1,1 será de {ed}. De forma
análoga, porém contrária, quando se pretende decifrar os dados, basta reconstruir o byte a
partir do seu valor, mapeando assim as posições {x, y} do S-Box. Para um byte cifrado com
valor {21}, basta localizá-lo na S-Box para obter os valores 7 para o x e b para o y. Sendo
assim, o byte {21} corresponde ao valor {7d} hexadecimal.

Figura 2 S-box

Etapa de ShiftRows
Uma característica importante em algoritmos de criptografia é a difusão. Difusão
consiste em uma operação onde a alteração de um único símbolo ou bit no texto puro, altera
diversos símbolos ou bits do texto cifrado, com objectivo de esconder, de forma estatística,
as operações matemáticas que foram realizadas nele (PAAR; PELZL, 2009).

A figura abaixo ilustra este processo e destaca os bytes que foram transpostos.

Figura 3 ShiftRows

Etapa MixColumns
Uma característica importante em algoritmos de criptografia é a difusão. Difusão
consiste em uma operação onde a alteração de um único símbolo ou bit no texto puro, altera
diversos símbolos ou bits do texto cifrado, com objectivo de esconder, de forma estatística,
as operações matemáticas que foram realizadas nele (PAAR; PELZL, 2009).
A difusão da etapa MixColumns é obtida através de uma característica da
multiplicação de matrizes. Durante esta etapa, uma matriz coluna multiplica uma matriz
quadrada. Neste caso, um único byte, ou mesmo um único bit de um byte de matriz coluna,
influencia os 4 elementos da matriz quadrada. O elemento S ′0,c, é multiplicado por toda
coluna 0, da matriz quadrada, causando assim, difusão
da informação. Se por exemplo tivermos um único bit
diferente em S′0,c, este valor afecta o resultado final de
S′0,c, S′1,c, S′2,c e S′3,c. Na figura ao lado temos um
exemplo de multiplicação de matrizes.
Figura 4 Multiplicação em GF

Os bytes {01}, {02}, {03} correspondem aos


respectivamente aos polinômios 1, x, x + 1 em GF(2 8) e servem como redução modular.
Com o resultada desta multiplicação, os quatro bytes de uma coluna são substituidos,
elemento a elemento. Os símbolos ⊗ e ⊕ equivalem a
multiplicação e adicao em GF(28), como é mostrada na
equação abaixo:

Logo a multiplicação, os elementos S0,c, S1,c, S2,c e S3,c do array state, que juntos
formam uma coluna c, são substituídos pelos elementos S′0,c, S′1,c, S′2,c e S′3,c, concluindo a
etapa MixColumns, como se segue na figura abaixo:

Figura 5 MixColumns

Etapa AddRoundKey
A etapa AddRoundKey consiste em fazer uma soma bit-a-bit utilizando a operação
XOR e uma subchave em cada byte do array state. A subchave é obtida através da chave
expandida a cada rodada usando a expansão de chaves do AES, de forma que em cada
rodada utiliza-se uma chave diferente, derivada da chave original, conforme é visto na
Figura 16. A etapa AddRoundKey também é utilizada na entrada e na saída do AES. Este
processo é conhecido como "limpeza" de chave, e também serve para proteger a chave
original na memória RAM do dispositivo que está executando-a. A etapa AddRoundKey é
executada nrodadas + 1 vezes, visto que ela é invocada logo no início do algoritmo. Desta
forma, para o AES com chave de 128 bits,
conhecido também como AES 128, que possui
10 rodadas, a etapa AddRoundKey será
invocada 11 vezes. Sendo Figura 6 AddRoundKey
este também, o número total de sub-chaves que
este algoritmo utiliza (PAAR; PELZL, 2009).

A derivação da chave – Key Schedule


A gestão ou derivação da chave utiliza a chave (key) do AES e gera uma chave
derivada da original. Isto significa que o AES não utiliza a mesma chave durante todas as
rodadas do algoritmo, mas sim, uma chave derivada da original, o que faz com que a
segurança do algoritmo seja aumentada. A chave é gerada recursivamente, isto significa que
para gerar a chave ki a subchave ki−1 deve ser conhecida (PAAR; PELZL, 2009).

Podemos notar que uma adição de uma subchave XOR é usado tanto na entrada e
saída de AES. Este processo é por vezes referido como branqueamento de chave (ou
limpeza de chave). O número de subchaves é igual ao número de rodadas, mais um, devido
a chave necessária para o branqueamento de chave logo na primeira rodada do algoritmo.
Deste modo, para o comprimento de chave de 128 bits, o número de rodadas é 10, e
existem 11 subchaves de 128 bits. O AES com uma chave de 192 bits requer 12 rodadas e
13 subchaves e AES com chave de 256 bits tem 15 subchaves e precisa de 14 rodadas
(PAAR; PELZL, 2009) (STALLINGS, 2008).

Decriptação
A decriptação consiste em um processo análogo ao de encriptação, porém seguindo
a ordem inversa. O algoritmo AES recebe o conteúdo encriptado e se a chave for a mesma
que a utilizada para encriptar, o resultado final será a mensagem original. Todas as
operações do AES são facilmente invertíveis. De uma forma simples, é possível, por
exemplo, rotacionar as colunas ao state original na etapa de ShiftRows, ou saber qual o byte
original verificando a linha e coluna que contém o byte na etapa de SubBytes e
reconstruindo o state anterior (PAAR; PELZL, 2009) (STALLINGS, 2008).
Conclusão
Em suma concluímos que o Advanced Encryption Standard (AES) se destaca como
o líder em cifras simétricas, sendo amplamente adoptado devido à sua eficácia e segurança,
sendo o padrão os Estados Unidos na qual foi desenvolvido para ultrapassar as limitações
do DES, o AES utiliza chaves de 128, 192 ou 256 bits para criptografar blocos de 128 bits.
Suas etapas, como SubBytes, ShiftRows, MixColumns e AddRoundKey, garantem segurança
e confidencialidade.

A gestão da chave, fundamental para a segurança, ocorre através da derivação de


chaves, garantindo que diferentes subchaves sejam utilizadas em cada rodada. Esse
processo, conhecido como "branqueamento de chave", contribui para proteger a chave
original na memória do dispositivo que executa o algoritmo, fazendo com que as
resistências a ataques consolidam sua posição como o padrão confiável na protecção de
dados sensíveis.

Referências bibliográficas
 Paar, C., & Pelzl, J. (2009). Understanding Cryptography: A Textbook for Students
and Practitioners.
 Stallings, W. (2008). Cryptography and Network Security: Principles and Practice.
 Forouzan, B. A., & Fegan, S. C. (2008). Data Communications and Networking.
 National Institute of Standards and Technology. (2001a). FIPS PUB 197: Advanced
Encryption Standard (AES).

Você também pode gostar