You are on page 1of 11

Prediciendo el Generador Cuadrtico

Domingo Gmez-Prez, Jaime Gutirrez, lvar Ibeas y David Sevilla

Facultad de Ciencias
Universidad de Cantabria
Santander E-39071, Espaa
jaime.gutierrez@unican.es

Abstract. Sean

p un

primo,

a y c enteros

mdulo

p tales

que

a 0 mod p . El generador cuadrtico es una sucesin ( u n ) de nmeros


pseudoaleatorios definidos por la relacin

u n +1 p au n2 + c .

En este

trabajo demostramos que si conocemos un nmero suficientemente grande de

u n , u n +1 , entonces
u 0 , excepto para un

los bits ms significativos para dos valores consecutivos


podemos descubrir en tiempo polinomial la semilla
conjunto pequeo de valores excepcionales.

1. Introduccin
En el corazn de gran parte de los sistemas criptogrficos usados actualmente est la
generacin de nmeros secretos o aleatorios, que no puedan ser adivinados para la
seguridad del criptosistema.
La motivacin de la generacin de nmeros
pseudoaleatorios es que en algunos casos necesitamos manipular ms bits aleatorios de
los que pueden proporcionarnos nuestras fuentes fsicas de entropa. En estos casos se
recurre a los PRNG, generadores de nmeros pseudoaleatorios, que constituyen, en
definitiva, una forma de expandir unos pocos bits realmente aleatorios.
Un PRNG es una transformacin que toma cierta cantidad aleatoria, llamada semilla,
y genera una secuencia de bits que pueden usarse como si fuesen nmeros casi
aleatorios. Un campo muy activo es, precisamente, estudiar y analizar cunto de
aleatoriedad posee la sucesin obtenida.
Un bien conocido y estudiado PRNG, pero muy inseguro criptogrficamente, es el
generador congruente lineal, definido por un polinomio lineal. Nosotros consideramos
un generador definido por un polinomio cuadrtico.
Para un primo p , denotamos por F p el cuerpo de p elementos y, como siempre,
asumiremos que est representado por el conjunto {0,..., p 1} . Algunas veces
trataremos los elementos de F p como enteros en ese rango.

Fijados a F p* y c F p , consideramos el polinomio f ( X ) = aX 2 + c F p [ X ] .

Definimos el generador congruente cuadrtico (u n ) de elementos de F p por la relacin


recurrente:
u n +1 f (u n )

mod p

n = 0,1,...

(1)

donde u 0 es el valor inicial o semilla. Las constantes a y c son denominadas el


multiplicador y el desplazamiento, respectivamente, del generador.
Este trabajo analiza algunas propiedades criptogrficas de este generador, que incluye
el caso de multiplicador uno, que se corresponde con el clebre generador de Pollard.
En las aplicaciones a la criptografa, la semilla u 0 y las constantes a y c se suponen
parte de la clave secreta. Se quiere usar la salida del generador como un cifrado de flujo.
Por supuesto, si varios valores consecutivos son revelados, entonces es muy fcil
descubrir u 0 , a y c . De esta forma, solamente se envan los bits ms significativos de
cada u n con la esperanza de que sea difcil predecir la sucesin. En el reciente trabajo
[2] se prueba que no muchos bits pueden darse en cada etapa: desafortunadamente, el
generador cuadrtico es predecible si se revelan un nmero suficientemente grande de
los bits ms significativos de elementos consecutivos, tan grande como un nmero
menor de claves que son excluidas. Sin embargo, la mayor parte de los resultados en
[2], requieren excluir una conjunto pequeo de pares (a, c) . Si este conjunto pequeo
no es excluido, el algoritmo para encontrar la informacin secreta puede fallar. En
principio, se puede esperar que por una eleccin deliberada del par (a, c) en este
conjunto excluido pueda generar sucesiones criptogrficamente ms seguras. El objetivo
de este artculo es demostrar que esta estrategia no es exitosa. De hecho, nosotros
introducimos algunas modificaciones y aadidos al mtodo de [2] de tal forma que
permite atacar los generadores, independientemente de donde se elijan los valores a y
c . Mostraremos este estudio en el caso en que a y c son conocidos. El supuesto de que
a y c son pblicos reduce la relevancia del problema en criptografa. Pero creemos que
la mejora del resultado es interesante en s misma. Adems, tambin creemos que
nuestra tcnica puede ser extendida cuando a y c son ambos secretos.
Asumimos que la sucesin (u n ) no es conocida, pero para algn n , son dadas dos
aproximaciones w0 y w1 de dos valores consecutivos u n y u n +1 . Demostraremos que
podemos descubrir en tiempo polinomial los valores u n y u n +1 si las aproximaciones
son suficientemente buenas y si un conjunto pequeo de valores de u 0 es excluido. (El
trabajo en [2] excluye, adems del conjunto para u 0 , un conjunto pequeo de valores de
(a, c) , en este sentido nuestro resultado es ms fuerte.
Problemas similares han sido introducidos por Knuth [10] para el generador
congruente lineal

x n +1 ax n + c

mod p

n = 0,1,...

y despus considerados en [3,4,7,11], ver tambin los trabajos [5,12].


En alguno de estos trabajos se han considerado generadores no lineales, pero slo
cuando todos los trminos se han dado completamente (ver [12]). Tambin se ha
estudiado el problema para el generador congruente inverso (ver [17]).
x n +1 ax n1 + c

n = 0,1,...

mod p

En todo el trabajo, las palabras tiempo polinomial significan polinomial en log p . Los
resultados involucran otro parmetro , el cual mide cuanto de aproximados son los
valores w j en trminos de u n + j . Este parmetro vara independientemente de p sujeto a
la desigualdad < p , y no aparece en la estimacin de la complejidad del algoritmo
presentado.
Debemos sealar que el algoritmo presentado es riguroso y determinista (ver [2] para
una discusin rigurosa y heurstica de este tipo de algoritmos).
Comienza el artculo con un breve repaso de los resultados bsicos sobre retculas en
la Seccin 2.1 y, polinomios en la Seccin 2.2. En la Seccin 3.1 formulamos el
resultado principal y un esquema de demostracin, la cual aparece en la Seccin 3.2.
Finalmente, la Seccin 4 est dedicada a presentar algunas comentarios concluyentes y
a presentar problemas abiertos.

2. Retculas y Polinomios
2.1. Sumario sobre Retculas

En esta subseccin recogemos varios resultados conocidos sobre retculas, que forman
los antecedentes para nuestros algoritmos.
Revisamos varios resultados y definiciones relacionados sobre retculas (lattices), que
pueden encontrarse en [6]. Para ms detalles y referencias ms recientes, recomendamos
consultar [1,7,8,14-16].
Sea b1 ,...bs un conjunto de vectores linealmente independientes en R r . El conjunto

L = {c1b1 + ... + c s bs / c1 ,..., c s Z }


se llama retcula s -dimensional con base {b1 ,..., bs }. Si s = r , la retcula L es de rango
mximo.
A cada retcula L uno puede asociar de manera natural su volumen

vol ( L) = det bi , b j

i , j =1

donde a, b denota el producto escalar, que no depende de la eleccin de la base

{b1 ,..., bs }.
Dado un vector u , sea u su norma eucldea. El famoso Teorema de Minkowski, (ver
Teorema 5.3.6 en la Seccin 5.3 de [6]), proporciona una cota superior
min{ z : z L \ {0}} s 1 2 vol ( L)1 s

(2)

de un vector no nulo con norma mnima, en una retcula s -dimensional L en trminos


de su volumen. De hecho, s 1 2 puede ser substituido por la constante de Hermite s1 2 ,
para la que tenemos
1
1.744
s + o( s ) s
s + o( s ),
2e
2e

La cota de Minkowski (2) motiva una pregunta natural: cmo encontrar un vector no
nulo y con norma mnima en una retcula? Diremos que es un vector corto de la retcula.
El clebre algoritmo LLL de Lenstra, Lenstra y Lovsz [13] proporciona una solucin
deseable en la prctica, y se sabe que el problema es resoluble en tiempo polinomial
determinista (polinomial en el tamao-bit de la base de L ) suponiendo que la
dimensin de L est fijada (ver Kannan [9, Section 3], por ejemplo). Las retculas en
este artculo tienen dimensin fija (ntese que se conocen varios indicios de que el
problema del vector ms corto es NP-completo cuando la dimensin crece).
De hecho, en este artculo slo consideramos retculas muy especiales.
Concretamente, retculas que consisten en soluciones enteras x = ( x0 ,..., x s 1 ) Z s del
sistema de congruencias
s 1

ij

xi 0 mod q j ,

j = 1,..., m

i =0

mdulo algunos enteros q1 ,..., q m . Tpicamente (aunque no siempre) el volumen de una


de estas retculas es el producto Q = q1 q m . An ms, todos los algoritmos
mencionados anteriormente, cuando son aplicados a una de estas retculas, se convierten
en polinomiales en log Q .
2.2. Ceros de polinomios

Nuestra segunda herramienta bsica es esencialmente el teoremade Lagrange que


afirma que un polinomio no nulo de grado N sobre cualquier cuerpo no tiene ms de
N ceros en ese cuerpo.
Los polinomios que consideramos pertenecen a una cierta familia de funciones
parametrizada por vectores con norma pequea en una cierta retcula, por tanto el
tamao de la familia se puede mantener bajo control. Los ceros de esos polinomios

lineales se corresponden a valores iniciales potencialmente malos' del generador


cuadrtico (1). Por tanto, si todos los polinomios lineales en esta familia no son
idnticamente cero mdulo p entonces tenemos una cota superior para el nmero de
valores iniciales malos'. Por tanto, una parte crucial de nuestra aproximacin es
estudiar la posible anulacin de polinomios lineales en la familia anterior y mostrar que
esto puede ocurrir slo para muy pocos valores de los coeficientes del generador (1).

3. Prediciendo el Generador Cuadrtico con Multiplicador y


Desplazamiento Pblicos
3.1. Formulacin del Resultado Principal y Plan de Demostracin

Supongamos que el multiplicador a y el desplazamiento c del generador cuadrtico


son conocidos. Mostraremos que podemos recuperar u 0 para todos sus posibles valores,
salvo un conjunto de O(4 ) elementos, cuando se dan dos -aproximaciones a dos
valores consecutivos u n , u n +1 producidos por el generador cuadrtico. Para simplificar la
notacin, supondremos que n = 0 a partir de este punto.
Teorema. Sean p un nmero primo, a F p* , c F p y Z con 1 < p . Entonces

existe un conjunto U (; a, c) F p con cardinal #U (; a, c) = O(4 ) , con la siguiente


propiedad: siempre que u 0 U (; A, c) , dadas aproximaciones w j tales que
w j u j ,

j = 0,1

a dos valores consecutivos u 0 , u1 producidos por el generador cuadrtico (1), se puede


calcular u 0 en tiempo polinomial determinista.
A continuacin mostramos el esquema
del algoritmo correspondiente a la
demostracin de este Teorema. El algoritmo est dividido en seis etapas:
Etapa 1: Construimos una cierta retcula L (ver (4) ms abajo) de dimensin cuatro
que depende de w0 , w1 y a, c . Se muestra que un cierto vector e , relacionado con
informacin oculta que buscamos sobre u 0 , u1 , es un vector muy corto en esta
retcula. Calculamos un vector no nulo corto f = ( f 0 ,..., f 3 ) en L ; ver [9] para el
algoritmo correspondiente.
Etapa 2: Mostramos que f proporciona informacin valiosa sobre e para todos los
posibles valores iniciales u 0 excepto aquellos en un cierto conjunto excepcional
V (; a, c) F p de cardinal #V (; a, c) = O(4 ) , que se define como el conjunto de
ceros de una cierta familia paramtrica de polinomios lineales.

Etapa 3: Mostramos que si f 0 0 entonces recuperar e (y por tanto la informacin


oculta u 0 ) es inmediato. Por tanto en ese caso el algoritmo termina en esta etapa.

Etapa 4: Mostramos que si f 0 = 0 entonces el vector f nos permite calcular enteros


r y s tales que b r mod p (de hecho estos enteros se pueden calcular
s
independientemente con el algoritmo de fracciones continuas). Usamos esta
informacin, junto con los enteros w0 , w1 , para calcular una segunda retcula L' (ver
(5)) de dimensin tres. De nuevo hay un vector muy corto e' en L' que est
estrechamente relacionado con la informacin secreta u 0 .
Etapa 5: Mostramos que todos los vectores cortos en L' son paralelos a e' para todos
los valores posibles de u 0 salvo los de otro conjunto excepcional V ' (; a, c) F p de

cardinal V ' (; a, c) = O(4 ) (que tambin se define como el conjunto de ceros de una
cierta familia paramtrica de polinomios lineales).
Etapa 6: Encontramos un vector no nulo corto f ' en L' y mostramos que si
u 0 U (; a, c) , donde U (; a, c) = V (; a, c) V ' (; a, c) es trivial recuperar e' (y por
tanto encontrar la informacin secreta) a partir de f y f ' .
3.2. Demostracin del resultado principal

El teorema es trivial cuando 4 p , luego supondremos que 4 < p . Supondremos


que u 0 U (; a, c) , conjunto que definiremos gradualmente a lo largo de la
demostracin.

Etapa 1: Construccin de la retcula L .


Comenzamos definiendo L , y mostrando cmo un vector corto normalmente
permite recuperar u 0 .
Sean w0 , w1 las dos aproximaciones de las que partimos. Se verifica entonces que hay
dos enteros 0 , 1 con:

u i = wi + i , i

i = 0,1

Tenemos que:
u1 p f (u 0 ) w1 + 1 p a (w0 + 0 ) + c
2

aw02 + c w1 + 2aw0 0 + ({
1) 1 + a{ 02 p 0
142
4 43
4 123

(3)

Por lo tanto, si L es la retcula definida por el siguiente sistema de congruencias:


(aw02 + c w1 )2 x0 + 2aw0 1 x1 1 x 2 + ax3 0 mod p

L : x0 0 mod 2
x , x 0 mod
1 2

(4)

se tiene que el siguiente vector de Z 4 est en L :


e = (2 , 0 , 1 , 02 )

Este vector satisface e 44 = 22 . Sea

f = (2 f 0 , f 1 , f 2 , f 3 ) un vector corto

de la retcula, entonces f e 22 y, por tanto f 0 2, f 1 , f 2 2, f 3 22 .


Obsrvese que el vector f puede ser computado en tiempo polinomial, a partir de los
datos de entrada.
Etapa 2: Definicin del primer conjunto excepcional V (; a, c) .
Consideramos un tercer vector de L :
d = f f 0 e = (0, d1 , d 2 , d 3 )
Se puede esperar que d sea el vector nulo, es decir, los vectores e y f sean paralelos.
Desafortunadamente, esto no es cierto en general, demostraremos que es cierto si
d1 0 y v0 no pertenece al conjunto V (; a, c) , que definiremos ms adelante.

Por la definicin de L ,
2aw0 d1 d 2 + ad 3 0 mod p
Substituyendo w0 = u 0 0 en esta ecuacin, obtenemos:
M (u 0 ) = 2ad1u 0 E mod p

donde E a(2d1 0 d 3 ) + d 2 mod p . Si el polinomio M (u 0 ) es no constante, es decir,


d1 0 mod p , entonces, fijado E hay un nico u 0 verificando esa ecuacin.
Definimos ahora V (; a, c) como el conjunto de los elementos v F p para los que
existe alguna combinacin (d1 , d 2 , d 3 , 0 ) Z * Z 3 que satisface
d1 , d 2 4, d 3 42 , 0

2ad1v E mod p
Como la cantidad de valores que E puede tomar est en O(3 ) , se sigue que
# V (; a, c) = O(; a, c) .
Ahora, si u 0 V1 (; a, c) , entonces debe ser d1 = 0 f 0 0 f 1 = 0 . Adems,
tenemos que
d 2 + ad 3 0 mod p

Etapa 3: Prediccin del generador cuando f 0 0 mod p .

Podemos calcular a partir de los datos conocidos

0 = f 1 f 01
Por tanto, conocemos u 0 = w0 + 0 y, aplicando el generador cuadrtico, u1 .
Etapa 4: Construccin de la retcula L' .

Sabemos que f 0 2 . Por lo tanto, debe ser f 0 = 0 . As,


d = f = (0,0, f 2 , f 3 )

y se verifica que f 2 af 3 mod p .


Computamos entonces los enteros coprimos siguientes:
r :=

f2
,
mcd ( f 2 , f 3 )

s :=

f3
mcd ( f 2 , f 3 )

que verifican r as mod p, r 2, s 22 .


De la ecuacin (3) deducimos que
rw02 sw1 + sc + 2rw0 0 s 1 + r 02 0 mod p
144244
3 {
Con los datos ahora conocidos, consideramos la siguiente retcula:
(rw02 + sc sw1 )3 x0 + 2rw0 2 x1 + x 2 0 mod p

L': x0 0 mod 3

2
x1 0 mod

(5)

Sabemos que contiene el vector


e' = (3 , 2 0 , r 02 s 1 )

Adems, e' 6 + 6 + 166 = 3 23 .

Etapa 5: Definicin del segundo conjunto excepcional V ' (; a, c) .


Demostraremos que todos los vectores cortos de L' son paralelos a e' , a menos que
u 0 pertenezca aun conjunto V ' (; a, c) que detalleremos.

Supongamos lo contrario, luego existe un vector f ' L' no paralelo al vector e' con
f ' e' < 3 23 , que tendr la forma
f ' = (3 f 0' , 2 f 1' , f 2' )

Podemos acotar sus componentes de manera paralela a la etapa anterior:


f 0' < 3 2 f 0' 4, f 1' < 3 2, f 2' < 3 22

Consideramos un tercer vector de esta nueva retcula:


d ':= f ' f 0' e' = (0, 2 d1' , d 2' )
Sus componentes han de satisfacer
d 1' < 3 2 + 4 d1' < 9, d 2' < 3 23 + 163 d 2' < 213
Por otro lado, por estar en la retcula,
2rw0 d 1' + d 2' 0 mod p

(6)

Utilizando las cotas, tenemos que si d1' 0 mod p , entonces d1' = d 2' = 0 y los
vectores e' y f ' son paralelos. Esto contradice la eleccin de f ' .
Sustituyendo w0 = u 0 0 en la ecuacin (6), obtenemos:
M ' (u 0 ) = 2rd 1' u 0 E ' mod p

donde E ' 2r 0 d 1' d 2' mod p . Si el polinomio M ' (u 0 ) es no constante, es decir,


d1' 0 mod p entonces, fijado E ' hay un nico u 0 verificando esa ecuacin.
Definimos V ' (; a, c) como el conjunto de los elementos v F p para los que existe
alguna combinacin (d 1' , d 2' , 0 ) Z * Z 3 que satisface
d 1' 9, d 2' 213 , 0

2rd1' v E mod p
Como la cantidad de valores que E ' puede tomar est en O(3 ) , se sigue que
#V ' (; a, c) = O(4 ) .
Etapa 6: Prediccin del generador cuando f 0 p 0 .
Utilizamos un algoritmo determinista y polinomial (ver [9]) para computar un vector
corto f ' L' , y este vector debe ser paralelo a e' . Podemos reconstruir con sencillez
e' = f ' f 0' , lo que nosproporciona 0 y consecuentemente u 0 .

Finalmente,
demostracin.

definiendo

U (; a, c) = V (; a, c) V ' (; a, c) ,

se

concluye

la

4. Conclusiones y Problemas Abiertos


Obviamente, el resultado presentado es no trivial solamente cuando = O( p1 4 ) . De
este modo, aumentando el tamao para valores es sumamente importante, incluso
considerando la posibilidad de disponer de ms de dos aproximaciones consecutivas. En
este sentido pensamos que dando k aproximaciones de valores consecutivos, podramos
construir una retcula L de dimensin s , de tal forma que el vector asociado e tenga
una norma menor que la raz 2k -esima del volumen de la retcula vol ( L)1 2 k (ver
ecuacin (3)). Heursticamente, tendramos que el vector corto proporciona la solucin.
Estamos implementado estos mtodos en un programa C++ usando la librera NTL, ver
[18].
Aparentemente, la misma tcnica se puede aplicar cuando a c (o ambos) son
desconocidos.
Como ya hemos mencionado, varios resultados sobre la prediciendode generadores
no lineales han sido obtenidos en el reciente trabajo [2]. Sin embargo, requieren
excluir un cuerto pequeo conjunto de valores (a, c) excepcionales. Creemos que
nuestra idea, puede ser adaptada para soslayar esteconjunto. De todas formas,
ciertamente, esto requiere un trabajo futuro. No se sabe como predecir generadores no
lineales, en el caso de que el mdulo p sea tambin secreto. Debemos decir que el caso
de generador lineal un mtodo heurstico ha sido propuesto en el el trabajo [7]. Sin
embargo, no parece inmediato (incluso heursticamente) que puede ser adaptado a
generadores no lineales.

Referencias
[1] M. Ajtai, R. Kumar and D. Sivakumar, A sieve algorithm for the shortest lattice
vector problem, Proc. 33rd ACM Symp. on Theory of Comput. (STOC 2001),
Association for Computing Machinery, 2001, 601-610.
[2] S.R. Blackburn, D. Gmez-Prez, J. Gutirrez, I. Shparlinski, Predicting nonlinear
pseudorandom number generators, Mathematics of Computation, (en prensa).
[3] J. Boyar, Inferring sequences produced by pseudorandom number generators, J.
ACM, 36 (1989), 129-141.
[4] J. Boyar, Inferring sequences produces by a linear congruential generator missing
low-order bits, J. Cryptology 1 (1989) 177-184.
[5] E. F. Brickell and A. M. Odlyzko, Cryptanalysis: A survey of recent results,
Contemp. Cryptology, IEEE Press, NY, 1992, 501-540.

[6] M. Grtschel, L. Lovsz and A. Schrijver, Geometric algorithms and combinatorial


optimization, Springer-Verlag, Berlin, 1993.
[7] A. Joux and J. Stern, Lattice reduction: A toolbox for the cryptanalyst, J.
Cryptology, 11 (1998), 161-185.
[8] R. Kannan, Algorithmic geometry of numbers, Annual Review of Comp. Sci., 2
(1987), 231-267.
[9] R. Kannan, Minkowski's convex body theorem and integer programming, Math.
Oper. Res., 12 (1987), 415-440.
[10] D. E. Knuth, Deciphering a linear congruential encryption, IEEE Trans. Inf.
Theory 31 (1985), 49-52.
[11] H. Krawczyk, How to predict congruential generators, J. Algorithms, 13 (1992),
527-545.
[12] J. C. Lagarias, Pseudorandom number generators in cryptography and number
theory, Proc. Symp. In Appl. Math., Amer. Math. Soc., Providence, RI, 42 (1990),
115-143.
[13] A. K. Lenstra, H. W. Lenstra and L. Lovsz, Factoring polynomials with rational
coefficients, Mathematische Annalen, 261 (1982), 515-534.
[14] D. Micciancio and S. Goldwasser, Complexity of lattice problems, Kluwer Acad.
Publ., 2002.
[15] P. Q. Nguyen and J. Stern, Lattice reduction in cryptology: An update, in: W.
Bosma (Ed), Proc. ANTS-IV, Lect. Notes in Comp. Sci. Vol. 1838, Springer-Verlag,
Berlin, 2000, 85-112.
[16] P. Q. Nguyen and J. Stern, The two faces of lattices in cryptology, in: J.H.
Silverman (Ed), Cryptography and Lattices Lect. Notes in Comp. Sci. Vol. 2146,
Springer-Verlag, Berlin, 2001, 146-180.
[17] H. Niederreiter and I. E. Shparlinski, Recent advances in the theory of nonlinear
pseudorandom number generators, in: K.-T. Fang, F.J. Hickernell and H. Niederreiter
(Eds), Proc. Conf. on Monte Carlo and Quasi-Monte Carlo Methods, 2000, SpringerVerlag, Berlin, 2002, 86-102.
[18] V. Shoup, Number theory C++ library (NTL), version 5.3.1, available at
http://www.shoup.net/ntl.

You might also like