SHA
Summary
O SHA (Secure Hash Algorithm) é uma família de algoritmos criptográficos utilizados para transformar dados de qualquer dimensão numa sequência de caracteres de tamanho fixo, chamada hash ou resumo criptográfico (message digest).
Como funciona?
O SHA recebe uma informação de qualquer tamanho e produz um resumo criptográfico de tamanho fixo.
Se alterares apenas um carácter da mensagem original, o hash resultante será completamente diferente.
Por exemplo:
Mensagem A: `Olá, mundo!` --> Hash: 90NMY238RY
Mensagem B: `Olá, Mundo!` --> Hash: A3309BHSC4
Apesar da diferença ser apenas uma letra maiúscula, os hashes serão diferentes.
Para que serve?
O SHA é utilizado em diferentes aplicações de segurança:
- Integridade de ficheiros: verificar se um ficheiro foi alterado.
- Assinaturas digitais: criar um resumo dos dados que será assinado digitalmente.
- Certificados digitais: participar nos mecanismos de validação e assinatura.
- TLS: proteger a integridade e autenticação das comunicações através de mecanismos criptográficos.
- Blockchain: identificar blocos e relacionar dados através de hashes.
- Gestão de palavras-passe: através de construções específicas, como PBKDF2.
Quais são as principais versões do SHA?
Existem várias versões da família SHA:
| Algoritmo | Tamanho do hash | Estado |
|---|---|---|
| SHA-1 | 160 bits | Inseguro para aplicações que exigem resistência a colisões. |
| SHA-256 | 256 bits | Seguro e amplamente utilizado. |
| SHA-384 | 384 bits | Seguro e amplamente utilizado. |
| SHA-512 | 512 bits | Seguro e amplamente utilizado. |
| SHA-3 | Variável | Família mais recente, baseada numa construção diferente. |
O SHA-256, SHA-384 e SHA-512 pertencem à família SHA-2.
O SHA-3 utiliza uma estrutura matemática diferente da família SHA-2.