SHA, abreviação de Secure Hash Algorithm, é uma família de algoritmos de hash criptográfico publicada pelo Instituto Nacional de Padrões e Tecnologia (NIST) para manter seus dados protegidos. Em 1995, o NIST aprovou o Secure Hash Standard, FIPS PUB 180-1, que incluía um algoritmo de hash seguro, o SHA-1. Em 2003, foi aprovado um novo SHS (Secure Hash Signature Standard), o FIPS PUB 180-2, adicionando três algoritmos de hash capazes de produzir resumos de mensagens maiores, superando o FIPS 180-1. O FIPS PUB 180-2 especifica quatro algoritmos de hash seguro, SHA-1, SHA-256, SHA-384 e SHA-512 - todos iterativos, ou seja, funções de hash unidirecionais que podem processar uma mensagem em um condensado representação chamada de resumo da mensagem. Principalmente devido à sua eficiência, as funções hash criptográficas são de importância central para algoritmos e protocolos criptográficos.
Este artigo se concentrará principalmente nas duas funções populares de hash criptográfico usadas atualmente - SHA-1 e SHA-256. Parte do Secure Hash Standard (SHS), o SHA-1 foi um dos primeiros algoritmos de hash frequentemente usados pelas autoridades de certificação SSL para assinar certificados. Foi publicado em 1993 como SHA, mas devido a uma falha de segurança, mais tarde foi substituído pelo SHA-1, mais seguro. É de longe uma das funções hash criptográficas mais usadas e implantadas. O SHA-256 possui a mesma estrutura subjacente e usa o mesmo tipo de operações aritméticas modulares e binárias lógicas que o SHA-1. O SHA-256 pertence à família SHA-2 de funções hash semelhantes com tamanho de bloco diferente, sendo o outro o SHA-512. É uma função de hash comumente usada no Blockchain.
O SHA-1 é uma das funções hash criptográficas mais usadas e implementadas, frequentemente usadas pelas autoridades de certificação SSL para assinar certificados. Era um dos algoritmos de hash mais antigos especificados para uso pelo governo federal dos EUA. Foi desenvolvido pelo NIST e pela NSA. O SHA-1 foi publicado como padrão do governo federal em 1995 como uma atualização do SHA, publicada em 1993. Ele recebe uma entrada e produz um valor de hash de 160 bits (20 bytes) conhecido como resumo da mensagem, normalmente representado por uma cadeia hexadecimal de 40 dígitos. O SHA-1 foi projetado para que seja computacionalmente inviável encontrar uma mensagem que corresponda a um determinado resumo da mensagem ou encontrar duas mensagens diferentes que produzam o mesmo resumo da mensagem.
SHA-256 é uma função hash criptográfica mais nova e segura, proposta em 2000 como uma nova geração de funções SHA e adotada como padrão FIPS em 2002. O algoritmo SHA-256 gera um valor hash de 256 bits a partir de 512 bits blocos de mensagens e o tamanho da mensagem original é de até 264-1 bits. O SHA-256 sempre calcula internamente um hash de 256 bits por segurança, mas esse resultado pode ser truncado para impressão e armazenamento de 196 ou 128 bits. Assim, um SHA-256 truncado gera um benefício substancial para a usabilidade humana em citações impressas e melhora significativamente a segurança, ao custo de uma pequena redução no desempenho relacionado ao MD5. Ao contrário do algoritmo MD5, o SHA-256 truncado não está sujeito a nenhum ataque conhecido.
- O SHA-1 é uma das funções hash criptográficas mais usadas e implementadas, frequentemente usadas pelas autoridades de certificação SSL para assinar certificados. Era um dos algoritmos de hash mais antigos especificados para uso pelo governo federal dos EUA. O SHA-256 é uma função hash criptográfica mais nova e mais segura, que foi proposta em 2000 como uma nova geração de funções SHA e foi adotada como padrão FIPS em 2002. O SHA-256 pertence à família SHA-2 de algoritmos de hash criptográfico com hash semelhante. funções, mas com tamanho de bloco diferente, outros sendo SHA-384 e SHA-512.
- SHA-1 é um hash de 160 bits que recebe uma entrada e produz um valor de hash de 160 bits (20 bytes) conhecido como resumo da mensagem, normalmente representado por uma cadeia hexadecimal de 40 dígitos. O SHA-1 é projetado para que seja computacionalmente inviável encontrar uma mensagem que corresponda a um determinado resumo da mensagem ou encontrar duas mensagens diferentes que produzam o mesmo resumo. O algoritmo SHA-256 gera um valor de hash de 256 bits a partir de blocos de mensagens acolchoados de 512 bits, e o tamanho da mensagem original é de até 264-1 bits.
- Com o crescente poder computacional, a viabilidade de quebrar o SHA-1 também aumentou. Era um dos algoritmos de hash mais antigos especificados para uso pelo governo federal dos EUA e, devido ao seu tamanho de bit menor, é mais propenso a ataques. Embora o SHA-256 possua a mesma estrutura subjacente e use os mesmos tipos de operações binárias aritméticas e lógicas modulares que o SHA-1, ele se tornou parte integrante de muitas aplicações. O SHA-256 sempre calcula um hash de 256 bits internamente para segurança, o que melhora significativamente a segurança, ao custo de uma pequena redução no desempenho relacionado ao MD5.
Em poucas palavras, o SHA-256 é mais confiável e seguro que o SHA-1. O SHA-256 pertence à família de funções hash criptográficas SHA-2 projetadas pela NSA e é comumente usado em Blockchain. O SHA-1 foi uma das primeiras funções de hash criptográfico frequentemente usadas pelas autoridades de certificação SSL para assinar certificados. No entanto, devido ao seu tamanho de bit menor e vulnerabilidades de segurança, tornou-se mais propenso a ataques ao longo do tempo, o que acabou levando à sua depreciação dos emissores de certificados SSL.