Algoritmos de Reducción de Base en Teoría de Números y Criptoanálisis Ismael Jiménez Calvo Ismael Jiménez Calvo Retículos Geometría de los Números (Minkowski). Reducción de formas cuadráticas. Propiedades de los retículos. Aplicaciones: Aproximación diofantica. Raíces pequeñas de polinomios modulares (Coppersmith). ... Ismael Jiménez Calvo Retículos Geometría de los Números (Minkowski). Reducción de formas cuadráticas. Propiedades de los retículos. Aplicaciones: Aproximación diofantica. Raíces pequeñas de polinomios modulares (Coppersmith). ... Ismael Jiménez Calvo Retículos Geometría de los Números (Minkowski). Reducción de formas cuadráticas. Propiedades de los retículos. Aplicaciones: Aproximación diofantica. Raíces pequeñas de polinomios modulares (Coppersmith). ... Ismael Jiménez Calvo Retículos Geometría de los Números (Minkowski). Reducción de formas cuadráticas. Propiedades de los retículos. Aplicaciones: Aproximación diofantica. Raíces pequeñas de polinomios modulares (Coppersmith). ... Ismael Jiménez Calvo Qué es un retículo B= b2 b1 Ismael Jiménez Calvo b1 b2 Qué es un retículo B= b1 b2 L(B) = {xb1 + yb2 : x, y ∈ Z} b2 b1 Ismael Jiménez Calvo Qué es un retículo B= b1 b2 L(B) = {xb1 + yb2 : x, y ∈ Z} b’2 b’1 b2 b1 Ismael Jiménez Calvo b′1 b′2 = 3 1 b1 . b2 2 1 Qué es un retículo B= b1 b2 L(B) = {xb1 + yb2 : x, y ∈ Z} b’2 b’1 3 1 b1 b′1 . = b2 2 1 b′2 ′ 1 −1 b1 b1 = b2 b′2 −2 3 b2 b1 Ismael Jiménez Calvo Qué es un retículo B= b1 b2 L(B) = {xb1 + yb2 : x, y ∈ Z} b’2 b’1 b2 b1 b′1 b′2 = 3 1 b1 . b2 2 1 |L(B)| = det (B) . Ismael Jiménez Calvo Reducción de Gauss H En cada paso: ′ b1 = b1 , b′2 = b2 − tb1 , t= b1 b2 O Ismael Jiménez Calvo $ OH |b1 | ' < b2 , b1 > = . |b1 |2 Reducción de Gauss En cada paso: ′ b1 = b1 , b′2 = b2 − tb1 , $ ' < b2 , b1 > OH t= = . |b1 | |b1 |2 ′ 1 0 b1 b1 = . b2 b′2 −t 1 b1 b2 Ismael Jiménez Calvo Reducción de Gauss En cada paso: ′ b1 = b1 , b′2 = b2 − tb1 , $ ' < b2 , b1 > OH t= = . |b1 | |b1 |2 ′ 1 0 b1 b1 = . b2 b′2 −t 1 b2 b1 Ismael Jiménez Calvo Reducción de Gauss En cada paso: ′ b1 = b1 , b′2 = b2 − tb1 , t= b2 $ OH |b1 | ' < b2 , b1 > = . |b1 |2 Terminamos si: b1 |b2 | ≥ (1 + ε)|b1 |. Ismael Jiménez Calvo Complejidad de la Reducción de un Retículo El Algoritmo de Reducción de Gauss encuentra la base más pequeña de un Retículo en Tiempo Polinómico. Para más de dos dimensiones el problema tiene complejidad exponencial. Van Em de Boas (1980) demostró que el problema es NP-Completo. Ismael Jiménez Calvo Vector más corto, λ(L) Minkowski demostró que el vector más corto de un retículo es √ λ(L) ≤ n |L|1/n . En 1982 Lenstra, Lenstra & Lovász publican un algoritmo que, en tiempo polinómico, es capaz de encontrar un vector |b1 | ≤ 2(n−1)/2 λ(L). Ismael Jiménez Calvo Vector más corto, λ(L) Minkowski demostró que el vector más corto de un retículo es √ λ(L) ≤ n |L|1/n . En 1982 Lenstra, Lenstra & Lovász publican un algoritmo que, en tiempo polinómico, es capaz de encontrar un vector |b1 | ≤ 2(n−1)/2 λ(L). Ismael Jiménez Calvo Proceso de ortogonalización de Gram-Schmidt B = b1 , b2 , · · · , bn . b∗1 = b1 , b∗2 = b2 − < b2 , b∗1 > ∗ b1 , |b∗1 |2 .. . b∗i = bi − i−1 X µij b∗j , j=1 .. . Ismael Jiménez Calvo µij = < bi , b∗j > |b∗j |2 , Algoritmo de Reducción LLL (Lenstra, Lenstra & Lovász.) Para i = 2, · · · n, P bi ← bi − i−1 j=1 µij bj , µij = <bi ,b∗j > |b∗j |2 , Si |b∗i−1 |2 ≤ (1 + ε)|b∗i + µi,i−1bi−1 |2 P (Proyecciones en i−2 j=1 R bj de bi−1 y bi ), se intercambian bi−1 y bi y se repite el paso anterior. Ismael Jiménez Calvo Algoritmo de Reducción LLL (Lenstra, Lenstra & Lovász.) El algoritmo LLL se ejecuta en tiempo O(n3 log X ). |b1 | ≤ 2(n−1)/4 |L|1/n . |b1 | ≤ 2(n−1)/2 λ(L). n |b | · · · · · |b | ≤ 2(2)/2 |L|. 1 n Ismael Jiménez Calvo Mínimos sucesivos de un retículo La base reducida de Minkowski viene dada por los mínimos sucesivos λ1 , λ2 , · · · , λn tales que λ1 es el vector más corto del réticulo y los sucesivos son de norma mínima, a la vez que linealmente independientes con los anteriores. La base reducida de Korkine-Zolotarev está formada por λ1 y por los vectores λi que son linealmente independientes y tales que su proyección sobre el espacio ortogonal al expandido por los vectores λ1 , · · · , λi−1 es mínima. Ismael Jiménez Calvo Mínimos sucesivos de un retículo La base reducida de Minkowski viene dada por los mínimos sucesivos λ1 , λ2 , · · · , λn tales que λ1 es el vector más corto del réticulo y los sucesivos son de norma mínima, a la vez que linealmente independientes con los anteriores. La base reducida de Korkine-Zolotarev está formada por λ1 y por los vectores λi que son linealmente independientes y tales que su proyección sobre el espacio ortogonal al expandido por los vectores λ1 , · · · , λi−1 es mínima. Ismael Jiménez Calvo Algoritmo de Kannan Encontrar ambos tipos de bases reducidas requiere enumerar todas las combinaciones lineales posibles en tiempo exponencial. El algoritmo de Kannan permite encontrar la cota en la enumeración para cada vector de la base. Sean los vectores (a1 , · · · , an ) que queremos enumerar y (a∗1 = a1 , · · · , a∗n ) su matriz de Gram-Schmidt. El vector a∗n es ortogonal a a1 , · · · , an−1 . Si tomamos k veces el vector an , se debe cumplir que |ka∗n | ≤ |a1 | pues, de otra forma, el vector resultante de la combinación lineal sería más largo que a1 . Así, |a1 | k= |a∗n | . Ismael Jiménez Calvo Algoritmo de Kannan Encontrar ambos tipos de bases reducidas requiere enumerar todas las combinaciones lineales posibles en tiempo exponencial. El algoritmo de Kannan permite encontrar la cota en la enumeración para cada vector de la base. Sean los vectores (a1 , · · · , an ) que queremos enumerar y (a∗1 = a1 , · · · , a∗n ) su matriz de Gram-Schmidt. El vector a∗n es ortogonal a a1 , · · · , an−1 . Si tomamos k veces el vector an , se debe cumplir que |ka∗n | ≤ |a1 | pues, de otra forma, el vector resultante de la combinación lineal sería más largo que a1 . Así, |a1 | k= |a∗n | . Ismael Jiménez Calvo Reducciones Base reducida “en tamaño” (size reduced). |µi,j | < 1/2. Reducción LLL. Reducción con “inserciones profundas” (deep insertions). Reducción de Korkine-Zolotarev por bloques BKZ. Reducción de Korkine-Zolotarev. Reducción de Minkowski. Ismael Jiménez Calvo Reducciones Base reducida “en tamaño” (size reduced). |µi,j | < 1/2. Reducción LLL. Reducción con “inserciones profundas” (deep insertions). Reducción de Korkine-Zolotarev por bloques BKZ. Reducción de Korkine-Zolotarev. Reducción de Minkowski. Ismael Jiménez Calvo Reducciones Base reducida “en tamaño” (size reduced). |µi,j | < 1/2. Reducción LLL. Reducción con “inserciones profundas” (deep insertions). Reducción de Korkine-Zolotarev por bloques BKZ. Reducción de Korkine-Zolotarev. Reducción de Minkowski. Ismael Jiménez Calvo Reducciones Base reducida “en tamaño” (size reduced). |µi,j | < 1/2. Reducción LLL. Reducción con “inserciones profundas” (deep insertions). Reducción de Korkine-Zolotarev por bloques BKZ. Reducción de Korkine-Zolotarev. Reducción de Minkowski. Ismael Jiménez Calvo Reducciones Base reducida “en tamaño” (size reduced). |µi,j | < 1/2. Reducción LLL. Reducción con “inserciones profundas” (deep insertions). Reducción de Korkine-Zolotarev por bloques BKZ. Reducción de Korkine-Zolotarev. Reducción de Minkowski. Ismael Jiménez Calvo Reducciones Base reducida “en tamaño” (size reduced). |µi,j | < 1/2. Reducción LLL. Reducción con “inserciones profundas” (deep insertions). Reducción de Korkine-Zolotarev por bloques BKZ. Reducción de Korkine-Zolotarev. Reducción de Minkowski. Ismael Jiménez Calvo Buscar el vector de un retículo más próximo a uno dado, (Closest Vector Problem). Dado el vector v, encontrar un vector del retículo próximo a él. (Algoritmo de Babai). b1 , b2 , · · · , bn es una base reducida del retículo y b∗1 , b∗2 , · · · , b∗n es su matriz de Gram-Schmidt, a = v, < a, b∗n > c= bn , |b∗n |2 .. . < a, b∗1 > b1 , c= |b∗1 |2 Un vector cercano a v es v − a. Ismael Jiménez Calvo a = a − c bn , a = a − c b1 . APLICACIONES Aproximación diofántica simultanea p1 p2 .. . .. . pn q 1 0 ··· 0 1 0 .. .. .. . . . .. .. .. . . . 0 0 0 −α1 −α2 · · · ··· ··· .. . 0 0 .. . 1 0 ··· 1 −αn ǫ/Q , ǫ > 0. Un vector corto del retículo respecto a la norma L∞ nos proporciona valores pequeños de |pi − qαi |, i ∈ {1, · · · , n}. Ismael Jiménez Calvo APLICACIONES Aproximación diofántica simultanea p1 p2 .. . .. . pn q 1 0 ··· 0 1 0 .. .. .. . . . .. .. .. . . . 0 0 0 −α1 −α2 · · · ··· ··· .. . 0 0 .. . 1 0 ··· 1 −αn ǫ/Q , ǫ > 0. Un vector corto del retículo respecto a la norma L∞ nos proporciona valores pequeños de |pi − qαi |, i ∈ {1, · · · , n}. Ismael Jiménez Calvo Relaciones lineales enteras entre irracionales P Objetivo: Encontrar una combinación lineal entera ni=1 ci αi pequeña, donde αi es un conjunto de números irracionales. Aplicamos el algoritmo LLL sobre la base: 1 0 0 · · · 0 Nα1 0 1 0 · · · 0 Nα2 0 0 1 · · · 0 Nα3 .. .. .. . . .. .. . . . . . . 0 0 0 ··· Ismael Jiménez Calvo 1 Nαn Relaciones lineales enteras entre irracionales P Objetivo: Encontrar una combinación lineal entera ni=1 ci αi pequeña, donde αi es un conjunto de números irracionales. 1 0 0 · · · 0 Nα1 c1 c2 0 1 0 · · · 0 Nα2 c3 0 0 1 · · · 0 Nα3 . .. .. .. .. .. .. . . . . . . . . . 0 0 0 · · · 1 Nαn cn b1 = (c1 , c2 , c3 , · · · , cn , N Ismael Jiménez Calvo n X i=1 ci αi ). Aplicaciones de las relaciones lineales enteras Relaciones entre constantes transcendentes. Borwein, Plouffe & Bailey (1996), descubren una formula que es capaz de dar el enésimo dígito exadecimal de π. Una relación entera lineal nula de (α0 , α1 , α2 , · · · , αn ) identifica como algebraico a α y calcula el polinomio del cual es raiz. Ismael Jiménez Calvo Problemas tipo “mochila” (knapsacks) Sistemas de cifrado de clave pública en los que la palabra cifrada C es una relación entera (binaria) de los enteros que forman parte de la clave pública {w1 , w2 , · · · , wn }. El descifrado equivale a encontrar una relación lineal P entera tal que ci wi = C. c1 c2 c3 .. . cn −1 1 0 0 ··· 0 1 0 ··· 0 0 1 ··· .. .. .. . . . . . . 0 0 0 ··· 0 0 0 ··· Ismael Jiménez Calvo 0 w1 0 w2 0 w3 .. .. , . . 1 wn 0 C ci ∈ {0, 1}. Problemas tipo “mochila” (knapsacks) Sistemas de cifrado de clave pública en los que la palabra cifrada C es una relación entera (binaria) de los enteros que forman parte de la clave pública {w1 , w2 , · · · , wn }. El descifrado equivale a encontrar una relación lineal P entera tal que ci wi = C. c1 c2 c3 .. . cn −1 1 0 0 ··· 0 1 0 ··· 0 0 1 ··· .. .. .. . . . . . . 0 0 0 ··· 0 0 0 ··· Ismael Jiménez Calvo 0 w1 0 w2 0 w3 .. .. , . . 1 wn 0 C ci ∈ {0, 1}. Problemas tipo “mochila” (knapsacks) Sistemas de cifrado de clave pública en los que la palabra cifrada C es una relación entera (binaria) de los enteros que forman parte de la clave pública {w1 , w2 , · · · , wn }. El descifrado equivale a encontrar una relación lineal P entera tal que ci wi = C. c1 c2 c3 .. . cn −1 1 0 0 ··· 0 1 0 ··· 0 0 1 ··· .. .. .. . . . . . . 0 0 0 ··· 0 0 0 ··· Ismael Jiménez Calvo 0 w1 0 w2 0 w3 .. .. , . . 1 wn 0 C ci ∈ {0, 1}. La conjetura ABC (Masser & Oesterlé, 1985) A + B = C, A, B, C ∈ N, gcd(A, B, C) = 1. El Radical R de la terna (A, B, C) es el número mayor, libre de factores cuadraticos, que divide a ABC. Definimos el parámetro de calidad de la terna q = log(C)/log(R). Conjectura: Para cada ε > 0, solo existe un número finito de ternas (A, B, C) para las cuales q ≥ 1 + ε. Ejemplo: 2 + 310 · 109 = 235 , Ismael Jiménez Calvo q = 1,6299 · · · . Búsqueda de ternas ABC [B. M. M. de Weger] Consideramos una base formada por los n primeros primos P = {2, 3, 5, · · · , pn } y sean los números Y c Y cj a= pi i , b = pj , pi 6= pj , ci , cj ∈ Z+ + {0}. pi ∈P pj ∈P Si a/b = 1 + ǫ, tomando logaritmos tenemos que X X ci log(pi ) − cj log(pj ) = e, e pequeño en valor absoluto Ismael Jiménez Calvo Record Terna de tamaño más grande y mayor “mérito” con q > 1: A = 33 · 313 · c; B = 5362 · 7109 · 117 · 17326 · 3711 · 5333 · 59179 · 67137 · 7976 · 103348 · 10912 · 113103 · 13142 · 15112 · 163166; C = 2465 · 1376 · 1957 · 23611 · 2919 · 4111 · 4398 · 6184 · 7113 · 73250 · 8330 · 8910 · 9780 · 10145 · 1277 · 1378 · 1393 · 167253 · 17325; donde c es un entero sin factores cuadráticos. Ismael Jiménez Calvo Raices pequeñas de polinomios modulares. Don Coppersmith (1996). Problema: Dado f (x) mod N, con N de factorización desconocida, encontrar una raiz pequeña x0 < X . Tiene aplicación para ataques directos al RSA (sin pasar por la factorización del módulo N), cuando se conocen los bits altos del mensaje en claro m = M + x. Cifrado RSA: (M + x)e ≡ C f (x) = (M + x)e − C, Ismael Jiménez Calvo mod N, f (x0 ) ≡ 0 N = pq. mod N. Solución de Coppersmith y Howgrave-Graham Observamos que si f (x0 ) = 0 mod N, x i f (x) = 0 mod N tiene la misma raiz. Igualmente consideramos los polinomios fi,j (x) = N d−j x i f (x)j mod N d . Cualquier combinación lineal de ellos, F (x), tendrán como raiz x0 mod N d . Se consideran los polinomios como vectores, cuyas entradas son los monomios dotados de peso X i . Una vez hecha la reducción LLL obtenemos un vector de baja norma. Dividiendo cada término por X i recuperamos un polinomio F (x), también de baja norma, que tiene como raiz x0 . Si F (X ) < N d , el polinomio se puede resolver sobre los enteros, lo que nos proporciona x0 . Ismael Jiménez Calvo Ejemplo simplificado Buscamos una raiz x0 < X del polinomio f (x) = x 3 + ax 2 + bx + c mod N; fi (x) = x i f (x) mod N, i = 0, 1, 2, 3. Aplicamos el algoritmo LLL sobre la base X6 X5 X4 X3 X2 X 1 0 0 0 0 0 0 a 1 0 0 0 0 0 b a 1 0 0 0 0 1 c 0 0 0 b c 0 0 a b c 0 1 a b c 0 N 0 0 0 0 N 0 0 0 0 N Ismael Jiménez Calvo |L| = N 3 X 21 , , |b1 | ≤ k|L|1/7 < N, x0 < X ≤ N 4/21 . Resultados del ataque por LLL al RSA relajado Ataque de Coopersmith sobre RSA con bajo exponente público y bits altos del mensaje conocidos: El algoritmo es capaz de recuperar en tiempo polinómico 1/e LSB del mensaje, conociendo el resto de los bits. OAEP evita, entre otros, este tipo de ataque. Ataque al caso de RSA con exponente privado d bajo (Wiener): El atacante puede recuperar el exponente privado si d < N 0,292 . Ismael Jiménez Calvo