1 / 27

Criptografia e Segurança de Redes Capítulo 5

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 se você não souber qual é a chave, é praticamente indecifrável."

ting
Download Presentation

Criptografia e Segurança de Redes Capítulo 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. As Origens • Claramente era necessário ter um substituto para o DES • Ataques criptoanalíticos podem quebrá-lo • Quebrável por ataques de força-bruta • Usou-se então o 3DES – 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

  4. 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 3DES • 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.

  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 em/decriptografar, chaveamento, outros fatores)

  6. AES [ Finalistas ] • Após o teste de avaliação, os finalistas em Ago-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 para análise futura • Encontramos diferenças nas submissões como: • Baixas rodados de complexidade vs muitas rodadas simples • Cifras existentes mais refinadas vs novas propostas

  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 • Executa em todo os blocos de dados em todas as rodadas • Desenhado para ser: • Resistente a ataques conhecidos • Rápido e compacto na maioria das CPUs • design simplificado

  8. 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: • SubBytes: (1 caixa-S usado em cada byte) • ShiftRows: uma permutação simples • MixColumns: uma combinação linear que usa aritmética GF(28) • AddRoundKey: XOR bit a bit do bloco atual com uma parte da chave expandida • Alternativa para o XOR chave & scramble bytes de dados • InitialXORkey material & incomplete última rodada • withfast XOR & tablelookupimplementation

  9. Rijndael

  10. Transformação SubBytes • Uma simples substituição de cada byte • O AES define uma matriz de 16x16 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) • Ex.: byte {95} referencia a linha 9 coluna 5 • Que tem o valor {2A} • 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

  11. TransformaçãoSubBytes

  12. Transformação ShiftRows • Um deslocamento circular de byte para 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 • A transformação deslocamento inverso de linhas, chamada InvShiftRows, realiza os deslocamentos circulares na direção oposta. • Assim que o state é processado pelas colunas, esse passo permuta os bytes entre as colunas

  13. Shift Rows

  14. Transformação MixColumns • 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) =x8+x4+x3+x+1

  15. Mix Columns

  16. MixColumns • 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, hence a littleharder • Tem uma caracterização alternativa • Cada coluna do State com um polinômio de 4º grau • Com coeficientes em GF(28) • Cada coluna é multiplicada módulo (x4+1)

  17. 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 • 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

  18. Add Round Key

  19. AES Round

  20. 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 • 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.

  21. AES Key Expansion

  22. Raciocínio da expansão de chave • Feito para resistir aos ataques criptoanalíticos conhecidos • Os critérios específicos usados são: • 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

  23. Cifrainversaequivalente • 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 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. • Trocando InvShiftRows e InvSubBytes • Trocando AddRoundKey e InvMixColumns

  24. AES Decryption

  25. Aspectos de Implementação • Implementação eficiente em processadores de 8 bits • SubBytes opera em nível de byte e só exige uma tabela de 256 bytes • shiftrows é 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 .

  26. Aspectos de Implementação • Implementação eficiente em processadores de 32 bits • 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 4Kb 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

  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

More Related