Conejo (cifrado)

Cifrado de flujo

Rabbit es un cifrado de flujo de alta velocidad de 2003. El algoritmo y el código fuente se publicaron en 2008 como software de dominio público .

Historia

Rabbit se presentó por primera vez [1] en febrero de 2003 en el décimo taller de la FSE. En mayo de 2005, se presentó al proyecto eSTREAM de la red ECRYPT .

Rabbit fue diseñado por Martin Boesgaard, Mette Vesterager, Thomas Pedersen, Jesper Christiansen y Ove Scavenius.

Los autores del algoritmo han proporcionado un conjunto completo de documentos técnicos criptoanalíticos en la página de inicio de Cryptico. [2] También se describe en el RFC 4503. Cryptico tenía patentes pendientes para el algoritmo y durante muchos años requirió una tarifa de licencia para el uso comercial del algoritmo, que fue eximida para usos no comerciales. Sin embargo, el algoritmo se hizo gratuito para cualquier uso el 6 de octubre de 2008. [3] Además, el sitio web afirma que el algoritmo y la implementación son software de dominio público y ofrece el código fuente gratuito para su descarga. [4]

Funcionalidad

Rabbit utiliza una clave de 128 bits y un vector de inicialización de 64 bits. El cifrado fue diseñado teniendo en mente un alto rendimiento en software, donde las implementaciones totalmente optimizadas logran un costo de cifrado de hasta 3,7  cpb en un Pentium 3 y de 9,7 cpb en un ARM7. Sin embargo, el cifrado también resulta muy rápido y compacto en hardware.

El componente principal del cifrado es un generador de flujo de bits que cifra 128 bits de mensaje por iteración. La fortaleza del cifrado reside en una fuerte mezcla de su estado interno entre dos iteraciones consecutivas. La función de mezcla se basa completamente en operaciones aritméticas que están disponibles en un procesador moderno, es decir, no se requieren S-boxes ni tablas de búsqueda para implementar el cifrado. La función de mezcla utiliza una función g basada en el cuadrado aritmético y las operaciones ARX : XOR lógico, rotación bit a bit con cantidades de rotación fijas y adición módulo 2 32 .

La función g utilizada en Rabbit (elevar al cuadrado un número de 32 bits para producir un número de 64 bits y luego combinar la mitad izquierda y la mitad derecha de ese número al cuadrado con xor para producir un resultado de 32 bits) proporciona resultados mucho mejores que usar los 32 bits del medio de ese número al cuadrado (el método del cuadrado medio ). [5]

Seguridad

Rabbit afirma que tiene una seguridad de 128 bits contra atacantes cuyo objetivo es una clave específica. Sin embargo, si el atacante tiene como objetivo una gran cantidad de claves a la vez y no le importa realmente cuál de ellas viola, entonces el tamaño pequeño del IV da como resultado un nivel de seguridad reducido de 96 bits. Esto se debe a ataques genéricos de compensación de TMD. [6]

Existe un pequeño sesgo en la salida de Rabbit, [7] lo que resulta en un diferenciador con una complejidad de 2 247 descubierto por Jean-Philippe Aumasson en diciembre de 2006. Aunque este diferenciador se mejoró a 2 158 en 2008, [8] no es una amenaza para la seguridad de Rabbit porque su complejidad es significativamente mayor que la fuerza bruta del espacio de claves (2 128 ).

Referencias

  1. ^ M. Boesgaard, M. Vesterager, T. Pedersen, J. Christiansen, O. Scavenius. Rabbit: un cifrado de flujo de alto rendimiento. Proc. FSE 2003. Springer LNCS 2887, págs. 307-329 (PDF) Archivado el 11 de diciembre de 2013 en Wayback Machine.
  2. ^ M. Boesgaard, T. Pedersen, M. Vesterager, E. Zenner. El cifrado de flujo Rabbit: diseño y análisis de seguridad. Proc. SASC 2004. (PDF) Archivado el 11 de diciembre de 2013 en Wayback Machine.
  3. ^ Rabbit pasa a ser de dominio público por Erik Zenner (6 de octubre de 2008, archivado)
  4. ^ El proyecto eSTREAM - Fase 3 de eSTREAM "Propiedad intelectual: Rabbit ha sido liberado al dominio público y puede usarse libremente para cualquier propósito. Ver anuncio".
  5. ^ Martín Boesgaard; Mette Vesterager; Thomas Christensen; y Erik Zenner. "El conejo cifrado de corriente". pag. 18.
  6. ^ Christophe De Cannière, Joseph Lano y Bart Preneel , "Comentarios sobre el redescubrimiento de las compensaciones de los datos de la memoria temporal", 2005. (PDF)
  7. ^ Jean-Philippe Aumasson, "Con el sesgo de Rabbit", Proc. SASC 2007. (PDF)
  8. ^ Yi Lu, Huaxiong Wang, San Ling, "Criptoanálisis de Rabbit", Proc. ISC 2008 ([1])
  • RFC de conejo
  • Página eSTREAM en Rabbit
Obtenido de "https://es.wikipedia.org/w/index.php?title=Conejo_(cifrado)&oldid=1177336862"