Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

35
Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación

Transcript of Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Page 1: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Melesio Márquez Oropeza

Alba M. Sánchez Gálvez

Facultad de Ciencias de la Computación

Page 2: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Conceptos

Criptografía de Llave pública tipo ElGamal

Implementación

Resultados

Consideraciones Finales

Criptografía con Curvas Elípticas

Page 3: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Curva ElípticaSe define por medio de una ecuación:

E: y2 = x3 + ax + b

(Ecuación reducida de Weierstrass)

Los coeficientes a,b pueden ser números Reales o estar en un campo finito de orden p GF(p).

Page 4: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Campos Finitos

Page 5: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Campos Finitos

Page 6: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Curva Elíptica (y2 = x3 + ax + b)

Si se cumple que: 4a3 + 27b2 ≠ 0

Entonces E define un grupo abeliano G(E)

Se definen 2 Operaciones : Adición y multiplicación

Page 7: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Curva Elíptica (y2 = x3 + ax + b)Suma: método de la cuerda y tangente

Page 8: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Curva Elíptica (y2 = x3 + ax + b)

Multiplicación (método binario)

Page 9: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Conceptos

El algoritmo de ElGamal

Implementación

Resultados

Consideraciones Finales

Criptografía con Curvas Elípticas

Page 10: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Criptografía de Llave Pública

Page 11: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Problema del Logaritmo Discreto (ELDP)La seguridad de CCE depende de la dificultad del

ECDL:Sean P y Q dos puntos en una curva elíptica, tales

que: kP = Q, donde k es un escalar.

Dados P y Q, no es factible computacionalmente obtener k, si k es lo suficientemente grande.

k es llamado el logaritmo discreto de Q en la base P.

Page 12: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Criptosistema ElGamalSe establece una curva E sobre un campo

finito Fp

Se elige un entero s y se elige un punto P

Calcular B = sP

Los puntos P,B, Fp y la curva E forman la clave pública

Page 13: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Criptosistema ElGamal

Page 14: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Criptosistema ElGamal1) Se obtiene la Clave Pública del receptor

2)Se convierte el mensaje a un punto ME(Fp)

3)Se elige un entero aleatorio k y se calcula M1 = kP

4)Calcular M2 = M + kB

5)Se envían M1 y M2 al receptor

Page 15: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Criptosistema ElGamalPara obtener el mensaje:

M = M2 – sM1

Lo anterior funciona ya que :

M2 – sM1 = (M + kB) – s(kP) = M + skP – skP = M

Page 16: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Criptosistema ElGamalLos puntos M1 y M2 son públicos

Si se puede calcular el logaritmo discreto, se puede utilizar P y B para encontrar s (la clave Privada)

Se utiliza s para obtener el mensaje haciendo:

M = M2 - kB

Page 17: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Criptosistema ElGamalEs importante generar un k aleatorio distinto

para cada mensajeSi tenemos M y M’ , y encriptamos utilizando

el mismo numero k M1 = M1’

Se calcula M2’ – M2 = M’ – M

Si conocemos M, entonces:M’ = M – M2 + M2’

Page 18: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Ataques conocidos

Búsqueda exahustiva – Calcular sucesivamente los multiplos de P:

2P, 3P, … hasta obtener Q

Puede tomar hasta n pasos, (n es el orden de la Curva)

Page 19: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Ataques conocidos

POLLARD’S RHO ALGORITHM.

Versión aleatorizada del Baby-step Gigant step

pasos

Page 20: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Conceptos

El algoritmo de ElGamal

Implementación

Resultados

Consideraciones Finales

Criptografía con Curvas Elípticas

Page 21: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Arquitectura

Aritmética en E(Fp)

Protocolo Criptográfico

Mensaje

CRIPTOSISTEMACRIPTOSISTEMA

Page 22: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Diagrama de clasesAritmética

Curva

Punto

Page 23: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Diagrama de clasesElGamal

Page 24: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Implementacion AritmeticaLibrería JAVA : BigInteger

Funciones de soporte para aritmética de precisión arbitraria.

Ej.

Page 25: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Implementación AritméticaArchivo que contiene los parámetros de una

curva

Page 26: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Curvas recomendadas por NIST

Page 27: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Implementacion El GamalConstructor de Clase:

La aritmética es transparente al algoritmo

Page 28: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Implementación CifradorConvertir una cadena de texto a elemento de

Fp:

M - es el mensaje convertido a elemento de FpL -es el tamaño del alfabeto

Ci – El carácter i-ésimo de la cadena

Page 29: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Implementación

Page 30: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Implementación

Page 31: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Implementación

Page 32: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Conceptos

El algoritmo de ElGamal

Implementación

Resultados

Consideraciones Finales

Criptografía con Curvas Elípticas

Page 33: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

Tiempos de ejecución

Page 34: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

ConclusionesLa importancia de separar los componentes

de un criptosistema basándonos en el paradigma POO.

Flexibilidad de las librerías de JAVA para la implementación de la aritmética

Posibilidad de extender el criptosistema agregando módulos

Page 35: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación.

!!GRACIAS!!