a asimetrica IV. El problema del logaritmo discreto.

Anuncio
CRIPTO II – UT II – N° 06
ASIMETRICA IV
LOG DISCRETOS
cripto-scolnik-hecht
UT-2
UNIDAD TEMÁTICA N° 2: Criptografía Asimétrica.
Funciones Unidireccionales. Funciones Trampa.
Historia de la Criptografía Asimétrica. Protocolo
de Diffie y Hellman para el intercambio de claves.
Métodos asimétricos y de clave pública (PohligHellman, RSA, Fiat-Shamir). Ataques a RSA.
Criptosistema de McEliece. Criptosistemas
Basados en el Problema de la Mochila: MerkleHellman. Criptosistemas varios. Criptosistemas
Basados en el Problema de logaritmo discreto:
ElGamal, Ataque a El Gamal. Criptosistemas
Basados en Curvas Elípticas.
cripto-scolnik-hecht
CRIPTOGRAFIA DE CLAVE
PUBLICA
LOS CRIPTOSISTEMAS DE CLAVE PUBLICA
DEBEN BASARSE EN PROBLEMAS COMPUTACIONALMENTE COMPLEJOS (CLASES NP o
NPNP-Completo) Y CUYAS VIAS INVERSAS SEAN
SIMPLES (CLASE P) PERO NO DEDUCIBLES
DE LA PRIMERA. EL MAS IMPORTANTE
(PERO NO EL UNICO DE INTERES) ES EL
CRIPTOSISTEMA RSA, BASADO EN EL
PROBLEMA DE LA FACTORIZACION.
AQUÍ PRESENTAMOS EL PROBLEMA DE
LOGARITMOS DISCRETOS Y ALGUNOS DE
SUS CRIPTOSISTEMAS DERIVADOS.
cripto-scolnik-hecht
PROBLEMA DE LOS
LOGARITMOS DISCRETOS - 1
Sea Zp el campo finito de enteros módulo p
(primo). El grupo multiplicativo Zp* (residuos
modulo p, donde * implica coprimos con p, aquí es
es cíclico y se define como elemento
primitivo a todo generador de Zp*
inevitable!)
DEFINICION:
Sean p primo, α (elemento primitivo) ∈ Zp y
β ∈ Zp* , el problema de logaritmos discretos
consiste en hallar un entero a, 0 ≤ a ≤ p-2, tal
que α a ≡ β (mod p)
A este entero a se lo llama logα β , su
resolución es de complejidad clase NP
cripto-scolnik-hecht
PROBLEMA DE LOS
LOGARITMOS DISCRETOS - 2
El logaritmo discreto en Zp ha sido objeto de
estudio intensivo. El problema se hace
prácticamente complejo de resolver para
valores p cuidadosamente elegidos. En
particular, se desconocen algoritmos de
resolución clase P. Para evitar ataques
(potencia computacional actual) p > 10150 y
p-1 debe tener al menos un factor “grande”.
Es (por ahora) clase NP, pero su inversa
(exponenciación modular) es clase NP y muy
eficiente. Su aplicación mas difundida para la
criptografía
de
clave
pública
es
el
criptosistema ELGamal y su generalización.
cripto-scolnik-hecht
CRIPTOSISTEMAS
Un criptosistema es una 5-tupla (P,C,K,E,D)
que satisface las siguientes condiciones:
1. (P) es el conjunto finito de textos planos
2. (C) es el conjunto finito de textos cifrados
3. (K), el espacio de claves, es el conjunto
finito de claves posibles
4. Para cada K ∈ (K), existe una regla de
encripción ek ∈ E y una correspondiente
regla de desencripción dk ∈ (D).
!(C)
y dk: (C)!
!(P) son
Cada ek: (P)!
funciones tales que dk(ek(x))=x para cada
texto plano x ∈( P)
cripto-scolnik-hecht
CRIPTOSISTEMA ELGAMAL - 1
El criptosistema desarrollado por ElGamal es nodeterministico (al contrario de RSA), dado que el texto
cifrado (y) depende del texto plano (x) y de una clave
aleatoria (k) elegida por el que encripta.
Informalmente, consiste en “enmascarar” (x)
multiplicándolo por un número (β
βk) obteniendo el
valor (y2=x.β
βk) y acompañandolo con otro (y1=α
αk). Los
parámetros (α
α, β) forman la clave pública. La clave
privada está dada por otro número (a). Conociendo
(a) se puede computar (β
βk) a partir de (α
αk), lo que
permite recuperar (x=y2/ βk). El valor (k) puede ser
fijo o una clave de sesión.
cripto-scolnik-hecht
CRIPTOSISTEMA ELGAMAL - 2
Sea p primo tal que el problema de logaritmo
discreto en Zp sea clase NP, sea α ∈ Zp
elemento primitivo y β ∈ Zp*
Sean los conjuntos (P) = Zp*, (C) = Zp* x Zp*
y (K) = {(p, α, a, β) : β ≡ αa (mod p)
Los valores (p, α, β) son públicos y a privado.
Encripción
Para K=(p, α, a, β) y
un nro aleatorio
(secreto) k ∈ Zp-1, se define ek(x,k) = (y1, y2)
donde y1= αk (mod p) e y2=x βk (mod p)
Desencripción
dk(y1, y2)=y2(y1a)-1 (mod p)
cripto-scolnik-hecht
CRIPTOSISTEMA ELGAMAL - 3
MICROEJEMPLO ELGAMAL:
Sean p=2579, α=2, a=765
∴ β=2765 mod 2579 = 949
Sea x=1299 y k=853
Encripción
y1=2853 mod 2579=435; y2=1299(949853)
mod 2579=2396
Desencripción
x=2396 (435765)-1 mod 2579 = 1299
cripto-scolnik-hecht
LOGARITMO DISCRETO-1
CRIPTOANALISIS:
ALGORITMOS DE RESOLUCION DE LOGARITMOS DISCRETOS
El problema de logaritmo discreto puede ser
resuelto por búsqueda exhaustiva (fuerza
bruta) en O(p) tiempo y O(1) espacio.
Precomputando y almacenando pares (a, αa
mod p) y ordenando por el segundo valor,
basta localizar ese valor y obtener su log
discreto a.
Si p > 10150 esto es computacionalmente
imposible en tiempo O(p) y en espacio O(p) .
cripto-scolnik-hecht
LOGARITMO DISCRETO-2
ALGORITMO SHANKS
Complejidad O(√
√p)
o algoritmo baby-step giant-step
(ref. knuth-menezes)
(obtener a= logα β (0 ≤ a ≤ p-2) dado β≡ αa mod p)
Dado m=√
√(p-1)
 computar α mj mod p, (0 ≤ j ≤ m-1)
√
Ordenar (j, α mj mod p) respecto al 2° valor (lista A)
Computar β α -i mod p, (0 ≤ i ≤ m-1)
Ordenar (i, β α -i mod p) respecto al 2° valor (lista B)
Encontrar un par (j,y) ∈ A y (i,y) ∈ B (2° valor
coincidente
6. Definir a= logα β =m j + i (mod p)
1.
2.
3.
4.
5.
cripto-scolnik-hecht
LOGARITMO DISCRETO-3
MICROEJEMPLO SHANKS:
(Sea p=809, α =3, β=525 y se busca a=log3 525)
Se tiene m= √808
√
 =29, entonces:
α29 mod 809 = 99
Se computan las listas ordenadas A=(j, 99j
mod 809) y B=(i, 525 (3i)-1 mod 809, donde
(i,j) van desde 0 hasta 28 inclusives.
Hay una sola coincidencia de 2° valor en
A!
!(10,644) y B!
!(19,644)
∴ a= log3 525=29x10+19=309 (verifique!)
cripto-scolnik-hecht
LOGARITMO DISCRETO-4
ALGORITMO POHLIG-HELLMAN
Complejidad O(∑
∑1,k ci (ln n+√
√pi))
Sólo aplicable si p-1 fue factoreado y si contiene sólo factores
“pequeños” (p-smooth). Sea n=p-1=∏
∏1k pi ci , ei >0
(obtener a= logα β (0 ≤ a ≤ p-2) dado β≡ αa mod p)
1.
Sea q=pi y c=ci , Para (1 ≤ i ≤ k) iterar:
1. Calcular γi= α ni/q mod p , para (0 ≤ i ≤ q-1)
2. Asignar j=0 y βj= β
3. Mientras ( j ≤ c-1 ) iterar:
1. Calcular δ = βj n/qj+1 mod p
2. Hallar i tal que δ = γi
3. aj = i
2.
4. βj+1 = βj α -aj(q^j) mod p
5. j = j + 1
4. Obtener congruencia a ≡ (∑
∑0c-1aiqi) mod p
Aplicar TRC al sistema de k-congruencias y obtener a
cripto-scolnik-hecht
LOGARITMO DISCRETO-5
MICROEJEMPLO POHLIG-HELLMAN
Sea α = 2, β = 18 y p = 29. Se busca a = log2 18
Entonces n = p-1 = 28 = 22 71 , Primero se calcula a mod 4
y luego a mod 7.
Empezando, q=2 y c=2
γ0=1 , γ1= α28/2 mod 29=28
δ = β 28/2 mod 29 =28 ∴ a0=1
β1= β0 α -1 mod 29=9 y β1 28/4 mod 29=28
como γ1= 28 mod 29, a1=1
∴ a ≡ (1.20+1.21) mod 4=3 mod 4
Terminando, q=7 y c=1
β 28/7 mod 29=184 mod 29 = 25
γ1= α28/7 mod 29=16 , γ2=24 , γ3=7 , γ4=25 y a0=4
∴ a ≡ (4.70) mod 7=4 mod 7
Finalmente, aplicando TRC a las dos congruencias:
a=11 mod 28, o sea a=11 es el log discreto
cripto-scolnik-hecht
LOGARITMO DISCRETO-6
ALGORITMO INDEX-CALCULUS
(algoritmo 3.68 Menezes et al)
(algoritmo 5.6 Stinson)
Es el algoritmo mas potente conocido para
calcular logaritmos discretos. La técnica no
se aplica a todos los grupos cíclicos (Zp*,
F2m*, etc.) pero cuando fuese posible,
normalmente, se resuelve en tiempo
subexponencial O(eo(n)). Se basa en la
selección de una base (S) irreducible en el
grupo cíclico y obtener un sistema de
relaciones lineales con logaritmos discretos
en (S), el cual se resuelve obteniendo a.
cripto-scolnik-hecht
LOGARITMO DISCRETO-7
CRIPTOANALISIS (RESUMEN):
ALGORITMOS DE RESOLUCION DE LOGARITMOS DISCRETOS
El criptoanálisis de criptosistemas
basados
en
el
problema
de
logaritmos discretos es fundamental
porque constituye la base
de
seguridad de algoritmos críticos
como el DSA (NIST), ECPKE, ECSA,
HEPKE, etc.
cripto-scolnik-hecht
LOGARITMOS DISCRETOS EN
CAMPOS FINITOS-1
Hasta este momento hemos tratado este
problema dentro del grupo multiplicativo
Zp*. El criptosistema ElGamal puede ser
generalizado para ser aplicado en cualquier
grupo cíclico finito G con una operación o
arbitraria en el cual el problema logaritmo
discreto sea clase NP.
Dos categorías de grupos G que cumplen
son:
1. El grupo multiplicativo del campo de Galois
GF(pn)
2. El grupo de una curva elíptica o curva
hiperelíptica definida sobre un campo finito
cripto-scolnik-hecht
LOGARITMOS DISCRETOS EN
CAMPOS FINITOS-2
LOGARITMOS DISCRETOS EN (G, o)
Sea G un grupo finito con operación de
grupo o , α ∈ G, β ∈ H, donde H ={α
αi : i ≥0}
es el subgrupo generado por el elemento
primitivo α.
Objetivo:
Encontrar el único entero a tal que (1 ≤ a
|H|-1) y αa= β, donde αa = α o…o α (a veces)
Este entero a es el log discreto logα β
≤
cripto-scolnik-hecht
CRIPTOSISTEMA ELGAMAL
GENERALIZADO
Sea G un grupo finito con operación de grupo o , α ∈
G, β ∈ H, donde H ={α
αi : i ≥0} es el subgrupo
generado por el elemento primitivo α y el problema
log discreto en H sea clase NP.
Sean los conjuntos (P) = G, (C) = G x G
y (K) = {(G, α, a, β) : β = αa}
Los valores (α
α, β) son públicos y a privado.
Encripción
Para K=(G, α, a, β) y un nro aleatorio (secreto) k ∈
Z|H|, se define ek(x,k) = (y1, y2)
donde y1= αk e y2=x o βk
Desencripción
dk(y1, y2)=y2 o (y1a)-1
cripto-scolnik-hecht
CURVAS ELIPTICAS-1
DEFINICION DE CURVA ELIPTICA
Sea p>3 primo. La curva elíptica y2=x3+ax+b sobre
Zp es el conjunto de soluciones (x,y) ∈ Zp x Zp a la
congruencia:
y2 ≡ x3+ax+b (mod p)
(*)
donde (a,b) ∈ Zp son constantes tales que
4a3+27b2 ≠ 0 (mod p)
junto a un punto especial O , llamado el punto en el
infinito
(*)
con esta ecuación se puede definir una curva elíptica sobre
cualquier campo GF(pn), para p>3 primo
cripto-scolnik-hecht
CURVAS ELIPTICAS-2
Se puede transformar la curva elíptica E en un grupo
abeliano definiendo una operación adecuada sobre sus
puntos. La operación se representa aditivamente y se
define así:
(recordar que todas las operaciones se ejecutan en Zp)
P=(x1,y1) y Q=(x2,y2) son puntos en E.
Si x2=x1 e y2=-y1, entonces P + Q = O
Caso contrario,
P + Q = (x3,y3)
λ2-x1-x2 e y3= λ(x1-x3)-y1 y donde
donde x3=λ
λ=(y2-y1)/(x2-x1)
si P≠
≠Q
o
si P=Q
λ=(3x12+a)/(2y1)
finalmente se define P + O = O + P = P (para todo P)
Ahora E es un grupo abeliano con elemento identidad O.
Las inversas (para todo x,y) son simples de calcular:
-(x,y)=(x, -y)
cripto-scolnik-hecht
CURVAS ELIPTICAS-3
MICROEJEMPLO DE CURVAS ELIPTICAS
Sea E la curva elíptica y2=x3+x+6 sobre Z11.
Primero se determinan los puntos en E. Para todo x
∈ Z11 se computa x3+x+6 (mod 11) y luego se trata
de resolver y2 ≡ x3+x+6 (mod 11). Para cada
z=x3+x+6 (mod 11) se testea primero si z ∈ RC(11)
(residuo cuadrático modulo 11, calcular símbolo de
Jacobi [Legendre]). Dado que 11≡
≡3(mod 4) y existe
una fórmula explícita para raíces cuadradas
modulares de residuos cuadráticos modulo p de
esta clase de primos, se aplica:
±z(11+1)/4 mod 11 = ±z3 mod 11
Los resultados se muestran en la placa siguiente,
observar que y2=11-y1.
cripto-scolnik-hecht
CURVAS ELIPTICAS-4
x
z=x3 + x + 6 (mod 11)
z ∈ RC(11)?
0
6
No
1
8
No
2
5
Si
4, 7
3
3
Si
5, 6
4
8
No
5
4
Si
6
8
No
7
4
Si
2, 9
8
9
Si
3, 8
9
7
No
10
4
Si
y1-2
2, 9
2, 9
cripto-scolnik-hecht
CURVAS ELIPTICAS-5
Se han hallado 12 elementos no nulos de E. Por ejemplo,
de la primer fila solución se deducen 2 puntos (x,y): (2,4)
y (2,7). Por lo tanto E contiene 13 elementos, doce no
nulos y el punto en el infinto O. Como todo grupo de
orden primo es cíclico, se deduce que E es isomorfo a Z13 y
todo punto no nulo (punto en el infinito O) es un
generador de E.
Supongamos que se toma como
generador a α=(2,7). Se pueden calcular entonces las
“potencias” de α (que se escriben como múltiplos dada la
operación suma).
P. Ej: computar 2 α=(2,7)+(2,7)
λ = (3.22+1) (2.7)-1 (mod 11) = 2 . 3-1 (mod 11) =8
x3 = 82 - 2 – 2 (mod 11) = 5
y3 = 8 (2-5) – 7 (mod 11) = 2
∴ 2 α=(5, 2)
cripto-scolnik-hecht
CURVAS ELIPTICAS-6
De esta forma se obtienen los 12 elementos no nulos de
E, probando que (2, 7) es un generador:
α=(2, 7)
2 α=(5, 2) 3 α=(8, 3) 4 α=(10, 2)
5 α=(3, 6)
6 α=(7, 9) 7 α=(7, 2)
8 α=(3, 5)
9 α=(10, 9) 10 α=(8, 8) 11 α=(5, 9) 12 α=(2, 4)
Una curva elíptica E definida sobre Zp (p>3 primo) tiene
aproximadamente p puntos sobre ella. Mas precisamente
su número #E será (Hasse):
p+1-2√
√p ≤ #E ≤ p+1+2√
√p
También se puede computar exactamente #E por medio
del algoritmo de Schoof de complejidad O((log p)3)
Una vez computado E se necesita hallar un subgrupo
cíclico H en el cual el problema del logaritmo discreto
sea clase
NP o NPNP-Completo a fin de
criptosistema ELGAMAL generalizado.
poder aplicar el
cripto-scolnik-hecht
CURVAS ELIPTICAS-7
TEOREMA:
Sea E una curva elíptica definida sobre Zp donde
p>3 primo, entonces existen enteros n1 y n2 tales
que E es isomorfo a Zn1 x Zn2 Además n2|n1 y
n2|(p-1)
Por lo tanto si se pueden computar n1 y n2 se
deduce que E tiene un subgrupo cíclico isomorfo a
Zn1 el que puede ser usado en el criptosistema
ELGAMAL generalizado.
Notar que si n2=1, E es un grupo cíclico. Además si #E es primo
o el producto de dos primos, E es un grupo cíclico con índice de
grupo cíclico.
cripto-scolnik-hecht
CRIPTOSISTEMA DE CURVAS ELIPTICAS
MENEZES-VANSTONE-ELGAMAL
Sea E una curva elíptica definida sobre Zp (p>3
primo), tal que contiene un subgrupo cíclico H, para el
cual el problema log discreto sea al menos clase NP.
Sean los conjuntos (P) = Zp*, (C) = E x Zp* x Zp*
y (K) = {(E, α, a, β) : β = a α} donde α ∈ E
Los valores (p, α, β) son públicos y a privado.
Encripción
Para K=(E, α, a, β) y un nro aleatorio (secreto) k ∈
Z|H|, y para x=(x1, x2) ∈ Zp* x Zp* se define
donde:
ek(x,k) = (y0, y1, y2)
y0=k α (c1,c2)=k β y1=c1x1 mod p y2= c2x2 mod p
Desencripción
Para un cifrado y= (y0, y1, y2) se define
dk(y)= (y1c1-1 mod p , y2c2-1 mod p)
donde ay0=(c1, c2)
cripto-scolnik-hecht
CRIPTOSISTEMA DE CURVAS ELIPTICAS
MENEZES-VANSTONE-ELGAMAL
MICROEJEMPLO - 1
Usando el ejemplo de curva elíptica anteriormente
desarrollado, supongamos que α=(2,7) y que el
“exponente” secreto sea a=7, de manera que:
β=7α
α=(7,2)
Supongamos que se desea encriptar x=(x1, x2)=(9, 1) y se
elije la clave aleatoria k=6. Observar que x ∉ E. Se
computa:
1. yo=k α=6(2, 7)=(7,9)
2. k β=6(7,2)=(8,3) o sea c1=8 y c2=3
3. y1=c1x1 mod p=8.9 mod 11=6
4. y2=c2x2 mod p=3.1 mod 11=3
y el cifrado será y= (y0, y1, y2) =((7,9), 6, 3)
cripto-scolnik-hecht
CRIPTOSISTEMA DE CURVAS ELIPTICAS
MENEZES-VANSTONE-ELGAMAL
MICROEJEMPLO - 2
El cifrado es y= (y0, y1, y2) =((7,9), 6, 3)
Para desencriptar, se computa:
1. (c1, c2) = a yo = 7 (7, 9) = (8, 3)
2. x = (y1c1-1 mod p , y2c2-1 mod p)=
= (6 . 8-1 mod 11, 3 . 3-1 mod 11)=
= (6 . 7 mod 11, 3 . 4 mod 11)=
= (9, 1) que era el texto plano.
cripto-scolnik-hecht
CRIPTOSISTEMAS DE
CURVAS ELIPTICAS
CRIPTOANALISIS DE CURVAS ELIPTICAS
Los algoritmos de Shanks y Pohlig-Hellman se aplican
sobre el problema de logaritmo discreto de curvas
elípticas. No se conoce ninguna adaptación del algoritmo
index-calculus para atacar este problema en curvas
elípticas. Sin embargo existe un metodo que explota
ciertos isomorfismos entre curvas elípticas y otros
campos finitos y que permite atacar eficientemente a
cierta
clase
de
curvas
elípticas
(las
curvas
supersingulares)
(algoritmo
Menezes-OkamotoVanstone).
Dejando de lado esta clase de curvas
elípticas, aquellas que posean un subgrupo cíclico H de
orden 2160 proveen suficiente seguridad, siempre que ese
orden-1 posea al menos un factor primo grande que
bloquee el ataque Pohlig-Hellman.
cripto-scolnik-hecht
CONCLUSION
Descargar