serpent-1 o serpent-0 refinado paulo estima mello ppgc – instituto de informática
TRANSCRIPT
Serpent-1
O Serpent-0 refinado
Paulo Estima Mello
PPGC – Instituto de Informática
Perspectiva história
1998: Início do concurso para escolha do “Advanced Encryption Standard”
1999: Definidos os finalistas do AES contest: Serpent, Rijndael, Mars, RC6 e Twofish
2000: AES escolhido: Rijndael
O Serpent
Dados de entrada– Tamanho da chave: 128, 192 e 256 bits
Padding diferenciado para chaves pequenas (< 256)
– Tamanho do bloco: 128 bits– Rodadas: 32
Em tese 16 são suficientes
O Serpent
Operações– Foram escolhidas operações consolidadas (ditas
clássicas) supostamente confiáveis. XORs Tabelas de substituição (S-boxes) Tranformação linear Escalonamento de chaves
O Serpent
Funcionamento– Sobre um bloco “claro” é aplicada uma
permutação inicial;– Após ocorrem 32 rodadas (vemos em seguida)– A última operação aplicada é uma permutação
final
O Serpent
As rodadas– Passo 1: Transformação da chave– Passo 2: Aplicação das S-boxes– Passo 3: Aplicação da transformação linear
Na última rodada não é aplicada.– No seu lugar é feito um XOR com a 33ª chave de rodada
O Serpent
Escalonamento de chaves– São necessárias
132 palavras de 32 bits
O Serpent
Aplicação das S-boxes– São 8 S-boxes ao todo
Transformam 4 bits de entrada produzindo 4 bits de saída
– Cada S-box é utilizada quatro vezes– Operação bit-slice
Cada S-box é replicada para transformar todo bloco
O Serpent
Propriedades das S-boxes
– Um bit de diferença na entrada produz mais de um bit de diferença na saída
– Existe uma chance pequena de um bit de saída estar relacionado linearmente com um bit de entrada
– Um bit de entrada afeta no máximo 3 bits de saída
O Serpent
Aplicação da transformação linear– Rotações à esquerda (<<<)– XORs– Shift-lefts (<<)
O Serpent
Não baseado em redes Feistel– Na época do AES contest não estavam na moda
Não há ataques reais registrados– Tanto ataques lineares quanto diferenciais estão
relacionados com as S-boxes utilizadas As S-boxes propostas foram baseadas nas S-boxes do
DES com algumas modificações
Por que não venceu?
O Serpent é possivelmente mais seguro que o Rjindael
Performance tanto em hardware quanto em software pior (muito)
O AES assumiu que a segurança do Rjindael era suficiente e o desempenho satisfatório
Por que Serpent-0 e Serpent-1?
A primeira versão era um “beta” release que utilizava as S-boxes do DES, esta chamava-se Serpent-0
A última versão teve suas S-boxes aprimoradas (reduzindo a chance de ataques lineares e diferenciais) e se tornou o Serpent-1
Conclusão
Se você não tem pressa...– Use Serpent.
Bibliografia
Anderson, R.; Biham, E.; Knudsen, L. Serpent: A proposal for the Advanced Encryption System. Agosto, 1999.
Anderson, R.; Biham, E.; Knudsen, L. Serpent: A flexible block cipher with maximum assurance. Agosto, 1998.
Comparison: Serpent/AES-Rijndael. http://www.scribd.com/word/download/4522?extension=ppt. Acessado em 27/04/2007.