E
Propriedades
Existem diversos tipos de função resumo e a sua complexidade depende, basicamente, das propriedades que se deseja garantir. A propriedade básica de todas as funções é ser unidirecional. No contexto da teoria matemática, significa dizer que a função não tem inversa.
Na prática, ser unidirecional representa que não é possível recuperar o dado original a partir do resumo gerado. Isso ocorre devido ao fato de diversos dados serem mapeados no mesmo resumo. Um exemplo de função resumo é a função resto da divisão. Digamos que utilizamos a função resto pela divisão por 10. Assim, todos os números da sequencia 1, 11, 21, 31, 41, … terão resumo igual a 1. Nesse caso, dado que se tem o resumo 1, não se sabe qual número gerou esse resumo.
Essa repetição de resumos leva à segunda propriedade de todas as funções Hash: colisão. Quando dois dados originais geram o mesmo resumo, tem-se uma colisão. O objetivo principal dos projetistas de função Hash é reduzir ao máximo a probabilidade de ocorrência das colisões. A ferramenta mais usada para reduzir essa probabilidade é o ajuste da distribuição dos resumos. Quanto mais uniforme e dispersa é a função resumo, menor é a sua probabilidade de colisão.
Para garantir a segurança das funções Hash, essas propriedades são importantes, não são suficientes. As funções Hash seguras que conhecemos, como o MD5 e a família SHA (SHA-1, SHA-256 e SHA-512), por exemplo, precisam ter alta dispersão e uniformidade dos resultados. No entanto, também precisam ter uma grande quantidade de resumos possíveis, pois uma forma de ataque que se pode ter é a busca por um outro dado que gere o mesmo resumo.
techtudo