jueves, 18 de octubre de 2012

Twofish block cipher

Orígenes

Su diseñador es  Bruce Schneier y fue publicado por primera vez en el año de 1998. Este esta relacionado con el bloque de cifrado blowfish. 

Twofish es un algoritmo de cifrado simétrico de con tamaño de bloque de 128 bits y tamaños de clave de hasta 256 bits.

El algoritmo de Twofish puede hacer lo siguiente:
  • El algoritmo Twofish consta de 16 rondas. La unidad de encriptación / desencriptación, consta de varios modulos operativos.
  • Cifrar los datos a 285 ciclos de reloj por bloque en un Pentium Pro, después de un ciclo de reloj 12700 clave configuración.
  • Cifrar los datos a 26500 ciclos de reloj por bloque en una tarjeta inteligente 6805, después de un ciclo de reloj de 1750 clave de configuración.
Propósitos

Twofish fue diseñado para cumplir con los criterios de diseño del NIST para AES [NIST97b].
  • Un algoritmo simétrico de bloques de 128 bits.
  • Longitudes de clave de 128 bits, 192 bits y 256 bits.
  • Diseño flexible

Twofish ha sido diseñado desde el principio con pre-rendimiento en mente. Es eficaz en una variedad de plataformas formas: 32-bit CPU, tarjetas inteligentes de 8-bits, y dedicado hardware VLSI. Sin embargo, Twofish ha sido diseñado para permitir que varias capas de compensaciones de rendimiento,  dependiendo de la relativa importancia de la velocidad de cifrado, clave de configuración, uso de memoria, etc..

El resultado es un algoritmo muy flexible que puede ser implementado de manera eficiente en una variedad de aplicaciones criptográficas.

Planeacion de llave

La planeacion de la llave de un algoritmo es el mecanismo que distribuye el material de claves a las distintas partes de la cifra que lo necesitan, ampliando el material clave en el proceso. Esto es necesario por tres razones:
  • Hay un menor número de bits de la clave proporcionados como entrada a el sistema de cifrado que se necesitan por el sistema de cifrado.
  • Los bits de clave utilizados en cada serie debe ser único a la redonda, con el fin de evitar ataques [Wag95b].
  • La cifra debe ser seguro frente a un atacante con un conocimiento parcial o control sobre algunos bits de la clave.
La unidad de programación de claves proporciona dos conjuntos diferentes de subclaves: S y K.
La unidad de programación clave junto con la unidad de cifrado / descifrado forma el bloque de cifrado completa.



Medidas Adicionales de Bloque

No existe una definición de Twofish para longitudes de bloque distinto de 128 bits. Mientras que puede ser teóricamente posible extender la construcción de bloque mayor tamaños.





Referencias:
www.schneier.com/paper-twofish-paper.pdf
teal.gmu.edu/courses/ECE646/project/specs_2005/TWOFISH.pdf

1 comentario:

  1. Faltó trabajar un ejemplo y discutir lo de vulnerabilidades/ataques. Van 4 de 7.

    ResponderEliminar