Blowfish Projetista Bruce Schneier Algoritmo criptogrfico de chave simtrica Melhor desempenho que DES e IDEA Primeiramente publicado em 1994 Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish) Publicao Fast Software Encryption, Cambridge Security Workshop Proceedings (December 1993), Springer-Verlag, 1994, pp. 191-204. Principais Caractersticas Estrutura Rede de Feistel 16 rounds Cifragem de Bloco Tamanho 64 bits Tamanho da chave 32 at 448 bits (passos de 8 bits) Caixas de substituio dependente da chave Algoritmo de agendamento de chaves complexo Decriptao identica encriptao exceto pela ordem das chaves da rodada Mesma abordagem do Data Encription Standard Consiste em duas partes Expanso de Chave Converte uma chave de at 448 bits em um P array contendo 18 sub-chaves e 4 caixas de substituio com 256 entradas, representando um processamento de 4168 bytes Encriptao de Dados Utilizando uma funo simples iterada 16 vezes Modos de Funcionamento (Alguns...) ECB (Electronic Code Book) Cada bloco criptografado independentemente Blocos de texto idnticos so criptografados para o mesmo bloco cifrado Reordenao do texto plano resulta na mesma reordenao dos blocos cifrados Erros de encriptao apenas afetam o bloco onde o mesmo ocorreu CBC (Cipher Block Chaining) (Bloco cifrado no passo anterior) XOR (Bloco de texto plano do passo atual) (Bloco de texto a ser cifrado no passo atual) Blowfish Rede de Feistel SHAPE MERGEFORMAT Blowfish Algoritmo Principal SHAPE MERGEFORMAT Blowfish Algoritmo Principal Sub-chaves Array com 18 sub-chaves Sub-chave Pi utilizada na i-sima rodada Sub-chaves P17 e P18 utilizadas no ltimo passo, numa operao de XOR com uma das metades xR e xL Blowfish Round Function SHAPE MERGEFORMAT Inconsistncia (de acordo com o cdigo) ((S1a S2b) XOR S3c) S4d Blowfish Round Function Caixas de substituio 4 caixas Possuem 256 entradas cada Recebem 8 bits como entrada e produzem 32 bits de sada Blowfish Key Schedule SHAPE MERGEFORMAT