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)
Sealos bits de texto claro, texto cifrado y la
sucesión aleatoria generada, respectivamente. El cifrado y
descifrado en flujo consiste en:
Cifrado: i
Descifrado: i
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 claroSe
sabe que el bit de
texto cifrado fue obtenido utilizando la función de cifrado
Los cifrados de flujo actuales utilizan una
sucesión de bits de clave generada 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 es el
estado inicial de registro, es decir, el vector Un 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
del LFSR. El ataque
es tan eficiente que se puede tratar fácilmente un gran
número de valores posiblesde manera que esta suposición no es una
restricción importante. Sea el texto claro conocido y el texto cifrado
correspondiente. Con estos pares de bits de texto claro y texto cifrado, un
atacante puede reconstruir bits de la sucesión aleatoria generada
para el cifrado en flujo:
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
salidas sucesivas,
siendo la 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
siendoel
instante de tiempo en que se obtuvo dicha salida y el grado del polinomio de
conexión
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 necesitamos 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 elementos consecutivos, siendo el 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 elementos consecutivos, o sea,
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 las incógnitas:
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 del 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 es la matriz
identidad de orden sobre el campo y la matrizse puede considerar como la matriz
acompañante del polinomio mónico la cual se representa como
sigue:
Donde los por tanto son ceros y unos.
Ejemplo 1.3
Tenemos el siguiente registro de desplazamiento con
retroalimentación lineal
Para encontrar el polinomio de conexión, como
habíamos dicho, necesitamos una subsucesión de salida
de elementos
obtenidas por el ataque de texto claro conocido.
Sea dicha
subsucesión. Luego se tiene,
1 0 0 0 1 1 0 1 1 1
Planteando el sistema de ecuaciones dado en el
epígrafe anterior tendríamos:
Sustituyendo nos queda el reducido sistema:
Resolviendo el mismo se
obtiene
Siendo
y
Obtenemos el polinomio de conexión
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 la 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 (Panario, 2013), entonces despejando obtenemos
De esta manera obtenemos el vector de estado inicial,
siendo el instante
de tiempo que se obtuvo la sucesión,
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
El registro de
deslazamiento con retroalimentación lineal que 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
es un polinomio
primitivo, por lo tanto su período sería:
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 , entonces se cumple para el
estado inicial
Despejando la incógnita se obtiene
Luego necesitamos el cálculo de:
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 o también utilizando el
software El Matemática:
Realizando entonces el producto de matrices
obtenemos:
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 y el estado inicial a partir del cual se generó la
subsucesión
Las conexiones están dadas según (Golomb,
1982).
Aplicando un correcto funcionamiento del registro
obtenemos los 31 estados del registro y justo en el instante de
tiempo obtenemos 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:
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 el
polinomio de conexión del registro de desplazamiento
obtenido en el epígrafe anterior, la 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 en función de los
estados anteriores y por consiguiente, del estado inicial
realizando la
recurrencia hacia atrás utilizando la suma
En función de las etapas iniciales
sería
Y así sucesivamente
donde.
Formaríamos entonces un sistema solo en
función de las etapas iniciales utilizando la suma
El sistema de ecuaciones anterior siempre se puede
resolver, solo que sería costoso computacionalmente en los
casos donde el instante de tiempo sea muy grande. La cantidad de ecuaciones a
formular es que 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 ecuaciones
a partir del instante de tiempo supuesto conocido. Con este
sistema recuperaría el estado inicial.
Ejemplo 1.5
Sea el
polinomio de conexión del registro de desplazamiento con
retroalimentación lineal encontrado en el Ejemplo 3.2,
la subsucesión
de salida obtenida por el ataque a partir del tiempo y constituyen las incógnitas.
El sistema se formularía
Sustituyendo los valores de en el sistema y realizando
la recurrencia hacia atrás se obtiene
Resolviendo este utilizando algún
método de los dichos anteriormente
obtendríamos
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
elementos
consecutivos de una sucesión de salida, siendo la 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
201412. 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"
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