160 likes | 282 Views
Twofish. Leonardo H. Furlan. Roteiro. Introdução Algoritmo Performance Criptoanálise Conclusões. Introdução. Um dos 5 finalistas do AES Baseado no Blowfish Muito lento para AES Utilização considerável de memória (smart cards)
E N D
Twofish Leonardo H. Furlan
Roteiro • Introdução • Algoritmo • Performance • Criptoanálise • Conclusões
Introdução • Um dos 5 finalistas do AES • Baseado no Blowfish • Muito lento para AES • Utilização considerável de memória (smart cards) • Criado por: Bruce Schneier (Counterpane Systems), John Kelsey (Counterpane Systems), Doug Whiting (HI/fn Inc.),David Wagner (University of California Berkley), Chris Hall (Counterpane Systems), Niels Ferguson (Counterpane Systems)
Algoritmo • Cifra em blocos de 128 bits • Chave de tamanho variável • Tamanhos definidos: 128, 192 ou 256 bits • Flexível • Eficiente em HW ou SW • Projetado de forma a não conter operações que poderiam o tornar lento • Implementável em HW com menos de 20.000 portas lógicas
Algoritmo • Rede de Feistel de 16 rodadas • Função bijetora F • A cada rodada entradas e saídas da rodada anterior são trocadas • 4 S-boxes • Geradas dinamicamente a partir da chave • Matriz MDS • Saída das S-boxes são multiplicadas pela matriz MDS
Algoritmo • Whitening • XOR da chave com os dados antes da primeira rodada e depois da última • Key Schedule • Gera as sub-chaves utilizadas em cada rodada e nas S-boxes • Existem diferentes tipos que podem ser usados adequar a implementação • Chaves pré-computadas: + memória – processamento • Chaves computadas “on the fly”: - memória + processamento
Algoritmo • PHT (Pseudo-Hadamard Transforms) • Operação de mix que roda rápido em software • Usada para difusão
Criptoanálise • Autores: 1000 homens-hora • Twofish de 5 rodadas • Pode ser quebrado com 2^22.5 pares de texto plano e 2^51 computações • Ataque “Impossible-differential” pode ser usado para quebrar 6 rodadas • Não pode ser extendido para mais rodadas
Criptoanálise • Knudsen • Possível distinguir entre permutação aleatória e Twofish reduzido (4 rodadas) • Murphy • Características para as 6 primeiras rodadas
Conclusões • Algoritmo com 16 rodadas é seguro • Eficiente • Boa performance em uma grande variedade de plataformas • Flexível • Pode ser implementado de diversas formas • Pode ser otimizado para reduzir • Uso de memória • Processamento • Número de portas lógica • Aberto
Referências • Schneier, B. , Kelsey, J. , Whiting, D.,Wagner, D., Hall, C., Ferguson, N. Twofish: A 128-Bit Block Cipher. Disponível em http://www.schneier.com/paper-twofish-paper.pdf. • Schneier, B., Whiting, D. A Performance Comparison of the Five AES Finalists Disponível em http://www.schneier.com/paper-aes-comparison.pdf. • Murphy, Sean, Robshaw, M.J.B. Diferential Cryptanalysis, Key-dependent, S-boxes, and Twofish. Disponível em http://csrc.nist.gov/CryptoToolkit/aes/round2/comments/20000515-smurphy.pdf. • Knudsen, Lars R. Trawling Twofish (revisited)Disponível em http://csrc.nist.gov/CryptoToolkit/aes/round2/comments/20000515-lknudsen-2.pdf.
Referências • Ferguson, Niels, Kelsey, John, Schneier, Bruce, Whiting, Doug, A Twofish Retreat: Related-Key Attacks Against Reduced-Round Twofish Disponível em http://csrc.nist.gov/CryptoToolkit/aes/round2/comments/20000501-nferguson-1.pdf. • Ferguson, Niels. Impossible differentials in Twofish Disponível em http://csrc.nist.gov/CryptoToolkit/aes/round2/comments/20000501-nferguson-2.pdf.