Algoritmos de Reducción de Base en Teoría de Números y

Transcripción

Algoritmos de Reducción de Base en Teoría de Números y
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

Documentos relacionados