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.
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
Ferramentas Relacionadas
Criptografia/Descriptografia AES
Criptografe e descriptografe texto com segurança usando o algoritmo AES
Criptografia/Descriptografia DES/3DES
Criptografe e descriptografe usando algoritmos DES e 3DES com múltiplos modos e opções de preenchimento
Criptografia/Descriptografia RSA
Use criptografia assimétrica RSA para criptografia de chave pública, descriptografia de chave privada, assinatura digital e verificação