Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

Criptograf�a de Curvas El�pticas: Algoritmo del Gamal by wfo414d8

VIEWS: 0 PAGES: 35

									            Melesio Márquez Oropeza

               Alba M. Sánchez Gálvez

Facultad de Ciencias de la Computación
Criptografía con Curvas
Elípticas
 Conceptos

 Criptografía de Llave pública tipo ElGamal

 Implementación

 Resultados

 Consideraciones Finales
Curva Elíptica
 Se 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).
Campos Finitos
Campos Finitos
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
Curva Elíptica (y2 = x3 + ax + b)
 Suma: método de la cuerda y tangente
Curva Elíptica (y2 = x3 + ax + b)
 Multiplicación (método binario)
Criptografía con Curvas
Elípticas
 Conceptos

 El algoritmo de ElGamal

 Implementación

 Resultados

 Consideraciones Finales
Criptografía de Llave Pública
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.
Criptosistema ElGamal
 Se 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
Criptosistema ElGamal
Criptosistema ElGamal
 1) Se obtiene la Clave Pública del receptor


 2)Se convierte el mensaje a un punto ME(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
Criptosistema ElGamal
 Para obtener el mensaje:

       M = M2 – sM1

    Lo anterior funciona ya que :


 M2 – sM1 = (M + kB) – s(kP) = M + skP – skP = M
Criptosistema ElGamal
 Los 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
Criptosistema ElGamal
 Es importante generar un k aleatorio distinto para cada
  mensaje
 Si 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’
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)
Ataques conocidos
 POLLARD’S RHO ALGORITHM.


Versión aleatorizada del Baby-step Gigant step

                                pasos
Criptografía con Curvas
Elípticas
 Conceptos

 El algoritmo de ElGamal

 Implementación

 Resultados

 Consideraciones Finales
Arquitectura
            CRIPTOSISTEMA


                              C
                              o
     Aritmética en E(Fp)      d
                              i   Mensaje
                              f
                              i
                              c
                              a
    Protocolo Criptográfico   d
                              o
                              r
Diagrama de clases
                     Aritmética
           Curva

 Punto
Diagrama de clases
         ElGamal
Implementacion Aritmetica
 Librería JAVA : BigInteger


 Funciones de soporte para aritmética de precisión
  arbitraria.
Ej.
Implementación Aritmética
 Archivo que contiene los parámetros de una curva
Curvas recomendadas por NIST
Implementacion El Gamal
 Constructor de Clase:




 La aritmética es transparente al algoritmo
Implementación Cifrador
 Convertir una cadena de texto a elemento de Fp:




     M - es el mensaje convertido a elemento de Fp
               L -es el tamaño del alfabeto
          Ci – El carácter i-ésimo de la cadena
Implementación
Implementación
Implementación
Criptografía con Curvas
Elípticas
 Conceptos

 El algoritmo de ElGamal

 Implementación

 Resultados

 Consideraciones Finales
Tiempos de ejecución
Conclusiones
 La 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
!!GRACIAS!!

								
To top