Beruflich Dokumente
Kultur Dokumente
Facultad de Ciencias
Universidad de Cantabria
Santander E-39071, Espaa
jaime.gutierrez@unican.es
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.
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.
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].
x n +1 ax n1 + c mod p n = 0,1,...
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.
(
vol ( L) = det bi , b j )s
i , j =1
donde a, b denota el producto escalar, que no depende de la eleccin de la base
{b1 ,..., bs }.
1 1.744
s + o( s ) s s + o( s ), 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).
s 1
a
i =0
ij xi 0 mod q j , j = 1,..., m
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 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).
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 (3)
1424 43 4 123
e = (2 , 0 , 1 , 02 )
Obsrvese que el vector f puede ser computado en tiempo polinomial, a partir de los
datos de entrada.
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
M (u 0 ) = 2ad1u 0 E mod p
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) .
0 = f 1 f 01
f2 f3
r := , s :=
mcd ( f 2 , f 3 ) mcd ( f 2 , f 3 )
e' = (3 , 2 0 , r 02 s 1 )
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' )
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 ' .
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 ) .
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.
[7] A. Joux and J. Stern, Lattice reduction: A toolbox for the cryptanalyst, J.
Cryptology, 11 (1998), 161-185.
[9] R. Kannan, Minkowski's convex body theorem and integer programming, Math.
Oper. Res., 12 (1987), 415-440.
[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.
[18] V. Shoup, Number theory C++ library (NTL), version 5.3.1, available at
http://www.shoup.net/ntl.