Ferramenta de criptografia/descriptografia Serpent
Finalista AES - cifra de bloco ultra-segura com chaves de 128/192/256 bits
⚠️ Aviso de desempenho
Serpent é mais lento que AES devido às suas 32 rodadas vs 10-14 do AES. Para aplicações críticas em desempenho, considere AES. Escolha Serpent quando a margem de segurança máxima é sua prioridade.
Sobre a criptografia Serpent
Serpent é uma cifra simétrica projetada por Ross Anderson (Cambridge), Eli Biham (Technion) e Lars Knudsen (DTU), submetida ao concurso AES NIST em 1998. Chegou ao segundo lugar — após Rijndael (AES) — com as melhores avaliações de segurança entre os cinco finalistas. Sua rede SP processa blocos de 128 bits em 32 rodadas completas, o triplo do AES-128.
Serpent aplica 8 S-boxes diferentes de 4 a 4 bits em rotação em 32 rodadas, cada uma aparecendo exatamente quatro vezes. Todas selecionadas por busca exaustiva para resistência ótima a criptoanálise diferencial e linear. Implementação de referência usa bitslice: cada posição de bit de 32 blocos paralelos ocupa um registrador CPU de 32 bits.
O comitê NIST notou máxima confiança de segurança no Serpent, mas o desempenho superior do Rijndael foi decisivo. Após a competição, Schneier e Kelsey concluíram: “Se a segurança fosse o único critério, o Serpent seria a escolha clara.”
Características principais
- SP-network 32 rodadas: triplo de AES-128, duplo de AES-256. Melhor ataque conhecido: 12/32 rodadas
- S-boxes bitslice: 128 bits processados com 32 operações de registrador — sem lookup tables, imune a timing attacks de cache
- Oito S-boxes 4→4 bits otimizadas por busca exaustiva de resistência diferencial e linear
- Calendário de chaves: 132 subchaves de 4 bits derivadas por feedback linear
- 128, 192 e 256 bits suportados com a mesma estrutura de 32 rodadas
Modos de criptografia
- CBC: CBC Serpent — bloco 128 bits XOR com cifrado anterior. Limiar Sweet32 em 2⁶⁴ blocos — praticamente inacessível.
- ECB: ECB Serpent — cada bloco de 16 bytes processado independentemente. Apenas operações de bloco único.
- CFB: CFB Serpent — fluxo auto-sincronizante sem restrição Sweet32. Apto para streaming.
- OFB: OFB Serpent — fluxo de chave determinístico, período 2¹²⁸ blocos, sem propagação de erros.
Comparação de algoritmos
| Algoritmo | Comprimento da chave | Tamanho do bloco | Rodadas | Segurança | Velocidade |
|---|---|---|---|---|---|
| Serpent | 128/192/256 bits | 128 bits | 32 | Excelente | Lento |
| AES | 128/192/256 bits | 128 bits | 10-14 | Excelente | Rápido |
| Twofish | 128/192/256 bits | 128 bits | 16 | Excelente | Rápido |
Contexto do concurso AES
Serpent recebeu a maior classificação de segurança na avaliação final AES NIST (1999) entre os cinco finalistas.
Rijndael foi selecionado como AES por desempenho: 2-3x superior em hardware de propósito geral.
Kelsey e Schneier confirmaram que Serpent oferecia margem de segurança notavelmente maior sem fraquezas arquiteturais.
Considerações de segurança
- Sem ataque nas 32 rodadas completas. Melhor ataque: 12/32 rodadas (boomerang 2011), complexidade 2¹²².
- S-boxes verificadas exaustivamente em criptoanálise diferencial e linear. Documentação NIST completa.
- Implementação bitslice sem lookup tables → tempo constante → resistente a ataques de timing de cache.
- Serpent-256 para arquivos de longa duração com máxima margem. AES-256-GCM para rede.
Casos de uso
- Criptografia de arquivos de longa duração com Serpent-256
- Ambientes resistentes a timing attacks: sistemas embarcados sem AES-NI
- Containers multi-cifra (cascade VeraCrypt): Serpent+AES+Twofish
- Referência acadêmica: documentação completa, 25+ anos sem ruptura
Referências
- Documentação do concurso AES do NIST
- Wikipédia - Serpent (cifra)
- Artigo original do Serpent por Anderson, Biham e Knudsen
Ferramentas Relacionadas
Criptografia/Descriptografia AES
Criptografe e descriptografe texto com segurança usando o algoritmo AES
Criptografia/Descriptografia Twofish
Finalista AES, cifra simétrica com blocos de 128 bits e chaves de 128/192/256 bits, projetada por Bruce Schneier
Criptografia/Descriptografia Blowfish
Cifra de bloco simétrica rápida projetada por Bruce Schneier, com comprimento de chave variável (32-448 bits)
Criptografia/Descriptografia RSA
Use criptografia assimétrica RSA para criptografia de chave pública, descriptografia de chave privada, assinatura digital e verificação