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
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