![Page 1: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/4.jpg)
Campos Finitos
![Page 5: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/5.jpg)
Campos Finitos
![Page 6: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/13.jpg)
Criptosistema ElGamal
![Page 14: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/23.jpg)
Diagrama de clasesElGamal
![Page 24: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/26.jpg)
Curvas recomendadas por NIST
![Page 27: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/29.jpg)
Implementación
![Page 30: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/30.jpg)
Implementación
![Page 31: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/31.jpg)
Implementación
![Page 32: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/33.jpg)
Tiempos de ejecución
![Page 34: Melesio Márquez Oropeza Alba M. Sánchez Gálvez Facultad de Ciencias de la Computación](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062301/5665b47c1a28abb57c91e397/html5/thumbnails/35.jpg)
!!GRACIAS!!