Dois peixes - Twofish
Em geral | |
---|---|
Designers | Bruce Schneier |
Publicado pela primeira vez | 1998 |
Derivado de | Blowfish , SAFER , Square |
Relacionado a | Threefish |
Certificação | Finalista AES |
Detalhe de cifra | |
Tamanhos de chave | 128, 192 ou 256 bits |
Tamanhos de bloco | 128 bits |
Estrutura | Rede Feistel |
Rodadas | 16 |
Melhor criptoanálise pública | |
A criptoanálise diferencial truncada requer aproximadamente 2 51 textos simples escolhidos. Ataque diferencial impossível que quebra 6 rodadas de 16 da versão da chave de 256 bits usando 2 256 etapas. |
Na criptografia , Twofish é uma cifra de bloco de chave simétrica com um tamanho de bloco de 128 bits e tamanhos de chave de até 256 bits. Foi um dos cinco finalistas do concurso Advanced Encryption Standard , mas não foi selecionado para padronização. Twofish está relacionado à cifra de bloco anterior Blowfish .
As características distintivas do Twofish são o uso de caixas S dependentes de chave pré-computadas e uma programação de chaves relativamente complexa . Metade de uma chave de n bits é usada como a chave de criptografia real e a outra metade da chave de n bits é usada para modificar o algoritmo de criptografia (S-boxes dependentes de chave). O Twofish pega emprestado alguns elementos de outros designs; por exemplo, a transformação pseudo-Hadamard (PHT) da família SAFER de cifras. Twofish tem uma estrutura Feistel como DES . Twofish também emprega uma matriz separável por distância máxima .
Quando foi lançado em 1998, o Twofish era ligeiramente mais lento do que o Rijndael (o algoritmo escolhido para o Advanced Encryption Standard ) para chaves de 128 bits , mas um pouco mais rápido para chaves de 256 bits. Desde 2008, virtualmente todos os processadores AMD e Intel incluem aceleração de hardware do algoritmo Rijndael por meio do conjunto de instruções AES ; As implementações de Rijndael que usam o conjunto de instruções são agora ordens de magnitude mais rápidas do que as implementações de Twofish (de software).
Twofish foi projetado por Bruce Schneier , John Kelsey , Doug Whiting , David Wagner , Chris Hall e Niels Ferguson : a "equipe estendida de Twofish" que se reuniu para realizar mais criptoanálises de Twofish. Outros participantes do concurso AES incluíram Stefan Lucks , Tadayoshi Kohno e Mike Stay .
A cifra Twofish não foi patenteada e a implementação de referência foi colocada em domínio público . Como resultado, o algoritmo Twofish é gratuito para qualquer pessoa usar sem quaisquer restrições. É uma das poucas cifras incluídas no padrão OpenPGP (RFC 4880). No entanto, Twofish tem visto menos uso do que Blowfish , que está disponível há mais tempo.
atuação
Embora sendo projetado, o desempenho sempre foi um fator importante no Twofish. Twofish foi projetado para permitir várias camadas de compensações de desempenho, dependendo da importância da velocidade de criptografia, uso de memória, contagem de portas de hardware, configuração de chave e outros parâmetros. Isso permite um algoritmo altamente flexível, que pode ser implementado em uma variedade de aplicativos.
Existem várias compensações de espaço-tempo que podem ser feitas, tanto no software quanto no hardware do Twofish. Um exemplo de tal troca seria a pré-computação de subchaves redondas ou s-box, que podem levar a aumentos de velocidade de um fator de dois ou mais. Eles vêm, no entanto, ao custo de mais RAM necessária para armazená-los.
As estimativas na tabela abaixo são todas baseadas na tecnologia CMOS de 0,35 μm existente .
Contagens de portão | blocos h | Relógios por bloco |
Níveis de pipeline |
Velocidade do relógio | Taxa de transferência (Mbit / s) |
Relógios de inicialização |
Comentários |
---|---|---|---|---|---|---|---|
14000 | 1 | 64 | 1 | 40 MHz | 80 | 4 | subchaves na hora |
19000 | 1 | 32 | 1 | 40 MHz | 160 | 40 | |
23000 | 2 | 16 | 1 | 40 Mhz | 320 | 20 | |
26.000 | 2 | 32 | 2 | 80 MHz | 640 | 20 | |
28000 | 2 | 48 | 3 | 120 MHz | 960 | 20 | |
30000 | 2 | 64 | 4 | 150 MHz | 1200 | 20 | |
80000 | 2 | 16 | 1 | 80 MHz | 640 | 300 | RAMs S-box |
Criptanálise
Em 1999, Niels Ferguson publicou um ataque diferencial impossível que quebra 6 rodadas de 16 da versão da chave de 256 bits usando 2 256 passos.
Em 2000, a melhor criptoanálise publicada da cifra de bloco Twofish é uma criptoanálise diferencial truncada da versão completa de 16 rodadas. O artigo afirma que a probabilidade de diferenciais truncados é 2 −57,3 por bloco e que serão necessários cerca de 2 51 textos simples escolhidos (32 petabytes de dados) para encontrar um bom par de diferenciais truncados.
Bruce Schneier respondeu em uma entrada de blog de 2005 que este artigo não apresentava um ataque criptanalítico completo, mas apenas algumas características diferenciais hipotéticas: "Mas mesmo de uma perspectiva teórica, Twofish não está nem remotamente quebrado. Não houve extensões para esses resultados desde que foram publicados em 2000. "
Veja também
Referências
Artigos
-
Bruce Schneier; John Kelsey; Doug Whiting; David Wagner; Chris Hall; Niels Ferguson (15/06/1998). "The Twofish Encryption Algorithm" ( PDF / PostScript ) . Obtido em 2014-01-14 . Citar diário requer
|journal=
( ajuda ) - Bruce Schneier; John Kelsey; Doug Whiting; David Wagner; Chris Hall; Niels Ferguson (22/03/1999). O algoritmo de criptografia Twofish: uma cifra de bloco de 128 bits . Cidade de Nova York : John Wiley & Sons . ISBN 0-471-35381-7.
links externos
- Página da web do Twofish, com especificações completas, código-fonte gratuito e outros recursos do Twofish por Bruce Schneier
- Cifras de 256 bits - implementação de referência do TWOFISH e código derivado
- Produtos que usam Twofish por Bruce Schneier
- Melhor algoritmo: Rijndael ou TwoFish? por sci.crypt
- Nomenclatura de algoritmo criptográfico padrão : Twofish