En criptografía , Lucifer fue el nombre que se le dio a varios de los primeros cifrados de bloques civiles , desarrollados por Horst Feistel y sus colegas en IBM . Lucifer fue un precursor directo del Estándar de Cifrado de Datos (DES ). Una versión, también llamada DTD-1 , [ 1 ] se utilizó comercialmente en la década de 1970 para la banca electrónica .
Descripción general
Lucifer utiliza una combinación de cifrado por transposición y sustitución como punto de partida para descifrar cifrados. Una variante, descrita por Feistel en 1971, [ 2 ] utiliza una clave de 48 bits y opera sobre bloques de 48 bits. El cifrado es una red de sustitución-permutación y utiliza dos cajas S de 4 bits . La clave selecciona qué cajas S se utilizan. La patente describe la ejecución del cifrado operando sobre 24 bits a la vez, y también una versión secuencial que opera sobre 8 bits a la vez. Otra variante de John L. Smith del mismo año [ 3 ] utiliza una clave de 64 bits que opera sobre un bloque de 32 bits, utilizando una suma módulo 4 y una caja S singular de 4 bits. La construcción está diseñada para operar sobre 4 bits por ciclo de reloj. Esta podría ser una de las implementaciones de cifrado por bloques más pequeñas conocidas. Feistel describió posteriormente una variante más robusta que utiliza una clave de 128 bits y opera sobre bloques de 128 bits. [ 4 ]
Sorkin (1984) describió una versión posterior de Lucifer como una red Feistel de 16 rondas , también en bloques de 128 bits y claves de 128 bits. [ 5 ] Esta versión es susceptible al criptoanálisis diferencial ; para aproximadamente la mitad de las claves, el cifrado puede romperse con 2 36 textos planos elegidos y una complejidad temporal de 2 36. [ 6 ]
IBM presentó la versión de Lucifer para la red Feistel como candidata para el Estándar de Cifrado de Datos (compárese con el proceso AES, más reciente ). Se convirtió en DES después de que la Agencia de Seguridad Nacional redujera el tamaño de la clave del cifrado a 56 bits, redujera el tamaño del bloque a 64 bits y lo hiciera resistente al criptoanálisis diferencial , que en ese momento solo conocían IBM y la NSA.
El nombre "Lucifer" era aparentemente un juego de palabras con "Demonio". Este, a su vez, era una abreviatura de "Demostración", el nombre de un sistema de privacidad en el que Feistel estaba trabajando. El sistema operativo utilizado no podía manejar el nombre más largo . [ 7 ]
Descripción de la variante Sorkin
La variante descrita por Sorkin (1984) tiene 16 rondas de Feistel , como DES, pero sin permutaciones iniciales ni finales. El tamaño de la clave y del bloque es de 128 bits. La función Feistel opera sobre un medio bloque de datos de 64 bits, junto con una subclave de 64 bits y 8 " bits de control de intercambio " (ICB). Los ICB controlan una operación de intercambio. El bloque de datos de 64 bits se considera como una serie de ocho bytes de 8 bits, y si el ICB correspondiente a un byte en particular es cero, las mitades de 4 bits izquierda y derecha ( nibbles ) se intercambian. Si el ICB es uno, el byte permanece sin cambios. Cada byte es operado luego por dos cajas S de 4×4 bits, denotadas S 0 y S 1 : S 0 opera sobre el nibble de 4 bits izquierdo y S 1 opera sobre el derecho. Las salidas resultantes se concatenan y luego se combinan con la subclave mediante la operación XOR ( comando exclusivo ); esto se denomina " interrupción de clave ". A continuación, se realiza una operación de permutación en dos etapas: la primera permuta cada byte según una permutación fija; la segunda mezcla bits entre los bytes.
El algoritmo de programación de claves es relativamente simple. Inicialmente, los 128 bits de la clave se cargan en un registro de desplazamiento . En cada ronda, los 64 bits de la izquierda del registro forman la subclave y los ocho bits de la derecha forman los bits ICB. Después de cada ronda, el registro se rota 56 bits a la izquierda.
Referencias
- ↑ "Referencia de QDLPluginEncryptionPS - QDLPlgLucifer" . www.patisoftware.eu . Consultado el 22 de noviembre de 2020 .
- ↑ Horst Feistel. Sistema criptográfico de cifrado por bloques, patente estadounidense 3.798.359. Presentada el 30 de junio de 1971. (IBM)
- ↑ John Lynn Smith. Sistema criptográfico de cifrado por bloques recirculantes, patente estadounidense 3,796,830. Presentada el 2 de noviembre de 1971. (IBM)
- ↑ Horst Feistel, (1973). Criptografía y privacidad informática". Scientific American , 228 (5), mayo de 1973, pp . 15-23 .
- ↑ Sorkin, Arthur (1984). "Lucifer: un algoritmo criptográfico". Cryptologia . 8 (1): 22– 35. doi : 10.1080/0161-118491858746 .
- ↑ Ishai Ben-Aroya, Eli Biham (1996). Criptoanálisis diferencial de Lucifer. Journal of Cryptology 9 (1), pp. 21 – 34, 1996.
- ↑ Konheim, Alan G. (2007), Seguridad informática y criptografía , John Wiley & Sons, pág. 283, ISBN 9780470083970.
Lecturas adicionales
- Eli Biham, Adi Shamir (1991). Criptoanálisis diferencial de Snefru, Khafre, REDOC-II, LOKI y Lucifer. CRYPTO 1991: pp . 156-171
- Whitfield Diffie, Susan Landau (1998). Privacidad en la línea: La política de las escuchas telefónicas y el cifrado.
- Steven Levy. (2001). Criptografía: Secreto y privacidad en la nueva guerra de códigos (Penguin Press Science).
Enlaces externos
- Descripción de Lucifer por John Savard
- Cifrados de bloques
- Cifrados de bloques rotos
- Cifrados de Feistel
- Estándar de cifrado de datos