Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

15
Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática

Transcript of Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

Page 1: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

Serpent-1

O Serpent-0 refinado

Paulo Estima Mello

PPGC – Instituto de Informática

Page 2: 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

Page 3: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 4: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 5: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 6: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 7: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

O Serpent

Escalonamento de chaves– São necessárias

132 palavras de 32 bits

Page 8: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 9: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 10: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

O Serpent

Aplicação da transformação linear– Rotações à esquerda (<<<)– XORs– Shift-lefts (<<)

Page 11: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 12: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 13: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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

Page 14: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

Conclusão

Se você não tem pressa...– Use Serpent.

Page 15: Serpent-1 O Serpent-0 refinado Paulo Estima Mello PPGC – Instituto de Informática.

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.