Funes Criptogrficas de Hash Funes Hash Uma funo

  • Slides: 14
Download presentation
Funções Criptográficas de Hash

Funções Criptográficas de Hash

Funções Hash �Uma função que aceita uma mensagem M, de comprimento variável como entrada,

Funções Hash �Uma função que aceita uma mensagem M, de comprimento variável como entrada, e produz uma saída de comprimento fixo.

�Esta é uma função apenas da mensagem M de entrada. �O resultado de uma

�Esta é uma função apenas da mensagem M de entrada. �O resultado de uma função hash é também conhecido como resumo de mensagem ou valor hash.

Funções Hash �O código hash é uma função de todos os bits da mensagem

Funções Hash �O código hash é uma função de todos os bits da mensagem e oferece a capacidade da detecção de erros. �É usada para verificar integridade de arquivos transmitidos.

�Uma mudança em qualquer bit na mensagem, resulta em uma mudança no resultado da

�Uma mudança em qualquer bit na mensagem, resulta em uma mudança no resultado da função hash. �Ver figura 11. 5 do livro de Stallings ( pag. 234 e 235).

Funções Hash �A finalidade de uma função hash é produzir uma “impressão digital” (fingerprint)

Funções Hash �A finalidade de uma função hash é produzir uma “impressão digital” (fingerprint) de um arquivo, uma mensagem ou blocos de dados.

Funções Hash �Funções hash são úteis para autenticação de mensagens e verificação da integridade

Funções Hash �Funções hash são úteis para autenticação de mensagens e verificação da integridade de mensagens. �Com essas funções, pode-se usar o método clássico para se produzir assinaturas digitais.

Funções Hash �Para ser útil para autenticação de mensagens, uma função hash precisa ter

Funções Hash �Para ser útil para autenticação de mensagens, uma função hash precisa ter as seguintes propriedades: H pode ser aplicada a um bloco de qualquer tamanho. H produz uma saída de comprimento fixo. H(x) é relativamente fácil de calcular para qualquer x, tornando as implementações de HW e SW práticas.

Funções Hash �Para qualquer valor h dado, é computacionalmente inviável encontrar x tal que

Funções Hash �Para qualquer valor h dado, é computacionalmente inviável encontrar x tal que H(x) = h. �Ou seja, H é uma função que não tem a sua função inversa H-1. �Isso é conhecido como a propriedade unidirecional da função hash.

Funções Hash �Para qualquer bloco de dado x, é computacionalmente inviável encontrar outro bloco

Funções Hash �Para qualquer bloco de dado x, é computacionalmente inviável encontrar outro bloco de dado y diferente de x, tal que H(y) = H(x). �Garante que para uma dada mensagem, não poderá ser encontrada uma outra mensagem alternativa que gere um mesmo valor de hash. �Isso é conhecido como resistência fraca a colisões.

Funções Hash �É computacionalmente inviável encontrar qualquer par (x, y) tal que H(x) =

Funções Hash �É computacionalmente inviável encontrar qualquer par (x, y) tal que H(x) = H(y). �Refere-se a resistência da função hash a um tipo de ataque conhecido como o “ataque do aniversário”. �Isso é conhecido como resistência forte a colisões.

Ataque do Aniversário �Suponha que um código de hash de 64 bits seja seguro.

Ataque do Aniversário �Suponha que um código de hash de 64 bits seja seguro. �Se um código hash criptografado H(M) for transmitido concatenado com a mensagem não criptografada correspondente M, como em (Fig. 11. 5 b ou c).

Ataque do Aniversário �Então, um oponente precisaria encontrar M´ tal que H(M´)=H(M), para substituir

Ataque do Aniversário �Então, um oponente precisaria encontrar M´ tal que H(M´)=H(M), para substituir M por M´ e enganar o receptor.

Família de Funções Hash �MD 5 (Message Digest 5) �SHA-1 (Secure Hash Algorithm 1)

Família de Funções Hash �MD 5 (Message Digest 5) �SHA-1 (Secure Hash Algorithm 1) �. . . �SHA-256 (Secure Hash Algorithm 256)