A finalidade da função de hash é produzir uma “impressão digital” de arquivo, mensagem ou outro bloco de dados. Para ser útil na autenticação de mensagens, uma função de hash H precisa ter as seguintes propriedades, EXCETO:
A
H(x) é difícil de calcular para qualquer x e, mesmo assim, torna as implementações de hardware e software práticas.
B
H pode ser aplicado a um bloco de dados de qualquer tamanho.
C
Para qualquer valor de h dado, é computacionalmente inviável encontrar x, tal que H(x) = h. Sendo, às vezes conhecido na literatura como resistência à primeira inversão ou propriedade unidirecional (one-way property).
D
É computacionalmente inviável encontrar qualquer par (x, y) tal que H(x) = H(y). Sendo, às vezes, conhecido como resistência a colisões ou resistência forte a colisões (strong collision resistance).
E
Para qualquer bloco dado x, é computacionalmente inviável encontrar y ≠ x, tal que H(y) = H(x). Sendo, às vezes, conhecido como resistência à segunda inversão ou resistência fraca a colisões (weak collision resistance).