Soma de verificação – Wikipédia, a enciclopédia livre

Efeito de uma típica função de checksum (comando Unix sha1sum). É sensível às alterações, do mais curto ao mais longo, mesmo no caso de adicionar uma virgula. Se utilizássemos apenas o primeiro dígito, todavia, haveria colisão do "8".

Soma de verificação (do inglês checksum) é um código usado para verificar a integridade de dados transmitidos através de um canal com ruídos ou armazenados em algum meio por algum tempo[1][2][3][4].

Funcionamento

[editar | editar código-fonte]

Isto é feito calculando a soma de verificação dos dados antes do envio ou do armazenamento deles, e recalculá-los ao recebê-los ou recuperá-los do armazenamento. Se o valor obtido é o mesmo, as informações não sofreram alterações e portanto não estão corrompidas[5][6][7].

Formas mais simplificadas destas somas são vulneráveis por não detectarem algumas formas de falha. A simples soma dos valores dos caracteres por exemplo é vulnerável a troca de ordem dos mesmos pela comutatividade da soma. Há formas mais elaboradas de se calcular estas somas que resolvem estes problemas, como por exemplo, o Cyclic Redundancy Check (verificação de redundância cíclica) ou CRC muito utilizados para detecção de falha[8] através da divisão de polinômios[9][10].

Estas funções podem facilmente detectar falhas acidentais, porém caso a integridade dos dados seja uma questão de segurança uma função mais elaborada ainda é necessária. As funções de hash criptográfico ou resumo criptográfico como o MD5[11] ou as da família SHA[12] são adotadas.

Uma das propriedades das funções de resumo criptográfico é tornar difícil a busca por colisões. Ou seja, para um determinado texto é difícil encontrar outro texto de modo que ambos tenham o mesmo resumo criptográfico. Isto dificulta muito a manipulação maliciosa da informação tornando a função própria para autenticação[13][14].

Referências

  1. «Checksums». Wireshark User's Guide. Consultado em 15 de fevereiro de 2014 
  2. «checksum». Merriam Webster Dictionary. Consultado em 15 de fevereiro de 2014 
  3. «checksum». Dictionary.com. Consultado em 15 de fevereiro de 2014 
  4. «O que é Checksum?». Canaltech. 29 de maio de 2012. Consultado em 15 de fevereiro de 2014 
  5. «checksum». Webopedia. Consultado em 15 de fevereiro de 2014 
  6. «Definition of:checksum». Encyclopedia PC Magazine. Consultado em 15 de fevereiro de 2014 
  7. Tim Fischer. «Checksum». About.com PC Support. Consultado em 15 de fevereiro de 2014 
  8. «Internet Protocol Small Computer System Interface (iSCSI) Cyclic Redundancy Check (CRC)/Checksum Considerations». Setembro de 2002. Consultado em 15 de fevereiro de 2014 
  9. Jeff Tyson. «How Encryption Works». How Stuff Works. Consultado em 15 de fevereiro de 2014 
  10. Ross N. Williams (19 de agosto de 1993). «A Painless Guide to CRC Error Detection Algorithms». Consultado em 15 de fevereiro de 2014 
  11. Ronald Rivest (Abril de 1992). «The MD5 Message-Digest Algorithm». Consultado em 15 de fevereiro de 2014 
  12. D. Eastlake, P. Jones (Abril de 2001). «US Secure Hash Algorithm 1 (SHA1)». Consultado em 15 de fevereiro de 2014 
  13. «Checksum/Hash». Emacs Lisp. Consultado em 15 de fevereiro de 2014 
  14. Steve Friedl (9 de maio de 2005). «An Illustrated Guide to Cryptographic Hashes» 
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.