cursoBasicoCryptografia

20

Click here to load reader

Transcript of cursoBasicoCryptografia

Page 1: cursoBasicoCryptografia

Curso Basico de Criptografıa∗

Jose de Jesus Angel AngelSeccion de Computacion

CINVESTAV [email protected]

http://computacion.cs.cinvestav.mx/∼jjangel/http://computacion.cs.cinvestav.mx/∼jjangel/smm/curso1.pdf

Notas de Curso: Mexico, D.F., a 24 de octubre de 2005.

Este curso tiene como proposito repasar las matematicas usadas en lacriptografıa.

Contenido

1 Introduccion 21.1 Definiciones basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Primitiva RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Primitiva DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Primitiva DH 6

3 Otras primitivas 63.1 Ejemplo 1 SSL/TLS . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Curvas elıpticas 84.1 Curvas FIPS 186-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Primitiva DSAE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.3 Primitiva DHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.4 Estandares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.5 Ataque MOV y FR . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.5.1 Los ataques MOV y FR al PLDE . . . . . . . . . . . . . . . 154.5.2 Implementacion del mapeo de Tate . . . . . . . . . . . . . . 164.5.3 Ejemplo del algoritmo de Miller . . . . . . . . . . . . . . . . 17

∗This version is a draft.

1

Page 2: cursoBasicoCryptografia

1. Introduccion 2

1 Introduccion

1. La historia de la criptografıa puede consultarse en el libro de Kahn.

2. Criptografıa de clave privada (simetrica): ambos lados de la comunicaciontienen la misma clave. Con la misma clave se cifra y descifra la informacion.

3. Criptografıa de clave publica (asimetrica): ambos lados de la comunicaciontienen un par de claves, una privada y otra publica. Con la publica se cifrainformacion, con la privada se descifra la informacion.

4. Confidencialidad de la informacion: se tiene confidencialidad en la trans-micion de la informacion cuando solo las personas (entidades) autorizadaspueden saber el contenido de la informacion.

5. Integridad de la informacion: la informacion es integra sı existe un metodopor el cual se puede mostrar que la informacion ha sido o no: modificada,borrada etc., (es importante hacer notar que no es posible impedir que sucedaesto)

6. Autenticidad: una entidad es autentica si es posible verificar su identidad.

7. No rechazo: es el propiedad que tiene una entidad de no poder rechazareventos hechos por ella.

Otros Problemas conocidos:

8. Intercambio de claves simetricas.

9. Control de acceso.

10. Autenticacion del origen de los mensajes.

11. Criptografıa: es la ciencia que estudia los problemas basicos de seguridad dela informacion: autenticidad, confidencialidad, integridad, no rechazo, etc.

12. Un algoritmo simetrico como AES (Advanced Encryption Standard) resuelveel problema de la confidencialidad.

13. Un algoritmo de intercambio de claves simetricas resuelve el problema deintercambio de claves simetricas, como los basados en el PDH (ProblemaDiffie-Hellman).

14. Un algoritmo MAC (Hash) resuelve el problema de integridad, junto con elproblema de autenticacion del origen del mensaje.

Page 3: cursoBasicoCryptografia

1. Introduccion 3

15. Un algoritmo de firma digital resuelve el problema de autenticacion de unaentidad. Ası como tambien una firma digital certificada resuelve el problemadel no rechazo.

1.1 Definiciones basicas

Antes de 1976 los sistemas criptograficos eran simetricos.La criptografıa hasta el ano 1976 tenia el gran problema de la comparticion de

las claves simetricas.El nacimiento de la Criptografıa de clave publica es motivado al intentar resolver

el problema de intercambio de claves simetricas.A partir de ahı han sido muchos los esquemas dentro de la criptografıa de clave

publica que se han propuesto.Particularmente este tipo de criptografıa hace uso de una funcion de un solo

sentido, es decir es tal que, es eficiente de evaluar y la evaluacion de su inversa escompletamente ineficiente.

Podemos pensar que las matematicas de la criptografıa de clave publica significael encontrar una funcion de un solo sentido.

Los casos mas conocidos de este tipo de funciones son:

1. El producto y la factorizacion: es muy eficiente efectuar el producto de dosnumeros primos p, q de la misma longitud, como n = pq, pero no es eficiente elfactorizar un numero n conociendo que es el producto de dos numeros primosp, q de aproximadamente la misma longitud generados aleatoriamente.

2. El efectuar un exponenciacion y el conocer el exponente al cual fue elevadoun numero: es eficiente evaluar ax mod p donde a es una base y x un numeroentero, pero no es eficiente calcular x, a partir de a, b donde b = ax mod p.

Niveles de aplicacion de la criptografıa:

1. primitiva: una primitiva es la formula matematica que nos proporciona lafuncion de un solo sentido.

2. esquema: el esquema es la solucion criptografica que resuelve un problemabasico de seguridad usando primitivas criptograficas.

3. protocolo: el protocolo es la aplicacion final que el usuario manipula, con-siste en una serie de pasos desde el inicio hasta el final de la comunicacion,donde se incluyen una serie de esquemas y primitivas criptograficas. Cadaprotocolo tiene definido una conjunto de todas las posibilidades de como yque primitivas y esquemas usa.

Formalicemos algunos de los problemas matematicos de los cuales se puedenderivar primitivas criptograficas.

Page 4: cursoBasicoCryptografia

1. Introduccion 4

1. Problema de la Factorizacion Entera: Sea n un numero entero, entoncesencontrar cualquier primo p que sea factor de n significa factorizar a n.

2. Problema Logaritmo Discreto: Sea G un grupo cıclico generado por g.El Problema del Logaritmo Discreto PLD es el problema de calcular x apartir de g, y gx.

3. Problema Diffie-Hellman: Sea G un grupo cıclico generado por g. Elproblema Diffie-Hellman PDH es el problema de calcular gsAsB a partir degsA

, y gsB.

1.2 Primitiva RSA

1. Sean n = pq donde p, q son dos numeros primos elegidos aleatoriamente delmismo tamano. Entonces n es la clave publica y p, q son la clave privada. Unlado es la operacion producto, y el otro lado es la factorizacion de n PFE.

2. Sea m el mensaje entonces c = me mod n es la primitiva de cifrado RSA,donde c es el mensaje cifrado, e es constante y se elige como e = 224

+ 1.

3. Para descifrar el mensaje se aplica la primitiva cd mod n donde d = e−1 mod λ(n)y λ es la funcion de Carmichael.

4. La seguridad del sistema RSA depende de la factorizacion del numero enteron.

5. Es facil ver que de esta manera la primitiva RSA puede convertirse en unesquema de cifrado, y un esquema de intercambio de claves simetricas.

6. Tambien es posible ver que la primitiva RSA puede generar un esquema defirma digital. El proceso de firma, que se efectua por el propietario de unaclave privada, se lleva realiza por la primitiva firma = (Hash(doc))d mod ny (firma, doc) es el documento con su firma digital.

El proceso de verificacion se efectua por cualquier entidad, y es el siguiente:

(i) de (firma, doc) calcular h = firmae mod n, ası como tambien Hash(doc).

(ii) la firma se acepta si h = Hash(doc), en caso contrario se rechaza.

7. El propio sistema RSA genera el problema RSA. A partir de c, e, n, en-contrar m tal que c = me mod n. Es decir es el problema de obtener la raıze-esima de c modulo n.

8. La mayorıa de los ataque conocidos son evitados si se implementa RSA deacuerdo a la ultima version del estandar PKCS #1 (v. 2.1).

Page 5: cursoBasicoCryptografia

1. Introduccion 5

1.3 Primitiva DSA

A Geneacion de claves.

1. Se elige un numero primo q de 160 bits.

2. Se elige un primo p de 1024 bits, tal que q|(p− 1).

3. Es decir en el grupo Z∗q hay elementos de orden q.

4. Se elige una raız primitiva x en Zp y se calcula g = x(p−1)/q mod p, entoncesg ∈ Z∗

p tiene orden q. Se elige un numero aleatorio ≤ a ≤ (q− 1) y se calculaA = ga mod p.

5. La clave publica de A es (p, q, g, A).

6. La clave privada es a.

B Metodo de Firma Digital.

1. Para firmar el documento m, se elige un numero aleatorio 1 ≤ k ≤ q − 1, yse calcula r = (gk mod p) mod q.

2. Se calcula s = k−1(h(m) + ar) mod q.

3. Entonces la firma de m es (r, s).

C Metodo de Verificacion de Firma.

1. Para verificar la firma de m se requiere la clave publica (p, q, g, A), y lafuncion hash h.

2. Se verifica primero que 1 ≤ r ≤ (q − 1), y 1 ≤ s ≤ (q − 1), de lo contrario serechaza la firma.

3. Se verifica si la siguiente igualdad es cierta:

r = ((g(s−1h(m)) mod qA(rs−1) mod q) mod p) mod q.

D En terminos de eficiencia el esquema de firma DSA es mejor que muchos delmismo tipo ya que las exponenciaciones se efectuan en Z∗

p donde q tiene 160bits.

E El ataque mas directo es encontrar a a a partir de g y ga sobre Z∗p p de 1024

bits, se aplica el metodo de ındices para grupos en general.

F El PLD sobre el subgrupo cıclico generado por g, se aplica el metodo Shanksy Pollard para grupos de orden primo.

Page 6: cursoBasicoCryptografia

2. Primitiva DH 6

2 Primitiva DH

1. Sea G un grupo y g un generador.

2. A elige un numero secreto a y calcula ga.

3. B elige un numero secreto b y calcula gb.

4. Se intercambian los elementos previamente calculados.

5. Es decir A, tiene ahora gb y calcula (gb)a.

6. Es decir B, tiene ahora ga y calcula (ga)b.

7. Las dos partes A,B tienen el elemento compartido gab.

3 Otras primitivas

1. Una funcion Hash H es una funcion de el espacio de cadenas de bits ({0, 1}∗)de longitud arbitraria a las cadenas de caracteres de longitud fija ({0, 1}d).

2. Las funciones hash mas conocidas son MD5, SHA1, SHA− 256,...

3. Una algoritmo simetrico es un algoritmo que cifra un bloque de bits con unaclave secreta, y se descifra con la misma clave secreta, los mas usados sonRC2, RC4, IDEA, DES, TDES, AES, Camellia.

3.1 Ejemplo 1 SSL/TLSCipherSuite TLS NULL WITH NULL NULL = 0x00,0x00 ; The following CipherSuite definitions require thatthe server provide an RSA certificate that can be used for key exchange. The server may request either an RSAor a DSS signature-capable certificate in the certificate request message.

CipherSuite TLS RSA WITH NULL MD5 = { 0x00,0x01 };CipherSuite TLS RSA WITH NULL SHA = { 0x00,0x02 };CipherSuite TLS RSA EXPORT WITH RC4 40 MD5 = { 0x00,0x03 };CipherSuite TLS RSA WITH RC4 128 MD5 = { 0x00,0x04 };CipherSuite TLS RSA WITH RC4 128 SHA = { 0x00,0x05 };CipherSuite TLS RSA EXPORT WITH RC2 CBC 40 MD5 = { 0x00,0x06 };CipherSuite TLS RSA WITH IDEA CBC SHA = { 0x00,0x07 };CipherSuite TLS RSA EXPORT WITH DES40 CBC SHA = { 0x00,0x08 };CipherSuite TLS RSA WITH DES CBC SHA = { 0x00,0x09 };CipherSuite TLS RSA WITH 3DES EDE CBC SHA = { 0x00,0x0A };

The following CipherSuite definitions are used for server- authenticated (and optionally client-authenticated)Diffie-Hellman. DH denotes cipher suites in which the server’s certificate contains the Diffie-Hellman parameterssigned by the certificate authority (CA). DHE denotes ephemeral Diffie-Hellman, where the Diffie-Hellman para-meters are signed by a DSS or RSA certificate, which has been signed by the CA. The signing algorithm used isspecified after the DH or DHE parameter. The server can request an RSA or DSS signature- capable certificatefrom the client for client authentication or it may request a Diffie-Hellman certificate. Any Diffie-Hellman certifi-cate provided by the client must use the parameters (group and generator) described by the server.

Page 7: cursoBasicoCryptografia

3. Otras primitivas 7

CipherSuite TLS DH DSS EXPORT WITH DES40 CBC SHA = { 0x00,0x0B };CipherSuite TLS DH DSS WITH DES CBC SHA = { 0x00,0x0C };CipherSuite TLS DH DSS WITH 3DES EDE CBC SHA = { 0x00,0x0D };CipherSuite TLS DH RSA EXPORT WITH DES40 CBC SHA = { 0x00,0x0E };CipherSuite TLS DH RSA WITH DES CBC SHA = { 0x00,0x0F };CipherSuite TLS DH RSA WITH 3DES EDE CBC SHA = { 0x00,0x10 };CipherSuite TLS DHE DSS EXPORT WITH DES40 CBC SHA = { 0x00,0x11 };CipherSuite TLS DHE DSS WITH DES CBC SHA = { 0x00,0x12 };CipherSuite TLS DHE DSS WITH 3DES EDE CBC SHA = { 0x00,0x13 };CipherSuite TLS DHE RSA EXPORT WITH DES40 CBC SHA = { 0x00,0x14 };CipherSuite TLS DHE RSA WITH DES CBC SHA = { 0x00,0x15 };CipherSuite TLS DHE RSA WITH 3DES EDE CBC SHA = { 0x00,0x16 };

The following cipher suites are used for completely anonymous Diffie-Hellman communications in which neitherparty is authenticated. Note that this mode is vulnerable to man-in-the-middle attacks and is therefore depre-cated.

CipherSuite TLS DH anon EXPORT WITH RC4 40 MD5 = { 0x00,0x17 };CipherSuite TLS DH anon WITH RC4 128 MD5 = { 0x00,0x18 };CipherSuite TLS DH anon EXPORT WITH DES40 CBC SHA = { 0x00,0x19 };CipherSuite TLS DH anon WITH DES CBC SHA = { 0x00,0x1A };CipherSuite TLS DH anon WITH 3DES EDE CBC SHA = { 0x00,0x1B };

Addition of Kerberos Cipher Suites to TLS October 1999

CipherSuite TLS KRB5 WITH DES CBC SHA = { 0x00,0x1E };CipherSuite TLS KRB5 WITH 3DES EDE CBC SHA = { 0x00,0x1F };CipherSuite TLS KRB5 WITH RC4 128 SHA = { 0x00,0x20 };CipherSuite TLS KRB5 WITH IDEA CBC SHA = { 0x00,0x21 };CipherSuite TLS KRB5 WITH DES CBC MD5 = { 0x00,0x22 };CipherSuite TLS KRB5 WITH 3DES EDE CBC MD5 = { 0x00,0x23 };CipherSuite TLS KRB5 WITH RC4 128 MD5 = { 0x00,0x24 };CipherSuite TLS KRB5 WITH IDEA CBC MD5 = { 0x00,0x25 };CipherSuite TLS KRB5 EXPORT WITH DES CBC 40 SHA = { 0x00,0x26 };CipherSuite TLS KRB5 EXPORT WITH RC2 CBC 40 SHA = { 0x00,0x27 };CipherSuite TLS KRB5 EXPORT WITH RC4 40 SHA = { 0x00,0x28 };CipherSuite TLS KRB5 EXPORT WITH DES CBC 40 MD5 = { 0x00,0x29 };CipherSuite TLS KRB5 EXPORT WITH RC2 CBC 40 MD5 = { 0x00,0x2A };CipherSuite TLS KRB5 EXPORT WITH RC4 40 MD5 = { 0x00,0x2B };

The AES supports key lengths of 128, 192 and 256 bits. However, this document only defines ciphersuites for128- and 256-bit keys. This is to avoid unnecessary proliferation of ciphersuites. Rijndael actually allows for 192-and 256-bit block sizes as well as the 128- bit blocks mandated by the AES process. The ciphersuites defined hereall use 128-bit blocks.

The new ciphersuites will have the following definitions:CipherSuite TLS RSA WITH AES 128 CBC SHA = { 0x00, 0x2F };CipherSuite TLS DH DSS WITH AES 128 CBC SHA = { 0x00, 0x30 };CipherSuite TLS DH RSA WITH AES 128 CBC SHA = { 0x00, 0x31 };CipherSuite TLS DHE DSS WITH AES 128 CBC SHA = { 0x00, 0x32 };CipherSuite TLS DHE RSA WITH AES 128 CBC SHA = { 0x00, 0x33 };CipherSuite TLS DH anon WITH AES 128 CBC SHA = { 0x00, 0x34 };CipherSuite TLS RSA WITH AES 256 CBC SHA = { 0x00, 0x35 };CipherSuite TLS DH DSS WITH AES 256 CBC SHA = { 0x00, 0x36 };CipherSuite TLS DH RSA WITH AES 256 CBC SHA = { 0x00, 0x37 };CipherSuite TLS DHE DSS WITH AES 256 CBC SHA = { 0x00, 0x38 };CipherSuite TLS DHE RSA WITH AES 256 CBC SHA = { 0x00, 0x39 };CipherSuite TLS DH anon WITH AES 256 CBC SHA = { 0x00, 0x3A };

The new cipher suites proposed here have the following definitions:

Page 8: cursoBasicoCryptografia

4. Curvas elıpticas 8

CipherSuite TLS RSA WITH CAMELLIA 128 CBC SHA = { 0x00,0x41 };CipherSuite TLS DH DSS WITH CAMELLIA 128 CBC SHA = { 0x00,0x42 };CipherSuite TLS DH RSA WITH CAMELLIA 128 CBC SHA = { 0x00,0x43 };CipherSuite TLS DHE DSS WITH CAMELLIA 128 CBC SHA = { 0x00,0x44 };CipherSuite TLS DHE RSA WITH CAMELLIA 128 CBC SHA = { 0x00,0x45 };CipherSuite TLS DH anon WITH CAMELLIA 128 CBC SHA = { 0x00,0x46 };CipherSuite TLS RSA WITH CAMELLIA 256 CBC SHA = { 0x00,0x84 };CipherSuite TLS DH DSS WITH CAMELLIA 256 CBC SHA = { 0x00,0x85 };CipherSuite TLS DH RSA WITH CAMELLIA 256 CBC SHA = { 0x00,0x86 };CipherSuite TLS DHE DSS WITH CAMELLIA 256 CBC SHA = { 0x00,0x87 };CipherSuite TLS DHE RSA WITH CAMELLIA 256 CBC SHA = { 0x00,0x88 };CipherSuite TLS DH anon WITH CAMELLIA 256 CBC SHA = { 0x00,0x89 };

The table below defines new ECC cipher suites that use the key exchange algorithms specified in Section 2:CipherSuite TLS ECDH ECDSA WITH NULL SHA = { 0x00, 0x?? };CipherSuite TLS ECDH ECDSA WITH RC4 128 SHA = { 0x00, 0x?? };CipherSuite TLS ECDH ECDSA WITH DES CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH ECDSA WITH 3DES EDE CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH ECDSA WITH AES 128 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH ECDSA WITH AES 256 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE ECDSA WITH NULL SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE ECDSA WITH RC4 128 SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE ECDSA WITH 3DES EDE CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE ECDSA WITH AES 128 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE ECDSA WITH AES 256 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH RSA WITH NULL SHA = { 0x00, 0x?? };CipherSuite TLS ECDH RSA WITH RC4 128 SHA = { 0x00, 0x?? };CipherSuite TLS ECDH RSA WITH 3DES EDE CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH RSA WITH AES 128 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH RSA WITH AES 256 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE RSA WITH NULL SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE RSA WITH RC4 128 SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE RSA WITH 3DES EDE CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE RSA WITH AES 128 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDHE RSA WITH AES 256 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH anon NULL WITH SHA = { 0x00, 0x?? };CipherSuite TLS ECDH anon WITH RC4 128 SHA = { 0x00, 0x?? };CipherSuite TLS ECDH anon WITH 3DES EDE CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH anon WITH AES 128 CBC SHA = { 0x00, 0x?? };CipherSuite TLS ECDH anon WITH AES 256 CBC SHA = { 0x00, 0x?? };

4 Curvas elıpticas

Problema Logaritmo Discreto Elıptico: Sea E(Fq) el grupo de la curvaelıptica E sobre el campo finito Fq. EL problema del Logaritmo Discreto ElıpticoPLDE es el problema de calcular x a partir de P, xP ∈ E(Fq).

Problema Diffie-Hellman Elıptico: Sea E(Fq) un grupo elıptico. EL prob-lema Diffie-Hellman Elıptico PDHE es el problema de calcular abP a partir deaP ∈ E(Fq), y bP ∈ E(Fq).

En la actualidad, entre los mejores esquemas de criptografıa de clave publicaestan los que usan curvas elıpticas. Es decir, que la seguridad del esquema dependade la imposibilidad de resolver el PLDE o PDHE. Llamaremos a este tipo decriptografıa, Criptografıa Elıptica (CE).

Page 9: cursoBasicoCryptografia

4. Curvas elıpticas 9

La principal aportacion de la CE es usar claves “cortas”. Esto quiere decir que lasclaves tienen alrededor de 160 bits, en contraste con la longitud de otros esquemasestandares, como RSA y DSA donde la longitud de sus claves es “larga” o sea de1024 bits. Se sabe tambien que en la CE los metodos para calcular logaritmoselıpticos necesitan un tiempo totalmente exponencial.

Definicion 1 Una curva elıptica E sobre un campo K, esta definida por la si-guiente ecuacion (de Weierstrass), E : y2 + a1xy + a3y = x3 + a2x

2 + a4x + a6,donde a1, a2, a3, a4, a6 ∈ K y ∆ 6= 0, ∆ se llama el discriminante de E, y estadefinido por las siguientes relaciones:

∆ = −d22d8 − 8d3

4 − 27d26 + 9d2d4d6

d2 = a21 + 4a2

d4 = 2a4 + a1a3

d6 = a23 + 4a6

d8 = a21a6 + 4a2a6 − a1a3a4 + a2a

23 + a2

4.

Definicion 2 El conjunto de puntos (x, y) ∈ K × K que satisfacen la ecuacionde una curva elıptica E, union un punto especial O llamado punto al infinito, sellama el conjunto de puntos K − racionales sobre E, denotado como E(K).

En nuestro caso el campo K sera un campo finito, y se sabe que los camposfinitos son de la forma Fq, donde q es la potencia de un numero primo p. Entonceslas curvas elıpticas consideradas tienen la forma E(Fq). Nosotros nombraremos auna curva elıptica de manera indiferente ya sea al conjunto E(Fq), o a la ecuacionde Weierstrass que la define.

1. Si car(Fq) 6= 2, 3, entonces una curva elıptica tiene la forma:

y2 = x3 + ax + b

donde ∆ = −16(4a3 + 27b3). El j-invariante esta definido como j(E) =1728 4a3

4a3+27b2

Los casos mas conocidos son:

i) si j = 0, entonces la curva es y2 = x3 + b.

ii) si j = 1728, entonces la curva es y2 = x3 + ax.

2. Si car(Fq) = 2, tenemos los siguientes casos:

i) si j(E) = 1/a6, y ∆ = a6, la curva es:

y2 + xy = x3 + a2x2 + a6

Page 10: cursoBasicoCryptografia

4. Curvas elıpticas 10

ii) si j(E) = 0, y ∆ = a43, la curva es:

y2 + a3y = x3 + a4x + a6

3. Si car(Fq) = 3, la curva elıptica tiene la forma:

y2 = x3 + b2x2 + b4x + a6

con ∆ = b22b

24 − b3

2a6 − a34, y j(E) = b6

2/∆.

Teorema 1 (de Hasse) Sea E una curva elıptica definida en un campo finito Fq,entonces #E(Fq) = q + 1− t, donde |t| ≤ 2

√q, t se llama la traza de E sobre Fq.

Corolario 1 Si p es un numero primo y t es tal que |t| ≤ 2√

p, entonces existeuna curva elıptica E sobre Fp con #E(Fp) = p + 1− t.

Definicion 3 Sea q = pn, una curva elıptica E sobre Fq se llama curva supersin-gular si p divide a t, si p no divide a t entonces se llama curva no-supersingular(u ordinaria).

Corolario 2 E sobre Fp es supersingular si y solo si t = 0.

En criptografıa es muy importante, poder encontrar tanto curvas seguras (dondeno haya un ataque eficiente conocido), como curvas eficientes, es decir que lasoperaciones del grupo se puedan implementar de manera eficiente.

De hecho tenemos los siguientes criterios generales para curvas elıpticas.

1. Para las curvas supersingulares t = 0, hay un ataque conocido MOV (Menezes,Okamoto, Vanstone). MOV reduce el PLDE sobre la curva E(Fq) al PLDsobre el grupo multiplicativo F∗

qk donde k ≤ 6

2. La probabilidad de que el ataque MOV se pueda aplicar a una curva nosupersingular es insignificante .

3. En curvas supersingulares se obtienen los mejores tiempo de ejecucion en laimplementacion de sus operaciones .

4. Para curvas no supersingulares, se conoce cierta reduccion en el tiempo desus operaciones si a = −3 en y2 = x3 + ax + b.

5. Para curvas no supersingulares, se conoce un ataque para el caso de t = 2, yes una generalizacion del ataque MOV, conocido como ataque (o reduccion)FR (Frey, Ruck).

6. El peor caso en curvas elıpticas se tiene si la traza es t = 1, a estas curvasse les conoce como curvas anomalas, y hay varios ataques eficientes en estecaso.

Page 11: cursoBasicoCryptografia

4. Curvas elıpticas 11

4.1 Curvas FIPS 186-2

CV Length Algorithm Prime Field Binary Field

80 SKIPJACK p = 192 m = 163112 Triple-DES p= 224 m = 233128 AES Small p= 256 m = 283192 AES Medium p = 384 m = 409256 AES Large p = 521 m = 571

Curvas sobre campos primos:

E : y2 = x3 − 3x + b sobre GF (p)

curva P − 192 : p = 2192 − 264 − 1.curva P − 224 : p = 2224 − 296 + 1.curva P − 256 : p = 2256 − 2224 + 2192 + 296 − 1.curva P − 256 : p = 2384 − 2128 − 296 + 232 − 1.curva P − 521 : p = 2532 − 1.

Tiempos estimados de operaciones producto sobre el campo Fp p = P − 192,para la operacion aP.

Metodo Coordenadas Operaciones

Binario on-line Afines 23857Binario on-line Jacobian-Afiine 2500Binario-NAF on-line Afines 21206Binario-NAF on-line Jacobian-Afin 2162Windows-NAF on-line Jacobian-Afin 2160Windows-NAF on-line Jacobian-Chudnovsky 2016Interleaving with NAFs off-line Jacobian-Afiine 1283Windowing off-line C-A & J-C 881Windowing-NAF off-line C-A & J-C 756Comb on-line Jacobian-Afin 755Comb-2 on-line Jacobian-Afin 718

Page 12: cursoBasicoCryptografia

4. Curvas elıpticas 12

Tiempos estimados de operaciones producto sobre campo F2m m = 163 K = 163,para la operacion xP.

Metodo Coordenadas Operaciones

Binario on-line Afiine 2430Binario on-line Projective 1306Binario-NAF on-line Afiine 2160Binario-NAF on-line Projective 1090Windows-NAF on-line Afiine 1980Windows-NAF on-line Projective 954Montgomery on-line Afiine 2928Montgomery on-line Projective 990Halving w-NAF on-line Afiine 705Halving w-NAF on-line Projective 687TNAF on-line Afiine 586TNAF on-line Projective 511Window TNAF on-line Afiine 386Window TNAF on-line Projective 365Interleaving off-line Afiine 1220Interleaving off-line Projective 662Windowing off-line Afiine 610Windowing off-line Projective 678Windowing-NAF off-line Afiine 720Windowing-NAF off-line Projective 546Comb off-line Afiine 630Comb off-line Projective 386Window TNAF off-line Afiine 276Window TNAF off-line Projective 263

4.2 Primitiva DSAE

Metodo de Firma.DSAE

Entrada: (q, FR, S, a, b, P, n, h), clave privada d, mensaje m.Salida: Firma (r, s).1.- Seleccionar k ∈ [1, n− 1]2.- Calcular kP, (x1, x2)3.- Calcular r = x1 mod n, si r = 0 entonces regresar a 1.5.- Calcular e = H(m).6.- Calcular s = k−1(e + dr) mod n, si s = 0 entonces ve al paso 1.7.- regresar (r, s).

Page 13: cursoBasicoCryptografia

4. Curvas elıpticas 13

Metodo de verificacion de firma.

DSAE

Entrada: (q, FR, S, a, b, P, n, h), clave publica Q, mensaje m y firma (r, s).Salida: Acepta o Rechaza la firma1.- Verificar si r, s ∈ [1, n− 1] de lo contrario rechazar la firma.2.- Calcular e = H(m).3.- Calcular w = s−1 mod n.4.- Calcular u1 = ew mod n y u2 = rw mod n. 5.- Calcular X = u1P + u2Q.6.- Si X = O entonces rechazar.5.- Calcular v = x1 mod n.6.- Si v = r entonces aceptar la firma.

Demostracion:

Como s = k−1(e + dr) mod n, entonces k = s−1(e + dr) = s−1e + e−1rd =we + wrd = u1 + u2d mod n, entonces X = u1P + u2Q = (u1 + u2d)P = kP , porlo tanto v = r.

4.3 Primitiva DHE

Similar a DH.

Estandar: X9.42-1998. Public Key Cryptography for The Financial service In-dustry: Agreement of Symmetric Keys on Using Diffie-Hellman and MQV Algo-rithms.

4.4 Estandares

Working Drafts of ANSI X9.42, X9.62 and X9.63 These are working drafts of thestandards for the US Financial Industry:X9.42 specifies Diffie-Hellman and MQV Key Agreements.X9.62 specifies the Elliptic Curve Digital Signature Algorithm (ECDSA).X9.63 specifies Elliptic Curve Key Agreement and Key Transport.

IEEE P1363 Standard Specifications For Public-Key Cryptography:Traditional Public-Key Cryptography (1363-2000 & 1363a-2004) This includes dig-ital signature and key establishment schemes based on the following problems:The integer factorization (IF) problem (e.g. RSA).The discrete logarithm (DL) problem (e.g. Diffie-Hellman, DSA).

Page 14: cursoBasicoCryptografia

4. Curvas elıpticas 14

The elliptic curve discrete logarithm (EC) problem (e.g. MQV).

NESSIE New European Schemes for Signatures, Integrity, and Encryption

4.5 Ataque MOV y FR

Sea E una curva elıptica sobre un campo Fq, q = pm, un divisor es un elementodel grupo libre abeliano generado por el conjunto de puntos E(Fq). El conjunto dedivisores se denota por Div(E), si D ∈ Div(E), entonces D =

∑P∈E nP (P ) y el

grado de D es deg(D) =∑

P∈E nP .Definimos el conjunto de divisores de grado 0, como

Div0(E) = {D ∈ Div(E)| deg(D) = 0}.

Una funcion racional f sobre E es un elemento del campo de funciones de la curvaE, denotado por Fq(E), y definimos

div(f) =∑P∈E

ordP (f)(P ),

donde ordP (f) es la multiplicidad de los ceros o polos de f en P . Si el div(f) ∈Div0(E), entonces div(f) se llama divisor principal. D es principal si y solo si∑

P∈E nP (P ) = O, donde O es el punto al infinito. El soporte de un divisor Des el conjunto tal que nP 6= 0. Si div(f) y D tienen soportes disjuntos podemosextender la evaluacion de f en D por

f(D) =∏P∈E

f(D)nP .

Si elegimos P, Q ∈ E[n] entonces existen divisores DP , DQ ∈ Div0(E), y DP ∼(P ) − (O), DQ ∼ (Q) − (O) donde ∼ esta definida como D ∼ D′ si y solo siD −D′ es principal. Por lo que existen funciones fP , fQ con div(fP ) = nDp ydiv(fQ) = nDQ.

Definicion 4 Definimos al conjunto de las n−esimas raıces de la unidad, comoµn = {u ∈ F∗

q|un = 1}.

Si DP , DQ tienen soportes disjuntos podemos definir el mapeo de Weil en como,

en : E[n]× E[n]→ µn, en(P, Q) 7→ fP (DQ)

fQ(DP ).

El mapeo de Tate se define como tn : E[n] × E/nE → F∗qk/(F∗

qk)n, tn(P, Q) 7→

fP (DQ).

Propiedades del mapeo de Weil

El mapeo de Weil satisface las siguientes propiedades basicas:

Page 15: cursoBasicoCryptografia

4. Curvas elıpticas 15

1. (Bilinealidad) para todo P, P ′, Q, Q′ ∈ E[n], en(P+P ′, Q) = en(P, Q)en(P ′, Q),y en(P, Q + Q′) = en(P, Q)en(P, Q′).

2. (Alternancia) en(P, P ) = 1, por lo tanto en(P, Q) = en(Q, P )−1.

3. (No-degenerativa) si en(P, Q) = 1, para todo Q ∈ E[n], entonces P = O.

4. (Compatibilidad) si P ∈ E[nm] y Q ∈ E[n], entonces enm(P, Q) = en(mP,Q).

Propiedades del mapeo de Tate

El mapeo de Tate satisface las siguientes propiedades basicas:

1. (Bilinealidad) para todo P, P1, P2 ∈ E[n], y Q,Q1, Q2 ∈ E/nE, tn(P +P1, Q) = tn(P1, Q)tn(P2, Q), y tn(P, Q1 + Q2) = tn(P, Q1)tn(P, Q2).

2. (No-degenerativa) para todo P ∈ E[n], P 6= O, existe algun Q ∈ E/nE talque tn(P, Q) 6= 1. Similarmente, para todo Q ∈ E/nE, con Q 6∈ nE, existealgun P ∈ E[n] tal que tn(P, Q) 6= 1.

4.5.1 Los ataques MOV y FR al PLDE

De los primeros ataques mas conocidos a la CE, son aquellos que reducen el PLDEde una curva E(Fq) a el PLD del grupo multiplicativo F∗

q de un campo finito. Elmas conocido fue propuesto por Menezes, Okamoto y Vanston usa el mapeo de Weil(lo llamaremos MOV). El otro ataque usa el mapeo de Tate y es propuesto por Freyy Ruck, (lo llamaremos FR). El ataque MOV afecta a las curvas supersingulares,el ataque FR afecta ademas de las supersingulares a las curvas ordinarias con traza2. De manera natural este tipo de ataques son llamados tambien reducciones delPLDE al PLD.

En la tabla 1 se muestra el metodo general de como trabajan estos ataques.En otras palabras MOV afecta a las curvas con t = 0, y FR vulnera a las curvas

con t = 0, 2.Las curvas con t = 1 se conocen como curvas anomalas y se consideran aun mas

inseguras, ya que el ataque que las afecta reduce el PLDE al PLD de un grupoaditivo.

Page 16: cursoBasicoCryptografia

4. Curvas elıpticas 16

Entrada P, Q ∈ E(Fq) de orden primo r, tal que Q = xP .Salida el logaritmo discreto x de Q, base P .

1.- Considerar el campo Fqk tal que r|(qk − 1).2.- Encontrar un punto S ∈ E(Fqk) tal que e(P, S) 6= 1.3.- a← e(P, S).4.- b← e(Q, S).5.- Encontrar x tal que ax = b en F∗

qk .

6.- Regresar x.

Tabla 1: Ataques MOV/FR

4.5.2 Implementacion del mapeo de Tate

La manera estandar para evaluar el mapeo de Tate es usando el metodo de Miller.El algoritmo de Miller se describe acontinuacion:

Entrada: P ∈ E[n], Q ∈ E(Fpk)Salida: tn(P, Q)

1. Elegir aleatoriamente Q′ ∈ E(Fpk); sea S := Q + Q′.

2. Sea ` := blog2 nc − 1, n = (n`−1, . . . , n0)2; V := P ; f := 1.

3. Para i = `− 1 hasta 0 hacer lo siguiente:

(a) Calcular las lıneas gV V and h2V ;

(b) f := f 2 · (gV V (S)h2V (Q′))(h2V (S)gV V (Q′))

;

(c) V := 2V ;

(d) Si ni = 1, entonces calcular las lıneas gV P and hV +P ;

f := f · (gV P (S)hV +P (Q′))(hV +P (S)gV P (Q′))

;

V := V + P

4. Regresar tn(P, Q) := (f)(pk−1)/n.

En el metodo, gXY es la lınea que pasa por los puntos X y Y , gX es la lıneatangente a E en X y hX es la lınea vertical en X.

Actualmente podemos aplicar algunas simplificaciones al algoritmo, principal-mente cambiar la evaluacion en divisores por la evaluacion en puntos y eliminar losinversos multiplicativos. Ası como tambien se pueden elegir la mejor combinacionde coordenadas proyectivas entre los diferentes tipos de coordenadas conocidospara reducir el numero de operaciones basicas.

Page 17: cursoBasicoCryptografia

4. Curvas elıpticas 17

Una buena sugerencia es elegir a r (numero primo) de E[r] como un primode Solinas, reduciendo considerablemente las operaciones seguidas de la condicionni = 1, en el metodo de Miller. Existen otros casos especiales, como las curvassupersingulares en caracterıstica 3 donde el metodo de Miller se mejora.

4.5.3 Ejemplo del algoritmo de Miller

Sea m un numero entero, primo relativo a p, y sean P, Q ∈ E[m] dos puntos deorden m, y sean A, B divisores tales que A ∼ (P ) − (O), B ∼ (Q) − (O), talesque A, B tienen soportes disjuntos. Como A, B son de m torsion entonces mA ymB son principales, por lo tanto existen funciones fA, fB tales que div(fA) = mAy div(fB) = mB. µm es el conjunto de las m-esimas raıces de la unidad en Fq, sinembargo es suficiente considerar el campo Fqk donde k es el menor entero tal queE[m] ⊂ Fqk .

Definicion 5 Definimos al mepeo de Weil

em : E[m]× E[m]→ µm

em(P, Q) =fA(B)

fB(A)

Se puede mostrar que el mapeo de Weil esta bien definido y no depende de laeleccion de los divisores A, B y las funciones fA, fB.

Algoritmo de Miller para calcular el mapeo de Weil.

Entrada: (m,p)=1, P, Q ∈ E[m].Salida: em(P, Q).

1. Elegimos R,S ∈ E, tales que P + R 6= S, Q + S y R 6= S, Q + S.

2. Sea A = (P + R) − (R), entonces A ∼ (P ) − (O), puesto que A − (P ) +(O)=(P + R)− (R)− (P ) + (O) es principal.

3. Similarmente B = (Q + S)− (S), entonces B ∼ (Q)− (O).

4. Sea fA, tal que div(fA) = m(P + R)−m(R).

5. Sea fB, tal que div(fB) = m(Q + S)−m(S).

6. em = fA(B)fB(A)

= fA((Q+S)−(S))fB((P+R)−(R))

= fA(Q+S)fB(R)fA(S)fB(P+R)

.

Page 18: cursoBasicoCryptografia

4. Curvas elıpticas 18

Ejemplo:Sea el campo F13, y la curva E : y2 = x3 + 7x.tenemos los puntos:

Punto orden Punto ordenP0 = O 1 P9 = (5, 11) 6P1 = (0, 0) 2 P10 = (8, 3) 6P2 = (2, 3) 6 P11 = (8, 10) 6P3 = (2, 10) 6 P12 = (9, 5) 3P4 = (3, 3) 3 P13 = (9, 8) 3P5 = (3, 10) 3 P14 = (10, 2) 3P6 = (4, 1) 3 P15 = (10, 11) 3P7 = (4, 12) 3 P16 = (11, 2) 6P8 = (5, 2) 6 P17 = (11, 11) 6

Sea P = P5 = (3, 10), Q = P7 = (4, 12). Calculemos e3(P, Q), tomemos R = (2, 3), S = (8, 10). EntoncesP + R = (5, 2), Q + S = (11, 11).

(P + R)− (O) = (P + R)− (O) + div (1)

2(P + R)− 2(O) = (P7) + (O) + div( 12x+y+3x−4

)

3(P + R)− 3(O) = (P1) + (O) + div((12x+y+3)

x−410x+y

x)

(R)− (O) = (R)− (O) + div (1)

2(R)− 2(O) = (P14) + (O) + div( 12x+y+12x−10

)

3(R)− 3(O) = (P1) + (O) + div((12x+y+12)

x−105x+y

x)

(Q + S)− (O) = (Q + S)− (O) + div (1)

2(Q + S)− 2(O) = (P4) + (O) + div( 8x+y+5x−3

)

3(Q + S)− 3(O) = (P1) + (O) + div((8x+y+5)

x−312x+y

x)

(S)− (O) = (S)− (O) + div (1)

2(S)− 2(O) = (P13) + (O) + div( 5x+y+2x−9

)

3(S)− 3(O) = (P1) + (O) + div((5x+y+2)

x−92x+y

x)

div(fA) = 3(P + R)− 3(R)

= div( 12x+y+3x−4

10x+yx

)− div( 12x+y+12x−10

5x+yx

)

= div((12x+y+3)(10x+y)(x−10)x(x−4)x(12x+y+12)(5x+y)

)

div(fB) = 3(Q + S)− 3(S)

= div( 8x+y+5x−3

12x+yx

)− div( 5x+y+2x−9

2x+yx

)

= div((8x+y+5)(12x+y)(x−9)x(x−3)x(5x+y+2)(2x+y)

)

e3(P, Q) =fA(Q + S)

fA(S)

fB(R)

fB(P + R)

fA(Q + S) = 2/1.

fA(S) = 2/1.

fB(P + R) = 12/9.

fB(R) = 2/11.

e3(P, Q) = 9.

Page 19: cursoBasicoCryptografia

4. Curvas elıpticas 19

Observemos que la funcion obtenida no estara definida en algunos puntos, sinembargo esto puede arreglarse al ver a la funcion como una funcion racional sobrela curva E.

Bibliografıa

[1] I. Blake, G. Seroussi, N. Smart “Elliptic Curves in Cryptography”, LMS LNS265, Cambridge University Press 1999.

[2] I. Blake, G. Seroussi, N. Smart (Editors)“Advances in Elliptic Curves in Cryp-tography”, LMS LNS 317, Cambridge University Press 2004.

[3] J. Buchmann, “Introduction to Cryptography,” Springer Verlag UTM 2000.

[4] D. Cox, “Primes of the Form x2 + ny2”, Wiley 1989.

[5] H. Delfs, H. Knebl, “Introduction to Cryptography, principles and applica-tions,” Springer Verlag 2002.

[6] W. Diffie, M.E. Hellman, “New Directions in Cryptography,” IEEE Transac-tions on Information Theory, Vol 22, No. 6, pp. 644-654.

[7] G. Frey T. Lange, “Mathematical Background of Public Key Cryptography,”2003

[8] D. Hankerson, A. Menezes, S. Vanstone, “Guide to Elliptic Curve Cryptogra-phy,” Springer-Verlag 2004.

[9] D. Kahn, “The Codebreakers : The Comprehensive History of Secret Com-munication from Ancient Times to the Internet”, Scribner; Revised edition(December 5, 1996).

[10] J. Silverman, “The Aritmetic of Elliptic Curves,” GTM 106, Springer Verlag1986.

[11] U. Maurer, S. Wolf, “The Diffie-Hellman Protocol,” Designs, Codes, andCryptography 19, 2000, pp.147-171, KluwerAcademic Publishers.

[12] A. Menezes, “Elliptic Curve Public Key Cryptosystems,” Kluwer AcademicPublishes 1994.

[13] R. A. Mollin, “Algebraic Number Theory”, CRC Press (1999).

[14] L. Washington, “Elliptic Curves,” Chapman & Hall, CRC 2003.

Page 20: cursoBasicoCryptografia

4. Curvas elıpticas 20

[15] The IEEE P1363 Home Page Standard Specifications For Public-Key Cryp-tography:http://grouper.ieee.org/groups/1363/

[16] NESSIE:http://www.cryptonessie.org/

[17] NIST, Computer Security Divisionhttp://csrc.nist.gov/

[18] Transport Layer Security (tls):http://www.ietf.org/html.charters/tls-charter.html