CoderTools

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.

Comprimento da chave Serpent: 128/192/256 bits. Blocos de 128 bits. Maior margem de segurança entre os finalistas AES.
Opções de formato

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

Menu Rápido

Nenhuma ferramenta recente