3630 registros
0 hoje
14 nesta semana
4 neste mês| SHA-1 * |
|
|
|
| Escrito por vovó Vicki | |||||
| Qui, 07.09.2006 20:06 | |||||
Página 1 de 3 O SHA-1 (Secure Hash Algorithm - Algoritmo Hash Seguro) foi aprovado pelo governo dos EUA em 1995 para ser usado por todos os departamentos e agências federais na autenticação de documentos digitais. O que é o SHA-1O SHA-1 é um padrão usado para calcular a representação condensada de uma mensagem ou arquivo de dados. Partindo de uma mensagem menor do que 264 bits, o SHA-1 produz uma saída de 160 bits chamada de digesto da mensagem. Este digesto pode ser a entrada para o DSA (Digital Signature Algorithm - Algoritmo de Assinatura Digital), o qual gera ou faz a verificação da assinatura da mensagem. Criar uma assinatura para o digesto, ao invés de criar uma para a mensagem, costuma melhorar a eficiência do processo porque o digesto da mensagem habitualmente é muito menor do que a mensagem. Tanto o verificador, quanto o criador, precisam usar o mesmo algoritmo hash para gerar e verificar uma assinatura digital. O SHA-1 foi considerado seguro porque é impraticável encontrar uma mensagem que corresponda a um determinado digesto ou encontrar duas mensagens diferentes que produzam o mesmo digesto. Qualquer alteração feita numa mensagem em trânsito, com grande probabilidade dará como resultado um digesto diferente e a assinatura não poderá ser confirmada. O SHA-1 é uma revisão técnica do SHA - foi adicionada uma operação de deslocamento circular para a esquerda para aumentar a segurança oferecida por este padrão. O SHA-1 foi baseado em princípios semelhantes aos usados no algoritmo MD4, criado pelo professor do MIT, Ronald L. Rivest. Aplicações do SHA-1O SHA-1 pode ser aplicado, juntamente com o DSA, em e-mails, transferências eletrônicas de fundos, distribuição de software, armazenamento de dados e outras aplicações que requeiram garantia de integridade de dados e autenticação da origem dos dados. O SHA-1 também pode ser utilizado sempre que for necessário gerar uma versão condensada de uma mensagem. O algoritmo SHA-1Antes do cálculo do digesto propriamente dito, o tamanho em bits da mensagem precisa ser ajustado, as funções para os cálculos precisam ser preparadas e algumas constantes precisam ser definidas. Ajuste do tamanho da mensagemO objetivo deste ajuste é transformar o comprimento da mensagem num múltiplo de 512 bits porque o cálculo do digesto pelo SHA-1 processa sequencialmente blocos do referido tamanho. Se a mensagem que servirá de base para o cálculo do digesto for menor do que 264 bits, a primeira etapa é adicionar 1 bit no final da mensagem. Se usarmos a mensagem teste como base, seus bits serão os mostrados na linha identificada por ASCII (binário): Mensagem | t | e | s | t | e | ASCII (hexa) | 74 | 65 | 73 | 74 | 65 | ASCII (binário) | 0111 0100 | 0110 0101 | 0111 0011 | 0111 0100 | 0110 0101 | Ou seja, o primeiro passo é transformar a mensagem 01110100 01100101 01110011 01110100 01100101 em 01110100 01100101 01110011 01110100 01100101 1 Neste caso temos apenas um bloco de 41 bits, longe dos 512 necessários. Para completar este número, após o bit delimitador são acrescentados tantos bits zero quantos forem necessários para alcançar o tamanho desejado. Acontece que os últimos 64 bits do último bloco da mensagem devem ficar reservados para guardarem o tamanho original da mensagem. Neste nosso exemplo temos apenas um bloco, ou seja, é o primeiro e último. Neste caso, ao invés de adicionarmos 512 - 41 = 471 bits zero, acrescentaremos 512 - 64 - 41 = 407 bits zero. Em notação hexadecimal, a fonte para o SHA-1 com os zeros adicionados passa a ser: 74657374 65800000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Os últimos 64 bits serão adicionados levando o valor do comprimento da mensagem original, ou seja, 40 (o bit delimitador não é contado). A representação binária do valor 40 é 0010 1000, e a representação hexadecimal do valor 40 ocupando 64 bits é 00000000 00000028. Adicionando este valor, o bloco completo fica 74657374 65800000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000028 As funções do SHA-1O SHA-1 usa uma sequência de funções lógicas conhecidas por f0, f1, ..., f79. Cada uma destas funções atua sobre três words de 32 bits (B, C e D) para produzirem apenas um word. Para estes três words B, C e D, a função ft(B,C,D) é definida como: ft(B,C,D) = (B AND C) OR ((NOT B) AND D) ( 0 <= t <= 19) ft(B,C,D) = B XOR C XOR D (20 <= t <= 39) ft(B,C,D) = (B AND C) OR (B AND D) OR (C AND D) (40 <= t <= 59) ft(B,C,D) = B XOR C XOR D (60 <= t <= 79). As constantes do SHA-1A seguinte sequência de constantes de 32 bits K(0), K(1), ... , K(79) é usada. Os valores hexadecimais destas constantes são: K = 5A827999 ( 0 <= t <= 19) Kt = 6ED9EBA1 (20 <= t <= 39) Kt = 8F1BBCDC (40 <= t <= 59) Kt = CA62C1D6 (60 <= t <= 79). |
|||||
| Atualização Dom, 06.12.2009 21:22 |