sexta-feira, 27 de abril de 2007

SHA1 (Secure Hash Algoritm)

O primeiro membro da família, publicado em 1993, foi oficialmente chamado SHA; no entanto, é frequentement chamado SHA-0 para evitar confusões com os seus sucessores. Em 1994, 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.

O SHA1 implementa um algoritmo de hash sem chave, que pega uma mensagem de até 264 bits e produz um resumo da mensagem de 160-bits e é utilizado para a verificação de integridade da mensagem. Ele é baseado nos princípios de projeto dos algoritmos de hash MD4 e MD5 (Memory Digest 4 e 5). O SHA1 é considerado o sucessor do MD5, um dos primeiros e mais utilizado algoritmos de hash, processando sequencialmente blocos de 512 bits. Cada processamento é feito por bloco com cerca de 80 passos.
SHA-1 e seu funcionamento
A sua lógica de funcionamento pode ser dividida em cinco passos:

1) Acrescentar bits de enchimento: toda mensagem terá bits acrescentados, sendo o tamanho final modulo 512 congruente a 448. Assim, uma mensagem pode ter de 1 a 512 bits de enchimento, que consiste de um bit com valor 1 seguido de quantos bits 0 forem necessários.

2) Acrescentar tamanho da mensagem: um bloco de 64 bits é acrescentado à mensagem, sendo tratado como um inteiro sem sinal de 64-bit. Este bloco contém o tamanho original da mensagem (antes do enchimento).

3) Inicialização do buffer MD: um buffer de 160 bits é utilizado para manter os resultados intermediários e final da função de hash. Este buffer pode ser representado como cinco registradores de 32 bits, que são inicializados com o seguinte valor (em hexadecimal):
A = 67 45 23 01
B = EF CD AB 89
C = 98 BA DC FE
D = 10 32 54 76
E = C3 D2 E1 F0

4) Processamento da mensagem em blocos de 512 bits: o centro do algoritmo é uma função de compressão que consiste de quatro iterações, que possuem 20 passos cada. Estas iterações são similares, mas utilizam uma estrutura lógica diferente.

5) Saída: depois de processar todos os blocos de 512 bits, a saída da última iteração fornece o hash de 160 bits.

Conclusões:

  • O NIST planeja substituir o SHA1 até 2010.
  • Apesar do SHA-1 ser um algoritmo de hash já quebrado através de técnicas de colisão de múltiplos blocos, ele é muito utilizado como função de verificação em diversos outros programas.
Referências bibliográficas:

- http://pt.wikipedia.org/wiki/SHA1
- http://www.schneier.com/blog/archives/2005/02/sha1_broken.html
- MARGI, Cíntia – “UM MECANISMO PARA DISTRIBUIÇÃO SEGURA DE VÍDEO MPEG”

Nenhum comentário: