En criptografía , Twofish es un cifrado de bloque de clave simétrico con un tamaño de bloque de 128 bits y tamaños de clave de hasta 256 bits. Fue uno de los cinco finalistas del concurso Estándar de cifrado avanzado , pero no fue seleccionado para la estandarización. Twofish está relacionado con el cifrado de bloques anterior Blowfish .
General | |
---|---|
Diseñadores | Bruce Schneier |
Publicado por primera vez | 1998 |
Derivado de | Blowfish , SAFER , plaza |
Relacionado con | Tres peces |
Certificación | Finalista AES |
Detalle de cifrado | |
Tamaños de clave | 128, 192 o 256 bits |
Tamaños de bloque | 128 bits |
Estructura | Red Feistel |
Rondas | dieciséis |
Mejor criptoanálisis público | |
Criptoanálisis diferencial truncado que requiere aproximadamente 2 51 textos sin formato elegidos. [1] Imposible ataque diferencial que rompe 6 rondas de 16 de la versión de clave de 256 bits usando 2 256 pasos. [2] |
Las características distintivas de Twofish son el uso de S-boxes precalculados dependientes de la clave y un programa de claves relativamente complejo . La mitad de una clave de n bits se utiliza como clave de cifrado real y la otra mitad de la clave de n bits se utiliza para modificar el algoritmo de cifrado (cajas S dependientes de la clave). Twofish toma prestados algunos elementos de otros diseños; por ejemplo, la pseudo-transformada Hadamard [3] (PHT) de la familia de cifrados SAFER . Twofish tiene una estructura Feistel como DES . Twofish también emplea una matriz de distancia máxima separable .
Cuando se introdujo en 1998, Twofish era un poco más lento que Rijndael (el algoritmo elegido para Advanced Encryption Standard ) para claves de 128 bits , pero algo más rápido para claves de 256 bits. Desde 2008, prácticamente todos los procesadores AMD e Intel han incluido la aceleración por hardware del algoritmo de Rijndael a través del conjunto de instrucciones AES ; Las implementaciones de Rijndael que usan el conjunto de instrucciones son ahora órdenes de magnitud más rápidas que las implementaciones (de software) de Twofish. [4]
Twofish fue diseñado por Bruce Schneier , John Kelsey , Doug Whiting , David Wagner , Chris Hall y Niels Ferguson : el "equipo ampliado de Twofish" que se reunió para realizar más criptoanálisis de Twofish. Otros participantes del concurso AES fueron Stefan Lucks , Tadayoshi Kohno y Mike Stay .
El cifrado Twofish no se ha patentado y la implementación de referencia se ha puesto en el dominio público . Como resultado, el algoritmo Twofish es gratuito para que cualquiera lo use sin ningún tipo de restricción. Es uno de los pocos cifrados incluidos en el estándar OpenPGP (RFC 4880). Sin embargo, Twofish ha tenido un uso menos generalizado que Blowfish , que ha estado disponible por más tiempo.
Criptoanálisis
En 1999, Niels Ferguson publicó un ataque diferencial imposible que rompe seis rondas de 16 de la versión de clave de 256 bits usando 2 256 pasos. [2]
A partir de 2000[actualizar], el criptoanálisis mejor publicado del cifrado en bloque Twofish es un criptoanálisis diferencial truncado de la versión completa de 16 rondas. El documento afirma que la probabilidad de diferenciales truncados es de 2 a 57,3 por bloque y que se necesitarán aproximadamente 2 51 textos sin formato elegidos (32 petabytes de datos) para encontrar un buen par de diferenciales truncados. [5]
Bruce Schneier respondió en una entrada de blog de 2005 que este artículo no presentaba un ataque criptoanalítico completo, sino solo algunas características diferenciales hipotetizadas: "Pero incluso desde una perspectiva teórica, Twofish no está ni remotamente roto. No ha habido extensiones para estos resultados desde que se publicaron en 2000 ". [6]
Ver también
- Tres peces
- Estándar de cifrado avanzado
- Estándar de cifrado de datos
Referencias
- ^ Barco Moriai; Yiqun Lisa Yin (2000). "Criptoanálisis de Twofish (II)" (PDF) . Consultado el 14 de enero de 2013 . Cite journal requiere
|journal=
( ayuda ) - ^ a b Niels Ferguson (5 de octubre de 1999). "Diferenciales imposibles en Twofish" ( PDF ) . Consultado el 14 de enero de 2013 . Cite journal requiere
|journal=
( ayuda ) - ^ "Team Men In Black presenta: TwoFish" (PDF) . Archivado desde el original (PDF) el 26 de septiembre de 2017.
- ^ Bruce Schneier; Doug Whiting (7 de abril de 2000). "Una comparación de rendimiento de los cinco finalistas de AES" ( PDF / PostScript ) . Consultado el 14 de enero de 2013 . Cite journal requiere
|journal=
( ayuda ) - ^ Shiho Moriai; Yiqun Lisa Yin (2000). "Criptoanálisis de Twofish (II)" (PDF) . Consultado el 14 de enero de 2013 . Cite journal requiere
|journal=
( ayuda ) - ^ Schneier, Bruce (23 de noviembre de 2005). "Rumores de criptoanálisis de Twofish" . Schneier en el blog de seguridad . Consultado el 14 de enero de 2013 .
Artículos
- Bruce Schneier; John Kelsey; Doug Whiting; David Wagner; Chris Hall; Niels Ferguson (15 de junio de 1998). "El algoritmo de cifrado de Twofish" ( PDF / PostScript ) . Consultado el 14 de enero de 2013 . Cite journal requiere
|journal=
( ayuda ) - Bruce Schneier; John Kelsey; Doug Whiting; David Wagner; Chris Hall; Niels Ferguson (22 de marzo de 1999). El algoritmo de cifrado Twofish: un cifrado en bloque de 128 bits . Ciudad de Nueva York : John Wiley & Sons . ISBN 0-471-35381-7.
enlaces externos
- Página web de Twofish, con especificaciones completas, código fuente gratuito y otros recursos de Twofish de Bruce Schneier
- Cifrados de 256 bits: implementación de referencia TWOFISH y código derivado
- Productos que utilizan Twofish de Bruce Schneier
- Mejor algoritmo: ¿Rijndael o TwoFish? por sci.crypt
- Denominación del algoritmo criptográfico estándar : Twofish