Rabbit es un cifrador de flujo de alta velocidad creado en 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 10º taller de 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 cifrado han proporcionado un conjunto completo de documentos técnicos criptoanalíticos en la página principal 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 cifrado, la cual se eximió para usos no comerciales. Sin embargo, el algoritmo se liberó para cualquier uso el 6 de octubre de 2008. [ 3 ] Además, el sitio web indica que el algoritmo y su implementación son software de dominio público y ofrece el código fuente para su descarga gratuita. [ 4 ]
Funcionalidad
Rabbit utiliza una clave de 128 bits y un vector de inicialización de 64 bits. El cifrado se diseñó pensando en un alto rendimiento a nivel de software, donde las implementaciones totalmente optimizadas alcanzan un coste 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 ser muy rápido y compacto a nivel de hardware.
El componente central del cifrado es un generador de flujo de bits que cifra 128 bits de mensaje por iteración. La robustez 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 disponibles en un procesador moderno; es decir, no se requieren cajas S ni tablas de búsqueda para implementar el cifrado. La función de mezcla utiliza una función g basada en la elevación al cuadrado aritmética y las operaciones ARX : XOR lógico, rotación bit a bit con cantidades de rotación fijas y suma módulo 2 32 .
La función g utilizada en Rabbit —que eleva al cuadrado un número de 32 bits para producir un número de 64 bits y luego combina la mitad izquierda y la mitad derecha de ese número cuadrado con la operación XOR para producir un resultado de 32 bits— proporciona resultados mucho mejores que el uso de los 32 bits centrales de ese número cuadrado (el método del cuadrado central ). [ 5 ]
Seguridad
Rabbit afirma ofrecer seguridad de 128 bits contra atacantes cuyo objetivo es una clave específica. Sin embargo, si el atacante ataca varias claves a la vez y no le importa cuál vulnerar, el pequeño tamaño del vector de inicialización (IV) reduce el nivel de seguridad a 96 bits. Esto se debe a los ataques genéricos de compensación TMD. [ 6 ]
Existe un pequeño sesgo en la salida de Rabbit, [ 7 ] lo que resulta en un discriminador con una complejidad de 2 247 descubierto por Jean-Philippe Aumasson en diciembre de 2006. Aunque este discriminador se mejoró a 2 158 en 2008, [ 8 ] no representa una amenaza para la seguridad de Rabbit porque su complejidad es significativamente mayor que la fuerza bruta del espacio de claves (2 128 ).
Referencias
- ↑ M. Boesgaard, M. Vesterager, T. Pedersen, J. Christiansen, O. Scavenius. Rabbit: Un cifrador de flujo de alto rendimiento. Actas de la FSE 2003. Springer LNCS 2887, págs. 307-329 ( PDF ). Archivado el 11 de diciembre de 2013 en Wayback Machine.
- ↑ M. Boesgaard, T. Pedersen, M. Vesterager, E. Zenner. El cifrado de flujo Rabbit: diseño y análisis de seguridad. Actas de la SASC 2004. ( PDF ) Archivado el 11 de diciembre de 2013 en Wayback Machine.
- ↑ El conejo pasa a ser de dominio público, por Erik Zenner (6 de octubre de 2008, archivado)
- ↑ El proyecto eSTREAM - Fase 3 de eSTREAM Archivado el 13/06/2012 en Wayback Machine "Propiedad intelectual : Rabbit ha sido liberado al dominio público y puede usarse libremente para cualquier propósito. Ver anuncio."
- ↑ Martín Boesgaard; Mette Vesterager; Thomas Christensen; y Erik Zenner. "El conejo cifrado de corriente" . pag. 18.
- ↑ Christophe De Cannière, Joseph Lano y Bart Preneel , "Comentarios sobre el redescubrimiento de las compensaciones de datos de memoria de tiempo", 2005. ( PDF archivado el 6 de julio de 2015 en Wayback Machine )
- ↑ Jean-Philippe Aumasson, "Sobre un sesgo de Rabbit", Actas de la SASC 2007. ( PDF archivado el 27 de septiembre de 2011 en Wayback Machine )
- ↑ Yi Lu, Huaxiong Wang, San Ling, "Criptoanálisis del conejo", Actas del ISC 2008 ()
Enlaces externos
- RFC de conejo
- Página de eSTREAM en Rabbit archivada el 13/06/2012 en Wayback Machine .
- Cifrados de flujo
- Software de dominio público con código fuente