As funções de hash são comumente empregadas nos mecanismos de segurança da informação. Quanto às suas propriedades básicas, para que o algoritmo de hash seja considerado forte, é correto afirmar que:
- A)a mesma entrada deve produzir saídas diferentes;
Errada, porque uma funcao hash nao precisa produzir saidas diferentes para a mesma entrada; ao contrario, a mesma entrada deve gerar sempre o mesmo hash.
- B)deve ser difícil encontrar duas entradas que produzam o mesmo hash;
Certa, pois uma propriedade essencial de uma hash forte e a resistencia a colisao, ou seja, ser muito dificil encontrar duas entradas distintas com o mesmo resultado.
- C)deve ser possível produzir a entrada original a partir do hash resultante;
Errada, porque hash nao deve ser reversivel; idealmente, nao se consegue recuperar a entrada original apenas a partir do valor hash.
- D)pequenas mudanças na entrada devem produzir pequenas mudanças no hash resultante;
Errada, porque o comportamento esperado e o efeito avalanche: pequenas mudancas na entrada devem provocar grandes mudancas no hash, nao pequenas.
- E)mesmo que as entradas possuam o mesmo tamanho, os resultados de hash terão tamanhos diferentes.
Errada, pois o tamanho da saida de uma funcao hash forte costuma ser fixo, independentemente do tamanho das entradas.
Gabarito: B
Funções hash sao usadas para transformar uma entrada de qualquer tamanho em uma saida de tamanho fixo, como um resumo digital da mensagem. Em seguranca da informacao, nao basta ser rapido: a hash precisa dificultar ataques, principalmente a tentativa de achar duas entradas diferentes com o mesmo resultado. Quando se fala em hash forte, o foco esta na resistencia a colisao. Isso significa que deve ser muito dificil encontrar duas entradas distintas que gerem o mesmo valor de hash. Se isso fosse facil, um invasor poderia trocar um arquivo ou mensagem por outro sem ser detectado, porque ambos pareceriam “iguais” para o sistema. A banca tenta confundir isso com outras propriedades que soam plausiveis, mas nao definem hash forte. Por exemplo, hash nao deve ser reversivel, entao nao faz sentido querer reconstruir a entrada original a partir do hash. E tambem nao existe regra de “mudanca pequena gera mudanca pequena”; na pratica, uma pequena alteracao na entrada costuma mudar bastante o hash, por causa do efeito avalanche. Por isso, o item correto e o que afirma que deve ser dificil encontrar duas entradas que produzam o mesmo hash. Esse e o ponto central esperado em provas de seguranca e estrutura de dados quando o assunto e propriedade basica de funcao hash robusta.