A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Criptografia e Segurança de Redes Capítulo 5 Quarta Edição por William Stallings Tradução por Raul Piccoli Madeira.

Apresentações semelhantes


Apresentação em tema: "Criptografia e Segurança de Redes Capítulo 5 Quarta Edição por William Stallings Tradução por Raul Piccoli Madeira."— Transcrição da apresentação:

1 Criptografia e Segurança de Redes Capítulo 5 Quarta Edição por William Stallings Tradução por Raul Piccoli Madeira

2 Capítulo 5 – Advanced Encryption Standard Parece muito simples." É muito simples. Mas se você não conhece a chave, é praticamente indecifrável." Talking to Strange Men, Ruth RendellTalking to Strange Men, Ruth Rendell

3 As Origens Claramente era necessário ter um substituto para o DES Claramente era necessário ter um substituto para o DES Ataques criptoanalíticos podem quebrá-lo Ataques criptoanalíticos podem quebrá-lo Ataques exaustivos podem quebrá-lo Ataques exaustivos podem quebrá-lo Usou-se então o Triple-DES – porém é lento e tem blocos pequenos Usou-se então o Triple-DES – porém é lento e tem blocos pequenos US NIST emitiu chamadas para cifras em 1997 US NIST emitiu chamadas para cifras em candidatos aceitaram em Junho de candidatos aceitaram em Junho de 98 5 foram selecionados em Agosto de 99 5 foram selecionados em Agosto de 99 A cifra de Rijndael foi selecionada como AES em Outubro de 2000 A cifra de Rijndael foi selecionada como AES em Outubro de 2000 Publicado na FIPS PUB 197 standard em Novembro de 2001 Publicado na FIPS PUB 197 standard em Novembro de 2001

4 Requerimentos para o AES Chave privada com cifras de bloco simétricas Chave privada com cifras de bloco simétricas Suporte para tamanhos de chave de 128/192/256 bits Suporte para tamanhos de chave de 128/192/256 bits Mais forte e rápido que o Triple-DES Mais forte e rápido que o Triple-DES Vida ativa de anos Vida ativa de anos Especificação total e detalhes de implementação Especificação total e detalhes de implementação Implementações em ambos C & Java Implementações em ambos C & Java NIST liberou todos os argumentos e análises não classificadas. NIST liberou todos os argumentos e análises não classificadas.

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

6 AES Finalistas Após o teste e avaliação, os finalistas em Agosto de 99: Após o teste e avaliação, os finalistas em Agosto de 99: MARS (IBM) - complexo, rápido, alta segurança MARS (IBM) - complexo, rápido, alta segurança RC6 (USA) – muito simples, muito rápido, baixa segurança RC6 (USA) – muito simples, muito rápido, baixa segurança Rijndael (Belgium) - fácil, rápido, boa margem de segurança Rijndael (Belgium) - fácil, rápido, boa margem de segurança Serpent (Euro) - devagar, fácil, extrema segurança Serpent (Euro) - devagar, fácil, extrema segurança Twofish (USA) - complexo, muito rápido, extrema margem de segurança Twofish (USA) - complexo, muito rápido, extrema margem de segurança Então foram submetidos a uma nova análise e comentários. Então foram submetidos a uma nova análise e comentários. Encontramos diferenças nas submissões como: Encontramos diferenças nas submissões como: Rodadas de complexidade baixa vs muitas rodadas simples Rodadas de complexidade baixa vs muitas rodadas simples Cifras existentes mais refinadas vs novas propostas Cifras existentes mais refinadas vs novas propostas

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

8 Blocos de dados de 4 colunas de 4 bytes são copiadas para o vetor State Blocos de dados de 4 colunas de 4 bytes são copiadas para o vetor State A chave é expandida para um vetor de palavras A chave é expandida para um vetor de palavras tem 9/11/13 rodadas em cada state que sofre: tem 9/11/13 rodadas em cada state que sofre: Submissão de bytes (1 S-box usado em cada byte) Submissão de bytes (1 S-box usado em cada byte) Deslocamento de linhas (permuta bytes entre grupos/colunas) Deslocamento de linhas (permuta bytes entre grupos/colunas) Colunas embaralhadas ( substituição usando uma matriz multipy de grupos) Colunas embaralhadas ( substituição usando uma matriz multipy de grupos) Adiciona chave contínua( Realiza XOR no State com parte da chave) Adiciona chave contínua( Realiza XOR no State com parte da chave) Visão alternada da chave XOR & bytes de dados misturados Visão alternada da chave XOR & bytes de dados misturados Inicial XOR em parte da chave & ultima rodada incompleta Inicial XOR em parte da chave & ultima rodada incompleta XOR rápido & implementação em tabela lookup XOR rápido & implementação em tabela lookup Rijndael

9 Rijndael

10 Substituição de Bytes Uma simples substituição de cada byte Uma simples substituição de cada byte Usa uma tabela de 16 x 16 bytes contendo uma permutação de todos os valores dos bits Usa uma tabela de 16 x 16 bytes contendo uma permutação de todos os valores dos bits Cada byte do State é substituído por um bit indexado por linha (4-bits esquerda) & coluna (4-bits direita) Cada byte do State é substituído por um bit indexado por linha (4-bits esquerda) & coluna (4-bits direita) Ex.: byte {95} é substituído por um bit na linha 9 coluna 5 Ex.: byte {95} é substituído por um bit na linha 9 coluna 5 Com valor {2A} Com valor {2A} A S-box é construída usando transformações definidas de valores em GF(2 8 ) A S-box é construída usando transformações definidas de valores em GF(2 8 ) Projetado para ser resistente a todos os ataques conhecidos Projetado para ser resistente a todos os ataques conhecidos

11 Substituição de Bytes

12 Substituição de Linhas Uma substituição circular de bytes em cada linha Uma substituição circular de bytes em cada linha 1ª linha não é alterada 1ª linha não é alterada 2 ª linha faz o deslocamento circular de 1 byte à esquerda 2 ª linha faz o deslocamento circular de 1 byte à esquerda 3ª linha faz o deslocamento circular de 2 bytes à esquerda 3ª linha faz o deslocamento circular de 2 bytes à esquerda 4ª linha faz o deslocamento circular de 3 bytes à esquerda 4ª linha faz o deslocamento circular de 3 bytes à esquerda Para desencriptar, usa-se o deslocamento de linhas para a direita Para desencriptar, usa-se o deslocamento de linhas para a direita Assim que o State é processado pelas colunas, esse passo permuta os bytes entre as colunas Assim que o State é processado pelas colunas, esse passo permuta os bytes entre as colunas

13 Substituição de Linhas

14 Mesclagem de Colunas Cada coluna é processada separadamente Cada coluna é processada separadamente Cada byte é substituído por um valor que depende de todos os 4 bytes na coluna Cada byte é substituído por um valor que depende de todos os 4 bytes na coluna eficazmente uma multiplicação de matriz em GF(2 8 ) usando prime poly m(x) =x 8 +x 4 +x 3 +x+1 eficazmente uma multiplicação de matriz em GF(2 8 ) usando prime poly m(x) =x 8 +x 4 +x 3 +x+1

15 Mesclagem de Colunas

16 Pode expressar cada coluna com 4 equações Pode expressar cada coluna com 4 equações Para derivar cada byte novo da coluna Para derivar cada byte novo da coluna Decriptação requer o uso da matriz inversa Decriptação requer o uso da matriz inversa Com coeficientes maiores, por isso, um pouco mais difícil Com coeficientes maiores, por isso, um pouco mais difícil Tem uma caracterização alternativa Tem uma caracterização alternativa Cada coluna com um polinômio de 4º grau Cada coluna com um polinômio de 4º grau Com coeficientes em GF(2 8 ) Com coeficientes em GF(2 8 ) Cada coluna é multiplicada módulo (x 4 +1) Cada coluna é multiplicada módulo (x 4 +1)

17 Adiciona rodada de chave Realiza um XOR na State com 128-bits da rodada de chave Realiza um XOR na State com 128-bits da rodada de chave Novamente processada por colunas (por series efetivas de operação de byte) Novamente processada por colunas (por series efetivas de operação de byte) Inverter para decriptar. Inverter para decriptar. Pois a operação XOR é seu próprio inverso. Pois a operação XOR é seu próprio inverso. É a mais simples possível É a mais simples possível Uma forma da cifra de Vernam numa chave expandida Uma forma da cifra de Vernam numa chave expandida Requer outro nível de complexidade / segurança Requer outro nível de complexidade / segurança

18 Adiciona rodada de chave

19 AES Round

20 Expansão de chave AES Pega Chave de 128 bits (16 bytes) e expande em um array de 44/52/60 de 32 bits de texto Pega Chave de 128 bits (16 bytes) e expande em um array de 44/52/60 de 32 bits de texto A chave é copiada para os 4 primeiras textos da chave expandida A chave é copiada para os 4 primeiras textos da chave expandida O restante é preenchido com 4 textos de cada vez O restante é preenchido com 4 textos de cada vez Em 3 de 4 casos um XOR é usado Em 3 de 4 casos um XOR é usado 1º texto em 4 alternado + S-Box + XOR roda por todos os anteriores, antes de voltar ao 4º XOR. 1º texto em 4 alternado + S-Box + XOR roda por todos os anteriores, antes de voltar ao 4º XOR.

21 Expansão de chave AES

22 Raciocínio da expansão de chave Feito para resistir aos ataques conhecidos Feito para resistir aos ataques conhecidos Os critérios específicos usados são: Os critérios específicos usados são: Conhecimento de parte da chave insuficientes para descobrir outra parte qualquer Conhecimento de parte da chave insuficientes para descobrir outra parte qualquer Transformação invertida Transformação invertida Velocidade em uma grande gama de CPUs Velocidade em uma grande gama de CPUs Uso de constantes de rodada para eliminar simetrias Uso de constantes de rodada para eliminar simetrias Difunde bits de chave em rodadas de chaves Difunde bits de chave em rodadas de chaves Não-linearidade suficiente para impedir a análise Não-linearidade suficiente para impedir a análise Simplicidade de descrição Simplicidade de descrição

23 Decriptografia AES A cifra de decriptografia do AES não é idêntica a cifra de criptografia 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 Mas pode definir uma cifra inversa equivalente com os passos como a encriptação Mas usando o inverso em cada passo Mas usando o inverso em cada passo Com uma chave diferente para o escalonamento Com uma chave diferente para o escalonamento resultado mantém-se inalterado desde que resultado mantém-se inalterado desde que Trocando substituição de bytes & linhas trocadas Trocando substituição de bytes & linhas trocadas Trocando colunas mescladas & chaves continuas Trocando colunas mescladas & chaves continuas

24 Decriptografia AES

25 Aspectos de Implementação Implementação eficiente em processadores de 8 bits Implementação eficiente em processadores de 8 bits Substituição de textos de bytes usando uma tabela de 256 entradas Substituição de textos de bytes usando uma tabela de 256 entradas Deslocamento de linhas é um simples deslocamento de bytes Deslocamento de linhas é um simples deslocamento de bytes Adiciona rodada de chave é uma operação XOR Adiciona rodada de chave é uma operação XOR Mesclagem de colunas requer multiplicação de matriz em GF(2 8 ), que trabalha em valores de bytes, pode ser simplificada para usar tabelas lookup & XOR de bytes. Mesclagem de colunas requer multiplicação de matriz em GF(2 8 ), que trabalha em valores de bytes, pode ser simplificada para usar tabelas lookup & XOR de bytes.

26 Aspectos de Implementação Implementação eficiente em processadores de 32 bits Implementação eficiente em processadores de 32 bits Redefine os passos para usar textos de 32 bits Redefine os passos para usar textos de 32 bits Pode pré-computar 4 tabelas de 256 textos Pode pré-computar 4 tabelas de 256 textos Então cada coluna em cada rodada pode ser executada usando 4 tabelas lookup + 4 XOR´s Então cada coluna em cada rodada pode ser executada usando 4 tabelas lookup + 4 XOR´s Ao custo de 4Kb para armazenar as tabelas Ao custo de 4Kb para armazenar as tabelas Designers acreditam que essa implementação foi muito eficiente, um fator chave para a sua seleção como cifra AES Designers acreditam que essa implementação foi muito eficiente, um fator chave para a sua seleção como cifra AES

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


Carregar ppt "Criptografia e Segurança de Redes Capítulo 5 Quarta Edição por William Stallings Tradução por Raul Piccoli Madeira."

Apresentações semelhantes


Anúncios Google