SHA1

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

A família de SHA (Secure Hash Algorithm) está relacionada com as funções criptográficas. A função mais usada nesta família, a SHA-1, é usada numa grande variedade de aplicações e protocolos de segurança, incluindo TLS, SSL, PGP, SSH, S/MIME e IPSec. SHA-1 foi considerado o sucessor do MD5. Ambos têm vulnerabilidades comprovadas[1] . Em algumas correntes, é sugerido que o SHA-256 ou superior seja usado para tecnologia crítica. Os algoritmos SHA foram projetados pela National Security Agency (NSA) e publicados como um padrão do governo Norte-Americano.

O primeiro membro da família, publicado em 1993, foi oficialmente chamado SHA; no entanto, é frequentemente chamado SHA-0 para evitar confusões com os seus sucessores. Dois anos mais tarde, SHA-1, o primeiro sucessor do SHA, foi publicado. Desde então quatro variantes foram lançadas com capacidades de saída aumentadas e um design ligeiramente diferente: SHA-224, SHA-256, SHA-384, e SHA-512 — por vezes chamadas de SHA-2.

Foram feitos ataques a ambos SHA-0 e SHA-1[2] . Ainda não foram reportados ataques às variantes SHA-2, mas como elas são semelhantes ao SHA-1, pesquisadores estão preocupados, e estão a desenvolver candidatos para um novo e melhor padrão de hashing.

Curiosidades[editar | editar código-fonte]

  • É o algoritmo utilizado no eMule para identificar arquivos duplicados.
  • No MD5, é preciso de 16 yottabytes de espaço para poder gerar todos os códigos possíveis, ou seja, 1,7 \times 10^{13} terabytes.

Tamanhos de SHA[editar | editar código-fonte]

Algoritmo Tamanho de saída (bits) Tamanho dos blocos (bits) Comprimento (bits) Tamanho das palavras (bits) Varreduras Operações Colisão
SHA-0 160 512 64 32 80 +,and,or,xor,rotl Sim
SHA-1 160 512 64 32 80 +,and,or,xor,rotl Com falhas
SHA-256/224 256/224 512 64 32 64 +,and,or,xor,shr,rotr Não
SHA-512/384 512/384 1024 128 64 80 +,and,or,xor,shr,rotr Não

Exemplos de hashes[editar | editar código-fonte]

Os exemplos seguintes são exemplos de hashes SHA. Codificação ASCII é assumida para todas as mensagens.

SHA-1 hashes[editar | editar código-fonte]

SHA1("The quick brown fox jumps over the lazy dog") 
  = 2fd4e1c6 7a2d28fc ed849ee1 bb76e739 1b93eb12

Mesmo uma pequena mudança na mensagem resultará em um resumo completamente diferente, que concede à função um bom efeito avalanche. Por exemplo, ao alterar d para c:

SHA1("The quick brown fox jumps over the lazy cog") 
  = de9f2c7f d25e1b3a fad3e85a 0bd17d9b 100db4b3

O "resumo" para uma mensagem nula, ou seja, de tamanho zero, é:

SHA1("")
 = da39a3ee 5e6b4b0d 3255bfef 95601890 afd80709

SHA-256 hashes[editar | editar código-fonte]

SHA256("The quick brown fox jumps over the lazy dog") 
 = d7a8fbb3 07d78094 69ca9abc b0082e4f 8d5651e4 6d3cdb76 2d02d0bf 37c9e592
// Ocorre o efeito avalanche quando a última palavra é alterada para "cog":
SHA256("The quick brown fox jumps over the lazy cog")
 = e4c4d8f3 bf76b692 de791a17 3e053211 50f7a345 b46484fe 427f6acc 7ecc81be

O resumo para uma mensagem de tamanho zero é:

SHA256("")
 = e3b0c442 98fc1c14 9afbf4c8 996fb924 27ae41e4 649b934c a495991b 7852b855

SHA-512 hashes[editar | editar código-fonte]

SHA512("The quick brown fox jumps over the lazy dog")
 = 07e547d9 586f6a73 f73fbac0 435ed769 51218fb7 d0c8d788 a309d785 436bbb64
   2e93a252 a954f239 12547d1e 8a3b5ed6 e1bfd709 7821233f a0538f3d b854fee6

Ocorre o avalanche effect quando a última palavra é alterada para "cog":

SHA512("The quick brown fox jumps over the lazy cog")
 = 3eeee1d0 e11733ef 152a6c29 503b3ae2 0c4f1f3c da4cb26f 1bc1a41f 91c7fe4a
   b3bd8649 4049e201 c4bd5155 f31ecb7a 3c860684 3c4cc8df cab7da11 c8ae5045

O resumo para uma mensagem de tamanho zero é:

SHA512("")
 = cf83e135 7eefb8bd f1542850 d66d8007 d620e405 0b5715dc 83f4a921 d36ce9ce
   47d0d13c 5d85f2b0 ff8318d2 877eec2f 63b931bd 47417a81 a538327a f927da3e

Referências

  1. Schneier, Bruce. Cryptanalysis of SHA-1 (em inglês). 18 de fevereiro de 2005. Página visitada em 1 de julho de 2009.
  2. Schneier, Bruce. Ever Better Cryptanalytic Results Against SHA-1 (em inglês). 16 de junho de 2009. Página visitada em 1 de julho de 2009.