TÓPICOS ESPECIAIS EM
SEGURANÇA DA INFORMAÇÃO
AULA 2 – CRIPTOGRAFIA AES
PROF. MEHRAN MISAGHI
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
2
AULA 2 – CRIPTOGRAFIA AES
OBJETIVOS DA AULA
Conhecer o histórico do cifrador AES;
Compreender a arquitetura do cifrador AES;
Compreender os processos de cifração e decifração do
AES.
CONTEÚDO DA AULA
Acompanhe os assuntos desta aula, se preferir, após o seu
término, assinale o conteúdo já estudado. Nesta aula, veremos:
Histórico do cifrador AES;
Arquitetura do cifrador AES;
O algoritmo do cifrador AES.
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
3
1. Histórico do AES
Os métodos existentes de criptografia, atualmente, estão empregados em
diversos segmentos do mercado. Com o aumento constante de sistemas
interconectados e avanço significativo em poder computacional, novos e poderosos
métodos de criptografia são necessários e também viabilizados.
As técnicas de criptografia, através de suas principais características, permitem
que um remetente possa enviar uma mensagem (contendo dados ou não) para um
destinatário de tal forma que caso um invasor possa interceptá-la, não seja capaz de
entender o conteúdo da mensagem, nem ainda os dados e arquivos nela contidos.
Na disciplina de Segurança em Redes de Computadores aprendemos diversos
tipos de criptografia e suas principais semelhanças e diferenças. Esta aula tem por
objetivo apresentar a criptografia utilizando o cifrador AES e as suas principais
características, sem entrar no mérito dos aspectos matemáticos que são considerados
complexos. Aconselhamos que o aluno baixe o simulador gráfico de AES, disponível
na biblioteca da disciplina para melhor compreensão dos conceitos aqui
apresentados.
O conteúdo apresentado neste capítulo é de duas aulas (Aula 2 e Aula 3),
devido o volume do material e complexidade do assunto apresentado.
Começaremos o estudo do cifrador AES com um breve histórico. Em 1997, o
National Institute of Standards and Technology (NIST) dos E.U.A. abriu uma
competição internacional chamada AES (Advanced Encrytpion Standard) para
algoritmos candidatos que satisfizessem os seguintes critérios (Terada,00):
Tamanho de bloco de 128 bits na entrada e na saída;
Tamanho da chave de 128 ou 192 ou 256 bits;
Segurança e velocidade do algoritmo igual ou superior ao 3-DES;
Implementação em software, hardware e smart card de forma eficiente;
Código fonte do algoritmo disponível sem custo algum.
Desta forma, em abril 1999, foram escolhidos cinco candidatos:
1.MARS, desenvolvido por Nevenko Zunic (IBM);
2.RC6, desenvolvido por Burt Kaliski (RSA Laboratories);
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
4
3.RIJNDAEL, desenvolvido por Joan Daemen e Vincent Rijmen.
4.SERPENT, desenvolvido por Ross Anderson, Eli Biham e Lars Knudsen;
5.TWOFISH, desenvolvido por Bruce Schneier, J. Kelsey, D. Whiting, D. Wagner,
Chris Hall e Neils Ferguson.
Em 2 de dezembro de 2000, foi escolhido o cifrador Rijndael (que passou a ser
referenciado como AES), como novo padrão de criptografia que substitui oficialmente
o DES, a partir de junho de 2001.
O Rijndael foi projetado para ter as seguintes características:
Resistência contra ataques conhecidos;
Velocidade e um código compactos em uma variedade de plataformas;
Simplicidade.
2. Arquitetura do Cifrador AES
O esquema genérico de qualquer cifrador consiste em uma chave de cifração,
o texto de entrada, o esquema de cifração e como resultado o texto de saída será um
texto cifrado. A figura a seguir ilustra melhor esta situação1:
1 Todas as figuras nesta seção são baseadas no simulador do cifrador AES, desenvolvido por Enrique Zabala da Universidad ORT, Uruguay.
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
5
O cifrador de bloco AES é projetado para realizar as operações sobre um byte,
e o tamanho da chave e tamanho do bloco podem ser escolhidos entre 128, 192 e 256
bits. O número de rodada varia conforme tamanho da chave escolhida:
9 rodadas, para chave de 128 bits;
11 rodadas, para chave de 192 bits;
13 rodadas, para chave de 256 bits.
Uma rodada do cifrador AES
A cada rodada acontecem 4 transformações da seguinte forma:
SubBytes (substituição);
ShiftRows (rotações);
MixColumn (Combinação linear em GF(28)) que não ocorre em última
rodada;
AddRoundKey (Operação XOR entre State e Roundkey).
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
6
As 4 transformações
SubByte
Consiste em simples substituição de byte, usa uma tabela de 16x16 contendo
a permutação de todos os valores de 256 bits. Cada byte é substituído pelo byte
correspondente a linha (esquerda 4 bits) e a coluna (direita 4 bits). A figura a seguir
apresenta um exemplo. O valor 19 é substituído pelo valor que encontra na 1ª linha e
9ª coluna que no caso é d4.
ShiftRows
Consiste em um shift (rotação) circular de byte em cada linha, sendo que:
1ª linha não é trocada;
2ª linha faz 1 shift circular de byte para esquerda;
3ª linha faz 2 shift circular de byte para esquerda;
4ª linha faz 3 shift circular de byte para esquerda;
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
7
O processo de decifração faz o shift para a direita. Este passo permuta os
bytes entre as colunas. A figura a seguir apresenta o processo de ShiftRows.
MixColumns
Nesta transformação, cada coluna é processada separadamente e cada byte é
substituído por um valor correspondente aos 4 bytes na coluna. A figura a seguir
ilustra melhor este processo.
AddRoundKey
O matriz de dados no AES é chamado de state e a chave de matriz é chamada
de RoundKey. Na etapa de AddRoundKey, o state é substituido pelo state XOR
RoundKey. Como exemplo ilustrado na figura seguinte, a 1ª coluna após a realização
da operação XOR com a 1ª coluna do Roundkey é trocada pelo resultado obtido.
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
8
Além das 4 transformações que existem que cada rodada, precisamos levar em
consideração o processo de Key Schedule que funciona da seguinte forma:
A chave K é expandida através da função Key Expansion();
As RoundKeys serão tiradas da chave expandida do número de colunas de
state. Desta forma a 1ª RoundKey utiliza a 1ª coluna do state e assim
sucessivamente.
A figura a seguir apresenta de uma forma mais clara o processo de Key Schedule.
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
9
3. O algoritmo do cifrador AES
O algoritmo do cifrador AES é assim definido:
AES(data_block, key)
{in State, RoundKeys
State <- State XOR RoundKey0
for Round = 1 to Nr
SubBytes(State)
ShiftRow (State)
if not(último round) then MixColumn(State)
State <- State XOR RoundKeyRound out State}
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
10
Processos de Rodadas em AES
A figura a seguir apresenta o processo de rodadas (utilizando uma chave de
128 bits e 9 rodadas)
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
11
Estrutura do cifrador AES
A estrutura do Rijndael é a seguinte:
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
12
EXERCÍCIOS PROPOSTOS
1. Aprendemos que em cada rodada existem quatro transformações. Explique o
processo de ShiftRows. Propõe um algoritmo para a sua execução.
2. Como você considera o AES um avanço com relação aos cifradores já
existentes?
3. Através de mecanismos de busca, procure por algum código executável do
AES e tente fazer a cifração de dados utilizando o código. Como você poderia
testar a randomicidade dos dados cifrados?
SÍNTESE
Nesta aula vimos:
Histórico do cifrador AES;
Arquitetura do cifrador AES;
O algoritmo do cifrador AES.
Tópicos Especiais em Segurança da Informação
UNISOCIESC – Centro Universitário SOCIESC
13
REFERÊNCIAS
1) DAEMON, Joan; RIJMEN, Vincent. The Design of Rijndael. Springer-Verlag,
2002.
2) MISAGHI, Mehran. Criptanálise Diferencial do Cifrador Rijndael. relatório, USP,
São Paulo, 2003. Disponível em
www.ime.usp.br/~cpgmac/Disciplinas_Passadas/2003ii/mac5701/Relatorios/Mehr
an_mono.pdf
3) TERADA, Routo. Segurança em Redes de Computador. São Paulo, 2000.
4) STALLINGS, William. Cryptography and Network Security: Principles and
Practice, 4th ed., Prentice Hall, 2006.
5) DENIS, Tom St. Cryptography for Developers, 1st ed., Syngress, 2007.
Top Related