Upload
internet
View
108
Download
0
Embed Size (px)
Citation preview
Criptografia e Criptografia e segurança de Redessegurança de Redes
Capítulo 12Capítulo 12
Fourth EditionFourth Edition
by William Stallingsby William Stallings
Tradução feita por Raul Piccoli Tradução feita por Raul Piccoli Madeira e Marcelo CarneiroMadeira e Marcelo Carneiro
Capítulo 12 – Algoritmos de Capítulo 12 – Algoritmos de Hash e MACHash e MAC
Cada mensagem, Como cada uma das que ele já Cada mensagem, Como cada uma das que ele já havia lido dos comandos de Stern', Começava havia lido dos comandos de Stern', Começava com um número e terminava com um número ou com um número e terminava com um número ou uma linha de numeros. Nenhum esforço por uma linha de numeros. Nenhum esforço por parte do Mungo ou qualquer um de seus parte do Mungo ou qualquer um de seus especialistas havia sido capaz de quebrar o especialistas havia sido capaz de quebrar o código de Stern, não houve qualquer indício código de Stern, não houve qualquer indício quanto ao que os numeros iniciais e finais quanto ao que os numeros iniciais e finais significavam.significavam.——Talking to Strange Men, Talking to Strange Men, Ruth RendellRuth Rendell
Algoritmos de Hash e MACAlgoritmos de Hash e MAC
Funções HashFunções Hash Restringe em tamanho fixo o tamanho da Restringe em tamanho fixo o tamanho da
mensagemmensagem Processamento feito em blocosProcessamento feito em blocos Feito através de alguma forma de compressãoFeito através de alguma forma de compressão Personalizado ou baseado em cifra de blocoPersonalizado ou baseado em cifra de bloco
Código de Autenticação de mensagem (MAC)Código de Autenticação de mensagem (MAC) Autenticador de tamaho fixo para algumas Autenticador de tamaho fixo para algumas
mensagensmensagens Fornece autenticação de mensagemFornece autenticação de mensagem Tanto ultilizando cifra de bloco ou função hashTanto ultilizando cifra de bloco ou função hash
Estrutura do Algoritmo de Estrutura do Algoritmo de HashHash
Algoritmo Hash de SegurançaAlgoritmo Hash de Segurança
SHA desenvolvido originalmente pelo NIST & NSA em 1993SHA desenvolvido originalmente pelo NIST & NSA em 1993 Foi revisado em 1995 por SHA-1Foi revisado em 1995 por SHA-1 Esse foi um padrão americano de assinatura adotado para Esse foi um padrão americano de assinatura adotado para
uso em DSA uso em DSA A norma é FIPS 180-1 1995, e tambem para Internet A norma é FIPS 180-1 1995, e tambem para Internet
RFC3174RFC3174 nb. O algoritmo é SHA, o padrão é SHS nb. O algoritmo é SHA, o padrão é SHS
Baseado no modelo MD4 com chaves diferentes Baseado no modelo MD4 com chaves diferentes Produz 160 bits de valores hash Produz 160 bits de valores hash Resultados recentes de 2005 sobre a segurança do SHA-1, Resultados recentes de 2005 sobre a segurança do SHA-1,
levantaram preocupações sobre sua utilização em aplicações levantaram preocupações sobre sua utilização em aplicações futuras.futuras.
O padrão de segurança hash O padrão de segurança hash revisadorevisado
NIST emitiu uma revisão FIPS 180-2 em 2002NIST emitiu uma revisão FIPS 180-2 em 2002 Acresentou 3 versões adicionais do SHA Acresentou 3 versões adicionais do SHA
SHA-256, SHA-384, SHA-512SHA-256, SHA-384, SHA-512 Moldados para assegurar a compatibilidade com o aumento Moldados para assegurar a compatibilidade com o aumento
da segurança proporcionada pela cifra da segurança proporcionada pela cifra AESAES A estrutura e os detalhes são similares ao SHA-1A estrutura e os detalhes são similares ao SHA-1 A analise deve ser semelhanteA analise deve ser semelhante Mas os niveis de segurança são bastante elevadosMas os niveis de segurança são bastante elevados
SHA-512 – Visão GeralSHA-512 – Visão Geral
SHA-512- Função de SHA-512- Função de CompressãoCompressão
Coração do algoritimoCoração do algoritimo Processando mensagens de blocos de Processando mensagens de blocos de
1024-bit1024-bit Consiste em 80 rodadasConsiste em 80 rodadas
Atualização do buffer 512-bitAtualização do buffer 512-bit utilizando um valor de 64 bits Wt derivadas da utilizando um valor de 64 bits Wt derivadas da
mensagem do bloco atualmensagem do bloco atual E rodadas constantes baseada no cubo de E rodadas constantes baseada no cubo de
raiz dos 80 primeiros numeros primosraiz dos 80 primeiros numeros primos
SHA-512 – Função ContínuaSHA-512 – Função Contínua
SHA-512 SHA-512 – Função Contínua– Função Contínua
WhirlpoolWhirlpool
Agora, examine a hunção hash WhirlpoolAgora, examine a hunção hash Whirlpool Apoiado pelo projeto europeu NESSIEApoiado pelo projeto europeu NESSIE É baseado no uso de cifra de bloco como É baseado no uso de cifra de bloco como
método de compressãométodo de compressão abordando questões sobre o uso de abordando questões sobre o uso de
blocos de cifragem visto anteriormenteblocos de cifragem visto anteriormente Com performance comparada a Com performance comparada a
algoritimos dedicados como SHAalgoritimos dedicados como SHA
Whirlpool – Visão GeralWhirlpool – Visão Geral
Whirlpool – Cifra de bloco WWhirlpool – Cifra de bloco W
Projetada especificamente para funções hashProjetada especificamente para funções hash Com segurança e eficacia do AESCom segurança e eficacia do AES Mas com blocos de 512-bit por isso, hashMas com blocos de 512-bit por isso, hash Estrutura e funções similar ao AES masEstrutura e funções similar ao AES mas
Linha de entrada é bem mapeadaLinha de entrada é bem mapeada Tem 10 rodadasTem 10 rodadas um polinómio primitivo diferente paraum polinómio primitivo diferente para GF(2^8) GF(2^8) Usa um S-box de projeto e valores diferentesUsa um S-box de projeto e valores diferentes
Whirlpool – Cifra de bloco WWhirlpool – Cifra de bloco W
Whirlpool – Performace e Whirlpool – Performace e SegurançaSegurança
Whirlpool é uma nova propostaWhirlpool é uma nova proposta Portanto há pouca experiencia de usoPortanto há pouca experiencia de uso Porem pode encontrar cifras de AES onde Porem pode encontrar cifras de AES onde
pode ser aplicado pode ser aplicado Não é necessario maior poder de Não é necessario maior poder de
hardware que SHA, e ainda tem uma boa hardware que SHA, e ainda tem uma boa performanceperformance
Introduzindo Funções Hash Introduzindo Funções Hash como MACscomo MACs
Obtendo MAC baseado em uma função hashObtendo MAC baseado em uma função hash Poque funções Hash geralmente são mais Poque funções Hash geralmente são mais
rápidasrápidas Código de funções criptográficas hash Código de funções criptográficas hash
amplamente disponívelamplamente disponível hash inclui uma chave junto com mensagemhash inclui uma chave junto com mensagem Proposta Original:Proposta Original:
KeyedHash = Hash(Key|Message) KeyedHash = Hash(Key|Message) Algumas falhas forma encontradas Algumas falhas forma encontradas
Eventualmente levou ao desenvolvimento do HMAC Eventualmente levou ao desenvolvimento do HMAC
HMACHMAC
Especificado como padrão de internet RFC2104 Especificado como padrão de internet RFC2104 Utiliza função Hash sobre a mensagem:Utiliza função Hash sobre a mensagem:
HMACHMACKK = Hash[(K = Hash[(K++ XOR opad) || XOR opad) || Hash[(KHash[(K++ XOR ipad)||M)]] XOR ipad)||M)]]
Onde KOnde K++ é a chave alocada é a chave alocada e opad, ipad são constantes de preenchimentos e opad, ipad são constantes de preenchimentos
especificadasespecificadas overhead é apenas mais 3 cálculos hash do que a overhead é apenas mais 3 cálculos hash do que a
mensagem tem por si sómensagem tem por si só Qualquer função Hash pode ser usadaQualquer função Hash pode ser usada
ex. MD5, SHA-1, RIPEMD-160, Whirlpoolex. MD5, SHA-1, RIPEMD-160, Whirlpool
HMAC – Visão GeralHMAC – Visão Geral
HMAC - SegurançaHMAC - Segurança
A prova de segurança do A prova de segurança do HMAC é HMAC é mostrada pelo algorítimo hash subjacentemostrada pelo algorítimo hash subjacente
Para atacar o HMAC exige :Para atacar o HMAC exige : Ataque de força bruta usada sobre a chaveAtaque de força bruta usada sobre a chave Ataque Birthday (Ataque Birthday (mas seria necessário mas seria necessário
observar um grande número de mensagensobservar um grande número de mensagens)) Escolha a funçao Hash baseado em Escolha a funçao Hash baseado em
Velocidade vs SegurançaVelocidade vs Segurança
CMACCMAC
Visto anteriormente em DAA (CBC-MAC)Visto anteriormente em DAA (CBC-MAC) Muito usada por governos e industriasMuito usada por governos e industrias Mas a mensagem tem tamanho limitadoMas a mensagem tem tamanho limitado Pode ser usado 2 chaves & paddingPode ser usado 2 chaves & padding Formando assim a código de cifra Formando assim a código de cifra
baseada em autenticação de mensagem baseada em autenticação de mensagem (CMAC)(CMAC)
Adotado pelo NIST SP800-38BAdotado pelo NIST SP800-38B
CMAC OverviewCMAC Overview
SumárioSumário
Considerando:Considerando: Alguns algoritmos de Hash atuaisAlguns algoritmos de Hash atuais
• SHA-512 & WhirlpoolSHA-512 & Whirlpool Autenticação usando funçoes Hash HMACAutenticação usando funçoes Hash HMAC Autenticação usando cifras de bloco CMACAutenticação usando cifras de bloco CMAC