O Secure Hash Algorithm (SHA) e o Message Digest (MD5) são as funções de hash criptográficas padrão para fornecer segurança de dados para autenticação de multimídia. Os hashes criptográficos desempenham um papel fundamental nos sistemas criptográficos modernos. Portanto, é importante entender o mecanismo básico por trás desses algoritmos e os problemas envolvidos na escolha de um algoritmo de hash específico. Hashing é baseado em uma função matemática unidirecional; funções fáceis de calcular, mas significativamente difíceis de reverter. As funções de hash são a base do mecanismo de proteção dos códigos de autenticação de mensagens com hash (HMAC). É uma importante tecnologia capacitadora de segurança de rede usada para alcançar objetivos específicos de segurança.
SHA e MD5 são as duas funções de hash bem reconhecidas. O algoritmo de hash MD5 recebe uma mensagem de comprimento arbitrário como entrada e produz como saída uma "impressão digital" ou "resumo da mensagem" de 128 bits da mensagem de entrada. É uma função unidirecional que facilita a computação de um hash a partir dos dados de entrada fornecidos. É uma sequência complexa de operações binárias simples, como OR (XORs) e rotações exclusivas, que são executadas nos dados de entrada e produzem um resumo de 128 bits. O SHA é um sucessor em potencial do MD5 e o algoritmo especificado no Secure Hash Standard (SHS). O SHA-1 é uma revisão do padrão SHA publicada em 1994. Reunimos uma comparação imparcial entre as duas funções de hash.
Desenvolvido pelo Instituto Nacional de Padrões e Tecnologia dos EUA (NIST), o Secure Hash Algorithm (SHA) é uma família de funções de hash criptográficas especificadas no Secure Hash Standard (SHS). O Federal Information Processing Standard (FIPS 180-2) especifica quatro algoritmos de hash seguro - SHA-1, SHA-256, SHA-384 e SHA-512 - todos eles são funções de hash unidirecionais e iterativas que podem processar uma mensagem com um comprimento máximo de 264 - para 2128 - bits para produzir uma representação condensada de 160 a 512 bits chamada de resumo da mensagem. A mensagem de entrada é processada em blocos de 512 a 1024 bits. SHA-1 é uma função hash de 160 bits comumente usada que se assemelha ao algoritmo MD5 e é frequentemente usada por calculadoras de soma de verificação para verificação da integridade do arquivo.
O Message Digest (MD5) é um algoritmo de hash onipresente que foi desenvolvido por Ron Rivest e é usado em uma variedade de aplicativos da Internet atualmente. É um algoritmo de hash criptográfico que pode ser usado para criar um valor de cadeia de 128 bits a partir de uma cadeia de comprimento arbitrária. Apesar de suas vulnerabilidades de segurança, ele ainda é amplamente utilizado e implantado, principalmente para verificar a integridade dos arquivos. O MD5 é baseado em seu antecessor, o algoritmo MD4. O próprio algoritmo principal é baseado em uma função de compactação que opera em blocos. O algoritmo MD5 recebe uma entrada de uma mensagem de comprimento arbitrário e produz como saída uma "impressão digital" ou "resumo da mensagem" de 128 bits da mensagem de entrada. O MD5 não é tão rápido quanto o algoritmo MD4, mas oferece uma segurança de dados muito melhor. É comumente usado em protocolos e aplicativos de segurança como SSH, SSL e IPSec.
- O Secure Hash Algorithm (SHA) é uma família de funções de hash criptográficas desenvolvidas pelo Instituto Nacional de Padrões e Tecnologia dos EUA (NIST). O Message Digest (MD5) é um algoritmo de hash onipresente que foi desenvolvido por Ron Rivest e é usado em uma variedade de aplicativos da Internet atualmente. É um algoritmo de hash criptográfico que pode ser usado para criar um valor de cadeia de 128 bits a partir de uma cadeia de comprimento arbitrária. Como o MD5, o SHA também é amplamente usado em aplicativos como SSH, SSL, S-MIME (Secure / Multipurpose Mail Extension) e IPsec.
- O Federal Information Processing Standard (FIPS 180-2) especifica quatro algoritmos de hash seguro - SHA-1, SHA-256, SHA-384 e SHA-512 - todos eles são funções de hash unidirecionais e iterativas que podem processar uma mensagem com um comprimento máximo de 264 - para 2128 - bits para produzir uma representação condensada de 160 a 512 bits chamada de resumo da mensagem. O algoritmo MD5 recebe uma entrada de uma mensagem de tamanho arbitrário e produz como saída uma "impressão digital" ou "resumo da mensagem" de 128 bits da mensagem de entrada.
- O hash MD5 é normalmente expresso como um número hexadecimal de 32 dígitos e acredita-se que esteja quebrado criptograficamente e pode ter colisões. Embora seja uma das funções hash criptográficas bem reconhecidas, não é ideal para serviços e aplicativos baseados em segurança ou assinaturas digitais que dependem da resistência à colisão. SHA, por outro lado, acredita-se ser mais seguro que o MD5. Ele recebe um fluxo de bits como entrada e produz uma saída de tamanho fixo. Existem variações mais seguras do SHA-1 disponíveis agora, que incluem SHA-256, SHA-384 e SHA-512, com os números refletindo a força do resumo da mensagem.
O SHA-1 parece ser mais seguro que o MD5 em muitos aspectos. Embora tenha havido alguns ataques conhecidos relatados no SHA-1, eles são menos graves que os ataques ao MD5. Atualmente, existem funções de hash melhores e mais seguras e melhores, como SHA-256, SHA-384 e SHA-512, as quais são praticamente seguras sem histórico prévio de ataques relatados. Embora o MD5 seja uma das funções hash criptográficas bem reconhecidas, não é ideal para serviços e aplicativos baseados em segurança, pois está quebrado criptograficamente. Assim, o MD5 é considerado menos seguro que o SHA por muitas autoridades em criptografia. O algoritmo SHA é um pouco mais lento que o MD5, mas o tamanho maior do resumo da mensagem o torna mais seguro contra ataques de inversão e colisão de força bruta.