CoderTools

Ferramenta de Criptografia/Descriptografia Blowfish

Cifra de bloco simétrica rápida projetada por Bruce Schneier

⚠️ Aviso de segurança

O tamanho de bloco de 64 bits do Blowfish pode ser vulnerável a ataques de aniversário para grandes volumes de dados. Para segurança máxima, considere usar AES-256 para novos projetos.

Comprimento da chave Blowfish: 4-56 bytes (32-448 bits). Recomendado: 16 bytes (128 bits) ou mais
Opções de formato

Sobre a criptografia Blowfish

Blowfish é uma cifra simétrica de 64 bits projetada por Bruce Schneier em 1993, publicada como alternativa rápida e sem patente ao DES. Sua estrutura Feistel de 16 rodadas usa chaves variáveis de 32 a 448 bits. O programa de chaves gera 18 entradas P-array e quatro S-boxes de 256 entradas (~4 KB) cifrando os dígitos hexadecimais de π. Foi o cifrador padrão do OpenVPN (modo BF-CBC) até a versão 2.4.0 (2017), substituído por AES-256-GCM.

A configuração de chave Blowfish é intencionalmente lenta (521 iterações próprias), tornando buscas por força bruta caras. bcrypt explora isso com Eksblowfish para hashing com fator de custo 4-31. A limitação principal é o bloco de 64 bits: Sweet32 (CVE-2016-2183, 2016) demonstrou que ~32 GB sob a mesma chave CBC cria colisões de bloco estatisticamente exploráveis.

Principais características

  • Chave variável: 32 a 448 bits, mesmo Feistel 16 rodadas em todo o intervalo
  • Subchaves derivadas de π: inicialização transparente sem backdoors
  • Alto desempenho em hardware 32 bits sem AES-NI
  • Origem do bcrypt: Eksblowfish (OpenBSD 1999) deriva da geração lenta de subchaves Blowfish

Modos de criptografia

  • CBC: CBC Blowfish — blocos 64 bits XOR com cifrado anterior. Limite Sweet32: após ~32 GB sob a mesma chave CBC, colisões exploráveis. Rotação de chave obrigatória antes desse limite.
  • ECB: ECB Blowfish — cada bloco 8 bytes processado independentemente. Blocos idênticos → cifrados idênticos. Apenas para operações de bloco único.
  • CFB: CFB Blowfish — fluxo auto-sincronizante com propagação de erros. Mesma restrição Sweet32 de 32 GB por chave que CBC.
  • OFB: OFB Blowfish — fluxo de chave determinístico por re-cifragem iterativa. Sem propagação de erros, mas limite de ciclo de 2³² blocos.

Comparação de algoritmos

Algoritmo Comprimento da chave Tamanho do bloco Segurança Velocidade
Blowfish 32-448 bits 64 bits Boa Rápida
AES 128/192/256 bits 128 bits Excelente Rápida
DES 56 bits 64 bits Fraca Rápida
3DES 112/168 bits 64 bits Média Lenta

Considerações de segurança

  • Sweet32 (CVE-2016-2183, 2016): após ~32 GB em CBC mesma chave, colisões de bloco estatisticamente exploráveis. Rotação de chave obrigatória antes de 2³² blocos.
  • OpenVPN 2.4.0 (2017) substituiu BF-CBC por AES-256-GCM após Sweet32. Conexões BF-CBC agora geram avisos de depreciação.
  • Nenhum ataque algorítmico nas 16 rodadas completas do Blowfish. Mais de 30 anos de análise pública sem ruptura criptográfica além do Sweet32.
  • Usar AES-128-GCM ou AES-256-GCM para novos projetos. Blowfish para descriptografia de dados BF-CBC herdados e educação.

Casos de uso

  • bcrypt: Eksblowfish usa a lentidão Blowfish para hashing com fator de custo configurável (4-31). Base para entender o modelo de segurança bcrypt
  • Descriptografia de arquivos OpenVPN: tráfego BF-CBC pré-2017 requer Blowfish para descriptografar e migrar para AES-256-GCM
  • Sistemas embarcados de baixo recurso: footprint pequeno, 32 bits otimizado, sem AES-NI. Volumes < 32 GB por chave necessários
  • Educação criptográfica: estrutura π, Feistel, S-boxes e histórico 30 anos de ataques para ensinar trade-offs de design simétrico

Referências

Menu Rápido

Nenhuma ferramenta recente