# Twofish

En criptografia, Twofish és un xifratge per blocs de clau simètrica amb una longitud de bloc de 128 bits i mida de clau de fins a 256 bits. Era un dels cinc finalistes de la competició DES, però no va ser seleccionat per a l'estandardització. Twofish es relaciona amb el Blowfish de xifratge per bloc que el va precedir.
Els trets distintius de Twofish són l'ús de caixes-S dependents d'una clau precomputada, i una programació de claus relativament complexa. Una meitat d'una clau de n-bits es fa servir com la clau d'encriptació actual i l'altra meitat de la clau de n-bits es fa servir per modificar l'algorisme d'encriptació (caixes-S dependents de la clau). Twofish pren en préstec alguns elements d'altres dissenys; per exemple, la transformació pseudo-Hadamard (PHT) de la família de sistemes de xifratge SAFER. Twofish fa servir la mateixa estructura de xarxa de Feistel que el DES.
En la majoria de les plataformes de programari Twofish és una mica més lent que Rijndael (l'algorisme escollit per a ser l'estàndard) per a claus de 128 bits, però una mica més ràpid per a claus de 256 bits.
Twofish va ser dissenyat per Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, i Niels Ferguson; l'"equip Twofish estès" que es va reunir per fer més criptoanalisis de Twofish i altres candidats a la competició AES incloïa Stefan Lucks, Tadayoshi Kohno, i Mike Stay.
El sistema de xifratge Twofish no ha estat patentat i l'aplicació de referència s'ha posat en domini públic. Com a resultat, l'algorisme Twofish és lliure perquè qualsevol el faci servir sense cap restricció en absolut. És una d'uns quants sistemes de xifratge incloses en el nivell d'OpenPGB (RFC 4880). Tanmateix, Twofish ha vist menys estès el seu ús que Blowfish, que ha estat disponible per un període més llarg de temps.

## Criptoanàlisi

Fins al 2008, el millor cryptoanàlisi publicat sobre el sistema Twofish és un criptoanàlisi diferencial truncat de la versió completa de 16 rondes. L'article afirma que la probabilitat de diferencials truncats és 2$^{-57.3}$ per bloc i que necessita aproximadament 2$^{51}$ textos clars escollits per trobar un bon parell de diferencials truncats.
Bruce Schneier respon en una entrada al blog de 2005 que aquest article no presenta un atac criptoanalitic complet, sinó només algunes característiques diferencials hipotètiques: "Però ni tan sols d'una perspectiva teòrica, Twofish no es trenca ni remotament. No hi ha hagut cap ampliació d'aquests resultats des que es publicaven el 2000."

## Referències

* 1 2 Shiho Moriai, Yiqun Lisa Yin (2000) (PDF). Cryptanalysis of Twofish (II). http://www.schneier.com/twofish-analysis-shiho.pdf. Consultat el 2006-08-13.
* ↑ Bruce Schneier, Doug Whiting (2000-04-07) (PDF/PostScript). A Performance Comparison of the Five AES Finalists. http://www.schneier.com/paper-aes-comparison.html. Consultat el 2006-08-13.
* ↑ Schneier, Bruce. «Twofish Cryptanalysis Rumors». Schneier on Security blog, 23-11-2005. [Consulta: 28 novembre 2006].
* Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson (1998-06-15) (PDF/PostScript). The Twofish Encryption Algorithm. http://www.schneier.com/paper-twofish-paper.html. Retrieved 2007-03-04.
* Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson. The Twofish Encryption Algorithm: A 128-Bit Block Cipher. Nova York: John Wiley & Sons, 1999-03-22. ISBN 0-471-35381-7.

## Vegeu també

* Threefish
* Advanced Encryption Standard
* Data Encryption Standard
* DES

## Enllaços externs

* Plana web de Twofish amb especificacions completes, codi font lliure, i altres recursos Twofish..
* SCAN's apartat per a Twofish
* Llista de productes que utilitzen TwoFish