13.04.2013 Views

Capítulos 5,6 - Departamento de Ciência da Computação

Capítulos 5,6 - Departamento de Ciência da Computação

Capítulos 5,6 - Departamento de Ciência da Computação

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Inicialização e análise do Blowfish -<br />

Criptografia e Segurança na Informática<br />

• Algoritmo não patenteado, <strong>de</strong> uso inteiramente livre (o autor acredita na<br />

criptografia como patrimônio intelectual coletivo <strong>da</strong> ciência).<br />

• As subchaves e S-boxes são <strong>de</strong>riva<strong>da</strong>s na seguinte inicialização:<br />

1. Os vetores <strong>de</strong> subchaves e <strong>de</strong>pois os <strong>da</strong>s S-boxes são carregados, na<br />

or<strong>de</strong>m em que in<strong>de</strong>xados, com o XOR bit a bit <strong>da</strong> representação<br />

binária do número π e <strong>da</strong> chave repeti<strong>da</strong>mente concatena<strong>da</strong>.<br />

2. A partir <strong>de</strong> um bloco <strong>de</strong> zeros na entra<strong>da</strong>, o algoritmo é iterado com o<br />

criptograma, substituindo sucessivas subchaves ou blocos <strong>de</strong> 8 bytes<br />

<strong>da</strong>s S-boxes e realimentando a entra<strong>da</strong> (512 iterações).<br />

• Chaves fracas (que geram S-boxes duplica<strong>da</strong>s) po<strong>de</strong>m ser cria<strong>da</strong>s, com<br />

probabili<strong>da</strong><strong>de</strong> <strong>de</strong> 2 -14 . Estas chaves não po<strong>de</strong>m ser i<strong>de</strong>ntifica<strong>da</strong>s antes<br />

<strong>da</strong> expansão inicializadora, mas até o momento não se conhece forma<br />

<strong>de</strong> explorá-las com técnicas <strong>de</strong> análise diferencial e linear.<br />

• O nº <strong>de</strong> mensagens escolhi<strong>da</strong>s necessárias para este ataque é <strong>da</strong> or<strong>de</strong>m <strong>de</strong><br />

2 8r+1 on<strong>de</strong> r = nº <strong>de</strong> ro<strong>da</strong><strong>da</strong>s <strong>da</strong> implementação. (2 4r+1 com chaves fracas)<br />

• Em implementações otimiza<strong>da</strong>s para processadores <strong>de</strong> 32 bits que<br />

Pedro Rezen<strong>de</strong> © 1998-2002<br />

Inicialização<br />

VI = 0<br />

V<br />

VI = π XOR k k k<br />

Blowfish<br />

Subchaves | S-boxes<br />

-Atribuição com<br />

pós incremento<br />

carregam os vetores em cache, a encriptação <strong>de</strong> ca<strong>da</strong> bloco po<strong>de</strong> ser feita<br />

em 26 ciclos <strong>de</strong> clock do processador, usando 5K <strong>de</strong> memória RAM<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!