Criptografia e Segurana de Redes Captulo 5 Quarta

  • Slides: 27
Download presentation
Criptografia e Segurança de Redes Capítulo 5 Quarta Edição por William Stallings Tradução por

Criptografia e Segurança de Redes Capítulo 5 Quarta Edição por William Stallings Tradução por Carlos Daniel Abreu

Capítulo 5 –Advanced Encryption Standard (AES) “Parece muito simples. " “É muito simples. Mas

Capítulo 5 –Advanced Encryption Standard (AES) “Parece muito simples. " “É muito simples. Mas se você não souber qual é a chave, é praticamente indecifrável. " -Talking to Strange Men, Ruth Rendell

As Origens Ø Claramente era necessário ter um substituto para o DES l l

As Origens Ø Claramente era necessário ter um substituto para o DES l l Ataques criptoanalíticos podem quebrá-lo Quebrável por ataques de força-bruta Usou-se então o 3 DES – porém é lento e tem blocos pequenos Ø US NIST emitiu chamadas para cifras em 1997 Ø 15 candidatos aceitaram em Jun-98 Ø 5 foram selecionados em Ago-99 Ø A cifra de Rijndael foi selecionada como AES em Out-2000 Ø Publicado na FIPS PUB 197 standard em Nov 2001 Ø

Requerimentos para o AES Ø Cifra de bloco simétrica com um tamanho de bloco

Requerimentos para o AES Ø Cifra de bloco simétrica com um tamanho de bloco de 128 bits. Ø Suporte para tamanhos de chave de 128/192/256 bits Ø Mais forte e rápido que o 3 DES Ø Vida ativa de 20 -30 anos Ø Especificação total e detalhes de implementação Ø Implementações em ambos C & Java Ø NIST liberou todos os argumentos e análises não classificadas.

Critérios de Avaliação para o AES Ø Critério Inicial: l l l segurança –

Critérios de Avaliação para o AES Ø Critério Inicial: l l l segurança – concentrado na criptoanálise custo – em termos de eficiência computacional Algoritmo e característica de implementação Ø Critério Final l l Segurança generalizada Fácil implementação de software & hardware Ataques nas implementações flexibilidade (em em/decriptografar, chaveamento, outros fatores)

AES [ Finalistas ] Ø Após o teste de avaliação, os finalistas em Ago-99:

AES [ Finalistas ] Ø Após o teste de avaliação, os finalistas em Ago-99: l l l MARS (IBM) - complexo, rápido, alta segurança RC 6 (USA) – muito simples, muito rápido, baixa segurança Rijndael (Belgium) - fácil, rápido, boa margem de segurança Serpent (Euro) - devagar, fácil, extrema segurança Twofish (USA) - complexo, muito rápido, extrema margem de segurança Então foram submetidos para análise futura Ø Encontramos diferenças nas submissões como: Ø l l Baixas rodados de complexidade vs muitas rodadas simples Cifras existentes mais refinadas vs novas propostas

A Cifra AES - Rijndael Desenvolvido por Rijmen-Daemen na Bélgica Ø Possui chaves de

A Cifra AES - Rijndael Desenvolvido por Rijmen-Daemen na Bélgica Ø Possui chaves de 128/192/256 bit, bloco de 128 bit Ø Iterativa em vez de uma cifra Feistel Ø l l Ø Processa dados como blocos de 4 colunas em 4 bytes Executa em todo os blocos de dados em todas as rodadas Desenhado para ser: l l l Resistente a ataques conhecidos Rápido e compacto na maioria das CPUs design simplificado

Rijndael Representada como uma matriz quadrada de bytes e é copiada para o vetor

Rijndael Representada como uma matriz quadrada de bytes e é copiada para o vetor State Ø A chave é expandida para um vetor de words para o escalonamento de chaves Ø tem 9/11/13 rodadas em cada state que sofre: Ø l l Sub. Bytes: (1 caixa-S usado em cada byte) Shift. Rows: uma permutação simples Mix. Columns: uma combinação linear que usa aritmética GF(28) Add. Round. Key: XOR bit a bit do bloco atual com uma parte da chave expandida Alternativa para o XOR chave & scramble bytes de dados Ø Initial XOR key material & incomplete última rodada l Ø with fast XOR & table lookup implementation

Rijndael

Rijndael

Transformação Sub. Bytes Uma simples substituição de cada byte Ø O AES define uma

Transformação Sub. Bytes Uma simples substituição de cada byte Ø O AES define uma matriz de 16 x 16 de valores de byte (caixa-S), que contém uma permutação de todos os 256 valores possíveis de 8 -bit Ø Cada byte de state é mapeado individualmente para um novo byte da seguinte maneira: Ø linha(esquerda 4 -bits) & coluna(direita 4 -bits) l Ex. : byte {95} referencia a linha 9 coluna 5 l Que tem o valor {2 A} A caixa-S é construída mapeando cada byte para seu inverso multiplicativo no corpo finito GF(28) Ø Projetado para resistir a todos os ataques conhecidos Ø

Transformação Sub. Bytes

Transformação Sub. Bytes

Transformação Shift. Rows Ø Um deslocamento circular de byte para cada linha l l

Transformação Shift. Rows Ø Um deslocamento circular de byte para cada linha l l 1ª linha não é alterada 2ª linha faz o deslocamento circular de 1 byte à esquerda 3ª linha faz o deslocamento circular de 2 bytes à esquerda 4ª linha faz o deslocamento circular de 3 bytes à esquerda A transformação deslocamento inverso de linhas, chamada Inv. Shift. Rows, realiza os deslocamentos circulares na direção oposta. Ø Assim que o state é processado pelas colunas, esse passo permuta os bytes entre as colunas Ø

Shift Rows

Shift Rows

Transformação Mix. Columns Ø Cada coluna é processada individualmente Ø cada byte de uma

Transformação Mix. Columns Ø Cada coluna é processada individualmente Ø cada byte de uma coluna é mapeado para um novo valor que é uma combinação linear de todos os 4 bytes nessa coluna Ø eficazmente uma multiplicação de matriz em GF(28) usando prime poly m(x) =x 8+x 4+x 3+x+1

Mix Columns

Mix Columns

Mix. Columns Ø Pode expressar cada coluna com 4 equações l Ø Decriptação requer

Mix. Columns Ø Pode expressar cada coluna com 4 equações l Ø Decriptação requer o uso da matriz inversa l Ø Para derivar cada byte novo da coluna Com coeficientes maiores, hence a little harder Tem uma caracterização alternativa l l l Cada coluna do State com um polinômio de 4º grau Com coeficientes em GF(28) Cada coluna é multiplicada módulo (x 4+1)

Add Round Key Ø Os 128 -bits de State passam por um XOR bit

Add Round Key Ø Os 128 -bits de State passam por um XOR bit a bit com os 128 -bits da chave da rodada Ø Novamente processada por colunas (por series efetivas de operação de byte) Ø A transformação adição inversa de chave de rodada é idêntica à transformação adição direta de chave l Pois a operação XOR é seu próprio inverso. Ø É a mais simples possível l l Uma forma da cifra de Vernam numa chave expandida Requer outro nível de complexidade / segurança

Add Round Key

Add Round Key

AES Round

AES Round

Expansão de chave do AES Ø Utiliza como entrada uma chave de 4 words

Expansão de chave do AES Ø Utiliza como entrada uma chave de 4 words (16 bytes) e produz um vetor linear de 44 words (176 bytes) Ø A chave é copiada para as 4 primeiras words da chave expandida Ø O restante é preenchido com 4 words de cada vez l l Em 3 dentre 4 casos um simples XOR é usado Para uma word cuja posição no vetor w é um multiplo de 4, uma função mais complexa é usada.

AES Key Expansion

AES Key Expansion

Raciocínio da expansão de chave Ø Feito para resistir aos ataques criptoanalíticos conhecidos Ø

Raciocínio da expansão de chave Ø Feito para resistir aos ataques criptoanalíticos conhecidos Ø Os critérios específicos usados são: l l l l Conhecimento de parte da chave insuficientes para descobrir outra parte qualquer Transformação reversível Velocidade em uma grande gama de CPU’s Uso de constantes de rodada para eliminar simetrias Cada bit da chave de criptografia afeta muitos bits da chave de rodada Não-linearidade suficiente para impedir a determinação total das diferenças da chave de rodada somente a partir das diferenças da chave de criptografia Simplicidade de descrição

Cifra inversa equivalente Ø A cifra de decriptografia do AES não é idêntica a

Cifra inversa equivalente Ø A cifra de decriptografia do AES não é idêntica a cifra de criptografia Ø Mas pode definir uma cifra inversa equivalente com os passos como a encriptação l l Mas usando o inverso em cada passada Com uma chave diferente para o escalonamento Ø Os dois primeiros estágios da rodada Decript. precisam ser trocados como os dois seguintes de Decript. l l Trocando Inv. Shift. Rows e Inv. Sub. Bytes Trocando Add. Round. Key e Inv. Mix. Columns

AES Decryption

AES Decryption

Aspectos de Implementação Ø Implementação eficiente em processadores de 8 bits l l Sub.

Aspectos de Implementação Ø Implementação eficiente em processadores de 8 bits l l Sub. Bytes opera em nível de byte e só exige uma tabela de 256 bytes shift rows é uma operação simples de deslocamento de bytes add round key é uma operação XOR mix columns exige multiplicação de matriz no corpo GF(28) , o que significa que todas as operações são executadas sobre bytes, pode ser simplificada para usar XORs condicionas e XORs.

Aspectos de Implementação Ø Implementação eficiente em processadores de 32 bits l l Redefine

Aspectos de Implementação Ø Implementação eficiente em processadores de 32 bits l l Redefine os passos para usar words de 32 bits Pode pré-computar 4 tabelas de 256 words Então cada coluna em cada rodada pode ser executada usando 4 XORs condicionais mais 4 XORs Ao custo de 4 Kb para armazenar as tabelas Ø Os autores acreditam que essa implementação compacta e eficiente provavelmente foi um dos fatores mais importantes na seleção do Rijndael para o AES

Conclusão Ø Considerações: l l l Processo de seleção do AES Os detalhes de

Conclusão Ø Considerações: l l l Processo de seleção do AES Os detalhes de Rijndael – A cifra AES Verificação dos passo em cada rodada Expansão da Chave Aspectos de implementação