You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
hardware.<br />
Um hash, também chamado de "digesto", é uma espécie de "assinatura" ou<br />
"impressão digital" que representa o conteúdo de um fluxo de dados. Com certa<br />
frequência os hashes são chamados de checksum, o que provoca alguma<br />
confusão com os verdadeiros checksums, os quais têm aplicações e cálculos<br />
totalmente diferentes. Um hash pode ser comparado com um selo de embalagem<br />
que indica clara e inequivocamente se a embalagem já foi aberta ou violada.<br />
Via única<br />
Hashes não são cifragens, são digestos! As cifragens transformam os dados do<br />
texto claro num criptograma e vice-versa, ou seja, é uma operação de duas<br />
vias. Além disso, o tamanho do criptograma geralmente é igual ao comprimento<br />
do texto claro. Hashes, por sua vez, transformam os dados do texto (claro ou<br />
cifrado) num pequeno digesto, de tamanho fixo, numa operação de via única.<br />
Uma operação de via única não tem volta, ou seja, não é possível obter o texto<br />
claro a partir de um resultado hash.<br />
Saída de comprimento fixo<br />
Os hashes produzem "selos de segurança" de comprimento fixo, não importa o<br />
comprimento do fluxo de dados ou do arquivo que representem. Qualquer<br />
alteração efetuada no arquivo, por mínima que seja, altera substancialmente o<br />
resultado hash. Isto ocorre porque, mesmo se apenas um dos bits do arquivo for<br />
alterado, muitos bits do resultado serão afetados. Este comportamento é<br />
conhecido como efeito avalanche.<br />
O efeito avalanche fica bastante claro quando observamos o impacto da mudança<br />
de apenas um bit no resultado hash. Para exemplificar, vamos usar os caracteres<br />
ASCII "A" e "a". Note que apenas o sexto bit (contando da direita para a<br />
esquerda e iniciando pelo bit zero) é diferente:<br />
Caracter ASCII ASCII<br />
(decimal) (binário)<br />
----------------------------------<br />
A 65 0100 0001<br />
a 97 0110 0001<br />
Usando o algoritmo MD5, o resultado hash obtido para os textos "Aldeia<br />
NumaBoa" e "aldeia NumaBoa", cuja diferença reside num único bit, é<br />
completamente diferente:<br />
Aldeia NumaBoa<br />
aldeia NumaBoa<br />
3cdb658425ee484e4bff3d4583f6f851<br />
9c1f41ef263026b0283676d63df21fd1<br />
Transformando o valor hexadecimal do hash dos dois textos nos seus<br />
correspondentes binários, o efeito avalanche fica evidente pois a alteração de<br />
apenas um bit no texto ocasionou a alteração de 62 bits do resultado hash:<br />
3cdb6584 0011 1100 1101 1011 0110 0101 1000 0100