Gbitten

segunda-feira, maio 29, 2006

 

Meet-in-the-middle

Meet-in-the-middle é um ataque a sistemas criptográficos que permite reduzir a robustez de sistema que utiliza um algorítmo duas vezes, como por exemplo o Double DES.

Double DES Double DES

Meet-in-the-middle tem um princípio simples, porem depende de muito recurso de memória. Imagine o seguinte mecanismo de criptografia:

cryptotext = encripta(y,encripta(x,plaintext))

e consequentemente:

plaintext = decripta(x,decripta(y,cryptotext))

Sendo que as chaves "x" e "y" tem 64 bits cada.

Para realizar o meet-in-the-middle, o agressor precisa conhecer um par "cryptotext" e "plaintext" válido para as chaves x e y (known-plaintext attack). Então ele deve:

1) Gerar valores M para todas as combinações de chaves possíveis (x1, x2, x3, ...):

M1 = encripta(x1,plaintext)
M2 = encripta(x2,plaintext)
M3 = encripta(x3,plaintext)
...

São 264 chaves possíveis, portanto serão 264 valores de M. Todos os valores M e suas chaves correspondentes devem ser armazenados em uma tabela hash (daí a necessidade de muita memória). O esforço realizado neste passo é de 264 operações.

2) Gerar valores N para todas as combinações de chaves possíveis (y1, y2, y3, ...).

N1 = decripta(y1,cryptotext)
N2 = decripta(y2,cryptotext)
N3 = decripta(y3,cryptotext)
...

São 264 chaves possíveis, portanto serão 264 valores de N. A cada valor N calculado, deve-se buscar o um valor igual de M na tabela hash gerada no passo 1. Quando os valores de N e M forem iguais se encontrarão os valores correspondentes das chaves x e y. O esforço realizado neste passo foi de 264 operações.

O esforço total para quebrar as chaves foi de 264 + 264 = 265. Ou seja, foi muito menor que quebrar um algorítmo de 128 bits, na qual o esforço é da ordem de 2128.

Marcadores:






<< Página inicial

Arquivos

Janeiro 2000   Fevereiro 2000   Março 2000   Julho 2005   Agosto 2005   Setembro 2005   Outubro 2005   Novembro 2005   Dezembro 2005   Janeiro 2006   Março 2006   Abril 2006   Maio 2006   Junho 2006   Julho 2006   Agosto 2006   Setembro 2006   Outubro 2006   Novembro 2006   Dezembro 2006   Janeiro 2007   Fevereiro 2007   Abril 2007   Maio 2007   Junho 2007   Julho 2007   Agosto 2007   Setembro 2007   Outubro 2007   Novembro 2007   Janeiro 2008   Fevereiro 2008   Março 2008   Junho 2008   Setembro 2008   Novembro 2008   Dezembro 2008   Junho 2009   Julho 2009   Agosto 2009   Setembro 2009   Outubro 2009   Dezembro 2009   Fevereiro 2010  

This page is powered by Blogger. Isn't yours?

Assinar Postagens [Atom]