Soma de verificação – Wikipédia, a enciclopédia livre
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].
Segurança
[editar | editar código-fonte]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
- ↑ «Checksums». Wireshark User's Guide. Consultado em 15 de fevereiro de 2014
- ↑ «checksum». Merriam Webster Dictionary. Consultado em 15 de fevereiro de 2014
- ↑ «checksum». Dictionary.com. Consultado em 15 de fevereiro de 2014
- ↑ «O que é Checksum?». Canaltech. 29 de maio de 2012. Consultado em 15 de fevereiro de 2014
- ↑ «checksum». Webopedia. Consultado em 15 de fevereiro de 2014
- ↑ «Definition of:checksum». Encyclopedia PC Magazine. Consultado em 15 de fevereiro de 2014
- ↑ Tim Fischer. «Checksum». About.com PC Support. Consultado em 15 de fevereiro de 2014
- ↑ «Internet Protocol Small Computer System Interface (iSCSI) Cyclic Redundancy Check (CRC)/Checksum Considerations». Setembro de 2002. Consultado em 15 de fevereiro de 2014
- ↑ Jeff Tyson. «How Encryption Works». How Stuff Works. Consultado em 15 de fevereiro de 2014
- ↑ Ross N. Williams (19 de agosto de 1993). «A Painless Guide to CRC Error Detection Algorithms». Consultado em 15 de fevereiro de 2014
- ↑ Ronald Rivest (Abril de 1992). «The MD5 Message-Digest Algorithm». Consultado em 15 de fevereiro de 2014
- ↑ D. Eastlake, P. Jones (Abril de 2001). «US Secure Hash Algorithm 1 (SHA1)». Consultado em 15 de fevereiro de 2014
- ↑ «Checksum/Hash». Emacs Lisp. Consultado em 15 de fevereiro de 2014
- ↑ Steve Friedl (9 de maio de 2005). «An Illustrated Guide to Cryptographic Hashes»