Capítulo 8: Criptografía de curvas elípticas

38
Outline Campos finitos Curvas el´ ıpticas Criptosistemas de curvas el´ ıpticas Criptograf´ ıa de Curvas El´ ıpticas Juan Manuel Garc´ ıa Garc´ ıa 14 de octubre de 2010 Juan Manuel Garc´ ıa Garc´ ıa Criptograf´ ıa de Curvas El´ ıpticas

Transcript of Capítulo 8: Criptografía de curvas elípticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Criptografıa de Curvas Elıpticas

Juan Manuel Garcıa Garcıa

14 de octubre de 2010

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Campos finitosDefinicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Curvas elıpticasCurvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Criptosistemas de curvas elıpticasCifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Campo finito

Un campo finito consiste de un conjunto finito de elementos Fsobre el cual se definen un par de operaciones binarias + y ·, lascuales satisfacen las siguientes propiedades aritmeticas:

1. (F , +) es un grupo abeliano, denominado el grupo aditivo delcampo.

2. (F ∗ = F − 0, ·) es un grupo abeliano, al que se denominagrupo multiplicativo del campo.

3. El producto tiene la propiedad distributiva respecto de lasuma, esto es, a · (b + c) = a · b + a · c .

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

El orden de un campo finito es el numero de elementos en elcampo. Existe un campo finito de orden q si y solo si q es lapotencia de un numero primo. Si q es la potencia de un primo,existe esencialmente un solo campo finito de orden q al cualdenotaremos como GF (q).

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

El campo finito GF (p)

Sea p un numero primo. El campo GF (p), denominado un campoprimo, esta compuesto por el conjunto de enteros {0, 1, . . . , p − 1}con las siguientes operaciones aritmeticas:

◮ Adicion: Si a, b ∈ GF (p), entonces a + b = r , donde r es elresiduo de la division de a + b entre p y 0 ≤ r ≤ p − 1. Estaoperacion es conocida como la suma modulo p.

◮ Multiplicacion: Si a, b ∈ GF (p), entonces a · b = s, donde s esel residuo de la division de a · b entre p. A esta operacion se leconoce como multiplicacion modulo p.

◮ Inversion: Si a un elemento de GF (p) diferente de cero, elinverso de a modulo p, denotado como a−1, es el entero unicoc ∈ GF (p) tal que a · c = 1.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Ejemplo 1 El campo finito GF (23). Los elementos de GF (23) son

{0, 1, 2, . . . , 22}.

Ejemplos de operaciones aritmeticas sobre GF (23) son:

◮ 12 + 20 = 9.

◮ 8 · 9 = 3.

◮ 8−1 = 3.

El elemento 5 es un generador de GF (23). Las potencias de 5 son:

50 = 1 51 = 5 52 = 2 53 = 10 54 = 4 55 = 2056 = 8 57 = 17 58 = 16 59 = 11 510 = 9 511 = 22512 = 18 513 = 21 514 = 13 515 = 19 516 = 3 517 = 15518 = 6 519 = 7 520 = 12 521 = 14 522 = 1.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

El campo finito GF (2m)

El campo GF (2m), denominado un campo finito de caracterısticados o campo finito binario, puede ser visto como un espaciovectorial de dimension m sobre el campo GF (2). Esto es, existen melementos α0, α1, . . . , αm−1 en GF (2m) tales que cada elementoα ∈ GF (2m) puede ser escrito en forma unica como:

α = a0α0 + a1α1 + · · · + am−1αm−1,

donde ai ∈ {0, 1}.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Al conjunto {α0, α1, . . . , αm−1} se le denomina una base deGF (2m) sobre GF (2). Dada una base tal, un elemento α delcampo puede ser representado por la cadena de bits(a0a1 · · · am−1). La adicion de elementos en el campo se realizamediante el XOR bit a bit de sus representaciones vectoriales.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Representacion en bases polinomiales

Seaf (x) = xm + fm−1x

m−1 + · · · + f2x2 + f1x + f0,

donde fi ∈ {0, 1} para i = 0, 1, . . . ,m − 1, un polinomio irreduciblede grado m sobre GF (2). Entonces f (x) define una representacionde base polinomial de GF (2m), la cual describiremos acontinuacion.El campo GF (2m) esta compuesto por todos los polinomios sobreGF (2) de grado menor a m,

GF (2m) ={am−1x

m−1 + am−2xm−2 + · · · + a1x + a0 : ai ∈ {0, 1}

}.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Al elemento am−1xm−1 + am−2x

m−2 + · · · + a1x + a0 usualmentese le denota por la cadena de bits (am−1am−2 · · · a1a0) de longitudm, de modo que

GF (2m) = {(am−1am−2 · · · a1a0) : ai ∈ {0, 1}} .

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Se define entonces las siguientes operaciones aritmeticas sobre loselementos de GF (2m) cuando se tiene una representacion de basepolinomial con reduccion polinomial f (x):

◮ Adicion: Si (am−1am−2 · · · a1a0) y (bm−1bm−2 · · · b1b0) sonelementos de GF (2m), entoncesa + b = c = (cm−1cm−2 · · · c1c0) donde ci = ai + bi mod 2.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

◮ Multiplicacion: Si (am−1am−2 · · · a1a0) y (bm−1bm−2 · · · b1b0)son elementos de GF (2m), entoncesa · b = r = (rm−1rm−2 · · · r1r0) donde el polinomiorm−1x

m−1 + rm−2xm−2 + · · · + r1x + r0 es el residuo de la

division de

(am−1xm−1 + · · · + a1x + a0) · (bm−1x

m−1 + · · · + b1x + b0)

entre f (x).

◮ Inversion: Si a es un elemento de GF (2m) diferente de cero, elinverso de a, denotado por a−1, es el elemento c ∈ GF (2m)tal que c · a = 1.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Una representacion en base polinomial para GF (24).

Seaf (x) = x4 + x + 1.

la reduccion polinomial. Entonces los 16 elementos de GF (24) son:

0 1 x x + 1(0000) (0001) (0010) (0011)

x2 x2 + 1 x2 + x x2 + x + 1(0100) (0101) (0110) (0111)

x3 x3 + 1 x3 + x x3 + x + 1(1000) (1001) (1010) (1011)

x3 + x2 x3 + x2 + 1 x3 + x2 + x x3 + x2 + x + 1(1100) (1101) (1110) (1111)

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Definicion de campo finitoCampo finito GF (p)El campo finito GF (2m)

Algunos ejemplos de operaciones aritmeticas sobre GF (24) son:

◮ (1101) + (1001) = (0100).

◮ (1101) · (1001) = (1111) dado que(x3 + x2 + 1) · (x3 + 1) = x6 + x5 + x2 + 1 y(x6 + x5 + x2 + 1) mod (x4 + x + 1) = x3 + x2 + x + 1.

◮ (1101)−1 = (0100).

El elemento α = x = (0010) es un generador del grupomultiplicativo GF (24)∗, dado que es de orden 15 como se muestraen el siguiente calculo:

α1 = (0010) α

2 = (0100) α3 = (1000) α

4 = (0011) α5 = (0110)

α6 = (1100) α

7 = (1011) α8 = (0101) α

9 = (1010) α10 = (0111)

α11 = (1110) α

12 = (1111) α13 = (1101) α

14 = (1001) α15 = (0001)

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Curvas elıpticas sobre GF (p)

Sea GF (p) un campo finito de caracterıstica p 6= 2, 3, y seana, b ∈ GF (p) tales que satisfacen la desigualdad 4a3 + 27b2 6= 0.Una curva elıptica E(a,b) sobre GF (p) se define como el conjuntode puntos (x , y) ∈ GF (p) × GF (p) que satisfacen la ecuacion

y2 = x3 + ax + b (1)

junto con un punto especial O, denominado el punto al infinito.Estos puntos forman un grupo abeliano bajo la operacion aditivaque describiremos a continuacion.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Aritmetica de puntos en curvas elıpticas sobre GF (p)

Sea E(a,b) una curva elıptica sobre GF (p) y sean P y Q dos puntossobre E(a,b). Se tiene que P + O = O + P = P. Sean P = (x1, y1)y Q = (x2, y2). Entonces −P = (x1,−y1) y P + (−P) = O. SiQ 6= −P entonces P + Q = (x3, y3) donde

x3 = λ2 − x1 − x2

y3 = λ(x1 − x3) − y1,

y

λ =

{(y2 − y1)/(x2 − x1) si P 6= Q(3x2

1 + a)/(2y1) si P = Q

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Curva elıptica sobre GF (23)

Sea p = 23 y considerese la curva elıptica E : y2 = x3 + x + 1definida sobre GF (23). Observese que4a3 + 27b2 = 4 + 27 = 31 ≡ 8 (mod 23). Los puntos en E son Oy los siguientes:(0,1) (0,22) (1,7) (1,16) (3,10) (3,13) (4,0)(5,4) (5,19) (6,4) (6,19) (7,11) (7,12) (9,7) (9,16)(11,3) (11,20) (12,4) (12,19) (13,7) (13,16) (17,3) (17,20)(18,3) (18,20) (19,5) (19,18).

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

El grupo E tiene 28 puntos (incluyendo al punto al infinito O). Lossiguientes son ejemplos de operaciones en el grupo:

◮ Sean P1 = (x1, y1) = (3, 10), P2 = (x2, y2) = (9, 7),P1 + P2 = (x3, y3). Tenemos que:

λ =y2 − y1

x2 − x1=

7 − 10

9 − 3=

−3

6= 11,

x3 = λ2 − x1 − x2 = 112 − 3 − 9 = 6 − 3 − 9 = −6 = 17,

y3 = λ(x1−x3)−y1 = 11(3−17)−10 = 11(9)−10 = 89 = 20.

Por lo tanto, P1 + P2 = (17, 20).

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

◮ Sea P1 = (x1, y1) = (3, 10), 2P1 = (x3, y3). Entonces

λ =3x2

1 + a

2y1=

3(32) + 1

20=

5

20=

1

4= 6,

x3 = λ2 − 2x1 = 62 − 6 = 30 = 7,

y3 = λ(x1 − x3)− y1 = 6(3−7)−10 = −24−10 = −11 = 12.

Entonces 2P1 = (7, 12).

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Curvas elıpticas sobre GF (2m)

Sea GF (2m) tal campo finito para alguna m ≥ 1.Una curva elıptica E(a,b) sobre GF (2m) se define como el conjuntode puntos (x , y) ∈ GF (2m) × GF (2m) que son soluciones de laecuacion

y2 + xy = x3 + ax2 + b (2)

donde a, b ∈ GF (2m) y b 6= 0, junto con el punto de la curva alinfinito, O. Los puntos de la curva forman un grupo abeliano bajola operacion aditiva que describiremos a continuacion.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Aritmetica de puntos en curvas elıpticas sobre GF (2m)

Sea E(a,b) una curva elıptica sobre GF (2m). Sea P = (x1, y1) unpunto sobre E(a,b). Definimos −P como (x1, x1 + y1), de modo queP + (−P) = (−P) + P = O. Ahora supongamos que P y Q sondiferentes de O y Q 6= −P. Sean P = (x1, y1) y Q = (x2, y2)entonces P + Q = (x3, y3) donde

x3 = λ2 + λ + x1 + x2 + a

y3 = λ(x1 − x3) + x3 + y1,

y

λ =

{(y2 + y1)/(x2 + x1) si P 6= Q(x2

1 + y1)/x1 si P = Q

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Curva elıptica sobre GF (24).

Considerese GF (24) representado por el trinomio irreduciblef (x) = x4 + x + 1.Considerese la curva elıptica E : y2 + xy = x3 + α4x2 + 1 sobreGF (24).Los puntos en E son O y los siguientes:(0, 1) (1, α6) (1, α13) (α3, α8) (α3, α13)(α5, α3) (α5, α11) (α6, α8) (α6, α14) (α9, α10)(α9, α13) (α10, α) (α10, α8) (α12, 0) (α12, α12).

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Si P = (α6, α8) y Q = (α3, α13), entonces algunos ejemplos deoperaciones aritmeticas son los siguientes:

◮ P + Q = (1, α13).

◮ 2P = (α10, α8).

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Descripcion geometrica de la suma P + Q = R

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Descripcion geometrica de la duplicacion 2 · P = R

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Potencias sobre curvas elıpticas

Sean E una curva elıptica y P un punto sobre la curva. Si n es unentero positivo, definimos a la potencia n de P, denotada por nP,como

nP = P + P + · · · + P︸ ︷︷ ︸

n veces

.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Logaritmo discreto sobre curvas elıpticas

Si P es un punto sobre E , definimos al orden de P, denotado porord(P), como al menor entero n tal que nP = O. Puede observarseque si n = ord(P) y k1 ≡ k2 (mod n) entonces k1P = k2P.Dados dos puntos P y Q sobre E , el problema del logaritmodiscreto sobre curvas elıpticas consiste en encontrar una k ,suponiendo que existe, tal que Q = kP.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Curvas elıpticas sobre GF (p)Curvas elıpticas sobre GF (2m)Aritmetica de puntos en curvas elıpticasLogaritmo discreto sobre curvas elıpticas

Los algoritmos conocidos a la fecha para resolver el problema dellogaritmo discreto sobre curvas elıpticas (PLDCE) son lossiguientes:

1. Busqueda Exhaustiva.

2. Algoritmo de Pohlig-Hellman.

3. Algoritmo de Paso-Enano Paso-Gigante.

4. Algoritmo Rho de Pollard.

5. Algoritmo Rho Paralelizado.

6. Algoritmo Lambda de Pollard.

7. Logaritmos Multiples.

8. Curvas elıpticas supersingulares.

9. Curvas definidas sobre un campo pequeno.

10. Criptoanalisis cuantico.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Configuracion del sistema y generacion de claves

En primer lugar se deben elegir un campo finito subyacente GF (q),una curva elıptica E definida sobre GF (q), y un punto P sobre Ede orden primo n. El campo GF (q), la curva E , el punto P y elorden n forman los parametros del sistema y son publicos.Para generar sus claves, cada principal en el sistema debe realizarel siguiente procedimiento:

1. Elegir un numero entero aleatorio d tal que 1 ≤ d < n.

2. Calcular el punto Q := dP.

3. La clave publica del principal consiste en el punto Q.

4. La clave privada del principal es el entero d .

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Esquema de cifrado

Si el principal B desea enviar el mensaje M en forma cifrada alprincipal A debe realizar el procedimiento que se describe acontinuacion:

1. Obtener la clave publica Q del principal A.

2. Representar al mensaje M por un elemento del campom ∈ GF (q).

3. Seleccionar un entero aleatorio k tal que 1 ≤ k < n.

4. Calcular el punto (x1, y1) := kP.

5. Calcular el punto (x2, y2) := kQ. Si x2 = 0 entonces ir al paso3.

6. Calcular c := m · x2.

7. Transmitir el dato cifrado (x1, y1, c) a A.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Esquema de descifrado

Una vez que A recibe el mensaje cifrado (x1, y1, c) de B, paradescifrarlo realiza los siguientes pasos:

1. Calcula el punto (x2, y2) := d(x1, y1), usando su clave privadad .

2. Recupera el dato m calculando m := c · x−12 .

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Firma digital

Supongamos que A desea firmar el mensaje M a enviar a B.Entonces A debe realizar el siguiente procedimiento:

1. Usar un algoritmo de hash para calcular el valor de hashe := H(M).

2. Seleccionar un entero aleatorio k tal que 1 ≤ k < n.

3. Calcular el punto (x1, y1) := kP y hacer r := x1 mod n.

4. Usar su clave privada para calcular s := k−1(e + rd) mod n.

5. A envia a B el mensaje M y su firma (r , s).

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Verificacion de la firma digital

Si el principal B desea verificar la firma (r , s) de A para el mensajeM, debe realizar los siguientes pasos:

1. Obtener la clave publica Q del principal A.

2. Si (r mod n) = 0 entonces rechazar la firma.

3. Calcular el valor de hash e := H(M).

4. Calcular s−1 mod n.

5. Calcular u := s−1e mod n y v := s−1r mod n.

6. Calcular al punto (x1, y1) := uP + vQ.

7. Aceptar la firma de A para el mensaje M si y solo si (x1 mod n) = r .

Si r = 0 entonces la ecuacion de la firma s = k−1(e + rd) no involucra la

clave privada d , y de ahı la condicion en el paso 4.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Algoritmo binario

Sea E una curva elıptica definida sobre un campo finito GF (q) ysea P un punto sobre E de orden n. Sea k un entero positivo.Deseamos calcular la potencia kP.Sea k = (bm−1bm−2bm−3 · · · b2b1b0)2 la expansion binaria de k ,donde m es tal que bm−1 = 1.Entonces

k = bm−12m−1 + bm−22

m−2 + ... + b222 + b12 + b0. (3)

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Utilizando la expansion de Horner tenemos

k = (· · · ((bm−12 + bm−2)2 + · · · + b1)2 + b0) (4)

de donde

kP = 2(· · · 2(2(2(bm−1P) + bm−2P) + · · · + b1P) + b0. (5)

Construyamos entonces la siguiente sucesion de puntos sobre lacurva,

P1 = 2P (6)

y

Pi =

{2Pi−1 si bm−i = 02Pi−1 + P si bm−i = 1

(7)

para i = 2, · · · , m. Podemos facilmente observar que Pm = kP.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

El algoritmo binario requiere de ⌊log k⌋ duplicaciones de puntos yde H(k) − 1 sumas.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

Cadenas de adicion substraccion

En las curvas elıpticas el inverso de un punto puede obtenersefacilmente.

◮ Para las curvas y2 = x3 + ax + b sobre GF (p) el inverso de(x , y) es (x ,−y).

◮ Para las curvas y2 + xy = x3 + ax2 + b sobre GF (2m) elinverso de (x , y) es (x , x + y).

Por lo tanto pueden considerarse representaciones de la forma

k =∑

i

ci2i (8)

donde ci ∈ {−1, 0, 1}. Una forma no adyacente (FNA) es unarepresentacion con cici+1 = 0. Se ha mostrado queH(FNA) ≈ m/3.

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas

OutlineCampos finitosCurvas elıpticas

Criptosistemas de curvas elıpticas

Cifrado y descifradoFirma digitalEvaluacion de potencias sobre curvas elıpticasTrabajo desarrollado

◮ Implementacion de primitivas criptograficas sobre curvaselıpticas definidas en el campo GF (2m)

◮ Desarrollado en Gnu C++ para el sistema operativo Linux◮ Portado posteriormente al sistema operativo Windows◮ Actualmente ha sido portado a PDA con Linux

Juan Manuel Garcıa Garcıa Criptografıa de Curvas Elıpticas