SHA1
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.
Índice |
[editar] Curiosidades
- É o algoritmo utilizado no eMule para identificar arquivos duplicados.
- No MD5, é preciso de 16 yottabyte de espaço para poder gerar todos os códigos possíveis, ou seja, 1,7x1013 Terabyte.
[editar] Tamanhos de SHA
| 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 |
[editar] Exemplos de hashes
Os exemplos seguintes são exemplos de hashes SHA. Codificação ASCII é assumida para todas as mensagens.
[editar] SHA-1 hashes
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
[editar] SHA-256 hashes
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
[editar] SHA-512 hashes
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
- ↑ Schneier, Bruce. Cryptanalysis of SHA-1 (em inglês). 18 de fevereiro de 2005. Página visitada em 1 de julho de 2009.
- ↑ 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.