Algoritmo de Dixon Ataque de Wiener

Anuncio
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
Descargar