Contenido Criba cuadrática Algoritmo de Dixon Ataque de Wiener Octavio Páez Osuna México 2011 Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Ataque de Wiener Contenido 1 Criba cuadrática 2 Ataque de Wiener Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Criba cuadrática Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Algoritmo de Dixon Factorización Supongamos que nuestra base de primos B := {p1 , . . . , pb } consiste de los primeros b primos. Queremos calcular la probabilidad de que x 2 se factorize en la base B. Definimos, para m < n, ϕ(n, m) como el número de enteros positivos ≤ n tales que todos sus factores primos son ≤ m Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Algoritmo de Dixon Factorización Usaremos el siguiente hecho: supongamos que n >> m, entonces 1 ϕ(n, m) ≈ u n u donde u= log (n) . log (m) Entonces la probabilidad de que un entero entre 1 y n se factorize sobre B es 1 . uu Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Algoritmo de Dixon Factorización Recordemos que n es el número que queremos factorizar. Vamos a escoger m para optimizar el tiempo de corrida del algoritmo. Supongamos que n ≈ 2s y que m ≈ 2r , entonces u ≈ rs . Dividir un entero de r bits (x 2 mod n en nuestro caso) entre un entero de s bits toma tiempo O(r · s). Factorizar x 2 en la base B cuesta O(r · s · m). Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Algoritmo de Dixon Factorización El tiempo esperado para encontrar b números x 2 mod n factorizables sobre B es b · u n O(rms). Como b≈ m m = O( ), log (m) s por lo que bs ≈ m. Tenemos entonces que b · u n O(rms) = O(r · m2 · u u ) es el tiempo estimado para generar b factorizaciones. Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Algoritmo de Dixon Factorización Tenemos que el tiempo estimado es de laforma O(r i mj u u ). Recordemos que n ≈ 2r , m ≈ 2s y u ≈ sr . Se sigue que, para optimizar el algoritmo tomamos p s ≈ rlog (r ) de donde u= Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener r = s r r . log (r ) Contenido Criba cuadrática Ataque de Wiener Algoritmo de Dixon Factorización Entonces u log (u ) = u · log (u) = r r r r · log ( ) log (r ) log (r ) r 1 · (log (r ) − log (log (r ))) log (r ) 2 p r rlog (r ) r 1 · log (r ) = < · 2 log (r ) 2 = r Por lo que 1 uu < 2 2 · Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener √ rlog (r ) Contenido Criba cuadrática Algoritmo de Dixon Factorización Por último, como m ≈ 2s = 2· √ rlog (r ) tenemos que √ √ 1 O(r i nj u u ) ≤ r i · 2j· rlog (r ) · 2 2 · rlog (r ) √ ≤ O(2c· rlog (r ) ) donde c es una constante. Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Podemos romper RSA sin factorizar n? Otros ataques 1 Calcular ϕ(n) es equivalente a factorizar n 2 Dado el exponente público b, calcular a, el exponente secreto, es equivalente a factorizar n. 3 Sabemos que el mensaje cifrado tiene el mismo sı́mbolo de Jacobi que el mensaje original. No se sabe si esto pueda servir de algo, pero almenos sabemos que el cifrado revela cierta información acerca del mensaje original. Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Ataque de Wiener Otros ataques Se basa en el siguiente hecho: Theorem Supongamos que MCD(a, b) = MCD(c, d) = 1 y que a c 1 | − |< 2 b d 2d con a, b, c, d ∈ Zn∗ . Entonces en fracción continua de na . Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener c d es un convergente de la expansión Contenido Criba cuadrática Ataque de Wiener Ataque de Wiener Fracciones continuas Sean q1 , . . . , qn enteros. Definimos [q1 , . . . , qn ] := q1 + 1 1 q2 + q3 +··· la fracción que se obtiene usando el algoritmo euclideano (sucesión de cocientes). Ejemplo: 34 = 0 · 99 + 34 99 = 2 · 34 + 31 34 = 1 · 31 + 3 31 = 10 · 3 + 1 3=3·1 Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Ataque de Wiener Fracciones continuas Obtenemos la fracción continua [0, 2, 1, 10, 3] = 0 + 1 1+ 1 1+ 1 1 10+ 3 Si [q1 , . . . , qr ] es una fracción continua entonces llamaremos a [q1 , . . . , qi ] el convergente i -ésimo. Del ejemplo tenemos los convergentes 11 34 1 [0], [0, 2], [0, 2, 1] = , [0, 2, 1, 10] = , [0, 2, 1, 10, 3] = 3 32 99 Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Ataque de Wiener El ataque 1 Supongamos que n = pq, q < p < 2q y 3a < n 4 donde a es el exponente secreto. Tenemos que el número de bits en a es menor que una cuarta parte del número de bits de n aproximadamente. Entonces podemos aproximar a a usando fracciones continuas: Recordemos que ab ≡ 1 mod ϕ(n) por lo que ab − 1 = t · ϕ(n) con t un entero. Tenemos que √ n−ϕ(n) = pq −(p −1)(q −1) = p +q −1 < 2q +q −1 < 3q < 3 n Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Ataque de Wiener √ recordemos que ab − 1 = t · ϕ(n) y n − ϕ(n) < 3 n Por otro lado b t ba − tn 1 + tϕ(n) − tn t(n − ϕ(n)) − 1 | − |=| |=| |=| | n a an an an √ 3t 3t n − 1 |< √ <| an a n Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Criba cuadrática Ataque de Wiener Ataque de Wiener El ataque Por otro lado Es decir 1 3t 1 1 √ < < 2 1 < 2 3a 2a a n 3n 4 1 b t | − |< 2 n a 2a Por el Teorema anterior tenemos que at es un convergente de la expansión en fracción continua de nb . Y bn es conocida. Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Contenido Octavio Páez Osuna Algoritmo de Dixon Ataque de Wiener Criba cuadrática Ataque de Wiener