Criptofgrafia sobre curvas elípticas

19
CRIPTOGRAFÍA CLÁSICA Cifrado Asimétrico: Curvas Elípticas Docente: Juan Carlos Broncano Torres FISE-UTP Lima-Perú

Transcript of Criptofgrafia sobre curvas elípticas

CRIPTOGRAFÍA CLÁSICA

Cifrado Asimétrico: Curvas

Elípticas

Docente: Juan Carlos Broncano Torres FISE-UTP Lima-Perú

Curvas Elípticas

Curvas Elípticas en R

EJEMPLO

2322 xxy NO ES UNA CURVA ELIPTICA

Suma de puntos en una curva elíptica

El método geométrico que vamos a usar para definir la suma en E(R) se denomina método De la cuerda/tangente. El primer investigador en sugerir su uso sobre una curva cubica fue el matemático alemán Jacobi en un trabajo publicado en 1835

Expresiones analíticas del punto suma

Múltiplos de un punto de una curva

Curvas elípticas sobre cuerpos finitos

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+6mod 11 y luego se trata de resolver y2 ≡ x3+x+6mod 11. Para cada z=x3+x+6mod 11 se testea primero si z ∈ RC(11) (residuo cuadrático mod11, calcular símbolo de Jacobi [Legendre]). Dado que 11≡3mod 4 existe una fórmula explícita para raíces cuadradas modulares de residuos cuadráticos modulo p , se aplica: ±z(11+1)/4 mod 11 = ±z3 mod 11 Los resultados se muestran en la placa siguiente, observar que y2=11-y1

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).

Por Ejemplo: computar 2 α=(2,7)+(2,7) λ = (3.22+1/2.7 )(mod 11) = 13*14-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)

De esta forma se obtienen los 12 elementos no nulos de E, probando que (2, 7) es un generador: α=(2, 7) 2 α=(2, 4) 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 card(E) será (Hasse):

ppEcardpp 2121

Una vez computado E se necesita hallar un subgrupo cíclico H en el cual el problema del logaritmo discreto sea clase NP o NP-Completo a fin de poder aplicar el criptosistema ELGAMAL generalizado.

Miller y Koblitz proponen el Problema del Logaritmo Discreto Elíptico (PLDE):

El Problema del Logaritmo Discreto Elíptico

El PLDE ofrece las siguientes ventajas sobre el PLD clasico:

Un ejemplo clásico es el algoritmo de Menezes–Okamoto– Vanstone (MOV, 1993), que permite reducir el PLD para una curva elíptica E, definida sobre el cuerpo finito Fq, al PLD sobre un cuerpo extensión Fqk, para un cierto número k (dependiente de E) al cual se denomina grado de inmersión de la curva E. El algoritmo MOV utiliza como herramienta el denominado pairing de Weil. Los pairing (de Weil, Tate, etc) son aplicaciones bilineales definidas sobre una curva elíptica y con valores en un grupo cíclico. La utilidad criptoanalıtica del algoritmo MOV depende del grado de inmersión k, ya que solo resulta eficiente si k es pequeño. En particular Menezes, Okamoto y Vanstone muestran que esto ocurre para las curvas elípticas denominadas supersingulares, en las que el valor de k es a lo sumo 6. Por ello tales curvas se consideran vulnerables para criptosistemas basados en el PLD

Alfred J. Menezes Scott A. Vanstone

En el caso de las curvas elípticas, su rica estructura matemática es un arma de doble filo, ya que puede ser explotada también por el criptoanálisis.

Masashi. Okamoto

Cabe señalar que, sin embargo, las curvas supersingulares son idoneas para su empleo en otra rama de la Criptografía, la Criptografía Basada en la Identidad. La idea de Criptografía Basada en la Identidad fue introducida por A. Shamir. En ella la clave publica de un usuario puede deducirse de su nombre (o cualquier otra información relacionada con su identidad). Shamir propuso esquemas de firma e intercambio de claves basadas en la identidad, pero no sistemas de cifrado. D. Bonech y M. Franklin, proponen un criptosistema basado en la identidad, utilizando el pairing de Weil sobre curvas elípticas.

D. Bonech

M. Franklin

H. Weil

Actualmente existen propuestas de criptosistemas, esquemas de firma y esquemas de intercambio de claves basadas en pairings. A diferencia de los criptosistemas basados en el PLD elíptico la Criptografía basada en la identidad requiere curvas elípticas con grado de inmersión pequeño, las denominadas pairing friendly curves.

Otra herramienta, propia de las curvas elıpticas, que permite el diseño de criptosistemas y protocolos criptograficos son las isogenias. Una isogenia es una aplicación lineal entre dos curvas elípticas

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 card(E) es primo o el producto de dos primos, E es un grupo cíclico con índice de grupo cíclico.

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 número aleatorio (secreto) k ∈ Z|H| , y para x=(x1, x2) ∈ Zp* x Zp* se define ek(x,k) = (y0, y1, y2) donde: 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)

EJEMPLO

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)

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)= (9, 1) que era el texto

plano.

Cifrado ElGamal elíptico

Criptosistemas con curvas elípticas

Descifrado ElGamal elíptico

El criptosistema basado en curvas elípticas más ampliamente respaldado es el llamado IntegratedEncryptionScheme(IES).

IES ha sido aprobado como estándar por distintas entidades: ANS X9F1, CRYPTREC, IEEE P1363, NESSIE, NSA Suite B.

CURVAS ELÍPTICAS Y TARJETAS INTELIGENTES

Aunque las primeras tarjetas de crédito se remontan a 1950 (Diners Club), las Tarjetas Inteligentes (Smart Cards), con chip incorporado, se popularizan a partir de 1980 (en 1986 se define el standard ISO para ellas) y se integran en la telefonía móvil (Tarjetas SIM: Subscriber Identificatio Module) a partir de 1990.

Los usos actuales de las tarjetas hacen necesaria la implamentación en las mismas de sistemas criptográficos (esquemas de cifrado, certificados, firma digital, etc).

La posibilidad ya mencionada de claves mas cortas y la flexibilidad en la elección de las mismas, convierten a las curvas elípticas en candidatos privilegiados para la Criptografía implementada en tarjetas inteligentes:

Además de los ataques criptoanalíticos específicos, propios del sistema criptográfico concreto utilizado, la Criptografía en tarjetas es susceptible de un tipo de ataques activos denominados Side Channel Attacks, estos ataques se basan en que la alimentación y el reloj de las tarjetas inteligentes son proporcionados por el lector.

Es posible entonces, si se tiene acceso a la tarjeta y se dispone de instrumentos adecuados, medir el consumo, tiempo de computación, etc de la tarjeta, mientras esta realiza operaciones criptográficas. Tal información puede ser usada por un atacante para obtener la clave privada guardada en la tarjeta.

Zero-Value Point Attacks

L. Goubin, 2003, muestra como un atacante puede detectar, midiendo el consumo de la tarjeta, la aparición de puntos de la curva con abscisa u ordenada nulos y después de varias ejecuciones, conseguir la clave secreta d almacenada en la tarjeta. De forma mas precisa, suponiendo que un cierto bit de la clave d es 0 o 1, el atacante intenta crear un punto con alguna de sus coordenadas cero. Si tal punto realmente aparece su suposición era correcta. Posteriormente T. Akishita y T. Takagi (LNCS 2851, Springer, 2003) generalizan el ataque de Goubin a curvas en las que algunos parámetros intermedios usados en el doblado y suma de puntos de la curva elíptica son cero.