Escolar Documentos
Profissional Documentos
Cultura Documentos
TRABALHO DE INVESTIGAÇÃO
LEIT
I41
Discentes:
Docente:
Í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.
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).
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:
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).
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.
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
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).
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.
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).