Cursos / Redes de Computadores / Segurança em Redes / Aula

arrow_back Aula 05 - Assinatura Digital

Cálculo do Hash

Uma função hash aceita uma mensagem “M”, de tamanho qualquer, como entrada, e produz um código hash de tamanho fixo. O código hashH(M)” é também chamado de message digest. O funcionamento básico de uma função hash é mostrada na Figura 1.

Função <span class='italico'>hash</span>

As propriedades fundamentais de uma função hash qualquer são:

  1. Deve ser uma função não reversível (one-way), ou seja, dado o código hash de uma mensagem, “H(M)”, deve ser impossível achar a mensagem original “M” que o gerou. Ou seja, dada a saída, não é possível obter a entrada.
  1. Deve ser computacionalmente inviável encontrar duas mensagens diferentes “(M1, M2)” com o mesmo código hash “H(M1) = H(M2)”. Por exemplo, em uma função hash que produza 128 bits de saída, seria necessário tentar 2^128 mensagens diferentes para encontrar dois hashs iguais.

Além disso, é importante perceber que:

  1. Como a função hash considera, em seu cálculo, todos os bits da mensagem de entrada “M”, a mudança em apenas um dos seus bits produz um código hash totalmente diferente.
  2. Como a função hash não é secreta, alguma forma de proteção para o seu valor é necessária.
  3. Funções hash não garantem autenticação nem confiabilidade, apenas integridade.

Alguns exemplos de algoritmos que, atualmente, são utilizados na prática para o cálculo de hashs são: MD4, MD5, SHA-1 etc. Uma grande vantagem das funções hash é o tempo de execução do algoritmo. São bem mais rápidos do que os algoritmos simétricos, por exemplo. Quando se aplica uma função hash, está se gerando uma espécie de “impressão digital” do conteúdo da mensagem, o que permite verificar sua integridade.

 

Curiosidade

Devido ao seu conjunto de propriedades, outro uso bastante comum das funções hash é para o armazenamento de senhas. Quando um usuário tenta fazer login em um sistema, é gerado um hash da senha digitada e comparado com um previamente armazenado, quando o usuário criou a senha. Caso sejam iguais, o login é autorizado.

Versão 5.3 - Todos os Direitos reservados