23.11.2014 Views

CRIPTOGRAFIA - FESP

CRIPTOGRAFIA - FESP

CRIPTOGRAFIA - FESP

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!