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

Apresentações semelhantes


Apresentação em tema: "Criptografia e Segurança de Redes Capítulo 5"— 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 Slides de Palestra por Lawrie Brown para “Criptografia e Segurança de Redes”, 4/e, por William Stallings, Capítulo 5 –”Advanced Encryption Standard”.

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 Rendell Intro – Citação.

3 As Origens Claramente era necessário ter um substituto para o DES
Ataques criptoanalíticos podem quebrá-lo Ataques exaustivos podem quebrá-lo Usou-se então o Triple-DES – porém é lento e tem blocos pequenos US NIST emitiu chamadas para cifras em 1997 15 candidatos aceitaram em Junho de 98 5 foram selecionados em Agosto de 99 A cifra de Rijndael foi selecionada como AES em Outubro de 2000 Publicado na FIPS PUB 197 standard em Novembro de 2001 A AES (Advanced Encryption Standard) foi publicado pelo NIST (Instituto Nacional de Padrões e Tecnologia) em AES é uma cifra simétrica bloco que se destina a substituir o DES como norma aprovada por uma ampla gama de aplicações. A AES cipher (& outros candidatos) que formam o mais recente geração de blocos de cifragem, e agora vemos um aumento significativo do tamanho do bloco - a partir do antigo padrão de 64 bits até 128 bits e chaves de bits . Em parte, esta tem sido impulsionado pelas manifestações públicas de pesquisas exaustivas chave do DES. Embora triple-DES é considerada segura e bem entendida, é lento, especialmente no s / w. Em uma primeira rodada de avaliação, 15 propostas foram aceites algoritmos. A segunda volta ao campo reduzido para 5 algoritmos. NIST completou seu processo de avaliação e publicada uma norma final (FIPS PUB 197), em novembro de NIST Rijndael seleccionado como o proposto algoritmo AES. Os dois pesquisadores que desenvolveu e apresentou para o Rijndael AES são ambos cryptographers da Bélgica: Dr. Joan Daemen e Dr.Vincent Rijmen.

4 Requerimentos para o AES
Chave privada com cifras de bloco simétricas Suporte para tamanhos de chave de 128/192/256 bits Mais forte e rápido que o Triple-DES Vida ativa de 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. NIST's listados acima são os requisitos para as apresentações dos candidatos AES . Estes critérios abrangem toda a gama de preocupações para a aplicação prática das modernas cifras de blocos simétricas.

5 Critérios de Avaliação para o AES
Critério Inicial: segurança – concentrado na criptoanálise custo – em termos de eficiência computacional Algoritmo e característica de implementação Critério Final Segurança generalizada Fácil implementação de software & hardware Ataques nas implementações flexibilidade (em en/decriptografar, chaveamento, outros fatores) Quando NIST publicou o seu pedido inicial para as candidaturas dos algoritmos candidatos em 1997, o pedido afirma que os algoritmos candidatos seriam comparadas com base nos fatores mostrados na Tabela 5.1 Stallings, que foi utilizada para avaliar por volta de 15 candidatos e selecionar apenas 5. Estes tinham categorias de segurança, custo e características de algoritmo e implementação. O último critério envolvido durante o processo de avaliação, e que foi utilizado para selecionar o Rijndael, a partir dessa lista, e mais detalhes são apresentados no Quadro 5.2 Stallings, com categorias de: segurança geral, a facilidade de implementação do software e hardware, implementação ataques, & flexibilidade (em des / criptografar, keying, outros fatores)

6 AES Finalistas Após o teste e avaliação, os finalistas em Agosto de 99: MARS (IBM) - complexo, rápido, alta segurança RC6 (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 a uma nova análise e comentários. Encontramos diferenças nas submissões como: Rodadas de complexidade baixa vs muitas rodadas simples Cifras existentes mais refinadas vs novas propostas A lista AES de 5 cifras como foi mostrado. Nota mistura de comercial (MARS, RC6, twofish) versos propostas acadêmicas (Rijndael, Serpent), provenientes de vários países. Todos foram criados para serem bons - procurando o melhor equilíbrio de atributos para satisfazer os critérios, nomeadamente o equilíbrio entre velocidade, segurança e flexibilidade.

7 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 Processa dados como blocos de 4 colunas em 4 bytes Opera em todo bloco de dados em cada rodada Desenhado para ser: Resistente a ataques conhecidos Rápido e compacto na maioria das CPUs design simplificado A proposta de Rijndael para o AES definide uma cifra em que o comprimento do bloco e a largura da chave podem ser independentemente especificada, podendo ser de , ou 256 bits. A especificação do AES utiliza as mesmas alternativas de chave, mas limita o comprimento do bloco para 128 bits. Rijndael é uma apresentação acadêmica, baseado na cifra Earlier Square, Belgium academics Dr Joan Daemen e Vincent Rijmen. É uma cifra iterativa (opera em todo bloco de dados em cada rodada), em vez de feistel (operar em duas metades de uma só vez), e foi concebido para ter características de: Resistência contra todos os ataques conhecidos, Velocidade e código compacto sobre uma vasta gama de plataformas, & Design simplicidade.

8 Rijndael Blocos de dados de 4 colunas de 4 bytes são copiadas para o vetor State A chave é expandida para um vetor de palavras tem 9/11/13 rodadas em cada state que sofre: Submissão de bytes (1 S-box usado em cada byte) Deslocamento de linhas (permuta bytes entre grupos/colunas) Colunas embaralhadas ( substituição usando uma matriz multipy de grupos) Adiciona chave contínua( Realiza XOR no State com parte da chave) Visão alternada da chave XOR & bytes de dados misturados Inicial XOR em parte da chave & ultima rodada incompleta XOR rápido & implementação em tabela lookup A entrada para os algoritmos de criptografia e decriptografia do AES é um único bloco de 128 bits, retratado em FIPS PUB 197, como uma matriz quadrada de bytes. Este bloco é copiado para o Estado array, que é modificada a cada fase de codificação ou decodificação. Após a fase final, o State é copiado para uma saída. A chave é expandido em 44/52/60 lotes de 32 bits palavras (veja mais adiante), com 4 chaves usadas em cada rodada. A computação dos dados, consiste de "add round key", de 9/11/13 voltas com as 4 etapas, e uma etapa final 10th/12th/14th da mistura subs + mix cols + add round key. Isto pode ser visto como uma chave XOR alternada & scramble operações de arquivos binarios. Todas as etapas são facilmente invertidas, e podem ser implementadas de forma eficiente usando XOR's & tabela lookups.

9 Rijndael Figura mostra a estrutura geral do AES, como detalhado no slide anterior.

10 Substituição de Bytes 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 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 Com valor {2A} A S-box é construída usando transformações definidas de valores em GF(28) Projetado para ser resistente a todos os ataques conhecidos Agora discutiremos cada um dos 4 estagios usados no AES. A fase de substituição usa uma S-box para executar um substituição de bloco byte-by-byte. Este S-box é uma permutação de todos os 256 valores de 8 bits, construída utilizando uma transformação, que trata dos valores como polinómios em GF (28) - no entanto, é fixo, então realmente só precisa de saber quando a tabela de aplicação. Decryption exige a inversa da tabela. Estes quadros são apresentados no Quadro 4.5 Stallings.

11 Substituição de Bytes Conforme o diagrama de Stallings Fig 5.4. mostra, a Substituição de Bytes operando em cada byte do State independentemente, com o byte de entrada usado para indexar uma linha / col na tabela para recuperar o valor substituído.

12 Substituição de Linhas
Uma substituição circular de bytes em cada linha 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 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 A etapa de ShiftRows prevê uma simples "permutação" dos dados, enquanto que as outras etapas envolvem substituições. Além disso, uma vez que o State é tratado como um bloco de colunas, passo que prevê a difusão de valores entre as colunas. Desempenha uma rotação circular em cada linha de 0, 1, 2 e 3 lugares para as respectivas linhas. Quando decriptamos, rodamos na direcção oposta, para cada linha. Isso move um byte de cada uma coluna para outra, que é uma distância linear de um múltiplo de 4 bytes, e garante que os 4 bytes de uma coluna são espalhados para quatro diferentes colunas.

13 Substituição de Linhas
Figura Stalling 5.5a Ilustra a permutação Shift Rows.

14 Mesclagem de Colunas Cada coluna é processada separadamente
Cada byte é substituído por um valor que depende de todos os 4 bytes na coluna eficazmente uma multiplicação de matriz em GF(28) usando prime poly m(x) =x8+x4+x3+x+1 A etapa de MixColumns é uma substituição que faz uso de aritmética sobre GF (2 ^ 8). Cada byte de uma coluna é mapeado em um novo valor que é uma função de todos os quatro bytes nessa coluna. É concebida como uma multiplicação de matriz onde cada byte é tratado como um polinômio em GF (28). O inverso utilizado para decriptografia envolve um conjunto diferente de constantes. As constantes utilizadas são baseadas em um código linear com uma distância máxima entre código e palavras - isto dá boa mistura dos bytes dentro de cada coluna. Combinado com o "shift rows" proporciona boas avalanches, de forma que dentro de algumas rodadas, todos os bites de saida dependem de todos os bits de entrada.

15 Mesclagem de Colunas Figura Stalling 5.5b ilustra a tranformação Mix Columns.

16 Mesclagem de Colunas Pode expressar cada coluna com 4 equações
Para derivar cada byte novo da coluna Decriptação requer o uso da matriz inversa Com coeficientes maiores, por isso, um pouco mais difícil Tem uma caracterização alternativa Cada coluna com um polinômio de 4º grau Com coeficientes em GF(28) Cada coluna é multiplicada módulo (x4+1) Na prática, você implementa o MixColumns por expressar a sua transformação em cada coluna de 4 equações (equação 5.4) para calcular os novos bytes dessa coluna. Este cálculo só envolve turnos, XORs & XORs condicionais (para a redução de modulo). A decodificação exige o uso da matriz inversa , o que tem maiores coeficientes, e é, portanto, potencialmente mais lento e um pouco mais difícil de implementar. Os designers e o padrão AES fornecem uma caracterização de MixColumns, que trata cada coluna do State para ser um four-term polinomial com coeficientes em GF (28). Cada coluna é multiplicado por um valor polinomial fixo a (x) mostrado na equação Stallings 5.7. Ainda que esta seja útil para a análise da etapa, a descrição da matriz é tudo o que é exigido para a execução.

17 Adiciona 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) Inverter para decriptar. Pois a operação XOR é seu próprio inverso. É a mais simples possível Uma forma da cifra de Vernam numa chave expandida Requer outro nível de complexidade / segurança Por último a fase Add Round Key, que é um simples XOR do bloco atual com uma parte da chave expandida. Nota: este é o único passo que faz uso da chave e obscurece o resultado, por conseguinte, deve ser utilizado no início e no final de cada rodada, uma vez que poderia desfazer o efeito de outros passos. Mas as outras etapas fornecem confusão / difusão / não-linearidade. Isso nos permite olhar a cifra como uma série de XOR com uma chave, em seguida, scramble / permutar. Acredita-se que seja altamente eficaz e segura.

18 Adiciona rodada de chave
Stallings 5.4b ilustra o estagio Add Round Key, em que cada substituição de byte opera em cada byte do state independentemente.

19 AES Round Pode, portanto, agora ver todos os detalhes internos do AES, mostrando como cada byte do state é manipulado, como mostrado na Figura 5.3 Stallings.

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 A chave é copiada para os 4 primeiras textos da chave expandida O restante é preenchido com 4 textos de cada vez 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. O algoritmo de expansão da chave AES toma como entrada 4-words (16-byte)-chave e produz uma matriz linear de palavras, proporcionando um 4-word round key para a fase inicial AddRoundKey e cada uma das 10/12/14 rodadas da cifra. Envolve copiar a chave para o primeiro grupo de 4 palavras e, em seguida, construir grupos de 4 posterior com base nos valores dos 4 anteriores. A primeira palavra em cada grupo de 4 recebe "tratamento especial", com rotação + S-box + XOR constante sobre o XOR anterior a uma palavra antes da 4ª volta.

21 Expansão de chave AES O primeiro bloco da expansao de chave AES é mostrado aqui no Stallings Figura 5.6. Ela mostra cada grupo de 4 bytes na chave a ser atribuído às 4 primeiras palavras e, em seguida, o cálculo das próximas 4 palavras com base nos valores dos 4 palavras anteriores, que é repetido varias vezes para criar toda a informação de sub-chave necessaria.

22 Raciocínio da expansão de chave
Feito para resistir aos ataques conhecidos Os critérios específicos usados são: Conhecimento de parte da chave insuficientes para descobrir outra parte qualquer Transformação invertida Velocidade em uma grande gama de CPU’s Uso de constantes de rodada para eliminar simetrias Difunde bits de chave em rodadas de chaves Não-linearidade suficiente para impedir a análise Simplicidade de descrição Os desenvolvedores da expansão de chave do algoritmo Rijndael concebido para ser resistente a ataques criptoanaliticos conhecidos. Ele é projetado para ser de simples implementação, mas usando rodadas constantes para quebrar as simetrias, e torná-lo muito mais difícil de deduzir outros bits chave, se apenas alguns são conhecidos. A critérios utilizados em sua concepção estão listados acima.

23 Decriptografia AES resultado mantém-se inalterado desde que
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 usando o inverso em cada passo Com uma chave diferente para o escalonamento resultado mantém-se inalterado desde que Trocando substituição de bytes & linhas trocadas Trocando colunas mescladas & chaves continuas A cifra de decriptografia AES não é igual a sua cifra de criptografia (Stallings figura 5.1). A seqüência de transformações para decriptografia difere da de encriptação, embora a forma de escalonamento de chaves para encriptografar e decriptografar sejam os mesmos. Isto tem a desvantagem de dois módulos distintos de software ou firmware são necessários para aplicações que exijam tanto codificação e decodificação. No entanto, existe uma versão equivalente do decriptografia que tem a mesma estrutura que o algoritmo de criptografia, com a mesma seqüência de transformações que o algoritmo de encriptação. Para atingir esta equivalência, uma mudança fundamental na programação é necessária. Ao construir uma cifra equivalente inversa com passos na mesma ordem que para criptografia, podemos obter uma aplicação mais eficiente. Evidentemente trocar as substituições de bytes e Shiftrows não havera nenhum efeito, já que trabalham apenas em bytes. Trocar MixColumns e Add Round Key requer que o mixcolumns inverso seja aplicado ao Add Round Key primeiro - isto faz com que a chave de decodificação se torne um pouco mais complexa, e permite a utilização do mesmo H / W ou S / W para en/decriptografar os dados.

24 Decriptografia AES Ilustra a cifra inversa equivalente com a figura Stallings 5.7.

25 Aspectos de Implementação
Implementação eficiente em processadores de 8 bits Substituição de textos de bytes usando uma tabela de 256 entradas Deslocamento de linhas é um simples deslocamento de bytes Adiciona rodada de chave é uma operação XOR Mesclagem de colunas requer multiplicação de matriz em GF(28) , que trabalha em valores de bytes, pode ser simplificada para usar tabelas lookup & XOR de bytes. AES pode ser implementada de forma muito eficiente em um processador de 8 bits. AddRoundKey é uma operação XOR. ShiftRows é uma simples operação de deslocamento de bytes. SubBytes operam no nível de byte e só requer uma pesquisa de 256 bytes na tabela S. MixColumns (multiplicação de matrizes) pode ser implementada como byte XOR's & tabelas lookups com uma 2ª 256 byte table X2, utilizando as fórmulas de Stallings mostradas na equação 5.9.

26 Aspectos de Implementação
Implementação eficiente em processadores de 32 bits Redefine os passos para usar textos de 32 bits 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 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 AES também pode ser muito eficiente se implementada em um processador de 32 bits, por reescrever a fase de transformação e utilizar 4 tabelas de lookups & 4 XOR's por coluna do State. Estas tabelas podem ser calculadas antecipadamente utilizando as fórmulas indicadas no texto, e precisam de 4KB de armazenamento.

27 Conclusão Considerações: 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 Capítulo 5 - Sumário


Carregar ppt "Criptografia e Segurança de Redes Capítulo 5"

Apresentações semelhantes


Anúncios Google