Função Hash e Autenticação em Redes
de Computadores
Marcelo Duffles Donato Moreira (CNPq/Balcão)
Orientador:
Prof. Otto Carlos Muniz Bandeira Duarte
Grupo de Teleinformática e Automação (GTA)
Departamento de Eletrônica e de Computação (DEL)
Escola Politécnica – CT – UFRJ
Problemas
Comunicações em Redes de Computadores em geral e
principalmente em redes abertas como a Internet trouxeram
algumas questões à tona:
• Necessidade de privacidade, autenticidade e integridade
de mensagens;
• Criptografia de chave pública não oferece agilidade em
Assinaturas Digitais;
• Criptografia é insuficiente para garantir integridade de
dados;
• Surgiu a necessidade de se criar mecanismos conhecidos
como Digital Timestamping.
XXVI Jornada de Iniciação Científica, Artística e Cultural
Objetivos
• Estudar o mecanismo encontrado para a solução dos
problemas apresentados: a Função Hash;
•Analisar as principais propriedades e aplicações das
Funções Hash;
• Comparar os algoritmos hash mais utilizados: MD5 e SHA.
XXVI Jornada de Iniciação Científica, Artística e Cultural
Função Hash
Origem:
• Surgiu na Ciência da Computação;
• Função que comprime uma string de tamanho arbitrário em
uma de tamanho fixo;
• Também chamada de Função de Espalhamento.
Definição:
Uma Função Hash é uma função h : {0,1}* 
{0,1}n,
para algum n  1
valor hash ou resumo
da mensagem
XXVI Jornada de Iniciação Científica, Artística e Cultural
Função Hash Criptográfica
Requisitos para o uso em Criptografia:
(1) Fácil de calcular o valor Hash;
(2) Resistência à 1ª inversão, ou seja, é computacionalmente
inviável, dado y, encontrar x tal que h(x) = y;
(3) Resistência à 2ª inversão, ou seja, é computacionalmente
inviável, dado x1, encontrar x2  x1 tal que h(x1) = h(x2);
(4) Resistência a colisões, ou seja, é computacionalmente
inviável, encontrar quaisquer x1 e x2 tais que h(x1) = h(x2).
Note que:
• (2) 
/ (3) e (3) 
/ (2)
• (2) 
/ (4) e (4) 
/ (2)
• (3) 
/ (4), mas (4)  (3)
XXVI Jornada de Iniciação Científica, Artística e Cultural
Classificação das Funções Hash
UOWHF
Funções Hash
Com chave
MAC
Message Authentication Code
Modification Detection Code
OWHF
Sem chave
MDC
CRHF
XXVI Jornada de Iniciação Científica, Artística e Cultural
Aplicações em Assinaturas Digitais
Somente o
valor hash é
assinado
Agilidade
XXVI Jornada de Iniciação Científica, Artística e Cultural
Outras Aplicações
Integridade de dados:
• Valor hash computado previamente, usando MDC;
• Para verificar alteração: recomputar e comparar o valor hash
atual com o anterior;
• Útil para distribuição de software e proteção de vírus.
Digital Timestamping:
• Data e hora de criação/assinatura do documento entram no
cálculo do valor hash;
• Útil para proteção de propriedade intelectual.
Proteção de senhas:
• O valor hash é armazenado, ao invés da senha.
Autenticação de mensagens:
• O valor hash é usado como autenticador;
• Pode ser realizada junto com criptografia ou usando MAC’s.
XXVI Jornada de Iniciação Científica, Artística e Cultural
Construção genérica
• Entrada é dividida em blocos de tamanhos iguais;
• Em seguida, é feita uma anexação ao final da entrada;
• O cálculo do valor hash h(X) é feito da seguinte maneira:
• Exemplo com t = 3:
H0 = IV,
Hi+1 = f(Hi ,Xi) para 0  i < t,
h(X) = g(Ht).
XXVI Jornada de Iniciação Científica, Artística e Cultural
Ataques mais Importantes
• Ataques que dependem somente do tamanho da saída (n bits)
Ataque de inversão
Probabilidade: 1/2n
Encontrar uma inversão
Tempo máximo: 2n operações
Ataque do aniversário
- Num grupo de k pessoas, qual o valor mínimo de k para que a
probabilidade de que pelos menos duas façam aniversário no
mesmo dia seja maior do que 50%?
1 – 365x364x...x(365 –k +1)/365k > ½  k = 23
- Considerando k entradas e m = 2n possíveis saídas, qual o valor
de k para que a probabilidade de colisão seja maior do que 50%?
1 – m!/[(m-k)!mk]  1 – e[-k(k-1)]/n > ½  k  m1/2 = 2n/2
• Ataques a MAC’s
XXVI Jornada de Iniciação Científica, Artística e Cultural
Comparação entre MD5 e SHA
• Pertencem a mesma família de Funções Hash: MDx-class;
• MD5 é mais vulnerável a ataques de força-bruta devido a sua
menor saída: 128 bits contra 160 bits do SHA;
• O MD5 é mais rápido que o SHA, pois este último possui mais
etapas em seu algoritmo (80 contra 64 do MD5) e um buffer
maior (160 bits contra 128 bits do MD5);
• Já foram encontradas colisões para a função de compressão do
MD5, enquanto que o SHA permanece inabalável.
Algoritmo
MD4
MD5
SHA
SHA-1
SHA-224/256
SHA-384/512
Performance relativa
1,00
0,65
0,31
0,31
0,12
0,06
XXVI Jornada de Iniciação Científica, Artística e Cultural
Conclusões
• Esse estudo pôde mostrar a grande importância e a variedade de
aplicações das Funções Hash;
• Foi demonstrado também como aproveitar as propriedades das
Funções Hash para resolver os problemas apresentados;
• Assinaturas digitais exigem resistência a colisões. Logo, deve-se
tomar cuidado na escolha do algoritmo para esse tipo de aplicação,
não sendo recomendados os populares MD4 e MD5;
• Afinal, qual o melhor algoritmo? Qual devo usar?
Não existe o melhor algoritmo. Existe sim o mais adequado.
Nem sempre um algoritmo muito seguro é o melhor para uma dada
aplicação, até porque geralmente um algoritmo com muitas exigências
de segurança é lento. Além disso, na maioria das aplicações nem se
exige resistência a colisões.
XXVI Jornada de Iniciação Científica, Artística e Cultural
Download

Função Hash - Grupo de Teleinformática e Automação