SHA-2
De Wikipedia, a enciclopédia encyclopedia
SHA-2 é um conjunto de funções hash criptográficas projetadas pela NSA (Agência de Segurança Nacional dos EUA).[1] SHA significa secure hash algorithm (algoritmo de hash seguro). Funções hash criptográficas são operações matemáticas executadas em dados digitais; comparando o hash computado (a saída de execução do algoritmo) a um valor de hash conhecido e esperado, uma pessoa pode determinar a integridade dos dados. Por exemplo, calcular o hash de um arquivo baixado e comparar o resultado com um resultado hash publicado anteriormente pode mostrar se o download foi modificado ou adulterado.[2] Um aspecto importante das funções hash criptográficas é a sua resistência à colisão: ninguém deve ser capaz de encontrar dois valores de entrada diferentes que resultam na mesma saída de hash.
SHA-2 | |
---|---|
Geral | |
Projetistas | Agência de Segurança Nacional |
Primeira publicação | 2001 |
Séries | (SHA-0), SHA-1, SHA-2, SHA-3 |
Certificação | FIPS PUB 180-4, CRYPTREC, NESSIE |
Detalhes | |
Tamanho do resumo | 224, 256, 384 ou 512 bits |
Estrutura | Construção Merkle–Damgård |
Rodadas | 64 ou 80 |
Melhor criptanálise pública | |
Um ataque de 2011 quebra a resistência de preimagem para 57 das 80 rodadas de SHA-512, e 52 de 64 rodadas para SHA-256. Ataques de pseudo-colisão contra até 46 rodadas de SHA-256. |
SHA-2 inclui mudanças significativas de seu antecessor, SHA-1. A família SHA-2 é composta por seis funções hash com resumos (valores de hash) que são de 224, 256, 384 ou 512 bits: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256.
SHA-256 e SHA-512 são funções hash inovadoras computadas com palavras de 32 e 64 bytes, respectivamente. Eles usam quantidades de deslocamento e constantes aditivas diferentes, mas as suas estruturas são praticamente idênticas, diferindo apenas no número de rodadas. SHA-224 e SHA-384 são simplesmente versões truncadas das duas primeiras, calculadas com valores iniciais diferentes. SHA-512/224 e SHA-512/256 também são versões truncadas de SHA-512, mas os valores iniciais são gerados usando o método descrito no FIPS PUB 180-4. SHA-2 foi publicada em 2001 pelo NIST como um padrão federal dos Estados Unidos (FIPS). A família SHA-2 de algoritmos está patenteada em US 6829355. Os Estados Unidos lançou a patente sob uma licença livre de royalties.
Em 2005, surgiu um algoritmo para encontrar colisões SHA-1 em cerca de 2000 vezes menos etapas do que se pensava possível. Em 23 de fevereiro de 2017, o grupo CWI Amsterdam e a Google anunciaram um ataque prático de colisão contra o SHA-1.[3]. A margem de segurança deixada por SHA-1 é mais fraca do que a pretendida, e seu uso é, portanto, não recomendado para aplicações que dependem de resistência à colisão, tais como assinaturas digitais. Embora SHA-2 tenha algumas semelhanças com o algoritmo SHA-1, esses ataques não foram estendidos com sucesso para SHA-2.
Atualmente, os melhores ataques públicos quebram a resistência à preimagem em 52 rodadas de SHA-256 ou 57 rodadas de SHA-512, e resistência de colisão para 46 rodadas de SHA-256, como mostrado na seção Criptoanálise e validação abaixo.