stringtranslate.com

Dos peces

En criptografía , Twofish es un cifrador de bloques de clave simétrica 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 Advanced Encryption Standard , pero no fue seleccionado para la estandarización. Twofish está relacionado con el cifrador de bloques anterior Blowfish .

Las características distintivas de Twofish son el uso de cajas S dependientes de la clave precalculadas y un esquema de claves relativamente complejo . La mitad de una clave de n bits se utiliza como la 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 transformada pseudo-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 ligeramente 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 aceleración de hardware del algoritmo Rijndael a través del conjunto de instrucciones AES ; las implementaciones de Rijndael que utilizan el conjunto de instrucciones son ahora órdenes de magnitud más rápidas que las implementaciones de Twofish (software). [4]

Twofish fue diseñado por Bruce Schneier , John Kelsey , Doug Whiting, David Wagner , Chris Hall y Niels Ferguson : el "equipo Twofish ampliado" se reunió para realizar un análisis criptográfico más profundo de Twofish. Otros participantes del concurso de AES fueron Stefan Lucks , Tadayoshi Kohno y Mike Stay.

El cifrado Twofish no ha sido patentado y la implementación de referencia se ha puesto en el dominio público . Como resultado, el algoritmo Twofish es de libre uso para cualquier persona sin restricciones de ningún tipo. Es uno de los pocos cifrados incluidos en el estándar OpenPGP (RFC 9580). Sin embargo, Twofish ha tenido un uso menos extendido que Blowfish , que ha estado disponible durante más tiempo.

Actuación

Durante el diseño de Twofish, el rendimiento siempre fue un factor importante. Se diseñó para permitir varias capas de compensaciones de rendimiento, según la importancia de la velocidad de cifrado, el uso de memoria, el número de puertas de hardware, la configuración de claves y otros parámetros. Esto permite un algoritmo altamente flexible, que se puede implementar en una variedad de aplicaciones.

Existen múltiples compensaciones espacio-temporales que se pueden realizar, tanto en software como en hardware, para Twofish. Un ejemplo de una de esas compensaciones sería el precomputado de subclaves redondas o s-boxes, que pueden llevar a incrementos de velocidad de un factor de dos o más. Sin embargo, esto se produce a costa de que se necesite más RAM para almacenarlas.

Las estimaciones de la siguiente tabla se basan en la tecnología CMOS de 0,35 μm existente .

Criptoanálisis

En 1999, Niels Ferguson publicó un ataque diferencial imposible que rompe 6 rondas de 16 de la versión de clave de 256 bits utilizando 2 pasos de 256. [2]

En 2000 , el mejor criptoanálisis publicado del cifrado de bloques Twofish es un criptoanálisis diferencial truncado de la versión completa de 16 rondas. El artículo afirma que la probabilidad de diferenciales truncados es de 2 −57,3 por bloque y que se necesitarán aproximadamente 2 51 textos simples seleccionados (32  petabytes de datos) para encontrar un buen par de diferenciales truncados. [6]

Bruce Schneier respondió en una entrada de blog en 2005 que este artículo no presentaba un ataque criptoanalítico completo, sino sólo algunas características diferenciales hipotéticas: "Pero incluso desde una perspectiva teórica, Twofish no está ni remotamente roto. No ha habido extensiones a estos resultados desde que se publicaron en 2000". [7]

Véase también

Referencias

  1. ^ Barco Moriai; Yiqun Lisa Yin (2000). "Criptoanálisis de Twofish (II)" (PDF) . Consultado el 14 de enero de 2013 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  2. ^ por Niels Ferguson (5 de octubre de 1999). "Diferenciales imposibles en Twofish" ( PDF ) . Consultado el 14 de enero de 2013 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  3. ^ "Team Men In Black presenta: TwoFish" (PDF) . Archivado desde el original (PDF) el 26 de septiembre de 2017. Consultado el 26 de septiembre de 2017 .
  4. ^ Bruce Schneier; Doug Whiting (7 de abril de 2000). "Una comparación del rendimiento de los cinco finalistas de la AES" ( PDF / PostScript ) . Consultado el 14 de enero de 2013 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  5. ^ Schneier, Bruce (15 de junio de 1998). "Twofish: un cifrado de bloques de 128 bits" (PDF) . Colcha : 68.
  6. ^ Shiho Moriai; Yiqun Lisa Yin (2000). "Criptoanálisis de Twofish (II)" (PDF) . Consultado el 14 de enero de 2013 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  7. ^ Schneier, Bruce (23 de noviembre de 2005). "Rumores sobre criptoanálisis de Twofish". Blog de Schneier on Security . Consultado el 14 de enero de 2013 .

Artículos

Enlaces externos