Descargar

Análisis criptográfico de los LFSR


     

    Síntesis

    En el presente trabajo se analiza una de las herramientas más utilizadas para la construcción de criptosistemas de cifrado en flujo, los registros de desplazamiento con retroalimentación lineal (LSFRs, siglas en inglés), los cuales están basados en el principio matemático de las sucesiones recurrentes lineales (SRL) sobre los campos finitos binarios. Se brinda la fundamentación teórica de estos mecanismos presentando las definiciones y propiedades principales, que son necesarias para comprender su funcionamiento. Además, se detallan métodos teóricos y prácticos para la obtención de los parámetros de los LSFRs.

    Introducción

    La teoría de los campos finitos es una rama del Álgebra moderna que se ha convertido en muy actual desde la última mitad del siglo pasado, teniendo sus múltiples aplicaciones en la combinatoria, la teoría de códigos, la teoría matemática de los esquemas de conmutación, la teoría de números, la geometría algebraica, la teoría de Galois y en particular en Criptografía, donde se utilizan en la construcción de la mayoría de los códigos conocidos y su decodificación(Niederreiter, 1986).

    Las sucesiones sobre campos finitos cuyos términos dependerán de una manera sencilla de sus predecesores son de importancia para una variedad de aplicaciones ejemplo en la criptografía. Dichas sucesiones son fáciles de generar mediante procedimientos recursivos, lo cual es sin duda una característica ventajosa desde el punto de vista computacional y también tienden a tener propiedades estructurales útiles(Menezes, VanOorschot, & Vanstone, 1996).

    En 1917, J. Mauborgne y G. Vernam inventaron un criptosistema perfecto según el criterio de Shannon. Dicho sistema consistía en emplear una sucesión aleatoria de igual longitud que el mensaje, que se usaría una única vez, combinándola mediante alguna función simple e inversible (xor) con el texto en claro bit a bit.

    En este trabajo analizaremos una herramienta para la construcción de este tipo de criptosistema, denominado en la criptografía moderna como algoritmo de cifrado en flujo, sobre campos finitos específicos: los binarios, o sea, los campos finitos de característica dos. Dichos criptosistemas no son más que la especificación de un generador pseudoaleatorio, que permiten cifrar mensajes de longitud arbitraria, combinando el mensaje con la sucesión (conjunto de elementos encadenados o sucesivos) mediante la operación or exclusivo bit a bit. Los mismos no proporcionan seguridad perfecta, ya que mientras en el cifrado de Vernam el número de posibles claves es tan grande como el de posibles mensajes, cuando empleamos un generador tenemos, como mucho, tantas sucesiones distintas como posibles valores del estado inicial del registro.Una herramienta a emplear para la construcción de estos criptosistemas la constituye los registros de desplazamiento con retroalimentación lineal (LSFR, estos son un tipo especial de circuitos electrónicos de conmutación que procesan la información presentada de una manera adecuada en forma de elementos del campo), los cuales están basados en el principio matemático de las sucesiones recurrentes lineales (SRL, ecuación que define una sucesión recursiva donde cada término de la sucesión es definido como una función de términos anteriores).

    Debido a que permiten generar sucesiones con períodos muy grandes y con buenas propiedades estadísticas, además de su bien conocida estructura algebraica y su facilidad para ser implementados por hardware, estos se encuentran presentes en muchos de los generadores de sucesión propuestos en la literatura.

    Actualmente existe una gran variedad de principios de diseño para construir algoritmos de cifrado en flujo, pero uno de los más utilizados desde hace décadas son los registros de desplazamiento con retroalimentación lineal. Hoy por hoy, se reportan algunas deficiencias de seguridad, lo cual ha limitado su utilización y han impuesto transformaciones en su estructura y funcionamiento. No obstante, muchos de estos reportes no presentan información en detalle e incluso en algunos se especula acerca de los resultados planteados.

    Desarrollo

    1.1 Cifrado en flujo

    El cifrado en flujo se realiza bit a bit, mediante el texto claro y la sucesión aleatoria generada.

    Véase (López, 2009), (Schneier, 1) y (Bruen & Mollin, 2009)

    Seaedu.redlos bits de texto claro, texto cifrado y la sucesión aleatoria generada, respectivamente. El cifrado y descifrado en flujo consiste en:

    Cifrado: edu.rediedu.red

    Descifrado: edu.rediedu.red

    Las función fueron denotadas de manera diferente pero, como se puede observar existe una similitud entre estas. La razón de la similitud de la función de cifrado y descifrado se puede mostrar fácilmente. Debemos demostrar que la función de descifrado realmente produce el bit de texto en claroedu.redSe sabe que el bit edu.redde texto cifrado fue obtenido utilizando la función de cifrado edu.red

    Los cifrados de flujo actuales utilizan una sucesión de bits de clave edu.redgenerada por un generador de sucesiones pseudoaleatorias que debe tener ciertas propiedades (Como los postulados mencionados en el capítulo anterior). Una manera sencilla de producir sucesiones pseudoaleatorias grandes es utilizar los LFSRs. Los LFSRs se implementan fácilmente en hardware y muchos, pero no todos, de los cifrados de flujo, hoy por hoy, hacen uso de estos. Un ejemplo destacado es el sistema de cifrado A5 / 1 (Biham & Dunkelman, 2000), que está estandarizado para el cifrado de voz en las redes del Sistema Global de la Comunicaciones Móviles (GSM)(Siegmund M. Redl, 1995). Como veremos en este capítulo, a pesar de que un LFSR produce sucesiones con buenas propiedades estadísticas, estos son criptográficamente débiles.

    En la actualidad la mayoría de los algoritmos son públicos, por lo que se pueden conocer las características de los mismos y sus vulnerabilidades. Por esta razón, es posible conocer la longitud de los registros de desplazamiento con retroalimentación lineal.

    No obstante, si el algoritmo es secreto es posible conocer este dato, mediante la utilización de la ingeniería inversa, si este está implementado en hardware, lo cual es muy frecuente en la utilización de los LFSRs. Tal es el caso del algoritmo mencionado, A5/1. Mientras que, si está implementado en software es posible conocer este parámetro teniendo en cuenta el almacenamiento requerido.

    Incluso los propios polinomios utilizados para retroalimentación pueden ser públicos, pero es recomendado que se mantenga como parámetros secretos.

    1.2 Ataques de texto claro conocido

    Como lo indica su nombre, los LFSRs son lineales. Los sistemas lineales se rigen por relaciones lineales entre sus entradas y salidas. Puesto que, las dependencias lineales pueden ser relativamente fáciles de analizar, esto puede ser una gran ventaja, por ejemplo, en sistemas de comunicación. Sin embargo, un criptosistema donde los bits de la llave sólo intervienen en relaciones lineales hace a un cifrado altamente inseguro. Ahora vamos a investigar cómo el comportamiento lineal de un LFSR conduce a un ataque poderoso (Guarino, 2010) y (Kholosha, 2003).

    Si utilizamos un LFSR para cifrado de flujo, la llave secreta edu.redes el estado inicial de registro, es decir, el vector edu.redUn ataque posible, es el ataque de texto claro conocido donde un atacante conoce algunos pares de texto claro y su texto cifrado correspondiente. Se puede suponer, además, que el atacante conoce la longitud edu.reddel LFSR. El ataque es tan eficiente que se puede tratar fácilmente un gran número de valores posiblesedu.redde manera que esta suposición no es una restricción importante. Sea edu.redel texto claro conocido y edu.redel texto cifrado correspondiente. Con estos pares de edu.redbits de texto claro y texto cifrado, un atacante puede reconstruir edu.redbits de la sucesión aleatoria generada para el cifrado en flujo:

    edu.red edu.red

    Para el desarrollo de este epígrafe nos plantearemos la siguiente problemática, un criptoanalista está trabajando para descifrar determinada información, para ello realiza el ataque del texto claro conocido, interceptando los caracteres que se pueden inferir fácilmente de acuerdo al momento y las circunstancias en que esta operación se realice.

    Ejemplo 1.2

    • a. Si el mensaje a cifrar posee referencia a direcciones web es muy común la presencia de los caracteres http:, ftp:, https:, u otras directivas de comunicación, lo cual puede ser utilizado para realizar estos ataques.

    Para llegar al estado inicial necesitamos conocer edu.redsalidas sucesivas, siendo edu.redla longitud del registro de desplazamiento con retroalimentación lineal, que se conoce por ser la mayoría de los algoritmos públicos.

    De esta manera, la sucesión obtenida mediante este ataque, como subsucesiónde una SRL homogénea binaria producida por un LFSR, la denotaremos por

    edu.red

    siendoedu.redel instante de tiempo en que se obtuvo dicha salida edu.redy edu.redel grado del polinomio de conexiónedu.red

    edu.red

    del registro, que coincide con la longitud del mismo (Golomb, 1982), que como se dijo al inicio del capítulo se conoce por ser la mayoría de los algoritmos de llave pública.A través de esta subsucesión se puede obtener el estado inicial, obteniendo la llave secreta, y de esta forma reconstruir la sucesión completa determinando todo el texto claro.

    1.3 Obtención del polinomio primitivo de los LFSRs

    En la búsqueda del estado inicial edu.rednecesitamos obtener, utilizando el ataque de texto claro conocido, el polinomio de conexión del registro de desplazamiento con retroalimentación lineal. Los coeficientes de dicho polinomio coinciden con los de la sucesión recurrente lineal que representa. Para hallarlo es necesario una parte de la sucesión de salida de edu.redelementos consecutivos, siendo edu.redel grado del polinomio de conexión. Para la aplicación de este método no es necesario conocer el instante de tiempo donde comienza la sucesión de edu.redelementos consecutivos, o sea, edu.red

    Por la definición de recurrencia lineal (Panario, 2013) podemos obtener el siguiente sistema de ecuaciones expresado en función de términos conocidos por el epígrafe anterior, siendo edu.redlas incógnitas:

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    Como podemos ver, siempre es posible expresar el estado actual en función de los anteriores. Si la longitud del registro no es muy grande, los cálculos se pueden hacer fácilmente a mano, resolviendo un reducido sistema de ecuaciones por alguno de los métodos clásicos conocidos, como sustitución o reducción y en ocasiones hasta por tanteo. Esto se complica a medida que la longitud aumente. Cuando esto ocurre dicho sistema se puede resolver fácilmente por el método de Gauss (véase (Arachchige, 1991) y (Yoshiyasu Takefusi, 1983) ) el cual está implementado en los anexos por el Laboratorio de Criptografía académeica de la Universidad Central de las Villas (LCA) (Ver anexo 1). Este nos elimina todo tipo de complicación, se ponen ceros o unos en dependencia de si se encuentran o no los términos de la sucesión recurrente lineal homogénea que le anteceden a la subsucesión obtenida, como ya hemos mencionado, por un ataque de texto claro conocido y se aplica el método de Gauss. De esta forma se obtienen los coeficientes edu.reddel polinomio de conexión del registro de desplazamiento con retroalimentación lineal y con esto el polinomio característico asociado a la relación recurrente lineal (Panario, 2013), que según lo planteado,, donde edu.redes la matriz identidad de orden edu.redsobre el campo edu.redy la matrizedu.redse puede considerar como la matriz acompañante del polinomio mónico edu.redla cual se representa como sigue:

    edu.red

    Donde los edu.redpor tanto son ceros y unos.

    Ejemplo 1.3

    Tenemos el siguiente registro de desplazamiento con retroalimentación lineal edu.red

    Para encontrar el polinomio de conexión, como habíamos dicho, necesitamos una subsucesión de salida de edu.redelementos obtenidas por el ataque de texto claro conocido.

    Sea edu.reddicha subsucesión. Luego se tiene,

    edu.red

    1 0 0 0 1 1 0 1 1 1

    edu.red

    Planteando el sistema de ecuaciones dado en el epígrafe anterior tendríamos:

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    Sustituyendo nos queda el reducido sistema:

    edu.rededu.redResolviendo el mismo se obtiene

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    Siendo

    edu.redy edu.red

    Obtenemos el polinomio de conexión edu.red

    1.4 Procedimientos para la recuperación del estado inicial de los LFSR

    Luego de haber obtenido el polinomio de conexión podemos hacer uso la de matriz acompañante, la misma nos es de gran utilidad para recuperar el estado inicial del registro de desplazamiento con retroalimentación lineal.

    Sea edu.redla matriz acompañante a la sucesión recurrente lineal homogénea binaria.

    Para todo vector de estado se verifica en la SRL homogénea que edu.red(Panario, 2013), entonces despejando edu.redobtenemos edu.red

    De esta manera obtenemos el vector de estado inicial, siendo edu.redel instante de tiempo que se obtuvo la sucesión, edu.red

    Ejemplo 1.4

    Utilizando el resultado del ejemplo anterior y conociendo el instante de tiempo en que se comenzó a generar dicha subsucesión () podemos recuperar el estado inicial edu.redEl registro de deslazamiento con retroalimentación lineal edu.redque mostramos es no singular. Cada uno de los posibles estados iniciales del registro no singular produce una sucesión recurrente lineal homogénea sobre el campo binario (sucesión de salida) de posible período máximo (Golomb, 1982) ya que edu.redes un polinomio primitivo, por lo tanto su período sería:

    edu.red

    Además 5 y 31 son primos de Mersenne, entonces la sucesión recurrente lineal es de período máximo.

    Como todo vector de estado verifica que edu.red, entonces se cumple para el estado inicial edu.red

    Despejando la incógnita se obtieneedu.red

    Luego necesitamos el cálculo de:

    edu.red

    Y de su matriz inversa, la cual se puede obtener por el método de Gauss o utilizando la traspuesta de la adjunta dividida por el determinante de dicha matriz, o sea edu.redo también utilizando el software El Matemática:

    edu.red

    Realizando entonces el producto de matrices obtenemos:

    edu.red

    El cual podemos verificar que es el estado inicial a partir del cual se generó la sucesión recurrente lineal homogénea.

    Sea el registro de desplazamiento con retroalimentación lineal edu.redy el estado inicial edu.reda partir del cual se generó la subsucesión

    edu.red

    Las conexiones están dadas según (Golomb, 1982).

    edu.red

    Aplicando un correcto funcionamiento del registro obtenemos los 31 estados del registro y justo en el instante de tiempo edu.redobtenemos el estado a partir del cual se generó la sucesión de salida obtenida por el ataque de texto claro conocido.

    00110 0

    11111 1

    11000 0

    01110 0

    00101 1

    00100 0

    10011 1

    01111 1

    01100 0

    10111 1

    00010 0

    10010 0

    11001 1

    00111 1

    10110 0

    01011 1

    00001 1

    01001 1

    11100 0

    00011 1

    11011 1

    10101 1

    10000 0

    10100 0

    11110 0

    100011

    11101 1

    01010 0

    01000 0

    11010 1

    La sucesión de salida que se obtiene es:

    edu.red

    Observación: El estado a partir del cual se obtuvieron los elementos de dicha subsucesión y dichos elementos coinciden (rojo subrayado).

    Bajo el mismo supuesto y la misma hipótesis plantearemos otro procedimiento para la recuperación del estado inicial. Utilizaremos la definición de recurrencia propuesta en el segundo epígrafe del primer capítulo.

    Sea edu.redel polinomio de conexión del registro de desplazamiento obtenido en el epígrafe anterior, edu.redla subsucesión de salida que se obtuvo por el ataque de texto claro expuesto en el epígrafe 1.1. Entonces por la definición de sucesión recurrente lineal homogénea (Panario, 2013), siempre es posible expresar cualquier término de la sucesión recurrente lineal homogénea en función de los términos anteriores. De esta manera, podemos representar la ecuación de cualquier término de la recurrencia a partir de edu.reden función de los estados anteriores y por consiguiente, del estado inicial edu.redrealizando la recurrencia hacia atrás utilizando la suma edu.red

    En función de las etapas iniciales seríaedu.red

    Y así sucesivamente

    edu.red

    edu.red

    edu.red

    edu.red

    dondeedu.red.

    Formaríamos entonces un sistema solo en función de las etapas iniciales utilizando la suma edu.red

    edu.red

    edu.red

    edu.red

    El sistema de ecuaciones anterior siempre se puede resolver, solo que sería costoso computacionalmente en los casos donde el instante de tiempo edu.redsea muy grande. La cantidad de ecuaciones a formular es edu.redque es la cantidad de etapas desconocidas del estado inicial y, como se había mencionado, el grado del polinomio de conexión. El planteamiento de las ecuaciones cesa cuando obtengamos las primeras edu.redecuaciones a partir del instante de tiempo supuesto conocido. Con este sistema recuperaría el estado inicial.

    Ejemplo 1.5

    Sea edu.redel polinomio de conexión del registro de desplazamiento con retroalimentación lineal encontrado en el Ejemplo 3.2, edu.redla subsucesión de salida obtenida por el ataque a partir del tiempo edu.redy edu.redconstituyen las incógnitas.

    El sistema se formularía

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    Sustituyendo los valores de edu.reden el sistema y realizando la recurrencia hacia atrás se obtiene

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    edu.red

    Resolviendo este utilizando algún método de los dichos anteriormente obtendríamos

    edu.red

    edu.red

    Mediante el análisis criptográfico de los registros de desplazamiento con retroalimentación lineal pudimos obtener, bajo ciertos supuestos, el polinomio de conexión del registro y con este hallar, por dos vías, el estado inicial a partir del cual se generó la SRL homogénea binaria del primer capítulo. Esto no prueba que los registros son vulnerables a ataques por lo que hay que utilizar otros mecanismos para potenciarlos.

    Conclusiones

    • A través de este trabajo se pudo obtener un procedimiento práctico para la obtención de los polinomios de retroalimentación de los registros de desplazamiento lineales a partir del conocimiento de edu.redelementos consecutivos de una sucesión de salida, siendo edu.redla longitud del registro.

    • Además, se expusieron métodos teóricos para la recuperación del estado inicial de los registros de desplazamiento, los cuales pueden constituir amenazas reales bajos entornos que soporten las suposiciones planteadas.

    • A partir de estos resultados se puede llegar a la conclusión de que los LSFR no se pueden utilizar por si solos, hay que introducirles otros mecanismos para aumentar su fortaleza.

    Bibliografía

    • 1. Arachchige, C. K. (1991). A Fast Algorithm for Gaussian Elimination over GF (2) and Its Implementation on the GAPP.

    • 2. Biham, E., & Dunkelman, O. ( 2000). Cryptanalysis of the A5/1 GSM Stream Cipher. 43–51.

    • 3. Bruen, A., & Mollin, R. (2009). Cryptography and Shift Registers.

    • 4. Golomb, S. (1982). Shift register sequences.

    • 5. Guarino, S. (2010). Ciphertext-only reconstruction of LFSR-based stream ciphers.

    • 6. Kholosha, A. (2003). Investigations in the Design and Analysis of Key-Stream Generators.

    • 7. López, M. J. (2009). CRIPTOGRAFÍA Y SEGURIDAD EN COMPUTADORES.

    • 8. Menezes, A., VanOorschot, P., & Vanstone, S. (1996). Handbook of Applied Cryptography.

    • 9. Niederreiter, R. L. (1986). Introduction to Finite fields.

    • 10. Panario, G. L. (2013). Handbook of finite fields.

    • 11. Schneier, B. (1996 de 1 de 1). Applied Cryptography. Recuperado el 25 de mayo de 2014

    • 12. Siegmund M. Redl, M. K. (1995). An Introduction to GSM.

    • 13. Yoshiyasu Takefusi, T. K. (1983). Fast Matrix Solver in GF(2). Recuperado el 15 de 5 de 2014

    Anexo

    Algoritmo para generar polinomio primitivo sobre campos binarios (elaborado por el LCA).

    UNIVERSIDAD DE CIENFUEGOS

    "Carlos Rafael Rodríguez"

    edu.red

    Facultad de Ingeniería

    Departamento de Matemática Aplicada

    ANÁLISIS CRIPTOGRÁFICO DE LOS LFSR

    Autores: Lic. Mayara Rosa Mier Macías

    MSc. Oristela Cuellar Justiz

    Esp. Evaristo José Madarro Capó

    2014-2015