Diseño e implementación eficiente del emparejamiento óptimo

95 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Centro de Investigación y de Estudios Avanzados

del Instituto Politécnico Nacional

Unidad Zacatenco

Departamento de Computación

Diseño e Implementación Eficiente del

Emparejamiento Óptimo “Ate”

Tesis que presenta

Jorge Enrique González Díaz

para obtener el grado de

Maestro en Ciencias en Computación

Director de la tesis

Dr. Francisco Rodríguez Henríquez

(2)
(3)

Agradecimientos

Primeramente debo aclarar que por falta de espacio no me es posible nombrar a todas las personas a las que debo agradecer, pues el estudiante que escribe esta tesis no es otra cosa sino el resultado de una gigantesca suma de esfuerzos y voluntades.

Gracias a mis padres, Jesús González García y Guadalupe Díaz Méndez, y familiares cercanos, quienes me han apoyado incondicionalmente.

Gracias a mi compañera de vida Susana Nava Alverdín, por su asombrosa compren-sión durante el estudio de mi maestría.

A mi director de tesis el Dr. Francisco Rodríguez Henríquez le agradezco por su valiosa guía y orientación, sus conocimientos fueron la mejor de las bases para esta tesis.

Agradezco también a los investigadores Jean Luc Beuchat, Jérémie Detrey, Peter Schwabe, Nicolas Estibals, Teruya Tadanori y Shigeo Mitsunari por sus contribuciones de diversas maneras en mi proyecto de tesis.

En general a los Doctores con quienes he tomado materias, pero más concretamente a los Doctores Gregorio Toscano Pulido, Debrup Chakraborty, Gerardo de la Fraga y Guillermo Morales Luna, quienes no conformes con haberme transmitido una gran canti-dad de conocimientos, también me ofrecieron su amistad y apoyo en diversos momentos.

Agradezco a las secretarias Felipa Rosas, Erika Ríos y muy especialmente a Sofía Reza por su infinita paciencia y el gran cariño con el desempeña sus labores.

A todas aquellas personas que me ofrecieron su amistad durante mis estudios.

Agradezco al Consejo Nacional de Ciencia y Tecnología (CONACyT) por el apoyo económico que me fue otorgado a partir de su programa de becas, y a los proyectos SEP-CONACYT 60240, SEP-CONACYT 90543 y UC MEXUS-CONACYT, entre la Universidad de California, campus Santa Barbara, E.U.A y el CINVESTAV-IPN.

(4)
(5)

Resumen

(6)
(7)

Abstract

(8)
(9)

Índice general

´Indice de tablas

vii

1 Conceptos generales

1

1.1 Servicios de seguridad . . . 1

1.2 Criptografía . . . 2

1.3 Criptografía de llave privada . . . 2

1.4 Criptografía de llave pública . . . 4

1.5 Diffie-Hellman . . . 5

1.6 RSA . . . 5

1.7 Criptografía de curvas elípticas . . . 6

1.8 Criptografía basada en emparejamientos bilineales . . . 7

1.8.1 Ataques . . . 7

1.8.2 Protocolos basados en emparejamientos bilineales . . . 7

1.8.2.1 Criptografía basada en la indentidad . . . 8

1.8.2.2 Diffie-Hellman tri-partito de una ronda . . . 8

1.8.2.3 Firma corta . . . 8

1.8.2.4 Firma a ciegas . . . 8

1.8.2.5 Firma en cápsula de tiempo . . . 8

1.8.3 Modelo de capas . . . 9

2 Aritm´etica de torres de campos

11 2.1 Grupos . . . 11

2.1.1 Clase lateral . . . 11

2.2 Anillos . . . 12

2.3 Campos . . . 12

2.4 Campos finitos . . . 12

2.5 Extensiones de campo . . . 13

2.5.1 Cerradura algebraica . . . 13

(10)

2.6.1 Operaciones enFp . . . 14

2.6.1.1 Multiplicación . . . 14

2.6.1.2 Inversión . . . 18

2.6.2 Operaciones enFp2 . . . 19

2.6.2.1 Adición . . . 19

2.6.2.2 Multiplicación . . . 19

2.6.2.3 Elevación al cuadrado . . . 20

2.6.2.4 Inverso multiplicativo . . . 20

2.6.3 Operaciones enFp6 . . . 21

2.6.3.1 Adición . . . 21

2.6.3.2 Multiplicación . . . 21

2.6.3.3 Elevación al cuadrado . . . 22

2.6.3.4 Inverso multiplicativo . . . 23

2.6.4 Operaciones enFp12 . . . 24

2.6.4.1 Adición . . . 24

2.6.4.2 Multiplicación . . . 24

2.6.4.3 Elevación al cuadrado . . . 25

2.6.4.4 Inverso multiplicativo . . . 25

2.6.5 Costo . . . 26

3 Curvas el´ıpticas

29 3.1 Punto al infinito. . . 29

3.2 Ley de grupo . . . 30

3.3 Curvas sobre campos finitos . . . 31

3.3.1 Orden del grupo . . . 32

3.3.2 Adición de puntos . . . 32

3.3.2.1 Coordenadas jacobianas . . . 32

3.3.2.2 Doblado de un punto . . . 33

3.3.2.3 Suma con coordenadas mixtas . . . 33

3.3.3 Multiplicación por escalar . . . 34

3.3.4 Orden de un punto . . . 35

3.3.4.1 Problema del logaritmo discreto en curvas elípticas . . 35

3.3.5 Puntos de torsión . . . 36

4 Emparejamientos bilineales

37 4.1 Emparejamiento de Tate . . . 37

4.1.1 Divisores. . . 37

4.1.1.1 Funciones sobre la curva . . . 38

4.1.2 Propiedades del emparejamiento de Tate . . . 39

(11)

4.3 Curvas BN . . . 41

4.3.1 Twist de la curva . . . 41

4.4 Ciclo de Miller . . . 42

4.5 Exponenciación Final . . . 43

4.5.1 El operador de Frobenius. . . 43

4.5.2 Grupo ciclotómico enFp12. . . 46

4.6 Emparejamiento óptimo ”ate“ para curvas BN. . . 50

5 Implementaci ´on, resultados y comparaciones

55 5.1 Estado del arte . . . 55

5.1.1 Implementaciones en Software . . . 55

5.1.2 Las mejores implementaciones con curvas ordinarias . . . 57

5.1.2.1 La implemetación más rápida de hardware . . . 57

5.1.2.2 La implementación más rapida de software . . . 58

5.2 Resultados . . . 60

5.3 Implementación . . . 60

5.3.1 Implementacion de la aritmética de Fp . . . 61

5.3.2 Implementacion de la aritmetica de Fp2 . . . 62

5.3.2.1 Multiplicación . . . 62

5.3.2.2 Elevación al cuadrado . . . 63

5.3.2.3 Multiplicación por ξ. . . 63

5.4 Costos de funciones . . . 65

5.4.1 Costo del ciclo de Miller . . . 65

5.4.1.1 Aplicación del oeprador de Frobenius y última adición (lines 11–13). . . 66

5.4.2 Costo de la exponenciación final . . . 67

5.5 Comparación con otras implementaciones . . . 67

6 Conclusiones

71 6.1 Resumen de resultados . . . 72

6.2 Trabajo a futuro . . . 72

(12)
(13)

Índice de tablas

1.1 Niveles de seguridad correspondientes a diversas longitudes de parámetros. 7

2.1 Costo de operaciones del algoritmo polinomial de Montgomery . . . 18

2.2 Notación propuesta para representar las operaciones de cada extensión 26

2.3 Costos computationales de la aritmetica de la torre de campos. . . 27

4.1 Costos computationales de las operaciones en el campo ciclotómico. . . 47

5.1 Una comparación de las operaciones aritméticas requiridas para el calculo las variantes del emparejamiento “ate”. . . 68

5.2 Cuenta de ciclos por multiplicación en Fp2, elevación al cuadrado F

p2, y

el emparejamiento óptimo “ate” en diferentes máquinas. . . 69

(14)
(15)

Índice de algoritmos

1 Conversión de entero a polinomio[11, 10]. . . 16

2 Nuestra propesta del algoritmo polinomial de Montgomery. . . 17

3 Algoritmo de Montgomery para encontrar el inverso multiplicativoFp [25]. 18 4 Adición enFp2 =F p[u]/(u2−β). . . 19

5 Multiplicación enFp2 =Fp[u]/(u2−β). . . 19

6 Multiplicación conb0 ∈Fp. . . 20

7 Elevación al cuadrado enFp2 =Fp[u]/(u2−β). . . 20

8 Inversión enFp2 =F p[u]/(u2−β). . . 21

9 Adición inFp6 =Fp2[v]/(v3−ξ). . . 21

10 Multiplicación in Fp6 =Fp2[v]/(v3 −ξ). . . 22

11 Multiplicación byb0 ∈Fp2. . . 22

12 Multiplicación byb0+b1v. . . 22

13 Elevación al cuadrado enFp6 =Fp2[v]/(v3−ξ). . . 23

14 Inversión inFp6 =F p2[v]/(v3−ξ). . . 23

15 Adición inFp12 =F p6[w]/(w2−γ). . . 24

16 Multiplicación in Fp12 =Fp6[w]/(w2−γ). . . 24

17 Multiplicación por B =b0+b1w, donde b0 ∈Fp2 y b1 =b10+b11v+ 0v2 25 18 Elevación al cuadrado enFp12 =F p6[w]/(w2 −γ). . . 25

19 Inverso multiplicativo enFp12 =F p6[w]/(w2−γ).. . . 26

20 Doblado de un punto en coordenadas jacobianas. . . 33

21 Suma de puntos con coordenadas mixtas. . . 34

22 Método binario para multiplicación por un escalar de izquierda a derecha. 35 23 Ciclo de Miller. . . 43

24 Operador de Frobenius para elevarf Fp12 =Fp6[w]/(w2−γ) a la p. . 45

25 Operador de Frobenius para elevarf Fp12 =Fp6[w]/(w2−γ) a la p2.. 45

26 Operador de Frobenius para elevarf Fp12 =F p6[w]/(w2−γ) a la p3.. 46

27 Elevación al cuadrado enFp12 =F p6[w]/(w2 −γ). . . 47

28 Elevación al cuadrado enFp4 =Fp2[V]/(V2−ξ). . . 48

29 Exponentiación final . . . 49

30 Emparejamiento óptimo ”ate“ sobre curvas Barreto–Naehrig. . . 51

(16)

32 Adición de punto y evaluación de linea. . . 53

33 Exponenciación enFp12 =Fp6[w]/(w2−γ). . . 54

34 Multiplicación optimizada deFp2. . . 63

35 Elevación al cuadrado optimizada deFp2. . . 64

36 Multiplicación por ξ. . . 64

(17)

Capítulo 1

Conceptos generales

El incremento en la capacidad de comunicación ha traido consigo una gran cantidad de ventajas, así como un considerable número de obligaciones, entre las cuales destaca la de proteger información. Dicha labor eventualmente derivó en la necesidad de transmitir conocimiento protegido de manera que sólo el o los receptores que el emisor desease pudieran interpretar.

1.1.

Servicios de seguridad

Típicamente cuando se desarrolla una aplicación, los esfuerzos se centran en lograr la funcionalidad pretendida. Postergando la implementación de medidas que garanticen la seguridad requerida. Sin embargo, por lo general se desea contar con los siguientes servicios de seguridad [37]:

Confidencialidad: Este servicio consiste en garantizar que la información sólo pueda ser leída o interpretada por aquellos que cuenten con los privilegios necesa-rios.

Autentificación:Es importante corroborar tanto el origen de los datos como las

identidades de las entidades que se comunican.

Integridad: Este servicio permite garantizar que los datos no han sufrido

modi-ficaciones no autorizadas.

No-repudio: Dicho servicio ayuda a evitar que la entidad que ha enviado un

mensaje o transacción, se retracte de haberlo hecho.

Control de Acceso: Sirve para restringir el acceso a los usuarios de sistemas,

(18)

Disponibilidad: Se busca que la información pueda ser accesible en tiempo y

forma.

1.2.

Criptografía

Con el paso del tiempo, la humanidad ha ido generando conocimiento, y por ende las técnicas para proteger la información se han ido perfeccionando, pero de igual forma los servicios que dichas técnicas deben cubrir han ido en incremento. La criptografía es es-encial para cubrir las necesidades anteriormente mencionadas, es decir, que provee de los mecanismos necesarios para ofrecer los servicios de seguridad previamente mencionados.

Lacriptografía se puede definir como la práctica y el estudio de cifrar y descifrar infor-mación mediante técnicas matemáticas. La criptografía hace uso de diversas disciplinas como matemáticas, ciencias de la computación, e ingeniería.

Unsistema criptográfico, ocriptosistema, es una quíntupla compuesta por los siguientes elementos [37]:

Mensajes: El conjunto de todos los posibles textos en claro que pueden ser cifrados.

Denotado como M.

Cifrados: El conjunto de todos los posibles textos cifrados. Denotado como C.

Llaves: También conocidas comoclaves; es el conjunto de todos los posibles datos que van a servir para cifrar un texto en claro. Denotado comoK.

Operación de cifrado: Función que dados el texto en claro y una llave, produce una

cifra. Dicha función debe ser reversible. Cada e∈ K produce una biyección única deM aC, y es denotada por Ee

Operación de descifrado: Función que a partir de una llave y un cifrado, regresa al

texto en claro.Dd determina la biyección única de C a Mdada por algún d∈ K.

El par de llaves (e, d), está relacionado de manera que Dd(Ee(m)) = m, y de igual

forma Ee(Dd(m)) =m, ∀m∈ M y ∀d, e∈ K.

1.3.

Criptografía de llave privada

Toda vez que la llave d se puede obtener fácilmente con conocimiento de e, o vi-ceversa, el criptosistema (M, C, K, Ee, Dd) se dice ser de llave privada, o simétrico.

(19)

Debido a la estrecha relación entre la ciencia y la tecnología, las diversas técnicas para brindar seguridad se ven limitadas por las capacidades de los recursos tecnológicos disponibles en cada época. En un principio la criptografía era hecha de manera artesanal, los primeros métodos para cifrar información eran tan sencillos como sustituir algunos caracteres del alfabeto por números. Sin embargo, la llegada de la computación trajo consigo un gran número de ventajas para diversas áreas de la ciencia, y la criptografía no fué la excepción.

La computación permite, entre otras cosas, la aceleración y automatización de diversos cálculos, por lo que eventualmente el uso de las computadoras dió lugar a criptosistemas más complejos. Derivado de la posibilidad de la automatizacón de labores es que en la década de 1970, ocurrieron varios de los avances más significativos en la historia de la criptografía. En la década previamente mencionada, más concretamente en 1973, el

NIST (National Institute of Standards and Technology) estableció el DES, cuyas siglas significanestandar de cifrado de datos, y con dicho evento, se formalizó la relación entre los criptosistemas y la computadora como herramienta principal de éstos. A partir de esa fecha se vuelve impensable implementar un criptosistema sin involucrar el uso de computadoras o dispositivos electrónicos.

Algunas de las ventajas más significativas de la criptografía simétrica son:

En general los cifradores de llave simétrica son altamente eficientes.

Las llaves tienen una longitud relativamente corta.

Dichos cifradores pueden ser utilizados como primitivas para diversos mecanismos criptográficos, como generadores de número pseudo-aleatorios, funciones picadillo, etc.

Algunas de las desventajas de la criptografía de llave privada se listan a continuación;

En la comunicación entre dos entidades, la llave se debe mantener secreta en ambas partes, lo cual puede ser inconveniente o imprático en algunos escenarios.

En una red suficientemente grande, el manejo de llaves se vuelve muy complicado.

Idealmente en una comunicación entre dos entidades, la llave debe renovarse en cada sesión de comunicación

(20)

en secreto. Dicho problema se agrava a medida que aumenta el número de veces que se debe repetir la operación. En general, la distribución de llaves de manera segura se vuelve muy complicada cuando se realice entre en número cosiderablemente grande de entidades.

1.4.

Criptografía de llave pública

Toda vez que aún contando con el conocimiento de la llavee, resulte

computacional-mente inviable obtener d y/o descifrar el mensaje, el criptosistema (M, C, K, Ee, Dd)

se dice ser de llave pública, o simplemente asimétrico.

En 1976 Diffie y Hellman publican [15], trabajo que derivó en lo que la mayoría de los criptógrafos calificaron como el desarrollo más impactante en la criptografía. En di-cho trabajo se introdujo el concepto de criptografía de llave pública, y se presentó una forma ingeniosa de establecer (entre dos entidades) de manera segura las llaves para un criptosistema simétrico. Con la publicación de [15] nace la criptografía asimétrica, y se conoce así debido a que se usan llaves diferentes para las operaciones de cifrado y descifrado.

La criptografía de llave asimétrica forma parte crucial para la elaboración de firmas digitales, una primitiva criptográfica que sirve para relacionar un documento digital con la entidad que emite la firma. La firma digital sirve para cubrir los servicios de autntifi-cación, no repudio e integridad.

A pesar de que la criptografía de llave pública soluciona el problema de compartir una llave privada, trae consigo un problema nuevo; el de autentificar la identidad de los propietarios de la llave, pues es necesario garantizar la identidad del poseedor de una llave pública. Dicho problema usualmente requiere de la intervención de unatercera parte confiable.

Algunas ventajas de la criptogrfía de llave pública son: Sólo la llave privada debe mantenerse secreta.

En una red suficientemente grande solamente se requiere la presencia de una ter-cera parte confiable para el manejo adecuado de las llaves.

(21)

Muchos de los sistemas de llave pública se prestan para realizar mecanismos efi-cientes defirma digital.

Algunas desventajas son:

Las operaciones de cifrado y descifrado son considerablemente más lentas que las respectivas en los esquemas de llave simétrica.

La longitud de las llaves es más larga.

Ningún esquema de llave pública cuenta con una prueba de seguridad.

La razón de la ultima desventaja citada, se debe a que la seguridad de los criptosistemas de llave pública reside en la aparente intratabilidad de los problemas matemáticos en los que están basados.

1.5.

Diffie-Hellman

Anteriormente se habló sobre laintratabilidad de problemas. Un problema computa-cional se dice ser fácil o tratable, si éste puede ser resuelto en tiempo polinomial. En otras palabras, si existe un algoritmo que puede resolver una fracción no despreciable de instancias de un problema en tiempo polinomial, entonces el criptosistema, cuya seguri-dad está basada en dicho problema, se dice ser no seguro. Existen muchos problemas cuya complejidad es desconocida, por lo que se cree son intratables, aunque no existe prueba formal de ello.

Uno de los problemas intratables más estudiados es precisamente el que da susten-to al trabajo de Diffie y Hellman [15], el problema del logaritmo discreto, el cual será definido más adelante.

1.6.

RSA

En1977Rivest, Shamir y Adleman [48], dan a conocer el esquema de cifrado de llave pública RSA. Dicho esquema se mantiene vigente hasta nuestros días.

El esquema de cifrado de RSA, así como el esquema de firmas digitales de RSA, basan su seguridad en la intratabilidad de lo que se conoce como el problema de RSA. Dado un entero n que es producto de dos números primos impares diferentesp y q, un entero

positivo e tal que mcd(e,(p1)(q1)) = 1, y un entero c∈ {0, . . . , n1}, encontrar

m tal que me c(mod n).

(22)

Sin embargo también se puede resolver si se conocen los factores primos de n. En otras

palabras el problema de RSA puede ser reducido al de factorización: dado un entero positivo n = pe1

1 pe

2

2 · · ·pekk, donde cada pi son primos distintos y ei ≥1, encontrar tales

factores.

Los dos grandes motivadores de la criptografía son la secrecidad y la eficiencia, sin embargo por la naturaleza de los métodos para cifrar información, casi siempre tales metas llegan a ser objetivos que se comprometen entre sí. En otras palabras entre ma-yor sea el nivel de seguridad que se desea tener, los parámetros seleccionados para los criptosistemas comprometerán la eficiencia en el cálculo de las operaciones. RSA es un claro ejemplo, pues para tener un nivel de seguridad aceptable1 se debe usar un módulo

n de al menos 1024 bits de longitud. Tal condición repercute de manera directa en el desempeño de los cálculos necesarios.

1.7.

Criptografía de curvas elípticas

Con el afán de conseguir criptosistemas más eficientes, sin tener que sacrificar el nivel de seguridad deseado, se han buscado otras opciones, como es el caso de la crip-tografía de curvas elípticas, la cual será tratada más a fondo en los capítulos posteriores.

En 1985 Koblitz [31] y Miller[39], propusieron (independientemente) el uso de curvas

elípticas para crear sistemas criptográficos de llave pública. La idea no fue muy bien recibida por la comunidad de RSA, y fue hasta la década de 1990 comenzó a tener aceptación comercial cuando organizaciones acreditadas crearon protocolos de curvas elípticas, y compañias privadas incluyeron dichos protocolos en sus sistemas de seguri-dad.

Las curvas elípticas contruidas sobre campos finitos tienen considerables ventajas en eficiencia con respecto a RSA, pues para lograr un nivel equivalente a 80 bits de se-guridad, basta con usar datos de 160 bits de longitud. La tabla 1.1 nos da un idea más

precisa de la relación entre el nivel de seguridad y el tamaño de los parámetros nece-sarios para formar los criptosistemas en cuestión. La primera columna de la tabla 1.1

corresponde a s, los bits de seguridad ofrecidos por un criptosistemas, en otras palabras

se puede entender que serían necesarias 2s operaciones básicas (bit a bit) para poder

romper un cifrador simétrico que usa llaves de s bits de longitus. La segunda y tercera columna indican el tamaño de los parámetros necesarios para formar un criptosistema

1En la actualidad se busca garantizar un nivel de seguridad de80bits, nivel comparable al que se

(23)

de curvas elípticas y RSA respectivamente.

Tabla 1.1: Niveles de seguridad correspondientes a diversas longitudes de parámetros.

s Curvas elípticas RSA

80 160 1024

128 256 3072

256 512 15360

1.8.

Criptografía basada en emparejamientos bilineales

1.8.1.

Ataques

En la actualidad la criptografía basada en emparejamientos bilineales ha acapara-do la antención de la mayoría de los investigaacapara-dores, pues da pie a noveacapara-dosos esquemas criptográficos. La criptografía basada en emparejamientos surgió como un ataque pre-sentado por Menezes, Okamoto y Vanstone [38]. Dicho trabajo describía cómo usar el emparejamiento de Weil para reducir el problema del logaritmo discreto en un grupo cíclico, al problema de logaritmo discreto en el grupo de las raíces de unidad. Posterior-mente Frey y Rück [20], lograron un resultado similar usando el emparejamiento de Tate.

Tiempo después los emparejamientos fueron empleados con fines más constructivos. Desde entonces los emparejamientos han captado el interés de muchas personas, pues a pesar de sus significativas ventajas aún quedan diversas áreas de oportunidad, donde se pueden mejorar varios aspectos de los emparejamientos para lograr implementaciones más eficientes.

1.8.2.

Protocolos basados en emparejamientos bilineales

Las características de los emparamentas bilineales los hacen esencialmente atractivos para extender y completar las propiedades de la criptografía basada en curvas elípticas, pues los emparejamientos sirven como un puente entre la eficiencia de los grupos cíclicos aditivos formados por los puntos en una curva elíptica E, y las características de los grupos cíclicos multiplicativos.

(24)

1.8.2.1. Criptografía basada en la indentidad

Como se mencionó previamente, en la criptografía el uso de llaves es esencial para cifrar información, sin embargo típicamente las entidades que desean cifrar mensajes no están facultadas para elegir el contenido de dichas llaves.

La criptografía basada en la identidad fue planteada por Shamir en 1984, en [54], y la finalidad en ese esquema es lograr generar las llaves públicas a partir de datos que identifiquen a las entidades, y que fueran parte del dominio público. La criptografía basada en la identidad es el resultado de una ingeniosa forma de combinar las funciones picadillo, más concretamente laTransformación a Punto (Map to Point en inglés), y los emparejamientos bilineales.

1.8.2.2. Diffie-Hellman tri-partito de una ronda

Anteriormente se mencionó el trabajo presentado por Diffie y Hellman [15], y el impacto que produjo. Desde que fue planteada la posibilidad de intercambiar llaves pri-vadas de manera segura entre dos entidades, se pretendió extender el mismo intercambio para tres entidades. Lo anterior era posible, siempre y cuando se realizaran más de una ronda de intercambio de llaves. Joux en el 2000 [29] presentó una forma de realizar dicho intercambio en una sola ronda.

1.8.2.3. Firma corta

Las operaciones de cifrado y descifrado proveen el servicio de confidencialidad. Para poder obtener los servicios de autentificación, integridad y no-repudio, se hace uso de firmas digitales y verificación de las mismas. Hasta antes de que Boneh et al. [8] en-contraran una forma de producir una firma verificable con sólo dos datos, todos los esquemas de firmas previos, no así RSA, debían contener por lo menos tres datos para poder llevar a cabo su verificación.

1.8.2.4. Firma a ciegas

La firma a ciegas más trascendente fue ideada por Boldyreva [1], y no es la abstracción de un fenómeno que se presente en la vida cotidiana. Pues al contrario de las firmas manuscritas, en la firma a ciegas se busca que el signatario no pueda conocer el contenido de lo que firma. Tal firma se usa principalmente en esquemas de dinero electrónico, y votación electrónica.

1.8.2.5. Firma en cápsula de tiempo

(25)

determinada. En otras palabras, la verificación de una firma en cápsula de tiempo, de-pende de una fecha estipulada, y antes de dicha fecha, la firma será rechazada.

1.8.3.

Modelo de capas

En terminos de implementaciones, todo lo que se ha mencionado hasta ahora se puede abstraer en el modelo de capas de la figura1.1. En dicho modelo cada capa está construida sobre otra, simbolizando que las capas superiores son posibles una vez que ya se cuenta con las inferiores.

Emparejamientos Bilineales

Torres de campos Curvas Elípticas

Aritmética

+

ˆ

×

Aplicaciones

Figura 1.1: Modelo de capas

La capa base es la aritmética de campos finitos; está formada por las operaciones de suma, resta, multiplicación, exponenciación, etc.

La segunda capa está dividida en dos secciones, las torres de campos y las curvas elíp-ticas, ambas construidas con las operaciones de la capa base.

(26)

Es importante mencionar que la operación más demandante en los protocolos men-cionados es el cálculo del los emparejamientos bilineales. Por tal motivo se busca cons-tantemente mejoras en los algoritmos para calcular los emparejamientos, y una manera natural de hacerlo es mediante la aceleración en las primeras tres capas de la figura 1.1, las cuales serán tratadas en los siguientes capítulos.

El modelo de capas presentado es tambén un retrato de la estructura del resto del contenido de esta tesis. En el capítulo 2 se presentan los conceptos matemáticos en los que están basados emparejamientos bilineales. En el mismo capítulo se presentan los algoritmos empleados para las operaciones aritméticas, además de mostrar la estructura de la torre de campos empleada.

En el capítulo 3 se da una breve introducción a las curvas elípticas contruidas sobre campos finitos, para posteriormente abordar el tipo de curvas con el que se trabajó en la presente tesis.

El capítulo 4 concentra la información necesaria para explicar el algoritmo utilizado en esta tesis para el cálculo del emparejamiento. Posteriormente en el capítulo 5 se muestran los resultados obtenidos de la tesis, presentando también una comparación con las implementaciones más importantes del estado del arte.

(27)

Capítulo 2

Aritmética de torres de campos

En este capítulo se abordan algunas de las definiciones de teoría de números y algebra abstracta [34, 36, 37], que como se mencionó en el capítulo 1, son la piedra angular de los métodos empleados en la criptografía.

2.1.

Grupos

Un grupo (G,), se define como un conjunto G, con una operación binaria , que satisface los siguientes axiomas:

Cerradura: AB G, A, B G.

Asociatividad:(AB)C =A(BC), A, B, C G.

Existencia de identidad:I G tal que AI =IA=A, AG.

Existencia de inverso: AG, X G tal que AX =XA=I.

Sí el grupo (G,) satisface el siguiente axioma, entonces se dice ser un grupo con-mutativoo grupo abeliano,

Conmutatividad: AB =BA, A, B G.

2.1.1.

Clase lateral

SiHes un subconjunto deG, y es un grupo con la misma operaciónqueG, entonces H es un sub-grupo deG. Si Ges un grupo, H un sub-grupo de G, y g G entonces

gH={gh:hH} es la clase lateral izquierda deH enG.

(28)

Luego entonces, una clase lateral es una clase lateral izquierda o derecha de algún subgrupo de G. De manera más general se puede entender que una clase lateral es una copia desplazada de H.

2.2.

Anillos

Un anillo(R,+,×)es un conjuntoRcon dos operadores binarios+y×que cumplen los siguientes axiomas:

(R,+) es un grupo abeliano.

La operación × es asociativa.

R tiene identidad multiplicativa.

La operación × es distributiva sobre +.

R se dice ser conmutativo siA×B =B ×A, A, B R.

2.3.

Campos

Un campo es unanillo conmutativo en el cual cada elemento diferente de cero tiene un único inverso multiplicativo.

La característica u orden de un campo es 0 si Pm

i=11 nunca es igual a 0 para m ≥ 1. De otra forma la característica del campo es el menor entero positivo mtal que el valor de la suma anteriormente mencionada es 0.

2.4.

Campos finitos

Un campo finito es un campo F, el cual contiene un número finito de elementos. El orden de F es el número de elementos que éste tiene. Fq denota un campo finito con q

elementos.

Fq tiene:

un grupo aditivo F+q con q elementos.

un grupo multiplicativo F∗

q con q−1elementos.

Tanto el grupo aditivo como el multiplicativo son abelianos.

Un campo finito con q elementos existe solamente si q = pm, donde p es un número

(29)

2.5.

Extensiones de campo

Sean K y L campos, donde K L, K es entoncessub-campo de L, mientras que L

se dice ser una extensión de K.

Una extensión finita de Fq de grado m, es de la forma Fqm. Fqm ∼=Fq[x]/(f(x)), donde

f(x) es un polinomio irreducible de grado m en Fq.

Es importante mencionar que Fqr ⊆Fqs, si y sólo si r|s.

2.5.1.

Cerradura algebraica

Sean K y L campos, dondeK L, y αL, entoncesα se dice seralgebraica sobre

K si existe un polinomio no constante

f(x) =a0 +a1x+· · ·+am−1xm+1+amxm, ai ∈K

tal quef(α) = 0. Lse dice seralgebraico sobre K si todos sus elementos son algebraicos

sobre K. La cerradura algebraica de un campo K es el campo K¯ tal que es algebraico

sobre K y cada polinomio no constante g(x) con coeficientes en K tiene sus raices en

¯

K.

La cerradura algebraica de un campo finito Fq es la máxima de sus extensiones, es

decir:

¯

Fq = [

m≥1 Fqm

2.6.

Torres de campos

Se le conoce como torres de campos a las construcciones formadas por campos fini-tos, donde cada campo finito representa un nivel de la torre y por ende es una extensión de los campos de los niveles inferiores.

Por motivos que se expondrán en el capítulo 4, se pretende construir la extensión Fp12.

Si se hiciera de manera directa, los elementos enFp12 sería polinomios de grado a lo más m= 12 con coeficientes en el campo base Fp. De ser así las operaciones de la extensión serían altamente ineficientes, pues en el caso de una multiplicación, sería necesaro hacer

144 multiplicaciones entre coeficientes, aplicando un método de multiplicación de

com-plejidad cuadrática.

(30)

Fp2=Fp[u]/(u2−β)

Fp12 Fp12 =Fp6[w]/(w2−γ)

Fp6=Fp2[v]/(v3−ξ)

Fp Fp

Figura 2.1: Torres de campos.

de lograr una aritmética más eficiente. Debido a que la extensión se puede descomponer como12 = 22·3, la torre de campo puede ser formada como se muestra en la figura2.1. En [14] se muestra un estudio sobre las diversas formas de representar las torres de campos en busca de la mayor eficiencia posible cuando se desea alcanzar la extensión Fp12. También se muestran diversos algoritmos para multiplicar y elevar al cuadrado en

cada una de las extensiones. En esta tesis optamos por representar la torre de campos como se muestra en la figura 2.1 debido a que de esa forma se logra un alto nivel de eficiencia en la aritmética de cada extensión.

2.6.1.

Operaciones en

F

p

Naturalmente las operaciones de adición/substracción son realizadas entre elementos en Fp, y no requieren de mayor explicación. La multiplicación en cambio es vital para

el costo de las operaciones en las capas de la torre de campos, principalmente en la extensión doceava.

Como se mostró en la figura 1.1, las operaciones en Fp constituyen la base para el cálculo de emparejamientos bilineales, y por consiguiente resulta importante realizar una aritmética muy eficiente si se desea tener protocolos basados en emparejamientos que puedan ser calculados rápidamente.

2.6.1.1. Multiplicación

(31)

operaciones de adición y substracción tienen un costo bajo en comparación con la mul-tiplicación; la elevación al cuadrado regularmente se lleva a cabo mediante una multi-plicación por lo que termina teniendo el mismo costo; y la operación de encontrar el inverso multiplicativo de un elemento en Fp es más costosa, pero se realiza en contadas

ocasiones por lo que no se le puede considerar como una operación tan importante como la multiplicación.

Basados en el trabajo de [18], se buscó explotar las características de las curvas BN [4] (las cuales serán explicadas con mayor detalle en la sección4.3), con el fin de obtener un algoritmo eficiente para calcular c = a·b modp, donde p es un número primo y

a, b, c [0, p1]. Además, para el caso concreto de las curvas BN el primo p es de la

forma p= 36t4+ 36t3+ 18t2+ 6t+ 1, dondet Z.

La idea propuesta contempla representar a los operandos a y b como polinomios en

la variablet, para posteriormente calcular su producto mediante una versión polinomial del multiplicador de Montgomery.

De manera general, la idea involucra los siguientes pasos:

1. Seleccionar t

Seleccionar t con un peso de Hamming muy bajo, para tener un algoritmo eficiente

de reducción. Idealmente t debe ser un binomio. En esta tesis se proponen los valores

t = 263249 y t = 263254+ 244

siendo el primer valor la mejor opción por razones de eficiencia para el multiplicador.

2. Convertir los operandos en polinomios

Convertir los operandosa, bFp a baset. de manera que estos queden representados

como si fuesen polinomios de grado cuatro,a[t], b[t]. En este trabajo se usó el algoritmo

1, que puede ser encontrado en [11, 10]. Debido al hecho de que t es un binomio de grado 63 y a la forma del módulo p(t), al pasar los operandos a base t los primeros coeficientes de un polinomio x(t), llámense x0, x1, x2, x3 son enteros de 64 bits, puesto que cada coeficiente debe estar en el intervalo [0, t1]. Mientras que el coeficiente x4 es un entero de 6 bits debido a que que se encuentra restringido a x4 <36; lo anterior se debe a que los elementos en Fp no son mayores a p, por lo que todo polinomio x(t)

(32)

Algorithm 1 Conversión de entero a polinomio[11, 10].

Entrada: Un entero0x < p, el módulo p(t) = 36t4+ 36t3+ 24t2+ 6t+ 1 y la baset. Salida: x(t) =P4i=0xiti, tal que x≡x(t)mod p, dondexi ≤t/2.

1: for i= 0 to 4 do

2: xi =x modt

3: x=x/t

4: if xi > t/2then

5: xi =xi−t

6: x=x+ 1

7: end if

8: end for

9: return x(t) =P4i=0xiti.

3. Calcular el producto

Calcular c[t] =a[t]·b[t] modp[t] usando el algorithmo2, el cual es una version poli-nomial del algoritmo de multiplicación de Montgomery [43].

Para fines prácticos, a partir de ahora nos referiremos a las multiplicaciones entre enteros de 64 bits, las multiplicaciones entre un entero de 64 bits y uno de 6, y las multiplicaciones entre enteros de 6 bits como multiplicaciones 64×64, 64×6 y 6×6

respectivamente.

Para poder llevar a cabo el producto de dos polinomios de grado cuatro, en la línea

1 del algoritmo 2, se utiliza el algoritmo de tipo Karatsuba propuesto en [44], gracias a eso, podemos calcular dicho producto en doce multiplicaciones 64×64 y una64×6, además de setenta y siete adiciones.

La línea 2 es gratuita, pues sólo implica quedarse con los primeros cuatro coeficien-tes de c(t).

El paso 3 es llevado a cabo con ocho multiplicaciones 64×6 debido a los coeficien-tes de p′(t), y quince adiciones. Es importante mencionar que las multiplicaciones con enteros de 6bits se pueden hacer mediante “sumas y corrimientos”, por lo que resultan considerablemente más baratas que si se realizaran mediante multiplicaiones.

(33)

Algorithm 2 Nuestra propesta del algoritmo polinomial de Montgomery.

Entrada: a(t) =P4i=0aiti, b(t) =P4i=0biti,p(t) = 36t4+ 36t3+ 24t2+ 6t+ 1, p′(t) =

−36t312t2 + 6t1, t= 263249.

Salida: c(t) = a(t)b(t)t−4 mod p(t). 1: c(t)a(t)b(t)

2: u(t)←c(t) modt4 3: q(t)u(t)p′(t) modt4 4: c(t)(c(t) +q(t)p(t))/t4 5: return c(t).

Las multiplicaciones 64×64necesarias en el paso 1 producirán, en general, enteros de 128 bits que deben ser separados en una parte alta y una baja. En los pasos 3 y 4,

los resultados de los productos 64×6 también necesitan ser reducidos.

Sin embargo, aprovechando el hecho de que t tiene un peso de Hamming muy bajo,

con sólo dos coeficientes diferentes de cero, podemos obtener tanto la parte alta como la baja de manera eficiente (empleando únicamente adiciones de 64 bits), usando la reducción de Solinas, como se muestra en la figura 2.2.

0 63

126

Parte baja Parte alta

+ t= 263249

Figura 2.2: Reducción cont

En la tabla2.1 se aprecia una comparación entre el trabajo propuesto en [18] y nues-tra propuesta, donde las multplicaciones 64×64, las 64×6, las 6×6 y las adiciones

son representadas conM, m,˜ m y a respectivamente.

En ambos casos, el cálculo deu=cm´odr es gratis en terminos computacionales.

(34)

Tabla 2.1: Costo de operaciones del algoritmo polinomial de Montgomery

Fanet al. [18] Nuestra propuesta

c=a·b 16M+8m˜+1m+25a 12M+1m˜+177a

q=u·p′ 0 8m˜+15a

q=u·p 25m˜ 12m+˜ 77a

c= (c+q)/r 30a 8a

Total 16M+33m˜+1m+55a 12M+21m˜+177a

las sumas sean mucho más baratas que las multiplicación.

2.6.1.2. Inversión

La inversión enFp es realizada mediante el conocido algoritmo de inversión de

Mont-gomery [25]. En la aritmética de Montgomery se selecciona un valor R = 2ωm 2n,

donde m suele ser el tamaño de palabra del procesador donde se implementa dicha aritmética, y n = log2(p). El algoritmo 3 es el de Montgomery para hayar inversos

multiplicativos en un campoFp.

Algorithm 3 Algoritmo de Montgomery para encontrar el inverso multiplicativo Fp [25].

Entrada: Un primop > 2, n =log2(p), R2 modp,ya¯=aR modp, dondeR = 2ωm.

Salida: a−1R mod p.

1: Encontrar el par de enteros (x, k), tal que x= ¯a−12k modp y n k2n.

2: if k < ωm then

3: x←xR2. 4: k k+ωm.

5: end if

6: x←xR2. 7: xx22ωm−k.

8: return x.

(35)

2.6.2.

Operaciones en

F

p2

Como se mostró previamente en la figura 2.1, el primer nivel de la torre de campos, es la extensión cuadrática

Fp2 =Fp[u]/(u2−β)

donde β=5.

2.6.2.1. Adición

El algoritmo 4 muestra la forma como se lleva a cabo la suma de dos elementos

A, B Fp2.

Algorithm 4 Adición en Fp2 =Fp[u]/(u2−β). Entrada: A=a0+a1u∈Fp2 y B =b

0+b1u∈Fp2. Salida: C =c0 +c1u=A+B ∈Fp2.

1: c0 ←a0 +b0; 2: c1 ←a1 +b1;

3: return C =c0+c1u;

2.6.2.2. Multiplicación

A continuación se muestra el algoritmo 5, mismo que sirve para multiplicar dos elementos en Fp2 utilizando la técnica de Karatsuba-Ofman con el fin de reducir el

número de multiplicaciones en Fp.

Algorithm 5 Multiplicación en Fp2 =Fp[u]/(u2 −β).

Entrada: A, B Fp2, donde A=a0+a1u y B =b0+b1u;ai, bi ∈Fp. Salida: C =A·B, C Fp2, donde C=c0+c1u; ci ∈Fp.

1: t0 ←a0·b0 2: t1 ←a1·b1 3: c0 ←t0+t1·β

4: c1 ←(a0+a1)·(b0+b1)−t0−t1 5: return C c0+c1u.

(36)

Algorithm 6 Multiplicación con b0 ∈Fp.

Entrada: A=a0+a1u∈Fp2 y b0 ∈Fp. Salida: C=c0+c1u=A·b0 ∈Fp2.

1: c0 ←a0·b0; 2: c1 ←a1·b0;

3: return C=c0+c1u;

2.6.2.3. Elevación al cuadrado

Para elevar al cuadrado en Fp2, se hace uso del método complejo1, el cual tiene un

costo menor, en terminos de multiplicaciones en Fp, que si se utilizara el algoritmo 5.

Algorithm 7 Elevación al cuadrado en Fp2 =Fp[u]/(u2−β). Entrada: AFp2, dondeA=a0+a1u; ai ∈Fp.

Salida: C=A2, C F

p2, donde C =c0+c1u; ci ∈Fp.

1: c0 ←a0−a1 2: c3 ←5a1 +a0 3: c2 ←2(a0·a1) 4: c1 ←c2

5: c2 ←2c2

6: c0 ←c0·c3−c2

7: return C←c0+c1u.

2.6.2.4. Inverso multiplicativo

El inverso de un elemento A = a0 +a1u ∈ Fp2, puede ser calculado a partir de la

identidad(a0+a1u)−1 = (a0−a1u)/(a20−βa21), la cual queda plasmada en el algoritmo

8.

(37)

Algorithm 8 Inversión en Fp2 =Fp[u]/(u2−β). Entrada: A=a0+a1u∈Fp2.

Salida: C =c0 +c1u=A−1 ∈Fp2.

1: t0 ←a20; 2: t1 ←a21;

3: t0 ←t0−β·t1; 4: t1 ←t−01;

5: c0 ←a0 ·t1; 6: c1 ← −1·a1·t1; 7: return C =c0+c1u;

2.6.3.

Operaciones en

F

p6

El segundo nivel de la torre de campos corresponde a la extensión cúbica sobre Fp2,

construida de la siguiente forma

Fp6 =F

p2[v]/(v3−ξ)

donde ξ=u.

2.6.3.1. Adición

En el algoritmo 9se muestra cómo llevar a cabo la adición de dos elementos en Fp6.

Algorithm 9 Adición in Fp6 =F

p2[v]/(v3−ξ).

Entrada: A=a0+a1v+a2v2 ∈Fp6 y B =b0+b1v+b2v2 ∈F

p6. Salida: C =c0 +c1v+c2v2 =A+B ∈Fp6.

1: c0 ←a0 +b0; 2: c1 ←a1 +b1; 3: c2 ←a2 +b2;

4: return C =c0+c1v+c2v2;

2.6.3.2. Multiplicación

En el algoritmo10, para multiplicar dos elementos enFp6, nuevamente se hace uso del

(38)

Algorithm 10 Multiplicación in Fp6 =Fp2[v]/(v3−ξ).

Entrada: A=a0+a1v+a2v2 ∈Fp6 y B =b0+b1v +b2v2 ∈F

p6. Salida: C=c0+c1v+c2v2 =A·B ∈Fp6.

1: t0 ←a0 ·b0; 2: t1 ←a1 ·b1; 3: t2 ←a2 ·b2;

4: c0 ←[(a1+a2)·(b1 +b2)−t1−t2]·ξ+t0; 5: c1 ←(a0 +a1)·(b0+b1)−t0−t1+ξ·t2; 6: c2 ←(a0 +a2)·(b0+b2)−t0−t2+t1; 7: return C=c0+c1v+c2v2;

El algoritmo 11 calcula el producto de A Fp6 por una constante b0 ∈ F

p2; sin

embargo, éste también puede ser usado para calcular el producto deApor una constante b′

0 ∈Fp usando el algoritmo 6, en lugar de la multiplicación general enFp2. Algorithm 11 Multiplicación by b0 ∈Fp2.

Entrada: A=a0+a1v+a2v2 ∈Fp6 y b0 ∈F

p2. Salida: C=c0+c1v+c2v2 =A·b0 ∈Fp6.

1: c0 ←a0·b0; 2: c1 ←a1·b0; 3: c2 ←a2·b0;

4: return C=c0+c1v+c2v2;

El algoritmo 12sirve para calcular el producto de dos elementos en Fp6 de la forma A=a0+a1v+a2v2, y B =b0+b1v+ 0v2, respectivamente.

Algorithm 12 Multiplicación by b0+b1v.

Entrada: A=a0+a1v+a2v2 ∈Fp6 y b0, b1 ∈Fp2 Salida: C=c0+c1v+c2v2 =A·(b0+b1v)∈Fp6.

1: t0 ←a0 ·b0; 2: t1 ←a1 ·b1;

3: c0 ←((a1+a2)·(b1)−t1)·ξ+t0; 4: c1 ←(a0 +a1)·(b0+b1)−t0−t1; 5: c2 ←a2·b0+t1;

6: return C=c0+c1v+c2v2;

2.6.3.3. Elevación al cuadrado

El algoritmo 13 calcula el cuadrado de A Fp6, a partir de la fórmula obtenida en

(39)

Algorithm 13 Elevación al cuadrado en Fp6 =Fp2[v]/(v3−ξ). Entrada: A=a0+a1v+a2v2 ∈Fp6.

Salida: C =c0 +c1v+c2v2 =A2 ∈Fp6.

1: c4 ←2(a0·a1); 2: c5 ←a22;

3: c1 ←c5·ξ+c4; 4: c2 ←c4−c5; 5: c3 ←a20;

6: c4 ←a0 −a1+a2; 7: c5 ←2(a1·a2); 8: c4 ←c24;

9: c0 ←c5·ξ+c3;

10: c2 ←c2+c4+c5−c3;

11: return C =c0+c1v+c2v2;

2.6.3.4. Inverso multiplicativo

El algoritmo 14 calcula el inverso de un elemento A Fp6 basado en la fórmula

obtenida en [50].

Algorithm 14 Inversión in Fp6 =F

p2[v]/(v3−ξ). Entrada: A=a0+a1v+a2v2 ∈Fp6.

Salida: C =c0 +c1v+c2v2 =A−1 ∈Fp6.

1: t0 ←a20; 2: t1 ←a21; 3: t2 ←a22; 4: t3 ←a0·a1; 5: t4 ←a0·a2; 6: t5 ←a1·a2; 7: c0 ←t0−ξ·t5; 8: c1 ←ξ·t2−t3; 9: c2 ←t1−t4; 10: t6 ←a0·c0;

11: t6 ←t6+ξ·a2·c1; 12: t6 ←t6+ξ·a1·c2; 13: t6 ←t−61;

14: c0 ←c0·t6; 15: c1 ←c1·t6; 16: c2 ←c2·t6;

(40)

2.6.4.

Operaciones en

F

p12

Finalmente el último nivel de la torre de campos, la extensión Fp12 es representada

como

Fp12 =F

p6[w]/(w2−γ)

donde γ =√3 ξ.

2.6.4.1. Adición

En el algoritmo 15 se muestra la forma de llevar a cabo la adición de elementos en Fp12.

Algorithm 15 Adición in Fp12 =F

p6[w]/(w2−γ). Entrada: A=a0+a1w∈Fp12 y B =b0+b1w∈F

p12. Salida: C=c0+c1w=A+B ∈Fp12.

1: c0 ←a0+b0; 2: c1 ←a1+b1;

3: return C=c0+c1w;

2.6.4.2. Multiplicación

La extensión doceava es básicamente es una extensión cuadrática sobreFp6 por lo que

la aritmética es idéntica a la deFp2. El algoritmo16calcula el producto deA, B ∈Fp12.

Algorithm 16 Multiplicación in Fp12 =F

p6[w]/(w2−γ). Entrada: A=a0+a1w∈Fp12 y B =b0+b1w∈F

p12. Salida: C=c0+c1w=A·B ∈Fp12.

1: t0 ←a0 ·b0; 2: t1 ←a1 ·b1; 3: c0 ←t0+t1·γ;

4: c1 ←(a0 +a1)·(b0+b1)−t0−t1; 5: return C=c0+c1w;

(41)

Algorithm 17 Multiplicación por B =b0+b1w, donde b0 ∈Fp2 y b1 =b10+b11v+ 0v2 Entrada: A = a0 +a1w ∈ Fp12 y B = b0 +b1w ∈ F

p12, with b0 = b00+ 0v + 0v2 y b1 =b10+b11v+ 0v2.

Salida: C =c0 +c1w=A·B ∈Fp12.

1: t0 ←a0·b0; (Algoritmo 11)

2: t1 ←a1·b1; (Algoritmo 12)

3: c0 ←t0+t1·γ;

4: t2 ←(b0+b10)v+b11v + 0v2;

5: c1 ←(a0+a1)·t2; (Algoritmo 12)

6: c1 ←c1−t0−t1; 7: return C =c0+c1w;

2.6.4.3. Elevación al cuadrado

Nuevamente el algoritmo18hace uso del método complejo para calcular el cuadrado deAFp12.

Algorithm 18 Elevación al cuadrado en Fp12 =Fp6[w]/(w2−γ). Entrada: A=a0+a1w∈Fp12.

Salida: C =c0 +c1w=A2 ∈Fp12.

1: c0 ←a0 −a1; 2: c3 ←a0 −γ ·a1; 3: c2 ←a0 ·a1; 4: c0 ←c0·c3+c2; 5: c1 ←2c2;

6: c2 ←γ·c2; 7: c0 ←c0+c2;

8: return C =c0+c1w;

2.6.4.4. Inverso multiplicativo

(42)

Algorithm 19 Inverso multiplicativo en Fp12 =Fp6[w]/(w2−γ). Entrada: A=a0+a1w∈Fp12.

Salida: C=c0+c1w=A−1 ∈Fp12.

1: t0 ←a20; 2: t1 ←a21;

3: t0 ←t0−γ·t1; 4: t1 ←t−01; 5: c0 ←a0·t1; 6: c1 ← −1·a1·t1; 7: return C=c0+c1w;

2.6.5.

Costo

Tabla 2.2:Notación propuesta para representar las operaciones de cada extensión

Fp Fp2 Fp6 Fp12

Adición/Substracción a ã A Ã

Multiplición m m˜ M M˜

Elevación al cuadrado s ˜s S ˜S

Inversión i ˜i I ˜I

Multiplicación por β mβ

Multiplicación por ξ mξ

Como se mencionó previamente, la idea de formar la torre de campos con la estruc-tura descrita es con el fin de lograr la mayor eficiencia posible. Sin embargo hasta ahora sólo se han mencionado los algoritmos empleados para la aritmética de la torre sin haber dado a conocer el beneficio de éstos.

Para aclarar los detalles sobre la eficiencia de la torre de campos es necesario establecer una medida confiable sobre la cual podamos determinar qué tan costosas son nues-tras operaciones en las extensiones de la torre. La forma más conveniente de hacerlo es contando las operaciones en los campos base necesarias por cada operación de cada extensión.

Por conveniencia expresaremos el costo de las operaciones en Fp2 en términos de las

operaciones en Fp. Mientras que el resto de las extensiones, Fp6 y F

p12, serán

represen-tadas en terminos de las operaciones en Fp2. De igual manera expresaremos los costos

(43)

de ahora usaremos la notación propuesta en la tabla 2.2.

La tabla 2.3 lista los costos computacionales de la torre de campos bajo las condiciones previamente descritas.

Tabla 2.3: Costos computationales de la aritmetica de la torre de campos.

Campo Ad./Sub. Mult. Cuadrado Inversión

Fp2 ˜a= 2a m˜ = 3m+ 3a+mβ ˜s= 2m+ 3a+mβ

˜i= 4m+mβ +2a+i

Fp6 3˜a 6 ˜m+ 2m

ξ+ 15˜a 2 ˜m+ 3˜s+ 2mξ+ 8˜a

9 ˜m+ 3˜s+ 4mξ

+4˜a+ ˜i

Fp12 6˜a 18 ˜m+ 6mξ+ 60˜a 12 ˜m+ 4mξ+ 45˜a 25 ˜m+ 9˜s+ 12mξ

(44)
(45)

Capítulo 3

Curvas elípticas

Una curva elíptica E es la gráfica correspondiente a una ecuación de la forma

y2+a1xy+a3y=x3+a2x2+a4x+a6,

conocida como laecuación generalizada de Weierstraß, dondeai son constantes y∆6= 0,

donde ∆es el discriminante deE, definido de la siguiente manera.

∆ = d2

2d8−8d34−27d26+ 9d2d4d6

d2 = a21+ 4a2

d4 = 2a4+a1a3

d6 = a23+ 4a6

d8 = a21a6+ 4a2a6−a1a3a4+a2a23−a24      

    

6= 0 nos asegura que la curva sea suave, en otras palabras que los puntos de la curva tengan solamente una tangente. Tanto las constantes como las variables deben pertenecer a un campo, ya sea R, C, Q o incluso Fq, dondeq =pm, con m 1.

Sin embargo también existe una versión particular de dicha ecuación, conocida sim-plemente como la ecuación de Weierstraß:

y2 =x3+Ax+B,

dondeAyB son contantes. En la figura3.1 se puede apreciar la gráfica correspondiente a ese tipo de curva elíptica con valores enR.

3.1.

Punto al infinito

(46)

Figura 3.1:E:y2 =x3

+Ax+B

en la parte más alta como la más baja del eje de las ordenadas. Lo anterior tiene sentido cuando en lugar de estar trabajando con elementos en R, se tiene un campo finito, en tal caso no es necesario distinguir la parte superior de la inferior del eje de las ordenadas.

Una linea pasa por O solamente cuando ésta es vertical. Todas las lineas verticales se intersectan en O; por simetría eso ocurre en la parte superior e inferior, sin embargo ambos son el mismo punto O.

3.2.

Ley de grupo

En una curva elíptica es posible empezar con un punto, para producir otro. Sin embargo se suele comenzar con dos puntos

P1 = (x1, y1), P2 = (x2, y2)

en una curva elíptica E dada por la ecuacióny2 =x3+Ax+B. Para definir un punto nuevoP3 se traza un lineaLdeP1 aP2. Como se puede ver en la figura3.2,Lintersecta

E en un tercer punto P′

3, reflejando P3′ con respecto al eje de las abscisas obtenemos

P31. Tal procedimiento se define

P1+P2 =P3.

La operación de doblado de un punto es una adición cuyos operandos son el mismo punto P1, y la linea L es la tangente de P1 como se muestra en la figura 3.3.

Sea E una curva elíptica definida por y2 = x3 + Ax + B, y sean P

1 = (x1, y1) y

P2 = (x2, y2) puntos en E, donde P1, P2 6= O; P1 +P2 = P3 = (x3, y3) se define de la siguiente manera

1Reflejar un puntoP con respecto al ejexsolamente implica negar su coordenada y. Tal operación

(47)

1. Sí x1 6=x2, entonces

x3 =m2−x1−x2, y3 =m(x1−x3)−y1, dondem =

y2−y1

x2−x1

2. Sí x1 =x2 peroy1 6=y2, entonces

P1+P2 =O

3. Sí P1 =P2 y y1 6= 0, entonces

x3 =m2−2x1, y3 =m(x1−x3)−y1, donde m=

3x2 1+A

2y1

4. Sí P1 =P2 y y1 = 0, entonces

P1+P2 =O

Adicionalmente P +O=P,P E.

Teorema 3.2.1. La adición de puntos en una curva elíptica E satisface las siguientes propiedades:

Conmutatividad

Existencia de identidad

Existencia de inverso

Asociatividad

En otras palabras, los puntos en E forman un grupo aditivo abeliano con O como el elemento identidad.

3.3.

Curvas sobre campos finitos

Supóngase que E está definida sobre un campo finito Fp, entonces las puntos en E

serán los pares de coordenadas (x, y), tales que x, y Fp satisfagan la ecuación de la

curva elíptica. Además tal curva es denotada por E(Fp).

Varias propiedades del grupo E(Fp) son importantes en el contexto de la criptografía,

(48)

P3

P′

3

P2

P1

Figura 3.2: Suma de puntos.

2P1

P1

Figura 3.3: Doblado de un punto.

3.3.1.

Orden del grupo

Sea E una curva elíptica definida sobre Fq, el número de puntos enE(Fq), denotado

como #E(Fq), es el orden deE(Fq). Debido a que la ecuación de Weierstraß tiene a lo

más dos soluciones para cada xFq, se sabe de antemano que#E(Fq)∈[1,2q+ 1], sin

embargo el siguiente teorema brinda límites más precisos.

Teorema 3.3.1. Hasse [25]. Sea E una curva elíptica definida sobre Fq, entonces el orden de E esta dado por:

q+ 12√q#E(Fq)q+ 1 + 2√q.

Tal intervalo es conocido comointervalo de Hasse. Alternativamente#E(Fq) =q+1tr,

donde |tr| =≤ 2√q; tr es conocido como la traza de Frobenius de E(Fq). Pero desde

una perspectiva más práctica, dado que 2√q es pequeño comparado con q, se tiene que

#E(Fq)q.

3.3.2.

Adición de puntos

En la sección 3.2 se presentó la forma de sumar puntos como una regla de secantes y tangentes. Sin embargo, ya sea para sumar dos puntos o para doblar uno, tales formulas requieren de una inversión y varias multiplicaciones en Fp. Es por eso que en busca de

lograr mayor eficiencia en una operación que suele ser repetida en un gran número de veces, se idearon nuevas formas de representar los puntos.

3.3.2.1. Coordenadas jacobianas

Lascoordenadas jacobianas son una particularización de las coordenadas proyectivas (vease [12,58,25]). Con las coordenadas jacobianas la curvaEestá dada por la ecuación

(49)

Un punto (X1 : Y1 : Z1) enE corresponde a un punto (X1/Z12, Y1/Z13) en coordenadas afines, conZ1 6= 0. De esta correspondencia se deduce que para pasar un punto (x, y)a coordenadas jacobianas solamente hay que agregarle su coordenadaZ = 1.

El punto al infinito O es representado como (1 : 1 : 0), y la negación de un punto (X1 :Y1 :Z1) es (X1 :−Y1 :Z1).

3.3.2.2. Doblado de un punto

Utilizando la representación de un punto en coordenadas jacobianas, P = (X1 :

Y1 : Z1), se puede utilizar la fórmula previamente vista y adaptarla para obtener las siguientes ecuaciones para calcular 2P = (X3 :Y3 :Z3):

X3 = (3X12+aZ14)2−8X1Y2,

Y3 = (3X12+aZ14)(4X1Y12−X3)−8Y4,

Z3 = 2Y1Z1.

Pero con ayuda de algunos valores temporales se puede reducir aún más el costo del doblado a seis elevadas al cuadrado y cuatro multiplicaciones usando el algoritmo 20.

Algorithm 20 Doblado de un punto en coordenadas jacobianas.

Entrada: P = (X1, Y1, Z1).

Salida: 2P = (X3, Y3, Z3). 1: t1 ←Y12.

2: t2 ←4X1·t1. 3: t3 ←8t21.

4: t4 ←3X12+aZ14. 5: X3 ←t24−2t2.

6: Y3 ←t4·(t2−X3)−t3. 7: Z3 ←2Y1·Z1.

8: return 2P = (X3 :Y3 :Z3).

3.3.2.3. Suma con coordenadas mixtas

De igual manera que con el doblado de un punto, utilizando las coordenadas jaco-bianas, se puede obtener un algoritmo más eficiente para la suma de puntos. Sin embargo la mejor forma de hacerlo implica usar coordenadas mixtas, es decir que uno de los pun-tos esté definido en coordenadas jacobianas, y el otro en afines.

(50)

entonces se puede utilizar la fórmula para coordenadas afines, y obtener las siguientes ecuaciones para calcular R = (X3 :Y3 :Z3) =P +Q [58]:

X3 = (Y2Z13 −Y1)2−(X2Z12−X1)(X1+X2Z12),

Y3 = (Y2Z13 −Y1)(X1(X2Z12−X1)2−X3)−Y1(X2Z12−X1)3,

Z3 = (X2Z12−X1)Z1.

Nuevamente, almacenando valores temporales se puede reducir el costo de la suma de puntos a tres elevadas al cuadrado y ocho multiplicaciones con el algoritmo 21.

Algorithm 21 Suma de puntos con coordenadas mixtas. Entrada: P = (X1, Y1, Z1) y Q= (X2, Y2, Z2).

Salida: R= (X3, Y3, Z3). 1: t1 ←Z12.

2: t2 ←Z1·t1. 3: t3 ←X2·t1. 4: t4 ←Y2·t2. 5: t5 ←t3−X1. 6: t6 ←t4−Y1. 7: t7 ←t25. 8: t8 ←t7·t5. 9: t9 ←X1·t7.

10: X3 ←t26−(t8+ 2t9).

11: Y3 ←t6·(t9−X3)−Y1·t8. 12: Z3 ←Z1·t5.

13: return 2P = (X3 :Y3 :Z3).

3.3.3.

Multiplicación por escalar

La operación de multiplicación, se lleva a cabo mediante un escalar k y un punto P E, denotada por kP. Naturalmente dicha operación no es otra cosa que repetir k

veces la operacion de adición sobre P.

kP =P +P +· · ·+P

| {z }

k veces

(51)

La idea es representar el escalark en forma binaria, y recorrer los bits de éste mientras

se dobla el puntoQ incondicionalmente, y realizando sumas de puntos si el bit es1, tal

como se muestra en el algoritmo 22.

Algorithm 22 Método binario para multiplicación por un escalar de izquierda a

derecha.

Entrada: k = (kl−1, ..., k1, k0)2 y P ∈E(Fp).

Salida: Q=kP.

1: for i=l1 downto0 do

2: Q= 2Q.

3: if ki = 1 then

4: Q=Q+P.

5: end if

6: end for

7: return Q.

3.3.4.

Orden de un punto

En el caso de un punto P E(Fq), el orden de un punto es el mínimo entero r tal

que rP =O. Es importante destacar que el orden de un punto siempre va a dividir el

orden de E(Fq)

3.3.4.1. Problema del logaritmo discreto en curvas elípticas

En la sección 1.5 se menciona que la seguridad del método propuesto en [15] radica en la aparente dificultad de resolver el siguiente problema:

El problema del logaritmo discreto: Dado G un grupo cíclico multiplicativo de orden

r, α un generador deG, y un elementoβ G, encontrar el enterox, 0xr1, tal queαx =β.

La seguridad de las curvas elípticas se basa en el problema de logaritmo discreto en tales curvas. Como se menciono previamente, los puntos en la curva forman un grupo aditivo, por lo que el problema del logaritmo discreto en un grupo aditivo, escrito como G=hPi, se puede enunciar como sigue: dadosP, QG, encontrar el enterox[0, r1]

tal que Q=xP.

(52)

grupos aditivos formados por puntos sobre una curva elíptica, que a su vez está definida sobre un campo finito.

Es importante destacar que el problema del logaritmo discreto para curvas elípticas es más díficil de resolver que para campos cíclicos multiplicativos.

3.3.5.

Puntos de torsión

Los puntos de torsión son aquellos puntos en E cuyo orden es finito. Más

con-cretamente, se les conoce como puntos de torsión r a aquellos puntos cuyo orden es

precisamente r, y son denotados por E[r], además éstos son un subconjunto de E(Fp).

Es importante para propositos criptográficos que r sea un factor primo de #E(Fp)

su-ficientemente grande como para garantizar un nivel de seguridad deseado.

Existe más de una forma para determinar si una curva es ordinaria o supersingular, sin embargo una manera sencilla de hacer es la siguiente: una curva elíptica E(Fp) es

llamada ordinaria si E[p]Zp. En cambio si E[p]≃0, entonces se dice ser

(53)

Capítulo 4

Emparejamientos bilineales

4.1.

Emparejamiento de Tate

4.1.1.

Divisores

Sea E una curva elíptica definida sobre un campo K. Para cada punto P E( ¯K),

se define un símbolo formal (P), siendo K¯ la cerradura algebraica de K. Un divisor D

sobre E es una combinación lineal finita de tales símbolos con coeficientes enteros:

D=X

j

aj[Pj], aj ∈Z,

por lo tanto un divisor es un elemento del grupo abeliano generado por los símbolos(P).

El grupo de divisores sobre E es denotado como Div(E). Y el soporte, el grado y la suma de un divisor, respectivamente, se definen como:

sop(X

j

aj[Pj]) = {P ∈E|aj 6= 0}

deg(X

j

aj[Pj]) =

X

j

aj ∈Z

sum(X

j

aj[Pj]) =

X

j

ajPj ∈E( ¯K)

La suma del divisor usa la ley de grupo deE para sumar los puntos de cada símbolo. Los

(54)

4.1.1.1. Funciones sobre la curva

Para el caso en que E está definida por la ecuación y2 =x3+Ax+B, una función sobreE es una fracción de polinomios, también llamada función racional, definida de la siguiente manera:

f(x, y)K¯[x, y],

la cual está definida para al menos un punto en E( ¯K). La función puede tomar valores

enK¯ ∪ ∞.

Una función se dice tener un cero en el punto P, si al evaluarla con los valores de

las coordenadas de P, ésta toma el valor de 0; y se dice tener un polo en P, si toma el valor de . Por supuesto, el número de ceros y polos es finito.

Existes una función uP,conocida como uniformador en P, tal que uP(P) = 0, y

to-da función f(P)puede ser escrita como:

f =unPg,

donde n es un entero y g(P)6= 0,. A n se le conoce como el orden de f en P, y está representado por ordP(f).

El divisor de una función f está definido como:

div(f) = X

P∈E

ordP(f)(P)

y es importante mencionar que div(f) = 0, solamente si f es una función constante. Se le conoce como divisor principal sobre E a aquel divisor que es igual a div(f), para

alguna función f deE.

Los divisores D1, D2 ∈ Div(E) se dicen ser equivalentes, y se denotan D1 ∼ D2, si la diferencia de ambosD1−D2 es un divisor principal, por lo que tal diferencia se puede escribir comoD1 =D2+div(f) para alguna función racional f.

Supóngase que se tiene un punto P E(Fp)[r], entonces r(P) r(O) es un divisor principal, y por lo tanto existe una función fr,P ∈ E(Fp) cuyo divisor div(fr,P) =

r(P)r(O). Adicionalmente consideremos un punto Q, el cual representa la clase

lat-eral en E(Fp12)/rE(F

p12).A partir de éste podemos construir un divisor D

Q ∈Div0(E),

que cumpla las siguientes propiedades:

(55)

sop(DQ)∩sop(div(fr,P)) = 0

Luego entonces el emparejamiento de Tate

e(·,·) :E(Fp)[r]×E(Fp12)/rE(F

p12)→F×

p12/(F

×

p12)

r

está dado por

e(P, Q) = fr,P(DQ).

Es importante mencionar que el emparejamiento de Tate no depende de la selección de

fr,P, ni de la selección del divisor DQ.

4.1.2.

Propiedades del emparejamiento de Tate

Los emparejamiento bilineales tiene diversas propiedades, sin embargo, para fines criptográficos, son las siguientes las que nos interesan:

◮ Está bien definido.

e(O, Q) = 1 para todo punto Q E(Fpt). Y e(P, Q) (F×

p12)r para todo P ∈ E(Fp)[r] y todoQ∈rE(Fp12).

◮ No es degenerativo.

Para cada punto P E(Fp)[r]

O hay algún punto QE(Fp12) tal que e(P, Q)∈/ (F×

p12)r

◮ Es bilineal.

Para todos P, P1, P2 ∈E(Fp) y todosQ, Q1, Q2 ∈E(Fp12), tenemos que

e(P1+P2, Q)≡e(P1, Q)e(P2, Q)

y

e(P, Q1 +Q2)≡e(P, Q)e(P, Q2)

Particularmente la propiedad de bilinealidad es la que hace a los emparejamientos bi-lineales la gran fuente de protocolos que son hoy en día.

4.2.

Curvas “amigables” con los emparejamientos

Figure

Tabla 1.1: Niveles de seguridad correspondientes a diversas longitudes de parámetros.
Tabla 1 1 Niveles de seguridad correspondientes a diversas longitudes de par metros . View in document p.23
Figura 1.1: Modelo de capas
Figura 1 1 Modelo de capas. View in document p.25
Figura 2.1: Torres de campos.
Figura 2 1 Torres de campos . View in document p.30
Figura 2.2: Reducción con t
Figura 2 2 Reducci n con t. View in document p.33
Tabla 2.1: Costo de operaciones del algoritmo polinomial de Montgomery
Tabla 2 1 Costo de operaciones del algoritmo polinomial de Montgomery. View in document p.34
Tabla 2.2: Notación propuesta para representar las operaciones de cada extensión
Tabla 2 2 Notaci n propuesta para representar las operaciones de cada extensi n. View in document p.42
Tabla 2.3: Costos computationales de la aritmetica de la torre de campos.
Tabla 2 3 Costos computationales de la aritmetica de la torre de campos . View in document p.43
Figura 3.1: E : y2 = x3 + Ax + B
Figura 3 1 E y2 x3 Ax B. View in document p.46
Figura 3.3: Doblado de un punto.
Figura 3 3 Doblado de un punto . View in document p.48
Figura 3.2: Suma de puntos.
Figura 3 2 Suma de puntos . View in document p.48
Tabla 4.1: Costos computationales de las operaciones en el campo ciclotómico.
Tabla 4 1 Costos computationales de las operaciones en el campo ciclot mico . View in document p.63
Tabla 5.1: Una comparación de las operaciones aritméticas requiridas para el calculo las variantes delemparejamiento “ate”.
Tabla 5 1 Una comparaci n de las operaciones aritm ticas requiridas para el calculo las variantes delemparejamiento ate . View in document p.84
Tabla 5.2: Cuenta de ciclos por multiplicación en Fp2, elevación al cuadrado Fp2, y el emparejamientoóptimo “ate” en diferentes máquinas.
Tabla 5 2 Cuenta de ciclos por multiplicaci n en Fp2 elevaci n al cuadrado Fp2 y el emparejamiento ptimo ate en diferentes m quinas . View in document p.85
Tabla 5.3: Una comparación del tiempo y total de ciclos requeridos para el cálculo de diversas variantesdel emparejamiento de Tate
Tabla 5 3 Una comparaci n del tiempo y total de ciclos requeridos para el c lculo de diversas variantesdel emparejamiento de Tate. View in document p.86