Função hash

Função que mapeia dados de tamanhos arbitrários para um sequência de dados de tamanho fixo.

Características

Determinismo: Uma entrada deve sempre gerar o mesmo código hash;

Unidirecionalidade: Conhecido um resumo h(M), deve ser computacionalmente impossível encontrar M a partir do resumo;

Compressão: A partir de uma mensagem de qualquer tamanho, a saída de h(M) deve ter um tamanho fixo. O normal é que a longitude de h(M) seja menor do que a da mensagem M.

Facilidade de cálculo: Deve ser fácil calcular h(M) a partir de uma mensagem M.

Difusão: A saída de h(M) deve ser uma função complexa de todos os bits da mensagem M. Se modifica um só bit da mensagem M, o hash h(M) deveria mudar a metade dos seus bits aproximadamente.

Colisão: Busca-se que seja difícil conhecido M, encontrar outro M' tal que h(M) = h(M'). Isto se conhece como resistência débil às colisões.

Exemplos de Algorítimos:

md4, md5, sha1, sha256, sha512.

Utilização

  • Hash Tables - Estrutura de dados que permite a rápida localização dos dados salvos em sua estruturas;

  • Encontrar dados duplicados - É possível utilizar uma hash table onde cada hash calculado é colocado em uma entrada da estrutura, e quando uma entrada recebe dois valores, significa que houveram valores duplicados;

  • Proteção de dados - Um valor hash pode ser utilizado para identificar unicamente uma informação, como uma assinatura;

  • Entre outros...

results matching ""

    No results matching ""