Criptografia_avanzada_(Modulo_4)

download Criptografia_avanzada_(Modulo_4)

of 68

description

Apuntes Universidad Oberta de Cataluña (Máster seguridad informática)

Transcript of Criptografia_avanzada_(Modulo_4)

  • Criptografa concurvas elpticasLloren Huguet Rotger

    Josep Rif Coma

    Juan Gabriel Tena Ayuso

    PID_00200952

  • Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario auna licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa deCreative Commons. Podis copiarlos, distribuirlos y transmitirlos pblicamente siempre que citisel autor y la fuente (FUOC. Fundaci per a la Universitat Oberta de Catalunya), no hagis un usocomercial y no hagis una obra derivada. La licencia completa se puede consultar enhttp://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es

  • CC-BY-NC-ND PID_00200952 Criptografa con curvas elpticas

    ndice

    Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    1. Curvas y puntos racionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.1. Definiciones previas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.2. Plano proyectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.3. Curvas afines y proyectivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    1.4. Puntos racionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    1.4.1. Puntos racionales de una curva de grado 1 . . . . . . . . . . . 17

    1.4.2. Puntos racionales de una curva de grado 2 . . . . . . . . . . . 17

    1.4.3. Puntos racionales de una curva de grado 3 . . . . . . . . . . . 18

    1.4.4. Puntos racionales de una curva de grado 4 . . . . . . . . . . . 19

    2. Geometra de las curvas elpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2.1. Ecuacin de Weierstrass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2.2. La ley de grupo de una curva elptica . . . . . . . . . . . . . . . . . . . . . . . . . 24

    2.2.1. Ley de grupo en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.2.2. Ecuacin general de P + Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3. Curvas elpticas sobre cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . 34

    3.1. Nmero de puntos de una curva elptica . . . . . . . . . . . . . . . . . . . . . . 34

    3.2. Extensin de una curva sobre un cuerpo a una curva sobre un

    cuerpo extendido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    4. El uso de las curvas elpticas en criptografa . . . . . . . . . . . . . . . . . 40

    4.1. El problema del logaritmo elptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    4.2. Eleccin de la curva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    4.3. Asignacin de mensajes a puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4.3.1. Creacin de una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4.3.2. Mtodo de curvas entrelazadas . . . . . . . . . . . . . . . . . . . . . . . 44

    5. Criptografa y protocolos criptogrficos basados en curvas

    elpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5.1. Protocolos criptogrficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5.1.1. Protocolo de Diffie-Helman . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5.1.2. Protocolo de tres-pasos de Shamir . . . . . . . . . . . . . . . . . . . . 49

    5.2. Criptosistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    5.3. Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    5.4. Firma digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    5.5. Comparacin de los sistemas de clave pblica . . . . . . . . . . . . . . . . 53

  • CC-BY-NC-ND PID_00200952 Criptografa con curvas elpticas

    5.5.1. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    5.5.2. Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    6. ECC estndares y aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    6.1. ECC estndares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    6.1.1. Estndares principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    6.1.2. Estndares de aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    6.2. Aplicaciones de la ECC. Tarjetas inteligentes . . . . . . . . . . . . . . . . . . 59

    6.2.1. Restricciones de las tarjetas inteligentes . . . . . . . . . . . . . . 60

    6.2.2. Ventajas de la ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    6.2.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    Ejercicios de autoevaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

  • CC-BY-NC-ND PID_00200952 5 Criptografa con curvas elpticas

    Introduccin

    La teora de curvas elpticas sobre cuerpos finitos encuentra aplicaciones en

    diversas disciplinas, como por ejemplo la teora de nmeros o la criptografa.

    Resultan sorprendentes sus relaciones con problemas tan diversos como la

    realizacin de tests de primalidad, la factorizacin de nmeros enteros o la

    demostracin del ltimo teorema de Fermat, entre otras.

    Veamos unas pinceladas de estas relaciones para centrarnos despus en la apli-

    cacin de las curvas elpticas a la criptografa. En un principio podemos pensar

    en una curva elptica como el conjunto de soluciones de una ecuacin de la

    forma:

    y2 = x3 + ax + b.

    Relacionadas con la teora de nmeros podemos destacar dos aplicaciones:

    El problema de losnmeros congruentes

    Fue enunciado por primeravez por el matemtico persaal-Karaji (hacia el siglo X a.C.). Actualmente, la solucindel problema depende de laconjetura deBirch-Swinnerton-Dyer sobrecurvas elpticas. El problemaes uno de los siete problemasdel milenio que el ClayMathematics Institute dot,en el ao 2000, con unpremio de un milln dedlares para quien aportara lasolucin de cualquiera deellos.

    Nmeros congruentes. Un nmero racional N se dice que es congruentesi existe un tringulo con aristas racionales cuya rea es N. Durante mucho

    tiempo el problema ha permanecido sin que se conociese ningn algorit-

    mo capaz de resolverlo, es decir, de comprobar si un nmero dado N era

    congruente o no. Actualmente, est demostrado que N es un nmero con-

    gruente si y solo si la curva elptica y2 = x3 N2x = x(x N)(x + N) tiene

    algn punto racional diferente de (0,0), (N,0) y del punto del infinito dela curva.

    Teorema de Fermat. En 1985 Gerhard Frey observ que si An + Bn = Cn eraun contraejemplo al ltimo teorema de Fermat, entonces la curva elptica

    y2 = x(xAn)(x+Bn) tena por discriminante (AnBn(An +Bn))2 = (ABC)2n.

    Discriminante

    El discriminante de una curvaelptica y2 = x3 + ax + b vienedado por = 4a3 + 27b2 y esnulo si y solo si la curva tienepuntos singulares (puntos enlos que las dos derivadasparciales se anulan).

    Tal curva contradeca la denominada conjetura de Taniyama. Posterior-

    mente, A. Wiles prob que ninguna curva poda contradecir esta conjetura

    y, por lo tanto, qued probado que no existe ningn contraejemplo al l-

    timo teorema de Fermat.

    En el campo de la criptografa, la aplicacin de estas curvas la podemos en-

    contrar en la descomposicin de un nmero en factores, en los sistemas crip-

    togrficos y en los tests de primalidad, estos ltimos desarrollados por Bosma,

    Goldwasser-Killian, Atkin y Lenstra entre otros.

    H.W. Lenstra ha obtenido un nuevo mtodo de factorizacin que es, en mu-

    chos aspectos, mejor que los conocidos anteriormente. La mejora y eficiencia

  • CC-BY-NC-ND PID_00200952 6 Criptografa con curvas elpticas

    de este nuevo mtodo todava no es significativo en la prctica (el tiempo para

    factorizar contina siendo el mismo) pero, an as, el hecho de haber encon-

    trado un mecanismo diferente hace que los sistemas criptogrficos basados en

    el problema de la factorizacin no resulten, al fin y al cabo, tan seguros co-

    mo parecan. El algoritmo de factorizacin con curvas elpticas de Lenstra es

    anlogo al mtodo clsico denominado p 1 de Pollard.

    Los avances en estos mtodos as como en las prestaciones de los ordenado-

    res exigen nmeros cada vez mayores a fin de poder garantizar la seguridad

    de los sistemas criptogrficos, lo que representa un grave inconveniente a la

    hora de implementar los procesos de generacin y distribucin de las claves

    secretas. Este problema se soluciona, en parte, usando sistemas de cifrado con

    curvas elpticas. Estos sistemas ofrecen un nivel de seguridad equivalente al

    de los mtodos tradicionales (RSA, ELGamal,...) pero utilizando un nmero

    menor de dgitos. El resultado son claves ms pequeas, caracterstica que re-

    sulta especialmente til para la seguridad en aplicaciones basadas en circuitos

    integrados y tarjetas inteligentes.

  • CC-BY-NC-ND PID_00200952 7 Criptografa con curvas elpticas

    Objetivos

    En los materiales didcticos de este mdulo el estudiante encontrar los con-

    tenidos necesarios para alcanzar los objetivos siguientes:

    1. Conocer el concepto de curva en el espacio proyectivo y en el espacio afn.

    2. Conocer el concepto de curva elptica sobre un cuerpo finito y los parme-

    tros que la definen.

    3. Conocer el uso de las curvas elpticas en criptografa y los principales pro-

    blemas que hay que tener en cuenta en su utilizacin.

    4. Conocer los principales algoritmos y protocolos basados en curvas elpticas

    (Diffie-Helman, Shamir, ElGamal, firma digital).

    5. Conocer los estndares y las aplicaciones ms corrientes que utilizan las

    curvas elpticas.

  • CC-BY-NC-ND PID_00200952 9 Criptografa con curvas elpticas

    1. Curvas y puntos racionales.

    1.1. Definiciones previas

    Ver tambin

    En el mdulo Cuerposfinitosde esta asignaturaencontraris de formadetallada algunos de losconceptos que tambinusaremos en este mdulo.

    Ya hemos estudiado de forma detallada algunos de los conceptos que tambin

    usaremos en este mdulo. Vamos a recordar solo algunos:

    La caracterstica de un cuerpo K es el mnimo nmero p tal que para todox K se cumple que 1 + 1 + + 1| {z }

    p

    = 0, donde 0 es el elemento neutro de la

    suma y 1 es el elemento neutro del producto en el cuerpo K. Escribiremos

    char(K) = p.

    Si para todo n N, 1 + 1 + + 1| {z }n

    6= 0 decimos que char(K) = 0.

    Por ejemplo, si K = Fq donde q = pm, p primo, entonces char(K) = p. Para los cuerposQ de los nmeros racionales, R de los nmeros reales y C de los nmeros complejos

    se tiene, char(Q) = char(R) = char(C) = 0.

    Sea K un cuerpo y x K = K {0}. El orden de x es el mnimo nmeror > 0 tal que xr = 1.

    Sea K un cuerpo. La clausura algebraica de K es el cuerpo ms pequeoque contiene a K y tal que cualquier polinomio con coeficientes en K tiene

    todas las races en este cuerpo.

    1.2. Plano proyectivo

    .

    Definicin 1.1 (Plano afn y plano proyectivo).

    Sea K un cuerpo. El plano afn sobre K, que denominaremos A2 (o A2(K))

    es el conjunto de puntos de K2. El plano proyectivo sobre K, P2 (o P2(K)),

    es el conjunto de puntos (x,y,z) K3 {(0,0,0)} con la relacin de equi-valencia tal que:

    (x,y,z) (x,y,z) si, y solo si, K = K {0} tal que x = x, y = y,z = z.

  • CC-BY-NC-ND PID_00200952 10 Criptografa con curvas elpticas

    As definimos P2 = K3 {0}/ . Cada una de las clases de equivalencia se llamapunto proyectivo y lo denotaremos por (x : y : z). Para todo K, diremosque (x,y,z) y (x,y,z) son dos representantes de la misma clase (x : y : z).

    Nota

    Anlogamente se define elespacio proyectivo

    n-dimensionalPn = Kn+1 {0}/ , cuyasclases de equivalencia sedenominan puntos y sedenotan por(x0 : x1 : : xn).

    Dado un punto proyectivo (x0 : x1 : x2) sabemos que para algn i = 0,1,2 xi 6= 0.Definimos el conjunto abierto Ui = {(x0 : x1 : x2)|xi 6= 0}

    Sea (x : y : z) U3. Existe un nico representante de este punto de la forma( xz ,

    yz ,1). De este modo, dado que z 6= 0, podemos identificar puntos proyectivos

    con puntos afines:

    .

    Algoritmo 1.2.

    P2 U3 K2(x : y : z) ( xz , yz )

    Los puntos proyectivos con z = 0 forman lo que se denomina recta del infinito.

    Observacin

    El paso del plano proyectivoal plano afn se podra hacercon cualquiera de las trescoordenadas. En general, loharemos con la z o con la x0si escribimos los puntos conla notacin (x0 : x1 : : xn).

    .

    Definicin 1.3 (Polinomio homogneo).

    Un polinomio F(z0, . . . ,zn) K[z0, . . . ,zn] diremos que es un polinomiohomogneo si todos sus monomios tienen el mismo grado. Denotare-

    mos por F[z0, . . . ,zn] un tal polinomio.

    Ejemplo 1.1.

    z0z3 z22 es un polinomio homogneo de grado 2.

    z1 z3 es un polinomio homogneo de grado 1.

    z23 es un polinomio homogneo de grado 3.

    Dado F[x,y,z], un polinomio homogneo de grado r, no tiene sentido dar valo-

    res a F en el plano proyectivo. Por ejemplo, si F[x,y,z] = x3 +3y2z+ z3, entonces

    (1 : 1 : 1) = (2 : 2 : 2), pero F[1,1,1] = 5 6= 40 = F[2,2,2].

    Ahora bien, s que tiene sentido decir que F[x,y,z]=0 puesto que si 6= 0,F[x,y,z] = rF[x,y,z]; en consecuencia, si F es un polinomio homogneo de

    grado r, entonces F[x,y,z] = 0 si y solo si F[x,y,z] = 0.

  • CC-BY-NC-ND PID_00200952 11 Criptografa con curvas elpticas

    Relacin afn-proyectivo

    Consideremos como antes el conjunto Ui := {(x0 : : xn) Pn|xi 6= 0} Pn.

    Relacin de coordenadas entre los puntos considerados en el espacio afn y

    en el espacio proyectivo.

    .

    Algoritmo 1.4.

    An Ui Pn(a1, . . . ,an) (a1; . . . ; ai1; 1; ai+1; . . . ; an)( z0zi , . . . ,

    zi1zi,zi+1

    zi, . . . , znzi ) (z0; . . . ; zn)

    Relacin de polinomios. Dado f (x1, . . . ,xn) K[x1, . . . ,xn] en el espacio afn, setiene F[x0, . . . ,xn] K[x0, . . . ,xn], su homogeneizado en el espacio proyectivo,el cual se obtiene a partir de f multiplicando por potencias de x0 cada mo-

    nomio hasta conseguir un polinomio homogneo de grado gr(f ). Recproca-

    mente, para pasar de un polinomio del espacio proyectivo a uno en el espacio

    afn, daremos valor 1 a la coordenada x0 (o a la coordenada que previamente

    hayamos fijado).

    Ejemplo 1.2.

    Coordenadas:

    A2 U2 P2(1,2) (x : y : z) = (1 : 2 : 1)(2, 1

    2) (x : y : z) = (4 : 1 : 2)

    Polinomios:

    K[x,y] K[x,y,z]x2 + x3 + xy x2z + x3 + xyzx + x2y + 1 xz2 + x2y + z3

    1.3. Curvas afines y proyectivas

    Recordar

    Un cuerpo K es la clausuraalgebraica de un cuerpo K siK K y K mnimo, con lapropiedad de que cualquierpolinomio de K[x] sedescompone en factores degrado uno.

    .

    Definicin 1.5 (Curva afn y curva proyectiva).

    Sean f (x,y) K[x,y] y F[x,y,z] K[x,y,z] no constantes. Entonces el con-junto Cf (K) = {(x,y)|f (x,y) = 0} se denomina curva afn y CF(K) = {(x :y : z)|F[x,y,z] = 0} curva proyectiva.

  • CC-BY-NC-ND PID_00200952 12 Criptografa con curvas elpticas

    .

    Definicin 1.6 (Componentes irreducibles de una curva).

    Sea f K[x,y]. Podemos descomponer f en producto de factores irredu-cibles f = f e11 . . . f

    ess . (Del mismo modo para F K[x,y,z]).

    Con esta descomposicin, podemos escribir la curva como unin de sus

    componentes irreducibles: Cf (K) = Cf1 (K) Cfs(K).

    .

    Definicin 1.7 (Punto singular).

    Sea C = Cf (K) A2 una curva afn y p = (a,b) C. Decimos que p es unpunto mltiple o punto singular de C si satisface las ecuaciones:

    8>>>>>>>:

    f

    x(p) = 0

    f

    y(p) = 0

    Recordar

    La notacinf

    x(p) significa

    calcular la derivada parcial def (x) respecto a la variable x ydar valores en el punto p.

    .

    Definicin 1.8 (Curva no singular).

    Una curva es no singular si todos sus puntos son simples (o sea, no

    singulares).

    .

    Definicin 1.9 (Recta tangente).

    Sea p = (a,b) C = Cf (K) un punto simple. Definimos la recta tangentea C en el punto p como la recta dada por la ecuacin:

    f

    x(p)(x a) +

    f

    y(p)(y b) = 0

    Sea C = Cf (K), p = (a,b). Podemos escribir f como suma de componentes ho-

    mogneas:

    f (x a,y b) = f0(x a,y b) + + fm(x a,y b),

    donde gr(fi(x a,y b)) = i.

  • CC-BY-NC-ND PID_00200952 13 Criptografa con curvas elpticas

    Observacin

    mp(C) = 0 p 6 C. mp(C) = 1 p es un

    punto simple de C. Si mp(C) = 2, decimos

    que p es un punto doble.

    .

    Definicin 1.10 (Multiplicidad en un punto).

    Definimos la multiplicidad de C, en el punto p = (a,b), como el mnimo

    k tal que fk(xa,yb) 6= 0 (como polinomio) y la denotaremos pormp(C).

    Observacin

    Ntese que los factores y en la Definicin1.11 notienen por qu tener loscoeficientes en el cuerpo K,sino que pueden tenerlos enalguna extensin cuadrticade K.En el caso de un nododistinguiremos un nodoracional (si y tienencoeficientes en K), de unnodo irracional (en casocontrario).

    .

    Definicin 1.11 (Nodos y cspides).

    Si mp(C) = 2, entonces f2(x a,y b) se puede descomponer en producto

    de 2 factores: f2(x a,y b) = .

    Si 6= , diremos que p es un nodo. Si = , diremos que p es una cspide.

    Donde la anterior igualdad o desigualdad de y se entiende salvo un

    factor constante.

    Ejemplo 1.3.

    Supongamos que char(K) 6= 2,3. Consideramos la curva C : y2 = x3 + ax2. De otro modo,sea f (x,y) = x3 + ax2 y2, donde a es un valor constante a K.

    La curva C, tiene puntos singulares? Y, en caso afirmativo, qu multiplicidad tienen?

    Para responder la primera cuestin, tal y como hemos dicho en la definicin 1.7,calcularemos las derivadas parciales teniendo en cuenta que, adems, el valor de la

    funcin f (x,y) debe ser cero en todos los puntos de la curva:

    8>>>>>>>>>>>>>>>>>>>:

    f

    x= 3x2 + 2ax = 0

    f

    y= 2y = 0

    f = x3 + ax2 y2 = 0

    Resolviendo este sistema encontramos y = 0, x(3x + 2a) = 0, x3 + ax2 y2 = 0.Finalmente, y = 0, x = 0. Por lo tanto, (0,0) es un punto singular.

    Para estudiar la multiplicidad del punto singular (0,0) utilizaremos la definicin1.10,pero antes descompongamos f (x,y) en suma de funciones homogneas f0(x 0,y 0),f1(x 0,y 0), f2(x 0,y 0), f3(x 0,y 0), de grados 0,1,2,3, respectivamente.

    Vemos que f (x 0,y 0) = f (x,y) = 0 + 0 + (ax2 y2) + x3.

    Por lo tanto, f0(x,y) = f1(x,y) = 0, f2(x,y) = ax2 y2 = (

    ax + y)(

    ax y), f3(x,y) = x

    3.

    As, de acuerdo con la definicin 1.10, vemos que mp(C) = 2 y, por lo tanto, p = (0,0)es un punto doble. Ahora, de acuerdo con la Definicin 1.11 vemos que para a = 0 elpunto p = (0,0) es una cspide y para todos los valores a 6= 0, el punto p = (0,0) es unnodo. Dependiendo de si

    a K o no el nodo ser racional o irracional.

    Las figuras siguientes corresponden a la curva y2 = x3 + ax2 para a = 1 y a = 0,respectivamente.

  • CC-BY-NC-ND PID_00200952 14 Criptografa con curvas elpticas

    Nodo racional en el punto (0,0) de la curva y2 = x3 + x2

    y

    x

    1

    0,5

    0

    0,5

    1

    1 0,8 0,6 0,4 0,2 0,2 0,4 0,6

    Cspide en el punto (0,0) de la curva y2 = x3

    y

    x

    1

    0,5

    0

    0,5

    1

    1

    0,80,2 0,4 0,6

    Una pregunta que quizs nos hayamos hecho a estas alturas es: por qu nos

    interesar mirar las curvas en el plano proyectivo?

    Supongamos la misma curva que en el ejemplo anterior para el caso a = 2. La

    podemos ver como una curva proyectiva dada por un polinomio homogneo,

  • CC-BY-NC-ND PID_00200952 15 Criptografa con curvas elpticas

    F[x,y,z] = x3 + 2x2z y2z = 0. Podemos pasar la curva proyectiva al plano afn

    dando el valor z = 1; as, obtenemos la curva f (x,y) = x3 + 2x2 y2 = 0, que est

    dada por la misma ecuacin que ya habamos visto en el ejemplo anterior y

    de la que ya sabemos que el punto (x = 0,y = 0) es un punto singular. Para

    evitar este punto singular podramos pasar al afn usando otra coordenada;

    por ejemplo, y = 1, obteniendo una nueva curva: g(x,z) = x3 +2x2z z = 0, en

    la que el punto (x = 0,z = 0) pertenece a la curva y no es singular.

    Observacin

    El uso de coordenadasproyectivas tambin permiterealizar clculos en curvaselpticas sobre cuerpos finitossin necesidad de haceroperaciones de divisin en elcuerpo. Esto es importante,puesto que las operacionesde dividir soncomputacionalmentecostosas.

    Estas dos curvas afines (las dadas por f y g) son curvas asociadas a la mis-

    ma curva proyectiva. As, aunque una de las curvas afines contenga un punto

    singular podramos encontrar otra curva afn asociada a la misma curva pro-

    yectiva que no tenga ninguno.

    .

    Teorema 1.12 (Teorema de Bezout).

    Sean C = {(x : y : z) P2|F[x,y,z] = 0} y D = {(x : y : z) P2|G[x,y,z] = 0}dos curvas proyectivas de grados m y n respectivamente (m = gr(F),

    n = gr(G)). Si C y D no tienen componentes irreducibles en comn,

    entonces C y D tienen mn puntos en comn contando sus multiplici-

    dades.

    Ejemplo 1.4.

    Dos rectas diferentes (curvas proyectivas de grado 1) se cortan siempre en un punto.En efecto, si las consideramos en el plano afn, sabemos que dos rectas diferentes o

    bien se cortan en un punto o bien son paralelas y, en este caso, se cortan en un punto

    de la recta del infinito del plano proyectivo.

    Dos cnicas diferentes (curvas proyectivas de grado 2) se cortan exactamente en 4puntos.

    .

    Corolario 1.13.

    Una cnica definida por un polinomio irreducible F de grado 2, no

    tiene puntos singulares.

    Demostracin: Una cnica es una curva proyectiva de grado 2. Suponemos

    que esta cnica tiene un punto singular. Tomemos otro punto de la cnica y

    consideramos la recta que pasa por estos dos puntos; esta recta es una curva

    proyectiva de grado 1.

    Nuestra cnica es una curva proyectiva de grado 2; por lo tanto, por el teorema

    de Bezout, la recta y la cnica tienen 2 puntos en comn, pero como el punto

    singular tiene multiplicidad ms grande o igual que 2, el nmero de puntos en

  • CC-BY-NC-ND PID_00200952 16 Criptografa con curvas elpticas

    comn ser de 3 o ms. Ello contradice el teorema de Bezout, a menos que la

    recta y la cnica tengan una componente irreducible en comn, componente

    que debera ser la propia recta. Pero dado que F es irreducible, la cnica solo

    tiene una componente irreducible

    1.4. Puntos racionales

    El cuerpo de los nmeros racionales lo representaremos por Q.

    .

    Definicin 1.14 (Sucesin fundamental).

    Una sucesin de nmeros an, con ai Q decimos que es una sucesinfundamental si > 0 n N tal que |an am| < , m,n > n, donde lanorma es la norma eucldea.

    Observacin

    El cuerpo R de los nmerosreales se puede definir comoel conjunto de todas lassucesiones fundamentales,mdulo una cierta relacinde equivalencia.

    .

    Definicin 1.15 (Cuerpo p-dico).

    Sea p primo. Todo nmero a Q se puede escribir de la forma a =prm

    n, donde mcd(m,p) = 1 y mcd(n,p) = 1. Entonces, definimos la norma

    p-dica de a como: |a|p = 1pr.

    Definimos el cuerpo p-dico Qp como el conjunto de todas las suce-

    siones fundamentales con esta norma, mdulo una cierta relacin de

    equivalencia.

    .

    Definicin 1.16 (Puntos racionales de una curva).

    Sea K un cuerpo, y C = Cf (K) una curva. Decimos que p = (p1,p2) es un

    punto racional de la curva si f (p) = 0 y p K2.

    .

    Teorema 1.17 (Teorema de Legendre).

    Una cnica (con coeficientes en Q) tiene un punto racional si y solo

    si tiene un punto racional sobre R y sobre los cuerpos Qp para todo

    primo p.

    Observacin

    El Teorema1.17 es falso paracurvas de grado mayor que2. Para curvas de grado 2, escierto para cualquier nmerode variables, es decir, curvasplanas o no, definidas poruna forma cuadrtica(Hasse-Minkowski).

  • CC-BY-NC-ND PID_00200952 17 Criptografa con curvas elpticas

    1.4.1. Puntos racionales de una curva de grado 1

    Una curva de grado 1 es una recta. La ecuacin de una tal recta se puede

    escribir como Ax + By + C = 0.

    Consideremos una parametrizacin de la recta o sea, expresaremos los puntos

    de la recta en funcin de un parmetro. Una manera de hacerlo sera:

    .

    Algoritmo 1.18.

    t (t,CAtB )

    Ahora, dando a t valores en el cuerpo obtenemos puntos racionales de nuestra

    recta. En particular si el cuerpo base es infinito, como Q, R,..., las rectas tienen

    infinitos puntos racionales.

    1.4.2. Puntos racionales de una curva de grado 2

    Una curva de grado 2 es una cnica. En el caso K = Q,R,..., (cuerpos ordena-

    dos) la ecuacin de una cnica, tras cambios apropiados de coordenadas, se

    puede escribir de una de las formas siguientes:

    1) x2 + y2 = c < 0 = .

    2) x2 + y2 = 0 = un punto.

    3) x2 = 0 = recta doble.

    4) xy = 0 = dos rectas.

    5) y = x2 = parbola.

    6) xy = 1 = hiprbole.

    7) x2 + y2 = c > 0 = elipse.

    Los casos 2, 3 y 4 son curvas degeneradas o no irreducibles y, por lo tanto, no

    las trataremos.

    Los casos 5, 6, 7 son proyectivamente equivalentes; es decir, en el plano pro-

    yectivo, podemos pasar de unos a otros va un cambio de variables.

  • CC-BY-NC-ND PID_00200952 18 Criptografa con curvas elpticas

    Ejemplo 1.5. Clculo de puntos racionales en una cnica

    Consideremos, como ejemplo, la cnica afn x2 + y2 = 1 y calculemos sus puntos racio-nales. En primer lugar, se ve fcilmente que el punto p = (0,1) es un punto racional de lacurva. Ahora, vamos a ver si podemos calcular los restantes.

    Los puntos de la cnica los podemos pensar como intersecciones de la cnica con rectas

    que pasan por este punto fijado p = (0,1).

    Consideramos las rectas r : Ax + By + C = 0, del haz de rectas que pasan por el punto p.Como p = (0,1) pertenece a la recta, se tiene que B + C = 0, o sea C = B.

    Podemos, por tanto, escribir la ecuacin de la recta r como Ax + By B = 0 o, tambin,ABx + y 1 = 0.

    Hagamos A =A

    By, entonces la recta ser, Ax + y 1 = 0.

    As, el haz de rectas que pasan por p = (0,1) es {Ax + y 1 = 0}A (o sea, variando losvalores del parmetro A, encontramos todas las rectas del haz).

    Hagamos ahora la interseccin de las rectas del haz con la cnica. O sea, resolvamos el

    sistema de ecuaciones:

    8:x = 0 punto (0,1)x(1 + A2) 2A = 0, x =

    2A

    1 + A2 punto

    2A

    1 + A2,1 A2

    1 + A2

    As, escogiendo como punto fijo p = (0,1), parametrizamos la cnica inicial de la siguientemanera:

    Algoritmo 1.19.

    t

    2t1+t2

    , 1t2

    1+t2

    Para cada t del cuerpo base, el punto de la curva

    2t

    1 + t2,1 t2

    1 + t2

    tambin lo es; en

    particular si el cuerpo es infinito, la curva dada por f (x,y) = x2 + y2 1 tiene infinitospuntos racionales.

    1.4.3. Puntos racionales de una curva de grado 3

    Observacin

    Hemos demostrado que, enel caso de un cuerpo infinito,si una cnica tiene un puntoracional, posee infinitos. Conesto no podemos decir quetoda cnica tiene infinitospuntos racionales porqueexisten curvas sin ningnpunto racional; por ejemplo,x2 + y2 = 1 sobre Q.

    Una curva de grado 3 es una cbica.

    .

    Proposicin 1.20.

    Si F[x,y,z] = 0 es una curva proyectiva irreducible de grado 3 con un

    punto singular, entonces este es nico. Adems, este nico punto sin-

    gular tiene multiplicidad 2.

  • CC-BY-NC-ND PID_00200952 19 Criptografa con curvas elpticas

    Demostracin: Suponemos que tenemos una cbica con dos puntos singu-

    lares. Consideramos la recta que pasa por estos dos puntos. La curva y la recta

    tienen, como mnimo, 4 puntos en comn contando multiplicidades; pero,

    teniendo en cuenta el teorema de Bezout, solo podran tener 3, a menos que

    tuviesen una componente irreducible en comn, lo que como en el corolario

    1.13 no puede ocurrir. Por tanto, la cbica solo puede tener un punto singular

    a lo sumo.

    Supongamos ahora que este punto singular tiene multiplicidad mayor que

    dos. Entonces una recta que pase por este punto y otro punto cualquiera de

    la cbica tendra, al menos, 4 puntos en comn con la curva y esto, por el

    teorema de Bezout, no puede ocurrir.

    .

    Proposicin 1.21.

    Un punto singular es siempre racional.

    Resumiendo, una curva de grado 3 o no tiene puntos singulares o tiene exacta-

    mente un punto singular que es un nodo o una cspide y, adems, es racional.

    Si tenemos una curva de grado 3 no singular, sabemos que una recta que pasa

    por dos de sus puntos corta a la curva en un tercer punto. Adems, si dos de

    estos punto son racionales, entonces el tercero tambin lo es. (Diofantes, siglo

    III a. C.).

    .

    Teorema 1.22 (Teorema de la base finita de Mordell. (1923)).

    Si C es una cbica no singular sobre Q, existe un conjunto finito de

    puntos racionales sobre C tal que todos los otros puntos racionales de

    la curva se pueden encontrar haciendo construcciones de tangentes y

    secantes a partir de estos.

    1.4.4. Puntos racionales de una curva de grado 4

    .

    Teorema 1.23 (Teorema de Faltings (1983)).

    Las curvas irreducibles de grado 4 tienen un nmero finito de puntosracionales sobre el cuerpo Q.

  • CC-BY-NC-ND PID_00200952 20 Criptografa con curvas elpticas

    Resumimos lo que hemos dicho hasta ahora sobre los puntos racionales so-

    bre Q:

    Curvas de grado 1: hay infinitos puntos racionales.

    Curvas de grado 2: si hay un punto racional, hay infinitos. Hilbert y Hur-witz (1890) lo demuestran para las curvas de gnero cero (las de grado 1 y

    2 lo son).

    Curvas de grado 3: hay un conjunto infinito de puntos racionales, conjun-to que es finitamente generado. Mordell, 1923.

    Curvas de grado 4: hay un nmero finito de puntos racionales. Conjetura-do por Mordell y demostrado por Faltings, 1983.

  • CC-BY-NC-ND PID_00200952 21 Criptografa con curvas elpticas

    2. Geometra de las curvas elpticas.

    Comencemos dando una definicin ms formalizada de curva elptica.

    .

    Definicin 2.1 (Curva elptica).

    Una curva elptica es una curva plana no singular de grado 3 junto con

    un punto racional prefijado, que denominaremos punto base.

    2.1. Ecuacin de Weierstrass

    Cualquier curva elptica puede ser escrita en P2 como una ecuacin cbica de

    la siguiente forma:

    Ax3 + Bx2y + Cx2z +Dxyz + Ey2z + Fy2x +Gy3 +Hz3 + Iz2x + Jz2y = 0

    Tomando un sistema de referencia adecuado, tales curvas se pueden expresar

    en la forma de Weierstrass:

    y2z + a1xyz + a3yz2 = x3 + a2x

    2z + a4xz2 + a6z

    3 (1)

    con a1, . . . ,a6 K

    O en el plano afn, curvas de grado 3 de la forma:

    y2 + a1xy + a3y = x3 + a2x

    2 + a4x + a6 (2)

    Si char(K) 6= 2, entonces

    (y +1

    2a1x +

    1

    2a3)

    2 = y2 + a1xy + a3y +1

    4a1x

    2 +1

    4a23 +

    1

    2a1a3x

    (y +1

    2a1x +

    1

    2a3)

    2 (1

    4a1x

    2 +1

    4a23 +

    1

    2a1a3x) = x

    3 + a2x2 + a4x + a6

  • CC-BY-NC-ND PID_00200952 22 Criptografa con curvas elpticas

    Podemos pues simplificar la ecuacin (1) haciendo el cambio

    y := y +1

    2a1x +

    1

    2a3

    y nos queda:

    y2 = x3 + (a2 +1

    4a1)x

    2 + (a4 +1

    2a1a3)x + (a6 +

    1

    4a23)

    Por tanto, si char(K) 6= 2, la ecuacin de Weierstrass se puede escribir:

    y2 = x3 +b24x2 +

    b42x +

    b64

    (3)

    Suponemos ahora que adems la caracterstica del cuerpo es diferente de 3 ,

    (x +b23 4)

    3 = x3 +b24x2 +

    b2242 3x +

    b32(3 4)3

    y2 = (x +b23 4)

    3 3xb22

    (3 4)2 (b23 4)

    3 + 2b4x + b6

    Hagamos ahora el cambio,

    x := x +b23 4

    y nos queda la ecuacin:

    y2 = x3 + 27c4x 54c6

    Hemos simplificado ms todava la ecuacin puesto que hemos eliminado el

    coeficiente de x2.

    Finalmente si char(K) 6= 2,3, la ecuacin (1) se puede escribir de manera mssimple cmo:

    y2 = x3 + Ax + B (4)

    De manera similar, cuando tenemos un cuerpo de caracterstica 2 o 3, tambin

    se puede simplificar la ecuacin (1).

    Si char(K) = 2, entonces la ecuacin de la curva elptica tiene una de las dos

    formas siguientes:

    Si a1 6= 0 en la ecuacin (1) : y2 + xy = x3 + b2x2 + b6, donde b6 6= 0

    Si a1 = 0 en la ecuacin (1) : y2 + b3y = x

    3 + b4x + b6, donde b3 6= 0(5)

  • CC-BY-NC-ND PID_00200952 23 Criptografa con curvas elpticas

    Si char(K) = 3, entonces tenemos:

    y2 = x3 + a2x2 + a6 (6)

    Las dos primeras curvas y2 = x3 10x + 9 y y2 = x3 2x + 3 definidas sobrelos nmeros reales. La ltima, y2 = x3 + 10x + 9 sobre F1031

    y

    x

    8

    6

    4

    2

    2

    4

    6

    8

    0

    543213 2 1

    y

    x

    0

    43211

    10

    5

    10

    5

    0

    1.000

    800

    600

    400

    200

    0 1.000800600400200

    .

    Proposicin 2.2.

    Sea K un cuerpo con char(K) 6= 2,3, sea C una curva sobre K, C : y2 =x3+Ax+B. Sea = 4A3+27B2 el discriminante de la curva. Entonces:

    6= 0 C no tiene puntos singulares. = 0 y A = 0 = C tiene una cspide. = 0 y A 6= 0 = C tiene un nodo.

  • CC-BY-NC-ND PID_00200952 24 Criptografa con curvas elpticas

    Demostracin: Sea C : y2 = x3 +Ax+B, f (x,y) = x3 +Ax+B y2. C tiene puntos

    singulares si, y solo si,f

    x(p) = 0,

    f

    y(p) = 0.

    8>>>>>>>:

    f

    x= 3x2 + A

    f

    y= 2y

    Puntos singulares:

    8>>>>>>>:

    f

    x= 0 x =

    rA

    3,

    f

    y= 0 y = 0

    x3 + Ax + B y2 = 0 A3x + Ax + B = 0 x = 3B

    2A

    entonces

    x2 =9B2

    4A2=A

    3 4A3 + 27B2 = 0

    1) C no tiene puntos singulares si, y solo si, 4A3 + 27B2 6= 0.

    2) Sea 4A3 + 27B2 = 0 y A = 0, entonces B = 0 y f (x,y) = x3 y2. El punto (0,0)

    es un punto singular, adems, segn la definicin1.11, sabemos que es una

    cspide.

    3) Sea 4A3 + 27B2 = 0 y A 6= 0. El punto3B2A

    ,0es un punto singular. f (x,y) =

    x3 +Ax+By2 se puede escribir como f (x,y) =x

    3B

    2A

    3+9B

    2A

    x

    3B

    2A

    2(y0)2,

    entonces f2x

    3B

    2A,y 0

    =9B

    2Ax2 y2 =

    r9B2A

    x yr9B

    2Ax + y

    . As, el punto3B

    2A,0es un punto doble y, segn la definicin1.11, sabemos que es un nodo.

    2.2. La ley de grupo de una curva elptica

    Sea C P2 una curva elptica dada por la ecuacin de Weierstrass. DenotemosO al punto base de la curva. Sea L P2 una recta. Como la ecuacin de la curvatiene grado 3, L y C se intersecan en, exactamente, 3 puntos, digamos L C ={P,Q,R}. Observemos, sin embargo, que si L es tangente a C, entonces P,Q,Rno sern tres puntos diferentes; habr uno doble (el punto de tangencia). El

    hecho de que L C, contando multiplicidades, d tres puntos se deduce delteorema de Bezout (teorema 1.12).

  • CC-BY-NC-ND PID_00200952 25 Criptografa con curvas elpticas

    2.2.1. Ley de grupo en C

    Sean P,Q C y L la recta que pasa por estos dos puntos (la tangente en el casoP = Q), y R el tercer punto de interseccin de L y C. Sea L la recta que une R y

    O. Entonces LC = {R,O,P+Q}; es decir P+Q es el tercer punto de interseccinde la curva y la recta que pasa por R y O.

    Definimos as una operacin sobre los puntos de la curva elptica de forma

    que P + Q sea el punto calculado a partir de P y Q tal y como acabamos de

    describir en el prrafo anterior. La operacin que hemos definido dota a C de

    estructura de grupo abeliano.

    .

    Proposicin 2.3.

    La ley de grupo en C tiene las siguientes propiedades:

    Si L C = {P,Q,R} (puntos no necesariamente diferentes), entonces(P +Q) + R = O.

    P +O = P, P C. P +Q = Q + P, P,Q C. P C (P) C tal que P + (P) = O. (P +Q) + R = P + (Q + R), P,Q,R C

    Notacin

    Para n Z, P Cescribiremos: nP = P + + P n veces, si

    n > 0. nP = (P) + + (P) |n|

    veces, si n < 0 0P = O

    Para facilitar los clculos, tomaremos como punto base el punto del infinito

    de la curva, O = (0 : 1 : 0). Dados dos puntos de la curva, P y Q calculemos

    R (en la figura siguiente, R es el tercer punto donde la recta que pasa por P y

    Q corta a la curva). Si ahora queremos calcular la interseccin de la recta que

    pasa por R y O con la curva elptica, basta encontrar el simtrico de R respecto

    al eje de las x.

    Suma de dos puntos

    P + Q

    P

    Q

  • CC-BY-NC-ND PID_00200952 26 Criptografa con curvas elpticas

    Finalmente, detallamos un algoritmo, anlogo al algoritmo de multiplicar y

    elevar al cuadrado, para calcular nP con el mnimo nmero posible de opera-

    ciones.

    Antes que nada calcularemos la expansin binaria de n: n b1b2 . . . br, bi {0,1} (br es el bit menos significativo, o sea, las unidades).

    .

    Algoritmo 2.4.

    function Suma(n)

    begin

    for j 1 to n

    if bj = 1 then parcial parcial + P endif

    if j < r then parcial 2parcial endif

    endfor

    return(parcial)

    end

    Ejemplo 2.1.

    Calcular 19P.

    El nmero 19 escrito en binario es 10011. Entonces, de acuerdo con el algoritmo anterior

    19P = 2

    22`2(0 + P)

    + P

    + P.

    Ejemplo 2.2.

    Sea K = F23, C : y2 = x3 + x + 1, P1 = (3,10), P2 = (9,7).

    Calcular P1 + P2.

    Calcular 10P1

    Empezaremos calculando la recta que pasa por P1 y P2, que denominaremos L : y = x+

    =7 10

    9 3=

    1

    2= 12 = 11

    10 = 11 3 + = = 10 10 = 0

  • CC-BY-NC-ND PID_00200952 27 Criptografa con curvas elpticas

    Por lo tanto L : y = 11x.

    Ahora calcularemos la interseccin de esta recta con la curva, o sea L C:

    8>:

    y = 11x

    y2 = x3 + x + 1

    Sustituyendo la y en la ecuacin de la curva obtenemos

    6x2 = x3 + x + 1

    luego

    0 = x3 + 17x2 + x + 1 = (x 3)(x 9)(x x3)

    puesto que sabemos que pasa por los puntos P1 y P2.

    Recordar

    De acuerdo con el teoremade Bezout, una recta corta auna curva elptica en trespuntos P,Q,R. Si dos de estospuntos son iguales, digamosP = Q, entonces la recta estangente a la curva en elpunto P.

    Igualamos los coeficientes de grado 2:

    17 = 3 9 x3 = x3 = 12 17 = 17

    y3 = 11 17 = 3

    El tercer punto de interseccin es pues (17,3).

    Finalmente, calcularemos el punto simtrico, sobre F23, respecto al eje de abscisas: P1 +P2 = (17,20)

    Para calcular 10P1 empezaremos escribiendo en binario 10 1010. Aplicando el algorit-mo anlogo al de multiplicar y elevar, tenemos: 10P1 = 2(2(2P1) + P1)

    Clculo de la tangente que pasa por P1:

    La ecuacin de la tangente por un punto P es:

    f

    x(P)(x x1) +

    f

    y(P)(y y1) = 0

    Tenemos f (x,y) = y2 x3 x 1

    8>>>>>>>:

    f

    x(P1) = 4 1 = 18

    f

    y(P1) = 20

    Por lo tanto 18(x 3) + 20(y 10) = 18x + 20y + 22 = 0 10y = 14x + 12 5y = 7x + 6y = 6x + 15, (51 = 14).

    LP1 : y = 6x + 15 recta tangente por P1.

  • CC-BY-NC-ND PID_00200952 28 Criptografa con curvas elpticas

    Ahora calcularemos la interseccin LP1 C

    8>:

    y = 6x + 15

    y2 = x3 + x + 1

    Sustituyendo y en la ecuacin de la curva tenemos

    (6x + 15)2 = x3 + x + 1

    entonces

    0 = x3 13x2 + 5x + 6 = (x 3)2(x x3)

    ya que el punto de tangencia P1 = (3,10) es una solucin doble del sistema de ecuaciones.

    Miramos el coeficiente de grado 2:

    13 = 3 3 x3 = x3 = 6 + 13 = 7

    y3 = 6 7 + 15 = 11

    El punto de interseccin es pues (7,11) y su simtrico sobre F23 es (7,12).

    Por lo tanto: Q = 2P1 = (7,12)

    Seguimos..., calculamos ahora la tangente a la curva que pasa por Q:

    8>>>>>>>:

    f

    x(Q) = 13

    f

    y(Q) = 1

    Por lo tanto 13(x 7) + (y 12) = 13x + y + 11 = 0 y = 10x + 11.

    LQ : y = 10x + 11 recta tangente por Q.

    La interseccin de esta tangente con la curva LQ C

    8>:

    y = 10x + 11

    y2 = x3 + x + 1

    0 = x3 8x2 12x 5 = (x 7)2(x x3)

    Miramos el coeficiente de grado 2:

    8 = 7 7 x3 = x3 = 17

    y3 = 10 17 + 11 = 20

  • CC-BY-NC-ND PID_00200952 29 Criptografa con curvas elpticas

    El punto de interseccin es (17,20) y, el simtrico sobre F23, es (17,3).

    O sea: R = 2Q = (17,3)

    Ahora, la recta que pasa por P1 y R, LP1,R : y = x +

    =3 10

    17 3=

    8

    7= 8 10 = 11

    10 = 11 3 + = = 10 10 = 0

    Por lo tanto LP1,R : y = 11x.

    Calculemos ahora la interseccin con la curva: LP1,R C:

    8>:

    y = 11x

    y2 = x3 + x + 1

    El punto de interseccin es (9,7) y el simtrico sobre F23, es S = R + P1 = (9,16).

    Calcularemos la tangente que pasa por S:

    8>>>>>>>:

    f

    x(Q) = 9

    f

    y(Q) = 9

    Por lo tanto 9(x 9) + 9(y 16) = 0 x 9 + y 16 = 0 y = 22x + 2.

    LS : y = 22x + 2 recta tangente por S.

    Ahora corresponde calcular la interseccin de esta recta LS con la curva: LS C

    8>:

    y = 22x + 2

    y2 = x3 + x + 1

    0 = x3 x2 + 3x 3 = (x 9)2(x x3)

    Miramos el coeficiente de grado 2:

    1 = 9 9 x3 = x3 = 6

    y3 = 6 +2 = 19

    El punto de interseccin es (6,19) y el simtrico a F23, es 2S = (6,4). Esta es la solucinque buscbamos:

    10P1 = (6,4)

  • CC-BY-NC-ND PID_00200952 30 Criptografa con curvas elpticas

    Ejemplo 2.3.

    Sea K = F16, C : y2 + xy = x3 + 4x2 + 1, P1 = (

    6,8), P2 = (3,13).

    Construir el cuerpo F16 (utilizando el polinomio primitivo x4 + x + 1)

    Calcular P1 + P2

    Calcular 2P1

    En primer lugar construiremos el cuerpo finito F16 = Z2[x]x4 + x + 1 .

    Sea = [x], la lista de los elementos en forma exponencial y su equivalente forma poli-nomial es entonces:

    = [x]

    2 = [x]2 = [x2]

    3 = [x]3 = [x3]

    4 = [x]4 = [x4] = [x + 1] = [x] + 1 = + 1

    5 = 4 = 2 +

    6 = 3 + 2

    7 = 4 + 3 = 3 + + 1

    8 = 2 + 1

    9 = 3 +

    10 = 2 + + 1

    11 = 3 + 2 +

    12 = 3 + 2 + + 1

    13 = 3 + 2 + 1

    14 = 3 + 1

    15 = 1

    Ahora calcularemos P1 + P2 =

    Recta que pasa por P1 y P2, LP1,P2 : y = ax + b

    a =13 8

    3 6=3 + 2 + 1 + 2 + 1

    3 + 3 + 2=3

    2=

    Por lo tanto, y = x + b. El punto P1 pertenece a LP1,P2 :

    8 = 6 + b = b = 8 + 7 = 11

    LP1,P2 : y = x + 11

  • CC-BY-NC-ND PID_00200952 31 Criptografa con curvas elpticas

    LP1,P2 C

    8>:

    y = x + 11

    y2 + xy = x3 + 4x2 + 1

    Sustituyendo el valor de y en la segunda ecuacin, tenemos:

    2x2 + 10 + x2 + 11x = x3 + 4x2 + 1

    0 = x3 + 8x2 + 12x + 10 + 1 = (x 6)(x 3)(x x3)

    Miramos el coeficiente de grado 2:

    8 = 6 + 3 + x3 = x3 = 8 + 6 + 3 = 2 + 1 + 3 + 2 + 3 = 1

    y3 = + 11 = 6

    Sobre F4, el simtrico de un punto es l mismo.

    Solucin:

    P1 + P2 = (1,6)

    En segundo lugar, vamos a calcular 2P1

    Tangente que pasa por P1:

    8>>>>>>>:

    f

    x(P1) =

    9

    f

    y(P1) =

    6

    9(x 6) + 6(y 8) = 0 3x + 9 + y + 8 = 0

    LP1 : y = 3x + 12

    LP1 C

    8>:

    y = 3x + 12

    y2 + xy = x3 + 4x2 + 1

  • CC-BY-NC-ND PID_00200952 32 Criptografa con curvas elpticas

    Sustituyendo el valor de y en la segunda ecuacin, tenemos:

    6x2 + 9 + 3x2 + 12x = x3 + 4x2 + 1

    0 = x3 + 10x2 + 12x + 7 = (x 6)2(x x3)

    Miramos el coeficiente de grado 2:

    10 = 6 + 6 + x3 = x3

    y3 = 13 + 12 =

    Solucin:

    2P1 = (10,)

    2.2.2. Ecuacin general de P + Q

    Dada una curva elptica, para calcular el resultado de hacer operaciones de

    acuerdo con la ley de grupo definida en el subapartado 2.2.1, podemos usar

    una frmula que resume los clculos que acabamos de hacer en los ejercicios

    anteriores.

    Observacin

    Verificar, si se desea, que elpunto base O = (0,1,0)pertenece a la curvaC : y2 = x3 + Ax + B.

    Consideramos la curva elptica C sobre K con char(K) 6= 2,3, con ecuacinC : y2 = x3 + Ax + B. El punto base (en la recta del infinito) es O = (0 : 1 : 0)

    de forma que el simtrico P de un punto P = (x,y) se puede tomar como P =

    (x, y). Sean P = (x1,y1),Q = (x2,y2),P +Q = (x3,y3), con P,Q C, P = (x1, y1).Suponemos que Q 6= P. Entonces:

    a)P 6= Q

    8>>>>>>>>>:x3 =

    y2 y1x2 x1

    2 x1 x2

    y3 =

    y2 y1x2 x1

    (x1 x3) y1

    b)P = Q

    8>>>>>>>>>>>>>:

    x3 =

    3x21 + A

    2y1

    !2 x1 x1

    y3 =

    3x21 + A

    2y1

    !(x1 x3) y1

  • CC-BY-NC-ND PID_00200952 33 Criptografa con curvas elpticas

    Si Q = P, P +Q = O (punto base de C).

    Si char(K) = 2, tenemos dos casos (ver ecuacin 5):

    E : y2 + cy = x3 + ax + b, c 6= 0P = (x1,y1 + c)

    a) P 6= Q

    8>>>>>>>>>:x3 =

    y1 + y2x1 + x2

    2+ x1 + x2

    y3 =

    y1 + y2x1 + x2

    (x1 + x3) + y1 + c

    b) P = Q

    8>>>>>>>>>:

    x3 =x41 + a

    2

    c2

    y3 =

    x21 + a

    c

    !(x1 + x3) + y1 + c

    E : y2 + xy = x3 + ax + b, b 6= 0P = (x1,y1 + x1)

    a) P 6= Q

    8>>>>>>>>>:x3 =

    y1 + y2x1 + x2

    2+y1 + y2x1 + x2

    + x1 + x2 + a

    y3 =

    y1 + y2x1 + x2

    (x1 + x3) + x3 + y1

    b) P = Q

    8>>>>>>>>>:

    x3 = x21 +

    b

    x21

    y3 = x21 +

    x1 +

    y1x1

    x3 + x3

    Ejemplo 2.4.

    Dada la curva y2 = x3 + 10x + 13 sobre F23 y los puntos de la misma P = (7,9), Q = (17,6),calcular P + Q.

    Usando las frmulas anteriores, si hacemos P + Q = (x3,y3), resulta:

    x3 =` 6 917 7

    2 7 17 =

    9

    8 1 = 3,

    y3 =6 9

    17 7(7 3) 9 =

    3

    44 9 = 22.

    Fijmonos en que hemos hecho sumas y multiplicaciones en el cuerpo finito F23 pero,

    tambin, divisiones. O, de otro modo, hemos tenido que calcular inversos en F23.

    El clculo de inversos en un cuerpo finito es una operacin costosa que se puede obviar

    usando coordenadas proyectivas en lugar de coordenadas afines.

  • CC-BY-NC-ND PID_00200952 34 Criptografa con curvas elpticas

    3. Curvas elpticas sobre cuerpos finitos.

    3.1. Nmero de puntos de una curva elptica

    En todo este apartado K = Fq representar un cuerpo finito, con q = pm ele-

    mentos, para un cierto m N y p primo. Si E es una curva elptica sobre Kescribiremos E o E(q) para designarla.

    Recordar

    Zn representa el anillo de losenteros mdulo n.

    Notacin

    Escribiremos N = #E(q) paraindicar el nmero de puntosracionales de E.

    .

    Teorema 3.1.

    `E(q), +

    , donde + representa la ley de grupo definida en el subapartado

    2.2.1, es un grupo cclico, que puede ser generado por un solo elemen-

    to, o bien se puede descomponer como suma directa de dos subgrupos

    cclicos con rdenes n1 y n2, respectivamente, de forma que

    E(q) = Zn1 Zn2

    donde n2 divide n1 y N = n1n2.

    .

    Definicin 3.2 (Residuos cuadrticos).

    Sea x Fq. Si existe z Fq tal que x = z2, diremos que x es un resi-duo cuadrtico (QR). En caso contrario, diremos que x es un no-residuo

    cuadrtico (QNR).

    .

    Definicin 3.3 (Smbolo de Legendre).

    Sea p un nmero primo y sea n Fp. Definimos el smbolo de Legendrede n respecto p, y lo denotaremos por

    n

    p

    , cmo:

    n

    p

    =

    8>>>:

    1 si n es QR (mod p)

    1 si n es QNR (mod p)

  • CC-BY-NC-ND PID_00200952 35 Criptografa con curvas elpticas

    Suponemos que char(K) 6= 2,3, E : y2 = x3 +Ax+B. La curva E contiene el puntodel infinito (0 : 1 : 0), por lo tanto, el nmero de puntos de la curva es N 1.Tomemos ahora x Fq (x puede tomar q valores diferentes), si y Fq talque y2 = x3 + Ax + B, entonces y tambin cumple esta ecuacin. Por lo tanto,

    podemos decir que N 1 + 2q.

    Definimos ahora el carcter cuadrtico :

    .

    Algoritmo 3.4.

    Fq {1, 1}x 1, si x es QRx 1, si x es QNR

    Recordar

    Un carcter cuadrtico esun homomorfismo del grupomultiplicativo del cuerpofinito Fq (que escribiremosFq ) en el grupo multiplicativo{1, 1}.

    Si q es un nmero primo,

    entonces (x) =

    x

    q

    .

    Sea f (x) = x3 + Ax + B. Fijado x Fq, si f (x) es QR, entonces tenemos 2 puntosde la curva; en cambio, si es QNR no tenemos ninguno. As, podemos escribir

    N en funcin de f (x):

    N = 1 +XxFq

    ((f (x)) + 1) = 1 + q +XxFq

    (f (x))

    Vemos el caso particular q = p , Fq = Z/p.

    x Z/p, xp1 = 1 (mod p) = x p12 =

    8>>>:+1, si x es QR

    1, si x es QNR

    .

    Lema 3.5.

    Sea p un nmero primo.

    Xx(Z/p)

    xi =

    8>>>:p 1, si i = 0 o i = p 1

    0, si i 6= 0,p 1

    Demostracin: Si i = 0, es claro queX

    x(Z/p)

    x = p 1. Con i = p 1 nos

    encontramos en la misma situacin puesto que xp1 = 1 (mod p).

  • CC-BY-NC-ND PID_00200952 36 Criptografa con curvas elpticas

    Consideramos el caso i 6= 0,p 1:

    x (Z/p) tenemos que xp x = 0. Por lo tanto, podemos escribir xp x =(x x1) (x xp), donde Z/p = {x1, . . . ,xp}.

    Mirando el coeficiente de xp1 en la ecuacin xp x = 0, tenemos 0 = x1+ +xp.Tambin, mirando el coeficiente de xp2 tenemos

    Xi,j

    xixj = 0. PeroP

    x2i =

    (P

    xi)2 2

    Pxixj = 0. Haciendo lo mismo para cada exponente i encontrara-

    mos:X

    x(Z/p)

    xi = 0, i / {0,p 1}.

    Usaremos este lema para encontrar el valor de N:

    N =1 + p +XxFp

    (f (x)) = 1 + p +XxFp

    (f (x))p12

    = 1 + p +XxFp

    (x3 + Ax + B)p12 = 1 + p +

    XxFp

    3p12X

    i=0

    fixi

    = 1 + p +

    3p12X

    i=0

    fiXxFp

    xi = 1 + p +

    3p12X

    i=0

    fiXxFp

    xi + f0

    = 1 + p + (p 1)f0 + (p 1)fp1 + f0.

    Por lo tanto, N = 1 fp1 (mod p).

    Casos especiales:

    Si fp1 = 0 (mod p) y, ms concretamente, si N = 1 + p, E se denominacurva supersingular. Este tipo de curvas es importante, puesto que existe

    un algoritmo para romper el logaritmo elptico definido sobre ellas.

    Si fp1 = 1 (mod p) y, concretamente, si N = p, E se denomina curva anma-la. En este caso tambin es sencillo romper el logaritmo elptico (Semaev-

    Smart-Satoh-Araki).

    .

    Definicin 3.6 (Curvas supersingulares y anmalas).

    Dado el cuerpo K = Fq, con q = pm, p primo, entonces:

    Si N = 1+q t, donde p | t, diremos que E es una curva supersingular.

    Si N = 0 (mod p), diremos que E es una curva anmala.

  • CC-BY-NC-ND PID_00200952 37 Criptografa con curvas elpticas

    Observacin

    El teorema de Hasse nos daun intervalo bastanteajustado para el valor N:1+q2

    q N 1+q+2q.

    .

    Teorema 3.7 (Teorema de Hasse, 1930).

    Consideramos la curva elptica E(q) y sea N el nmero de puntos racio-

    nales de E(q). Se cumple:

    |N (1 + q)| 2q

    Para la demostracin de este teorema, se necesita la hiptesis de Riemann.

    Hiptesis de Riemann

    Es uno de los problemasabiertos ms importantes yfamosos de la matemticacontempornea. Es el cuartoproblema del milenio que elClay Mathematics Institutedot con un premio de unmilln de dlares para laprimera persona que aporteuna demostracin correctade la conjetura.

    .

    Definicin 3.8 (La funcin de Riemann).

    La funcin de Riemann viene dada por:

    (s) =Y

    p primo

    1

    1 1

    ps

    !=XnN

    1

    ns

    Para valores reales de s tenemos:

    (s) =

    8>>>>>>>>>>>:

    1 + 12 +13 +

    14 + =, si s = 1

    tiene solucin, si s > 1

    diverge, si s < 1.

    La hiptesis de Riemann dice que, sobre el cuerpo de los nmeros com-

    plejos, los ceros no triviales de (s) se encuentran todos sobre la recta

    Re(s) = 12 .

    Ahora nos planteamos el problema inverso. Dado un valor N, existe una

    curva elptica que tenga este nmero de puntos?

    .

    Teorema 3.9.

    Sobre el cuerpo finito Fq, donde q = pm y p primo, si t es cualquier valor

    tal que:

    8>>>:|t| 2q

    si p|t pn|t, donde n =jm + 1

    2

    k

    entonces, podemos encontrar una curva elptica con N = 1+q+t puntos.

  • CC-BY-NC-ND PID_00200952 38 Criptografa con curvas elpticas

    Ejemplo 3.1.

    Las curvas elpticas sobre Z2 se pueden escribir cmo:

    y2 + xy = x3 + b2x2 + b6, si = b6 6= 0

    y2 + b3y = x3 + b4x + b6, si = b

    43 6= 0

    Por el teorema de Hasse, 3 22 N 3 + 2

    2 1 N 5.

    E : y2 + y = x3 + x + 1, N = 1 (solo tiene el punto del infinito). E : y2 + y = x3 + x, N = 5. E : y2 + xy = x3 + x2 + 1, N = 2. E : y2 + xy = x2 + 1, N = 4. E : y2 + y = x3 + 1, N = 3. E : y2 + y = x3, N = 3.

    Las dos ltimas curvas son curvas supersingulares, puesto que N = 1 + p y la tercera esuna curva anmala.

    Cmo podemos calcular el nmero de puntos N de una curva elptica? Hay

    diferentes mtodos:

    1) Por fuerza bruta, probando toda pareja de puntos (x,y) F2q .

    2) A partir de P = (x,y) E, y 6= 0, calculamos 2P, 3P, hasta obtener elsubgrupo P E. Si E fuera cclico (n1 = N,n2 = 1) y P fuera un generadorde E, obtendramos P = E. En el supuesto de que N fuese un nmero primo,tendramos que todos los P 6= O son generadores.

    3) Algoritmo de Schoof (1985). Calcula el nmero de puntos de una curva

    con una complejidad O(log82(q)).

    Hay casos particulares algo ms sencillos; por ejemplo, curvas del tipo y2 =

    x3+Ax o y2 = x3+B. En estos casos se usa el algoritmo de Munuera-Tena (1993)

    con complejidad del orden de O(log32(p)).

    3.2. Extensin de una curva sobre un cuerpo a una curva sobre un

    cuerpo extendido

    Una curva elptica definida sobre Fp puede considerarse tambin definida so-

    bre Fq donde q = pm. Denotemos N = #E(p) = p + 1 t y Nm = #E(q).

    Conjetura de Weil: (de hecho, es un teorema de Schmidt de 1925, previo a

    Weil). Sean , C las races conjugadas de la ecuacin x2+tx+p = 0. Entonces:

    Nm = 1 + pm m m

  • CC-BY-NC-ND PID_00200952 39 Criptografa con curvas elpticas

    Ejemplo 3.2.

    Consideramos la curva E : y2 + y = x3. Sabemos que E tiene 3 puntos sobre Z/2. Vamos acalcular cuntos puntos tiene la curva definida por la misma funcin, sobre F2m .

    Calculamos y , haciendo t =`N (p + 1)

    en la ecuacin anterior:

    x2 + (3 3)x + 2 = 08 2160).

  • CC-BY-NC-ND PID_00200952 42 Criptografa con curvas elpticas

    Para resistir el ataque de Semaev-Smart-Araki, el nmero de puntos de lacurva no debe ser mltiple de p.

    Para resistir la reduccinMOV n (orden del punto escogido) no debe dividirpk 1, k pequeo.

    Para resistir los ataques contra curvas elpticas supersingulares, el nmerode puntos de la curva no debe ser igual a 1 mdulo p.

    Veamos ahora diferentes mtodos conocidos para escoger una curva adecuada.

    1) El Teorema de Hasse y la Conjetura de Weil nos proporcionan una tcni-

    ca para elegir curvas sobre F2m , donde m es divisible por un entero l pequeo.

    De hecho, como estos resultados son vlidos para cualquier Fpm , podramos

    extender esta tcnica a todos estos cuerpos.

    Recordemos que dada una curva elptica E, definida sobre Fp, podemos consi-

    derarla tambin como una curva elptica sobre cualquier extensin Fpm de Fp.

    Adems, sabemos calcular el nmero de puntos de la curva sobre el cuerpo

    extendido, a partir del nmero de puntos de la curva sobre el cuerpo base.

    Para elegir una curva adecuada sobre F2m , primero tomaremos una curva so-

    bre F2l , con l dividiendo m y calcularemos el nmero de puntos de la curva

    sobre F2l (que se puede hacer de forma exhaustiva puesto que hemos elegido

    l de forma que el cuerpo F2l sea pequeo). Entonces calcularemos el nmero

    de puntos de la curva sobre el cuerpo extendido y comprobaremos si es resis-

    tente a los ataques anteriores. En caso de que no resista alguno de los ataques

    anteriores repetimos el proceso hasta encontrar una curva adecuada.

    El principal problema que presenta esta tcnica es que el nmero de curvas

    sobre F2l ser relativamente pequeo, y por lo tanto, es posible que dados m y

    l no consigamos encontrar ninguna curva adecuada usando este mtodo.

    2) Mtodo global. Esta manera de elegir la curva est basada en tomar una

    curva sobre los racionales y reducirla mdulo un primo para tener la curva

    sobre un cuerpo finito y comprobar si resiste los ataques anteriores.

    Por ejemplo, si empezamos con E : y2 = x3 + Ax + B, donde A,B son nmeros

    racionales podemos considerar la misma ecuacin mdulo un primo p. En-

    tonces, tendremos la curva sobre Fp con Np puntos. Hay resultados tericos

    que aseguran que para p lo suficientemente grande Np es mltiplo del nmero

    de puntos de orden finito de la curva original sobre los racionales. As, cono-

    ciendo el nmero de puntos de orden finito sobre el cuerpo inicial tendremos

    una cota inferior para el nmero de puntos de la curva sobre Fp.

    3) Mtodo de la multiplicacin compleja. Este mtodo permite la eleccin

    del orden de la curva antes de construirla. Se debe comprobar que el orden que

    queremos supere los ataques mencionados. Este mtodo es eficiente cuando

    el cardinal q del cuerpo y el valor t tal que #E = 1+q t son escogidos de forma

    que el cuerpo Q(pt2 4q) tiene un nmero pequeo de clases de ideales. Para

  • CC-BY-NC-ND PID_00200952 43 Criptografa con curvas elpticas

    curvas elpticas sobre Fp este mtodo se denomina mtodo de Atkin-Morain y,

    sobre F2m , mtodo de Lay-Zimmerman.

    4) Mtodo de eleccin aleatoria. Como su nombre indica, en este mtodo se

    elige la curva de manera aleatoria. Fijado un cuerpo finito Fq, suponemos que

    char(K) 6= 2,3 y la curva E : y2 = x3 + Ax + B. Seleccionamos A,B Fq de formaaleatoria, pero satisfaciendo 4A3 + 27B2 6= 0. Calculamos entonces el nmerode puntos de la curva sobre Fq y lo factorizamos. Este proceso se repetir hasta

    encontrar una curva que pueda resistir los ataques anteriores.

    Este mtodo es especialmente usado en el caso de trabajar con curvas elpticas

    sobre Fp, puesto que resultados de Lenstra demuestran su funcionalidad. Para

    curvas elpticas sobre F2m hay resultados similares en los trabajos de Water-

    house y Schoof.

    4.3. Asignacin de mensajes a puntos

    Uno de los problemas prcticos que se plantean a la hora de usar este tipo

    de criptografa es el de definir una correspondencia entre los mensajes que se

    quieren transmitir y los puntos de la curva. Existen diferentes procedimientos

    para hacerlo; veamos dos de ellos. Suponemos que char(K) 6= 2,3. E : y2 = f (x) =x3 + Ax + B.

    4.3.1. Creacin de una tabla

    Sea m el mensaje que queremos transmitir, 0 < m < C, donde C es una cota

    superior del nmero de mensajes diferentes. Tomamos k arbitrario (que llama-

    remos grado de fiabilidad), escogemos p primo tal que p > Ck, p con al menos

    160 bits para asegurar la fortaleza del sistema. Podemos suponer los elementos

    1, . . . ,Ck contenidos en Z/p usando la siguiente tabla:

    26666666666666666664

    1 2 . . . k 1

    k k + 1 k + 2 . . . 2k 1

    ......

    ... . . ....

    mk mk + 1 mk + 2 . . . (m + 1)k 1

    ......

    ... . . ....

    (C 1)k . . . Ck 1

    37777777777777777775

    donde cada fila representa una clase.

    Dadom, tomamos x = mk y calculamos y2 = f (x). Si f (x) no tiene raz cuadrada,

    entonces necesitamos otro valor de x, tomamos x = mk + 1 y repetimos el

  • CC-BY-NC-ND PID_00200952 44 Criptografa con curvas elpticas

    mismo proceso hasta encontrar x tal que f (x) tiene raz cuadrada, tomando

    entonces y =pf (x).

    Ahora nos podramos preguntar: este valor x se encuentra en la clase de m?

    Sabemos que la mitad de los elementos de Z/p tienen raz cuadrada y estn

    repartidos aleatoriamente. La probabilidad que en una fila no haya un cua-

    drado es pues 12k. Por lo tanto, la probabilidad de que en una fila no haya una

    x vlida se puede hacer tan pequea como queramos, aumentando el valor

    de k.

    As pues, dado m, existe un valor j {1, . . . ,k 1} tal que el punto P = (mk+ j,y)pertenece a la curva. Tenemos entonces la correspondencia:

    .

    Algoritmo 4.4.

    Curva Z/pm (mk + j,y)jk

    k (,)

    4.3.2. Mtodo de curvas entrelazadas

    .

    Definicin 4.5 (Curvas entrelazadas).

    Sea E : y2 = x3 + Ax + B una curva elptica sobre Z/p, p primo. Sea E :

    y2 = x3 + A2x + B3, con Z/p, NQR. Diremos que E y E son curvasentrelazadas.

    Observacin

    Fijada una curva E, existe unagran cantidad de parejas(E,E) de curvas entrelazadas.

    .

    Teorema 4.6.

    Sean E y E curvas entrelazadas. Entonces

    #E + #E = 2(p + 1)

    El concepto de par de curvas entrelazadas permite definir una aplicacin bi-

    yectiva entre el conjunto de valores {0,1, . . . ,2p + 1} y el conjunto de puntosde las dos curvas. As, a cada punto P = (x,y) que puede pertenecer bien a E

    o bien a E, le asignamos un valor de m {0,1, . . . ,2(p + 1)} de la siguientemanera:

  • CC-BY-NC-ND PID_00200952 45 Criptografa con curvas elpticas

    m =

    8>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:

    2x, s P E, 0 y p 12

    2x + 1, s P E, p 12

    < y p

    2p, s P = (,) E2x

    , s P E, 0 y p 1

    2

    2x

    + 1, s P E, p 1

    2< y p

    2x

    + 1, s P = (x,0) E

    2p + 1, s P = (,) E

    donde2x

    se ha de reducir mdulo 2p.

    Supongamos ahora que tenemos el mensaje m. El punto asociado es:

    P =

    8>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:

    (m

    2,) E, si m es par y 6= 0 es QR (mod p)

    (m

    2,q3) E, si m es par y 6= 0 es NQR (mod p)

    (m

    2,0) E, si m es par, m

    26= p y = 0

    (,) E, si m es par, m2

    = p

    (m 1

    2, ) E, si m es impar y 6= 0 es QR (mod p)

    (m 1

    2, q3) E, si m es impar y 6= 0 es NQR (mod p)

    (m 1

    2,0) E, si m es impar, (m 1)

    26= p y = 0

    (,) E, si m es impar, (m 1)2

    = p

    donde x3 + Ax + B (mod p) y , son las races cuadradas de unelemento .

    Ejemplo 4.1.

    Sea p = 31 y la pareja de curvas entrelazadas (hemos escogido = 13):

    E : y2 = x3 + 3x + 1

    E : y2 = x3 + 3 132 + 1 133 = x3 + 11x + 27

    E tiene 39 puntos y E tiene 25:

    Puntos de E:

    8>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:

    (0,1) (0,30) (1,6) (1,25) (6,7) (6,24)

    (8,14) (8,17) (10,15) (10,16) (11,1) (11,30)

    (13,6) (13,25) (14,11) (14,20) (17,6) (17,25)

    (18,11) (18,20) (19,2) (19,29) (20,1) (20,30)

    (21,5) (21,26) (22,12) (22,19) (24,3) (24,28)

    (26,4) (26,27) (27,7) (27,24) (29,7) (29,24)

    (30,11) (30,20) (,)

  • CC-BY-NC-ND PID_00200952 46 Criptografa con curvas elpticas

    Puntos de E:

    8>>>>>>>>>>>>>>>>>:

    (1,15) (1,16) (3,5) (3,26) (8,10) (8,21)

    (9,7) (9,24) (15,8) (15,23) (20,1) (20,30)

    (21,8) (21,23) (22,6) (22,25) (23,4) (23,27)

    (24,14) (24,17) (26,8) (26,23) (29,11) (29,20)

    (,)

    Entre las dos curvas tenemos pues 64 puntos. La correspondencia entre mensajes y pun-

    tos viene dada por la tabla siguiente.

    punto de E mensaje punto de E mensaje

    (0,1) 0 (1,15) 24

    (0,30) 1 (1,16) 25

    (1,6) 2 (3,5) 10

    (1,25) 3 (3,26) 11

    (6,7) 12 (8,10) 6

    (6,24) 13 (8,21) 7

    (8,14) 16 (9,7) 30

    (8,17) 17 (9,24) 31

    (10,15) 20 (15,8) 50

    (10,16) 21 (15,23) 51

    (11,1) 22 (20,1) 46

    (11,30) 23 (20,30) 47

    (13,6) 26 (21,8) 8

    (13,25) 27 (21,23) 9

    (14,11) 28 (22,6) 32

    (14,20) 29 (22,25) 33

    (17,6) 34 (23,4) 56

    (15,25) 35 (23,27) 57

    (18,11) 36 (24,14) 18

    (18,20) 37 (24,17) 19

    (19,2) 38 (26,8) 4

    (19,29) 39 (26,23) 5

    (20,1) 40 (29,11) 14

    (20,30) 41 (29,30) 15

    (21,5) 42 (,) 63(21,26) 43 - -

    (22,12) 44 - -

    (22,19) 45 - -

    (24,3) 48 - -

    (24,28) 49 - -

    (26,4) 52 - -

    (26,27) 53 - -

    (27,7) 54 - -

    (27,24) 55 - -

    (29,7) 58 - -

    (29,24) 59 - -

    (30,10) 60 - -

    (30,20) 61 - -

    (,) 62 - -

  • CC-BY-NC-ND PID_00200952 47 Criptografa con curvas elpticas

    5. Criptografa y protocolos criptogrficos basadosen curvas elpticas

    .

    5.1. Protocolos criptogrficos

    Escribiremos EU(m) cuando hablamos de cifrar el mensaje m usando la clave

    pblica del usuario U y DU(c) cuando hablamos de descifrar el mensaje c.

    5.1.1. Protocolo de Diffie-Helman

    Versin clsica. Sea p un nmero primo, Zp un elemento primitivo. Cadausuario U elige al azar un nmero secreto nU Zp y hace pblico el valor nU .Los usuarios A y B desean compartir una clave secreta:

    .

    Algoritmo 5.1.

    AnA B

    AnB B

    La clave secreta ser K = nAnB , que solo es conocida por A y B.

    Versin con curvas elpticas. Sea E una curva elptica sobre Fp y P E puntopblicamente conocido. Cada usuario U elige al azar un nmero secreto nU Fp y hace pblico el valor nUP. Para compartir una clave secreta, A y B deben

    hacer:

    .

    Algoritmo 5.2.

    AnAP B

    AnBP B

    La clave secreta ser K = (nA nB)P que solo es conocida por A y B.

    Ejemplo 5.1. Acuerdo de claves de Diffie-Helman usando curvas elpticas

    En primer lugar, los usuarios A y B eligen una curva elptica E sobre un cuerpo finito Zp.Tambin eligen un punto P de la curva de forma que su orden sea un nmero primogrande.

    Suponemos que la curva elptica es E : y2 = x3 + 5x + 7 sobre Z113. El nmero de puntosracionales de esta curva es 127 que es un nmero primo y, por lo tanto, los puntos de la

    curva elptica constituyen un grupo isomorfo a Z127.

    Tomemos P = (16,51) que tiene orden ord(P) = 127, o sea P es un generador de la curva E.

  • CC-BY-NC-ND PID_00200952 48 Criptografa con curvas elpticas

    Protocolo

    A B. El usuario A elige un entero grande nA, calcula KA = nA P y enva KA a B.

    Si A toma, por ejemplo, nA = 98, entonces, KA = nA P = (24,74).

    B A. El usuario B elige un entero grande nB, calcula KB = nB P y enva KB a A.

    Si B toma, por ejemplo, nB = 101; entonces, KB = nB P = (3,7).

    A B. El usuario A calcula K = nA KB = nA nB P = 98(3,7) = (5,48).

    B A. El usuario B calcula K = nB KA = nB nA P = 101(24,74) = (5,48).

    Al finalizar el algoritmo, tanto A como B disponen del mismo punto que tomarn comoclave de sesin: K = (5,48).

    Simulador de clculosen curvas elpticas

    Para comprobar los clculos

    de este ejemplo podis usar

    el programa SAGE, que

    encontraris en la direccin

    http:www.sagemath.org/.

    Utilizacin del software SAGE

    En este ejemplo podemos seguir los clculos numricos haciendo uso del software SAGE.

    Se puede utilizar instruccin a instruccin, pero tambin se puede utilizar un script que

    nos calcule directamente el resultado que queremos.

    Antes que nada definiremos el cuerpo finito F113, que denominaremos F, con la orden:

    sage: F = FiniteField(113)

    A continuacin definiremos la curva elptica y2 = x3 + 5 x + 7. En general, la curvadefinida por los parmetros [a,b,c,d,e] es y2 + axy + cy = x3 + bx2 + dx + e.

    sage: E = EllipticCurve(F,[0,0,0,5,7])Elliptic Curve defined by y^2 = x^3 + 5*x + 7 over Finite Field of size 113

    Si queremos conocer el orden de la curva elptica:

    sage: print(E.cardinality())127

    A continuacin, para indicarle el punto P = (16,51) escribiremos lo siguientes (y calcula-remos, tambin, su orden):

    sage: P = E.point((16,51))sage: P.order()

    donde estamos explicando que se toma el punto P = (16,51) dentro del dominio depuntos de la curva E.

    El usuario A calcula KA := 98P y el usuario B KB := 101 P:

    sage: K_A = 98*Psage: K_B = 101*P

    Finalmente, podemos comprobar que los dos usuarios pueden utilizar la misma clave

    comn: K = nA KB = nB KA:

    print 101*K_A,98*K_B

    Tras esta ltima instruccin SAGE contesta con los dos valores que le hemos pedido

    imprimir:

    (5 : 48 : 1) (5 : 48 : 1)

    Observar que SAGE est realizando las operaciones en coordenadas proyectivas.

  • CC-BY-NC-ND PID_00200952 49 Criptografa con curvas elpticas

    5.1.2. Protocolo de tres-pasos de Shamir

    Versin clsica. Este protocolo pretende enviar el mensaje m de A a B.

    .

    Algoritmo 5.3.

    AEA(m) B

    AEB(EA(m)) B

    AEB(m) B

    Es fundamental suponer que la funcin criptogrfica utilizada cumple, para

    cada pareja de usuarios, EA EB = EB EA. Un ejemplo de funcin criptogrficacon esta caracterstica es EA(x) = x

    nA en Z/p, con p primo y nA clave privada

    del usuario A. En este caso concreto, el protocolo se denomina protocolo de

    Massey-Omura:

    .

    Algoritmo 5.4.

    AmnA B

    A(mnA )nB B

    AmnB B

    Versin con curvas elpticas. Veamos la traduccin del protocolo de Massey-

    Omura. Sea E una curva elptica sobre Fq, N = #E(q). Sea P E el mensaje queel usuario A quiere enviar a B. Cada usuario U tiene una clave privada nU tal

    que mcd(nU ,N) = 1.

    .

    Algoritmo 5.5.

    AnAP B

    AnB(nAP) B

    AnBP B

    5.2. Criptosistema ElGamal

    Versin clsica. Se basa en el problema del logaritmo discreto sobre un cuerpo

    finito Z/p, con p primo. Sea Z/p un elemento primitivo el cual se hacepblico. Cada usuario U tiene una clave privada nU Z/p {0,1,p 1} y hacepblica la clave pblica U =

    nU . Suponemos que el usuario A quiere enviar

    el mensaje m al usuario B. A debe seguir los siguientes pasos:

  • CC-BY-NC-ND PID_00200952 50 Criptografa con curvas elpticas

    A escoge un nmero k Z/p {0,1,p 1} al azar y calcula k, cifra m como c = EB(m) = m (B)k, enva a B el par (c,k).

    B para descifrar el mensaje deber hacer:

    calcula = (k)nB , m = c 1.

    Versin con curvas elpticas. Sea E una curva elptica sobre Z/p, sea P un

    punto de la curva de orden grande N (sera deseable que P = E), N|#E(p).Para cada usuario U, sea nU su clave privada, 1 < nU < N; (bastara tomar

    nU < p + 1 2p). La clave pblica de U ser PU = nUP. Suponemos que el

    usuario A quiere enviar el mensaje m cifrado al usuario B:

    A escoge al azar un nmero k Z/p, calcula Pm el punto de la curva asociado al mensaje m, cifra Pm como C = EB(Pm) = Pm + k PB, enva a B (C,kP).

    B para descifrar el mensaje deber hacer:

    Pm = C nB(kP), encuentra el mensaje m asociado con el punto Pm.

    5.3. Criptosistema RSA

    Recordar

    La funcin de Euler (n)proporciona el cardinal de losnmeros entre 1 y n que sonprimos con n. En el supuestode que n sea un nmeroprimo n = p, tenemos(p) = p 1. En el supuestode que n = pq es el productode dos primos tenemos(n) = (p 1)(q 1).

    Versin clsica. Se basa en la funcin de una va o unidireccional de la po-

    tenciacin: E(e,n)(x) = xe (mod n) donde 1 < x < n = pq, 1 < e < (n) con

    mcd(e,(n)) = 1 y d = e1 (mod (n)). La fortaleza del criptosistema se basa

    en que p y q sean nmeros primos grandes y, por lo tanto, n sea difcilmente

    factorizable, lo que imposibilita calcular (n).

    Observacin

    Actualmente no se conoceningn algoritmo defactorizacin de complejidadmenor que lasub-exponencial.

    Supongamos que un usuario A quiere enviar un mensaje m a B. Los parme-

    tros pblicos de B son (e,n), y los privados (p,q,(n),d). A deber seguir los

    siguientes pasos:

    El usuario A cifra m calculando c = E(e,n)(x) = xe (mod n) (con el mtodo demultiplicar y elevar al cuadrado, por ejemplo),

    El usuario A enva c a B.

    El usuario B para descifrar el mensaje c deber hacer:

    m = D(d,n)(c) = cd (mod n)

  • CC-BY-NC-ND PID_00200952 51 Criptografa con curvas elpticas

    Versin con curvas elpticas (esquema de KMOV. 1991). En este esquema se

    representan los puntos de una curva elptica de la forma y2 = x3 + b sobre Zn

    como En(b). Para generar la clave pblica el usuario B escoger dos nmeros

    primos grandes (p,q) tales que p = q = 2 (mod 3) y, como en el esquema clsico,

    calcular y publicar (e,n), donde n = pq y mantendr en secreto las clavesprivadas (p,q,(n),d).

    Observacin

    El esquema de KMOV(Koyama, Maurer, Okamoto,Vanstone) usa curvas elpticasdefinidas sobre Zn, donden = pq es el producto de dosnmeros primos que semantienen en secreto. Laseguridad de KMOV es lamisma que la del esquemaRSA. No obstante, el cifradoen el esquema KMOV es msflexible que en el RSA, porejemplo, la curva elptica nose fija, sino que se construyepara cada nuevo mensaje.Para solucionar esteinconveniente hay otrosesquemas como el deDemytko (1993), Meyer yMller ( 1996), Paillier(1999), etc.

    Cada vez que A quiere enviar un mensaje m a B deber seguir los siguientes

    pasos:

    El usuario A divide su mensajem en dos partesm = (m1,m2) dondem1,m2 Zn.

    El usuario A determina el valor b de la curva de forma que m En(b).Especficamente, calcula b = m22 m

    31 (mod n).

    cifra el punto m calculando c = E(m) = em sobre En(b), enva el texto cifrado c = (c1,c2) a B.

    El usuario B para descifrar el mensaje c deber hacer:

    a partir del mensaje cifrado c = (c1,c2) el usuario B puede determinar el valorde b puesto que este no cambia en el proceso de cifrado. Especficamente,

    calcula b = c22 c31 (mod n) y construye la curva y

    2 = x3 + b.

    a partir de la clave privada calcula m = D(c) = dc sobre En(0,b).

    5.4. Firma digital

    En 1991 el NIST (National Institute of Standards and Technology) propuso el

    DSS (digital signature standard), basado en el DSA (digital signature algorithm),

    como estndar de firma digital. El DSS se basa en el criptosistema ElGamal.

    Aun cuando podemos hacer la traduccin de este sistema de firma a las curvas

    elpticas, el que veremos es la versin anloga al DSA denominada ECDSA

    (elliptic curve digital signature algorithm) puesto que este se ha convertido en el

    estndar de firma digital con curvas elpticas.

    Ver tambin

    El criptosistema ElGamal seestudia en el mduloElementos de criptografade esta asignatura.

    Versin clsica: DSS. Usaremos la misma nomenclatura que en el criptosiste-

    ma ElGamal que ya hemos visto anteriormente.

    El usuario A quiere firmar un mensaje m:

    A escoge un nmero k Z/p {0,1,p 1} al azar, tal que mcd(k,p 1) = 1 ycalcula k,

    calcula h(m), donde h(.) es una funcin hash, calcula s Z/(p 1) verificando,

    h(m) = nA k + k s (mod (p 1)).

  • CC-BY-NC-ND PID_00200952 52 Criptografa con curvas elpticas

    La firma de m es la pareja (k,s).

    Un usuario que quiera verificar la firma del mensaje m deber hacer:

    calcular el hash de m, h(m), obtener del directorio pblico la clave pblica de A: nA , validar la firma comprobando la siguiente igualdad:

    h(m) = (nA)k (k)s (mod p).

    Versin clsica: DSA. Sea q un nmero primo de unos 160 bits y p otro n-

    mero primo de unos 500 bits tal que p = 1 (mod q). Sea un generador del

    subgrupo cclico de orden q de (Z/p). Para cada usuario U, su clave privada es

    nU , un nmero escogido al azar, 0 < nU < q y la clave pblica es U = nU .

    El usuario A quiere firmar un mensaje m:

    A escoge un nmero 0 < k < q al azar y calcula r = (k (mod p)) (mod q) calcula el hash de m, 0 < h(m) < q, calcula s que verifica

    h(m) + nA r = k s (mod q),

    La firma de m es la pareja (r,s).

    Un usuario que quiera verificar la firma del mensaje m deber hacer:

    calcular el hash de m, h(m), obtener del directorio pblico la clave pblica de A: A = nA , calcular u1 = s1h(m), u2 = s1r (mod q), validar la firma si, y solo si, r = u1 u2A (mod p).

    Versin con curvas elpticas: ECDSA. Sea E una curva elptica sobre Z/p, sea

    P un punto de la curva de orden primo n. Cada usuario U toma al azar un

    nmero nU [1,n 1] que ser su clave privada, la clave pblica de U serPU = nUP. El usuario A quiere firmar un mensaje m:

    A escoge un nmero k [1,n 1] al azar, calcula h(m), donde h(.) es el algoritmo SHA-1 (secure hash algorithm), calcula kP = (x1,y1) y r = x1 (mod n). Si r = 0, entonces volvemos a escoger

    otro k y repetimos el mismo proceso.

    calcula k1 (mod n) calcula s = k1{h(m) + nAr} (mod n). Si s = 0, volvemos a escoger otro k y

    repetimos el mismo proceso.

    La firma de m es la pareja (r,s).

  • CC-BY-NC-ND PID_00200952 53 Criptografa con curvas elpticas

    Un usuario que quiera verificar la firma del mensaje m deber hacer:

    obtener del directorio pblico la clave pblica de A: PA = nAP, verificar que r,s [1,n 1], calcular w = s1 (mod n) y el hash de m: h(m), calcular u1 = h(m) w (mod n) y u2 = r w (mod n), calcular (x0,y0) = u1P + u2PA y v = x0 (mod n), validar la firma si, y solo si, v = r.

    Siguiendo las recomendaciones del NIST (National Institute of Standards and

    Technology, Digital Signature Standard, FIPS, PUB 186-2. 2000) se debera ve-

    rificar que el orden de la curva elptica sobre Fp sea de la forma aq dondeq es primo y a es un entero pequeo, de esta forma la curva no es vulnera-

    ble al ataque de Pohlig-Hellman. Tambin es conveniente que la curva no sea

    supersingular ni anmala.

    Dada una curva elptica, deberemos calcular su cardinal y ver si satisface las

    condiciones anteriores. Aunque hay un algoritmo polinomial (Schoof 1985)

    para hacer este clculo, su complejidad es del orden de log8(p), que para valo-

    res demasiado grandes de p no es prctico.

    5.5. Comparacin de los sistemas de clave pblica

    5.5.1. Seguridad

    Para llegar a un grado aceptable de seguridad el RSA y el DSA deberan usar

    claves de 1024 bits, mientras que para la ECC sera suficiente con 160.

    A medida que la clave crece, aumenta la distancia entre la seguridad de cada

    propuesta. Por ejemplo, el ECC con 380 bits es mucho ms seguro que el

    RSA o el DSA con 2000 bits (de hecho, para esta longitud de clave, el ECC es

    comparable al RSA de 7600 bits).

    5.5.2. Eficiencia

    Para comparar los niveles de eficiencia, deberemos tener en cuenta:

    1) Costes computacionales, o sea la cantidad de computacin requerida para

    cifrar y descifrar.

    Cada uno de los tres sistemas, ECC, RSA, DSA, exige un gran esfuerzo compu-

    tacional. En el RSA se puede usar un exponente pblico pequeo (aun cuando

    se deberan discutir los riesgos en los que se puede incurrir) para mejorar la

    rapidez en la verificacin de firmas y en el cifrado, pero no en la generacin

  • CC-BY-NC-ND PID_00200952 54 Criptografa con curvas elpticas

    de la firma y el descifrado. Tanto en el DSA como en el ECC se pueden pre-

    calcular varias tablas para mejorar el rendimiento. Tambin se pueden utilizar

    bases normales y ptimas para trabajar en cuerpos finitos de la forma F2m .

    Ver tambin

    Las bases normales seestudian en el mduloCuerpos finitos.Teniendo en cuenta el estado actual del arte en las implementaciones resulta

    que la ECC es un orden de magnitud ms rpido que el RSA y, tambin, que

    el DSA.

    2) Tamao de la clave, o sea, la cantidad de bits necesarios para guardar la

    pareja de claves y los otros parmetros del sistema.

    La tabla siguiente compara la medida de los parmetros del sistema y de las

    claves (pblica y privada) para los diferentes sistemas.

    Medida de los parmetros y claves

    Sistema de parmetros (bits) Clave pblica (bits) Clave privada (bits)

    RSA 2208 1088 2048

    DSA 2208 1024 160

    ECC 481 161 160

    3) Anchura de banda, o sea, la cantidad de bits que se deben transmitir para

    comunicar un mensaje cifrado o una firma digital.

    Los tres tipos de criptosistemas requieren la misma anchura de banda cuando

    se usan para cifrar o firmar mensajes largos. De todos modos cuando los men-

    sajes no son largos se ha de observar con ms atencin (y, de hecho, este tipo

    de mensajes son los que usualmente son utilizados en la criptografa de clave

    pblica).

    Por poder hacer comparaciones, suponemos que queremos firmar un mensaje

    de 2000 bits o cifrar un mensaje de 100 bits. Las dos siguientes tablas compa-

    ran las longitudes de las firmas y de los mensajes cifrados, respectivamente.

    Medida de las firmas en mensajes de 2000 bits

    Tamao de la firma (bits)

    RSA 1024

    DSA 320

    ECC 320

    Medida de los mensajes de 100 bits, cifrados

    Mensaje cifrado (bits)

    RSA 1024

    ElGamal 2048

    ECC 321

    En resumen, el sistema ECC tiene una gran eficiencia y, en las implementacio-

    nes, esto significa rapidez, bajo consumo y reduccin de la medida del cdigo

    transmitido.

  • CC-BY-NC-ND PID_00200952 55 Criptografa con curvas elpticas

    6. ECC estndares y aplicaciones.

    6.1. ECC estndares

    Los progresos realizados en la criptografa con curvas elpticas desde su apa-

    ricin en la dcada de los ochenta, hasta la actualidad, lo han transformado

    en algo ms prctico que los esquemas propuestos inicialmente. Las mejoras

    introducidas han permitido la creacin de implementaciones que ofrecen la

    posibilidad de comenzar a extender el uso de este tipo de criptografa.

    * http://www.certicom.com

    Para promover la difusin de las mejores tcnicas conocidas as como la in-

    teroperatibidad entre aplicaciones, han ido surgiendo esfuerzos por estanda-

    rizar la criptografa elptica. Este esfuerzo ha sido liderado por la corporacin

    Certicom*, haciendo las mayores aportaciones en materia de criptografa con

    curvas elpticas a los principales estndares de clave pblica existentes.

    A continuacin detallamos algunos de los estndares ms importantes, as

    como otros ms especficos, basados en aquellos.

    6.1.1. Estndares principales

    Los primeros frutos importantes del esfuerzo por estandarizar la criptografa

    elptica se traducen en la adopcin de sus principales algoritmos dentro de

    algunos de los estndares ms importantes de criptografa de clave pblica.

    ANSI X9.62, X9.63

    El American National Standards Institutes ha sido una de las organizaciones

    de ms peso al adoptar las curvas elpticas dentro de sus estndares de cripto-

    grafa. Los estndares de esta organizacin son referencia directa para servicios

    financieros y la industria en general.

    La primera aparicin de la criptografa con curvas elpticas fue en el estndar

    X9.62, con la adopcin del esquema de firma digital ECDSA (elliptic curve digi-

    tal signature algorithm) en enero de 1999 Algunas de las caractersticas iniciales

    que se adoptaron fueron una longitud mnima para las claves de 80 bits, y el

    uso de bases normales y polinomiales sobre F2m .

    Posteriormente (2000) se ampli este estndar con el X9.63. El ncleo de

    este estndar est basado en el anterior, pero se adoptan algunos esquemas

  • CC-BY-NC-ND PID_00200952 56 Criptografa con curvas elpticas

    para el intercambio de claves como la ECDH (elliptic curve Diffie-Hellman),

    ECMQV (elliptic curve Menezes-Qu-Vastone) o ECUM (elliptic curve unified model

    Key Agreement). Aparte de estos tambin se introduce el esquema de cifrado

    ECAES (Bellare-Rogaway).

    IEEE P1363 y P1363A

    La IEEE incluy la criptografa con curvas elpticas en su estndar de cripto-

    grafa de clave pblica P1363 en febrero del 2000. El estndar es muy general

    y fue desarrollado principalmente por investigadores de Certicom (Vanstone

    y Menezes). En l se describen algoritmos tpicos de criptografa de clave p-

    blica sobre curvas elpticas. Algunas de las caractersticas de este estndar son

    las siguientes:

    Soporta curvas elpticas sobre Fp y F2m

    Apoyo para esquemas de firmado ECDSA (elliptic curve digital signature al-gorithm) y ECNR (Elliptic Curve Nyberg-Rueppel) signature scheme.

    Apoyo para algoritmos de intercambio de claves ECDH (elliptic curve Diffie-Hellman) key agreement y ECMQV (elliptic curve Menezes-Qu-Vastone) key

    agreement.

    Ver tambin

    Los pairings se estudian en elmdulo Pairings y susaplicaciones .

    Posteriormente, en un draft que complementa este estndar llamado P1363A

    (standard specifications for public key cryptography: additional techniques) se in-

    troduce la posibilidad de utilizar el esquema de cifrado ECIES. Tambin, en

    el draft P1363.3, se introducen los esquemas basados en la identidad usando

    pairings.

    ISO 14888, 9796-4, 15946

    La International Organization for Standarizatcion (ISO) fue otra de las prin-

    cipales organizaciones para la estandarizacin que apuesta por aadir la crip-

    tografa con curvas elpticas en sus estndares criptograficos. La descripcin

    principal del uso de estas tcnicas se hace en el estndar 15946 (cryptographic

    techniques based on elliptic curves). Mientras que la primera parte del estndar

    hace una descripcin general de los mtodos basados en curvas elpticas, la se-

    gunda y tercera parte ya introducen el uso del esquema ECDSA para las firmas

    digitales, y algunos algoritmos de intercambio de claves (ECDH, ECMQV).

    Esta no es la nica repercusin de la criptografa de curva elptica sobre los es-

    tndares de la ISO. Tambin podemos encontrar modificaciones a otros estn-

    dares de firma digital, concretamente al 14888 (digital signature with appendix

    part 3: certificate-based mechanisms) y al 9796-4 (digital signature with message

    recovery, discrete logarithm-based mechanisms).

  • CC-BY-NC-ND PID_00200952 57 Criptografa con curvas elpticas

    FIPS 186-2

    Uno de los primeros xitos de la estandarizacin de los algoritmos cripto-

    grficos basados en curvas elpticas fue la adopcin de esta tecnologa por el

    National Institute