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 . Una versión, denominada alternativamente DTD-1 , [1] tuvo un uso comercial en la década de 1970 para la banca electrónica .
General | |
---|---|
Diseñadores | Horst Feistel y col. |
Publicado por primera vez | 1971 |
Sucesores | DES |
Detalle de cifrado | |
Tamaños de clave | 48, 64 o 128 bits |
Tamaños de bloque | 48, 32 o 128 bits |
Estructura | Red de sustitución-permutación , red de Feistel |
Rondas | dieciséis |
Descripción general
LUCIFER utiliza una combinación de cifrado de transposición y sustitución como punto de partida en la decodificación de cifrados. [ aclaración necesaria ] Una variante, descrita por Feistel en 1971, [2] usa una clave de 48 bits y opera en bloques de 48 bits. El cifrado es una red de sustitución-permutación y utiliza dos cajas S de 4 bits . La tecla selecciona qué S-boxes se utilizan. La patente describe la ejecución del cifrado operando en 24 bits a la vez, y también una versión secuencial que opera en 8 bits a la vez. Otra variante de John L. Smith del mismo año [3] usa una clave de 64 bits que opera en un bloque de 32 bits, usando un mod 4 de adición y un S-box singular de 4 bits. La construcción está diseñada para funcionar con 4 bits por ciclo de reloj. Esta puede ser una de las implementaciones de cifrado de bloques más pequeñas conocidas. Feistel luego describió una variante más fuerte que usa una clave de 128 bits y opera en bloques de 128 bits. [4]
Sorkin (1984) describió un Lucifer posterior 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 de criptoanálisis diferencial ; para aproximadamente la mitad de las claves, el cifrado se puede romper con 2 36 textos planos elegidos y 2 36 de complejidad de tiempo. [6]
IBM presentó la versión Feistel-network de Lucifer como candidata para el Estándar de cifrado de datos (compare 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, redujo el tamaño del bloque a 64 bits e hizo que el cifrado fuera resistente al criptoanálisis diferencial , que en ese momento solo lo conocían IBM y la NSA.
El nombre "Lucifer" aparentemente era un juego de palabras con "Demon". Esto fue a su vez un truncamiento de "Demostración", el nombre de un sistema de privacidad en el que estaba trabajando Feistel. El sistema operativo utilizado no pudo manejar el nombre más largo . [7]
Descripción de la variante Sorkin
La variante descrita por Sorkin (1984) tiene 16 rondas Feistel , como DES, pero sin permutaciones iniciales o finales. Los tamaños de clave y bloque son ambos de 128 bits. La función Feistel opera en 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 no se modifica. Luego, cada byte es operado por dos cajas S de 4 × 4 bits, indicadas S 0 y S 1 - S 0 opera en el nibble izquierdo de 4 bits y S 1 opera en el derecho. Las salidas resultantes se concatenan y luego se combinan con la subclave usando exclusivo o (XOR); esto se denomina " interrupción de tecla ". A esto le sigue una operación de permutación en dos etapas; el primero permuta cada byte bajo una permutación fija. La segunda etapa mezcla bits entre bytes.
El algoritmo de programación de claves es relativamente simple. Inicialmente, los 128 bits de 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 de ICB. Después de cada ronda, el registro se gira 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 en bloque, patente de EE. UU. 3.798.359. Presentada el 30 de junio de 1971. (IBM)
- ^ John Lynn Smith. Sistema criptográfico de recirculación de cifrado en bloque, patente de EE.UU. 3.796.830. Presentada el 2 de noviembre de 1971. (IBM)
- ^ Horst Feistel, (1973). Cryptography and Computer Privacy ". Scientific American , 228 (5), mayo de 1973, págs. 15–23.
- ^ A. Sorkin, (1984). LUCIFER: un algoritmo criptográfico. Cryptologia , 8 (1), 22–35, 1984.
- ^ Ishai Ben-Aroya, Eli Biham (1996). Criptoanálisis diferencial de Lucifer. Journal of Cryptology 9 (1), págs. 21–34, 1996.
- ^ Konheim, Alan G. (2007), Seguridad informática y criptografía , John Wiley & Sons, p. 283, ISBN 9780470083970.
Otras lecturas
- Eli Biham, Adi Shamir (1991). Criptoanálisis diferencial de Snefru, Khafre, REDOC-II, LOKI y Lucifer. CRYPTO 1991: págs. 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). Cripto: secreto y privacidad en la nueva guerra de códigos (Penguin Press Science).