Você está na página 1de 59

Grupo: Andria Oliveira Bruno Falconieri Fbio Arajo Ruben Arajo

Ataques rede; Funes e Autenticadores; Funo Hash; Usos Bsicos da Funo Hash; Caractersticas Importantes para Impresso Digital; Resistncia a Ataques; Algoritmos; MD4; MD5; SHA- 1.

Podem ser:
1. 2. 3. 4. 5. 6. 7.

Divulgao; Anlise de Trfego; Mascaramento; Modificao do Contedo; Modificao de Sequncia; Modificao de Tempo; Retratao da Origem/Destino.

Funes que podem produzir um autenticador:


1. 2. 3.

Criptografia de Mensagens; Cdigo de Autenticao de Mensagens (MAC); Funes de Hash.

Variao MAC Funo Hash Unidirecional Cdigo de Hash: 1. Funo apenas da mensagem de entrada; 2. No usa chave; 3. Capacidade de deteco de erros; Valor de Hash: h = H(M),
Sendo M uma mensagem de comprimento varivel.

Oferece confiabilidade (somente A e B compartilham a chave K). Oferece autenticao. H(M) protegido por criptografia.

Oferece autenticao. H(M) protegido por criptografia.

Oferece autenticao. H(M) protegido por criptografia. Oferece assinatura digital. Somente A poderia criar E (Pra, H(M)).

1.

2. 3. 4.

5.

6. 7.

H deve ser aplicado a um bloco de dados de qualquer tamanho; H deve produzir uma sada de comprimento fixo; H (x) deve ser relativamente fcil de calcular; Para qualquer bloco de dados x, dve ser computacionalmente invivel encontrar y diferente de x, tal que H(y)= H(x); Para qualquer bloco de dados x, dve ser computacionalmente invivel encontrar x tal que H(x) = h; Deve ser computacionalmente invivel encontrar qualquer par (x,y) tal que H(x) = H(y).

1. 2.

Ataques por fora bruta; Ataques de aniversrio;

MD4; MD5; SHA 1; SNEFRU; RIPE-MD; HAVAL .

Funo de mo nica (dificuldade computacional de se inverter); Projetado por Ronald Rivest em 1990; MD4 (Message-Digest algorithm 4); Usa como entrada uma mensagem de comprimento arbitrrio e produz uma impresso digital de 128 bits; Aplicabilidade em assinaturas digitais onde gera-se uma sequncia a partir da aplicao do algoritmo na mensagem original;

A sequncia gerada ento submetida a criptografia de chave pblica (validao da autenticidade); Finalidade de ser rpido em mquinas de 32 bits; Por que utilizar o MD4 em assinaturas digitais?

o Proporcionar segurana das assinaturas; o Garantir originalidade do documento; o Promover agilidade na assinatura digital.

A entrada do MD4 uma mensagem de qualquer comprimento representada por b bits, onde b um inteiro positivo que varia de zero a infinito; A execuo do MD4 possibilita a obteno do digesto da mensagem atravs de um conjunto de operaes aplicadas aos b bits da mensagem (m0, m1, m2, ... , m(b1));

Passo1: Adio de bits


A mensagem esticada com a adio de bits at que atinja um comprimento congruente com 448 mdulo 512 (448, 960, 1472, ...); Esta adio deve ser de no mnimo 1 bit e no mximo 511 bits; O primeiro bit a ser adicionado justamente no final da mensagem um bit 1. Todos os demais bits serem adicionados de modo que chegue no comprimento necessrio so bits 0;

Passo 2: Incluir comprimento


Adiciona-se aos bits j obtidos no passo 1 (448 ou mltiplos do mesmo) os 64 bits menos significativos de b (mensagem original); Estes 64 bits so divididos em 2 words de 32 bits. O word menos significativo inserido primeiro (no final da sequncia do passo1) seguido do word mais significativo; Ao final deste passo 2, o comprimento da sequncia resultante ser 512 bits ou um de seus mltiplos; Tambm mltiplo de 16 words, pois 16x32bits=512bits;

Passo 3: Inicializao do buffer MD


Um buffer de 4 words utilizado para calcular o digesto da mensagem. Os registradores de 32 bits A,B,C e D so inicializados com os seguintes valores hexadecimais:

Passo 4: Processamento da mensagem em blocos de 16 words


Inicialmente so definidas trs funes auxiliares. Essas funes usam como entrada trs words (3x32=96 bits) para produzirem uma sada de word de 32 bits:

Cria-se variveis de trabalho (a=A, b=B, c=C, d=D) pois os valores iniciais de A, B, C e D sero utilizados posteriormente;

Passo 4: Processamento da mensagem em blocos de 16 words


Considere as seguintes regras para a aplicao das funes auxiliares:

Passo 4: Processamento da mensagem em blocos de 16 words


Considerando a constante T[i]=0, aplica-se a funo F para obter a primeira rodada:

Passo 4: Processamento da mensagem em blocos de 16 words


A funo G utilizada na segunda rodada com o valor de T[i]=5A82 7999 (raiz quadrada de 2):

Passo 4: Processamento da mensagem em blocos de 16 words


A funo H utilizada na terceira rodada com o valor de T[i]=6ED9 EBA1 (raiz quadrada de 3):

Passo 4: Processamento da mensagem em blocos de 16 words


Finalmente, os valores obtidos para a, b, c e d so somados com os valores originais de A, B, C e D:

Passo 5: Obteno do valor Hash


O digesto da mensagem obtido atravs da concatenao de A, B, C e D, comeando-se pelo byte mais significativo de A e terminando pelo menos significativo de D; Exemplo: Se a mensagem inicial for abc o valor de Hash obtido pelo MD4 ento: A448017AAF21D8525FC10AE87AA6729D
(32 caracteres com 4 bits cada => 32x4=128 bits)

Em 2004, pesquisadores chineses descobriram que podiam encontrar colises apenas com clculos feitos a mos (insegurana);

1. 2.

3. 4.

5.

Algoritmo de hash de 128 bits unidirecional Desenvolvido pela RSA Data Security - Ron Rivest Descrito na RFC 1321 Usado na verificao de integridade, logins, assinaturas digitais... Sucessor do MD4

Possui como entrada um fluxo de dados (mensagem). A mensage pode ter um nmero arbitrrio de bits, representado por b. Para obter o digesto da mensagem, seus bits, representados por m0, m1, ..., m{b-1}, onde b = nmero de bits da mensagem, so submetidos a diversas operaes.

Etapas ou passos do MD5:


1. 2. 3. 4. 5. Preparao do fluxo de dados Incluso do comprimento Inicializao do buffer MD Processamento da mensagem em blocos de 16 words (512 bits). A sada

Funciona da mesma maneira que o MD4. Adiciona-se mensagem os bits necessrios para que seu tamanho mais 64 bits seja divisvel por 512 (512 64 = 448). Esta adio deve ser de no mnimo 1 bit e no mximo 511 bits; O primeiro bit a ser adicionado justamente no final da mensagem um bit 1. Todos os demais bits serem adicionados de modo que chegue no comprimento necessrio so bits 0;

Adiciona-se aos bits obtidos no passo 1 (448 ou mltiplos do mesmo) os 64 bits menos significativos da mensagem original representada por b; O conjunto obtido processado em blocos de 512, sendo que cada bloco processado em quatro rodadas distintas.

Um buffer de quatro words usado para calcular o digesto da mensagem. Os registradores de 32 bits A, B, C e D so inicializados com os seguintes valores hexadecimais:

Definse-se quatro funes auxiliares. Cada uma delas usa trs words de 32 bits para produzir uma sa da tambm de 32 bits.

A funo F atua sobre cada um dos bits: se X ento Y seno Z. As funes G, H e I so semelhantes funo F quanto ao "paralela bit a bit" produzindo sadas de bits independentes e no induzidos se os mesmos tiverem estas caractersticas. A funo H apenas um "XOR" ou funo de "paridade" das suas entradas.

Cria-se variveis de trabalho (a=A, b=B, c=C, d=D) pois os valores iniciais de A, B, C e D sero utilizados posteriormente;
As etapas deste passo usam uma tabela de 64 elementos, T[1] a T[64], construda partir da funo seno. T[i] o nsimo elemento da tabela e igual parte inteira de abs(seno(i)) multiplicada por 4294967296, i sendo expresso em radianos.

Divide-se cada bloco de 512 bits em 16 subblocos de 32 bits. Os sub-blocos so designados por X[k].

Os valores obtidos para a, b, c e d so somados com os valores originais de A, B, C e D.

O digesto da mensagem produzido na sada a concatenao de A, B, C e D. Comea-se com o byte menos significativo de A e termina-se com o byte mais significativo de D.

Alguns exemplos de hashes MD5:

Como o MD5 faz apenas uma passagem sobre os dados, se dois prefixos com o mesmo hash forem construdos, um sufixo comum pode ser adicionado a ambos para tornar uma coliso mais provvel. Deste modo possvel que duas strings diferentes produzam o mesmo hash. O que no garante que a partir de uma senha criptografada especfica consiga-se a senha original, mas permite uma possibilidade de decifrar algumas senhas a partir de um conjunto grande de senhas criptografadas.

SHA
O Secure Hash Algorithm (SHA) foi desenvolvido pelo NIST ( National Institute of Standards ans Technology) dos EUA e publicado como um padro nacional para processaomento e informaes em 1993. O SHA-1 foi aprovado pelo governo dos EUA em 1995 para ser usado por todos os departamentos e agncias federais na autenticao de documentos digitais. Foi baseado na funo MD4; Existe outras variantes como: SHA-224, SHA-256, SHA-384, e SHA-512 por vezes chamadas de SHA-2.

Tabela Comparativa
SHA1 Tamanho do digesto Tamanho da mensagem Tamanho do bloco Tamanho da palavra N de etapas 160 <2(64) 512 32 80 SHA256 256 <2(64) 512 32 128 SHA384 384 SHA512 512

<2(128) <2(128) 1024 64 192 1024 64 256

SHASHA -1
O SHA-1 um padro usado para calcular representao condensada de uma mensagem ou arquivo de dados. Partindo de uma mensagem menor do que 2^64 bits, o SHA-1 produz uma sada de 160 bits chamada de digesto da mensagem. Seu algoritmo calculado em 3 etapas: 1. Etapa que consiste em ajustar o tamanho da mensagem em um valor mltiplo de 512 bits; 2. Nesta etapa a mensagem e fragmentada em 16 palavras de 32 bits; 3. Etapa que efetivamente gera o digesto da mensagem.

SHASHA -1
O objetivo deste ajuste transformar o comprimento da mensagem num mltiplo de 512 bits porque o clculo do digesto pelo SHA-1 processa sequencialmente blocos do referido tamanho. Exemplo:
Mensagem | a | b | c

ASCII (binrio) | 01100001 | 01100010 |01100011.

Como esta mensagem menor que 2^64 bits,ento deve-se acrescentar o bit 1no final da mensagem.

SHASHA -1
Ou seja, o primeiro passo transformar a mensagem ,

01100001

01100010

01100011

Em

01100001

01100010

01100011 1

SHASHA -1
Neste caso temos apenas um bloco de 25 bits, longe dos 512 necessrios. Para completar este nmero, aps o bit delimitador so acrescentados tantos bits zero quantos forem necessrios para alcanar 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 invs de adicionarmos 512 - 25 = 487 bits zero, acrescentaremos 512 - 64 - 25 = 423 bits zero. 61626380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

SHASHA -1
Os ltimos 64 bits sero adicionados levando o valor do comprimento da mensagem original, ou seja, 24 (o bit delimitador no contado). A representao binria do valor 24 0001 1000, e a representao hexadecimal do valor 24 ocupando 64 bits 00000000 00000018.

61626380 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000018

SHASHA -1
O SHA-1 usa uma sequncia de funes lgicas conhecidas por f0, f1, ..., f79. Cada uma destas funes atua sobre trs words de 32 bits (B, C e D) para produzirem apenas um word. Para estes trs words B, C e D, a funo 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).

SHASHA -1
A seguinte sequncia de constantes de 32 bits K(0), K(1), ... , K(79) usada. Os valores hexadecimais destas constantes so:

K = 5A827999 ( 0 <= t <= 19) Kt = 6ED9EBA1 (20 <= t <= 39) Kt = 8F1BBCDC (40 <= t <= 59) Kt = CA62C1D6 (60 <= t <= 79

SHASHA -1
O digesto calculado a partir da mensagem ajustada. Para realizar o clculo so necessrios dois buffers que possam armazenar temporariamente cinco words de 32 bits e uma sequncia de oitenta words de 32 bits. Os words do primeiro buffer so identificados por A, B, C, D e E. Os words do segundo buffer so identificados por H0, H1, H2, H3 e H4. Os words da sequncia de oitenta words so identificados por W0, W1, ..., W79.

SHASHA -1
Os cinco words do buffer H recebem os seguintes valores iniciais (expressos em hexadecimal):

H0 = 67452301 H1 = EFCDAB89 H2 = 98BADCFE H3 = 10325476 H4 = C3D2E1F0

Algoritmo
1. Divide-se Mi em 16 words W0, W1, ... , W15, onde W0 o word da esquerda. 2. Para t = 16 at 79 faa Wt = S1(Wt-3 XOR Wt-8 XOR Wt14 XOR Wt-16) 3. Faa A = H0, B = H1, C = H2, D = H3, E = H4 4. Para t = 0 at 79 faa TEMP = S5(A) + ft(B,C,D) + E + Wt + Kt; E = D; D = C; C = S30(B); B = A; A = TEMP 5. Faa H0 = H0 + A, H1 = H1 + B, H2 = H2 + C, H3 = H3 + D, H4 = H4 + E
Depois de processar todos os blocos, o digesto da mensagem ser constitudo pelos 160 bits de HO H1 H2 H3 H4.

Algoritmo

A t = 0: 0116FC33 t = 1: 8990536D t = 2: A1390F08 t = 3:CDD8E11B t = 4:CFD499DE

B C 67452301 7BF36AE2 0116FC33 59D148C0 8990536D C045BF0C A1390F08 626414DB CDD8E11B 284E43C2 ()

D E 98BADCFE 10325476 7BF36AE2 98BADCFE 59D148C0 7BF36AE2 C045BF0C 59D148C0 626414DB C045BF0C

t = 76: A079B7D9 63F7DAB7 t = 77: 860D21CC A079B7D9 t = 78: 5738D5E1 860D21CC t = 79: 42541B35 5738D5E1

D7B9DA25 C45E4FDB 3B6D0B79 D8FDF6AD D7B9DA25 C45E4FDB 681E6DF6 D8FDF6AD D7B9DA25 21834873 681E6DF6 D8FDF6AD.

Resultado
Depois de processado bloco, os valores de Hi so: H0 = 67452301 + 42541B35 = A9993E36 H1 = EFCDAB89 + 5738D5E1 = 4706816A H2 = 98BADCFE + 21834873 = BA3E2571 H3 = 10325476 + 681E6DF6 = 7850C26C H4 = C3D2E1F0 + D8FDF6AD = 9CD0D89D. Digesto= A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D

Aplicaes
O SHA-1 pode ser aplicado em e-mails, transferncias eletrnicas de fundos, distribuio de software, armazenamento de dados e outras aplicaes que requeiram garantia de integridade de dados e autenticao da origem dos dados. O SHA-1 tambm pode ser utilizado sempre que for necessrio gerar uma verso condensada de uma mensagem.