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

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

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

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

Criptografia e Criptografia e Segurança de Redes Segurança de Redes

Capítulo 5Capítulo 5

Quarta EdiçãoQuarta Edição

por William Stallingspor William Stallings

Tradução por Raul Piccoli MadeiraTradução por Raul Piccoli Madeira

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

Capítulo 5 – Capítulo 5 – Advanced Advanced Encryption Standard Encryption Standard

““Parece muito simples."Parece muito simples."

““É muito simples. Mas se você não conhece É muito simples. Mas se você não conhece a chave, é praticamente indecifrável."a chave, é praticamente indecifrável."

——Talking to Strange Men, Talking to Strange Men, Ruth RendellRuth Rendell

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

As OrigensAs Origens Claramente era necessário ter um substituto para o DESClaramente era necessário ter um substituto para o DES

Ataques criptoanalíticos podem quebrá-loAtaques criptoanalíticos podem quebrá-lo Ataques exaustivos podem quebrá-loAtaques exaustivos podem quebrá-lo

Usou-se então o Usou-se então o Triple-DESTriple-DES – porém é lento e tem blocos – porém é lento e tem blocos pequenospequenos

US NIST emitiu chamadas para cifras em 1997US NIST emitiu chamadas para cifras em 1997 15 candidatos aceitaram em Junho de 98 15 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 A cifra de Rijndael foi selecionada como AES em Outubro de

20002000 Publicado na FIPS PUB 197 standard em Novembro de 2001 Publicado na FIPS PUB 197 standard em Novembro de 2001

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

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

classificadas.classificadas.

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

Critérios de Avaliação para o Critérios de Avaliação para o AESAES

Critério Inicial:Critério Inicial: segurança – concentrado na criptoanálisesegurança – concentrado na criptoanálise custo – em termos de eficiência computacionalcusto – em termos de eficiência computacional Algoritmo e característica de implementaçãoAlgoritmo e característica de implementação

Critério FinalCritério Final Segurança generalizadaSegurança generalizada Fácil implementação de software & hardwareFácil implementação de software & hardware Ataques nas implementaçõesAtaques nas implementações flexibilidade (em en/decriptografar, chaveamento, outros flexibilidade (em en/decriptografar, chaveamento, outros

fatores)fatores)

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

AES Finalistas 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 Twofish (USA) - complexo, muito rápido, extrema margem de

segurança 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 Rodadas de complexidade baixa vsvs muitas rodadas simples muitas rodadas simples Cifras existentes mais refinadas Cifras existentes mais refinadas vsvs novas propostas novas propostas

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

A Cifra AES - Rijndael 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 bitPossui chaves de 128/192/256 bit, bloco de 128 bit Iterativa em vez de uma cifra FeistelIterativa em vez de uma cifra Feistel

Processa dados como blocos de 4 colunas em 4 bytesProcessa dados como blocos de 4 colunas em 4 bytes Opera em todo bloco de dados em cada rodadaOpera em todo bloco de dados em cada rodada

Desenhado para ser:Desenhado para ser: Resistente a ataques conhecidosResistente a ataques conhecidos Rápido e compacto na maioria das CPUsRápido e compacto na maioria das CPUs design simplificadodesign simplificado

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

Blocos de dados de 4 colunas de 4 bytes são copiadas para o vetor Blocos de dados de 4 colunas de 4 bytes são copiadas para o vetor SStatetate

A chave é expandida para um vetor de A chave é expandida para um vetor de palavraspalavras tem 9/11/13 rodadas em cada tem 9/11/13 rodadas em cada statestate que sofre: que sofre:

Submissão de bytes (1 Submissão de bytes (1 S-boxS-box usado em cada byte) usado em cada byte) Deslocamento de linhas (Deslocamento de linhas (permuta bytes entre grupos/colunas)permuta bytes entre grupos/colunas) Colunas embaralhadas ( substituição usando uma matriz multipy Colunas embaralhadas ( substituição usando uma matriz multipy

de grupos)de grupos) Adiciona chave contínua( Realiza Adiciona chave contínua( Realiza XOR XOR no State com parte da no State com parte da

chave)chave) Visão alternada da chave XOR & bytes de dados misturadosVisão alternada da chave XOR & bytes de dados misturados

Inicial XOR em parte da chave & ultima rodada incompletaInicial XOR em parte da chave & ultima rodada incompleta XOR rápido & implementação em tabela lookupXOR rápido & implementação em tabela lookup

RijndaelRijndael

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

RijndaelRijndael

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

Substituição de BytesSubstituição de Bytes

Uma simples substituição de cada byteUma simples substituição de cada byte Usa uma tabela de 16 x 16 bytes contendo uma permutação de Usa uma tabela de 16 x 16 bytes contendo uma permutação de

todos os valores dos 256 8-bitstodos os valores dos 256 8-bits Cada byte do State é substituído por um bit indexado por linha (4-bits Cada byte do State é substituído por um bit indexado por linha (4-bits

esquerda) & coluna (4-bits direita)esquerda) & coluna (4-bits direita) Ex.: byte {95} é substituído por um bit na linha 9 coluna 5Ex.: 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 A S-box é construída usando transformações definidas de valores em GF(2em GF(288))

Projetado para ser resistente a todos os ataques conhecidosProjetado para ser resistente a todos os ataques conhecidos

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

Substituição de BytesSubstituição de Bytes

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

Substituição de LinhasSubstituição de Linhas

Uma substituição circular de bytes em cada linhaUma substituição circular de bytes em cada linha 1ª linha não é alterada1ª linha não é alterada 22ªª linha faz o deslocamento circular de 1 byte à esquerda linha faz o deslocamento circular de 1 byte à esquerda 3ª linha faz o deslocamento circular de 2 bytes à esquerda3ª linha faz o deslocamento circular de 2 bytes à esquerda 4ª linha faz o deslocamento circular de 3 bytes à esquerda4ª linha faz o deslocamento circular de 3 bytes à esquerda

Para desencriptar, usa-se o deslocamento de linhas para a direitaPara desencriptar, usa-se o deslocamento de linhas para a direita Assim que o State é processado pelas colunas, esse passo permuta Assim que o State é processado pelas colunas, esse passo permuta

os bytes entre as colunasos bytes entre as colunas

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

Substituição de LinhasSubstituição de Linhas

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

Mesclagem de ColunasMesclagem de Colunas

Cada coluna é processada separadamenteCada coluna é processada separadamente Cada byte é substituído por um valor que depende de todos os 4 Cada byte é substituído por um valor que depende de todos os 4

bytes na colunabytes na coluna eficazmente uma multiplicação de matriz em GF(2eficazmente uma multiplicação de matriz em GF(288) usando prime ) usando prime

poly m(x) =xpoly m(x) =x88+x+x44+x+x33+x+1+x+1

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

Mesclagem de ColunasMesclagem de Colunas

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

Mesclagem de ColunasMesclagem de Colunas

Pode expressar cada coluna com 4 equaçõesPode expressar cada coluna com 4 equações Para derivar cada byte novo da colunaPara derivar cada byte novo da coluna

Decriptação requer o uso da matriz inversaDecriptação requer o uso da matriz inversa Com coeficientes maiores, por isso, um pouco mais difícilCom coeficientes maiores, por isso, um pouco mais difícil

Tem uma caracterização alternativaTem uma caracterização alternativa Cada coluna com um polinômio de 4º grauCada coluna com um polinômio de 4º grau Com coeficientes em GF(2Com coeficientes em GF(288) ) Cada coluna é multiplicada módulo (xCada coluna é multiplicada módulo (x44+1) +1)

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

Adiciona rodada de chaveAdiciona rodada de chave Realiza um XOR na State com 128-bits da rodada de chaveRealiza um XOR na State com 128-bits da rodada de chave Novamente processada por colunas (por series efetivas de operação Novamente processada por colunas (por series efetivas de operação

de byte)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 expandidaUma forma da cifra de Vernam numa chave expandida Requer outro nível de complexidade / segurançaRequer outro nível de complexidade / segurança

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

Adiciona rodada de chaveAdiciona rodada de chave

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

AES RoundAES Round

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

Expansão de chave AESExpansão de chave AES Pega Chave de 128 bits (16 bytes) e expande em um array de Pega Chave de 128 bits (16 bytes) e expande em um array de

44/52/60 de 32 bits de texto44/52/60 de 32 bits de texto A chave é copiada para os 4 primeiras textos da chave expandidaA chave é copiada para os 4 primeiras textos da chave expandida O restante é preenchido com 4 textos de cada vezO restante é preenchido com 4 textos de cada vez

Em 3 de 4 casos um XOR é usadoEm 3 de 4 casos um XOR é usado 1º texto em 4 alternado + S-Box + XOR roda por todos os 1º texto em 4 alternado + S-Box + XOR roda por todos os

anteriores, antes de voltar ao 4º XOR.anteriores, antes de voltar ao 4º XOR.

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

Expansão de chave AESExpansão de chave AES

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

Raciocínio da expansão de chaveRaciocínio da expansão de chave Feito para resistir aos ataques conhecidosFeito 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 Conhecimento de parte da chave insuficientes para descobrir outra parte qualqueroutra parte qualquer

Transformação invertidaTransformação invertida Velocidade em uma grande gama de CPU’sVelocidade em uma grande gama de CPU’s Uso de constantes de rodada para eliminar simetriasUso de constantes de rodada para eliminar simetrias Difunde bits de chave em rodadas de chavesDifunde bits de chave em rodadas de chaves Não-linearidade suficiente para impedir a análiseNão-linearidade suficiente para impedir a análise Simplicidade de descriçãoSimplicidade de descrição

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

Decriptografia AESDecriptografia AES

A cifra de decriptografia do AES não é idêntica a cifra de criptografiaA cifra de decriptografia do AES não é idêntica a cifra de criptografia Mas pode definir uma cifra inversa equivalente com os passos como Mas pode definir uma cifra inversa equivalente com os passos como

a encriptaçãoa encriptação Mas usando o inverso em cada passoMas usando o inverso em cada passo Com uma chave diferente para o escalonamentoCom uma chave diferente para o escalonamento

resultado mantém-se inalterado desde queresultado mantém-se inalterado desde que Trocando substituição de bytes & linhas trocadasTrocando substituição de bytes & linhas trocadas Trocando colunas mescladas & chaves continuasTrocando colunas mescladas & chaves continuas

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

Decriptografia AESDecriptografia AES

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

Aspectos de ImplementaçãoAspectos de Implementação

Implementação eficiente em processadores de 8 bitsImplementação eficiente em processadores de 8 bits Substituição de textos de bytes usando uma tabela de 256 Substituição de textos de bytes usando uma tabela de 256

entradasentradas Deslocamento de linhas é um simples deslocamento de bytesDeslocamento de linhas é um simples deslocamento de bytes Adiciona rodada de chaveAdiciona rodada de chave é uma operação XOR é uma operação XOR Mesclagem de colunas requer multiplicação de matriz em GF(2Mesclagem de colunas requer multiplicação de matriz em GF(288) , ) ,

que trabalha em valores de bytes, pode ser simplificada para usar que trabalha em valores de bytes, pode ser simplificada para usar tabelas lookup & XOR de bytes.tabelas lookup & XOR de bytes.

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

Aspectos de ImplementaçãoAspectos de Implementação Implementação eficiente em processadores de 32 bitsImplementação eficiente em processadores de 32 bits

Redefine os passos para usar textos de 32 bitsRedefine os passos para usar textos de 32 bits Pode pré-computar 4 tabelas de 256 textosPode pré-computar 4 tabelas de 256 textos Então cada coluna em cada rodada pode ser executada usando 4 Então cada coluna em cada rodada pode ser executada usando 4

tabelas lookup + 4 XOR´stabelas lookup + 4 XOR´s Ao custo de 4Kb para armazenar as tabelasAo custo de 4Kb para armazenar as tabelas

Designers acreditam que essa implementação foi muito eficiente, um Designers acreditam que essa implementação foi muito eficiente, um fator chave para a sua seleção como cifra AESfator chave para a sua seleção como cifra AES

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

ConclusãoConclusão

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