95
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 México, D.F. Septiembre 2010

UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Centro de Investigación y de Estudios Avanzadosdel Instituto Politécnico Nacional

Unidad Zacatenco

Departamento de Computación

Diseño e Implementación Eficiente delEmparejamiento Ó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

México, D.F. Septiembre 2010

Page 2: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco
Page 3: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Agradecimientos

Primeramente debo aclarar que por falta de espacio no me es posible nombrar atodas las personas a las que debo agradecer, pues el estudiante que escribe esta tesis noes 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 familiarescercanos, 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 suvaliosa 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, PeterSchwabe, Nicolas Estibals, Teruya Tadanori y Shigeo Mitsunari por sus contribucionesde diversas maneras en mi proyecto de tesis.

En general a los Doctores con quienes he tomado materias, pero más concretamentea los Doctores Gregorio Toscano Pulido, Debrup Chakraborty, Gerardo de la Fraga yGuillermo 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íaReza 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 apoyoeconómico que me fue otorgado a partir de su programa de becas, y a los proyectosSEP-CONACYT 60240, SEP-CONACYT 90543 y UC MEXUS-CONACYT, entre laUniversidad de California, campus Santa Barbara, E.U.A y el CINVESTAV-IPN.

Y por supuesto al Centro de Investigación y de Estudios Avanzados del IPN (CINVESTAV-IPN) por permitirme ser parte de esta institución.

Page 4: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco
Page 5: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

ResumenDesde el año 2000 los emparejamientos bilineales han sido la piedra angular de nove-

dosos y creativos protocolos criptográficos. Desafortunadamente, todos los protocolosbasados en emparejamientos requieren del cálculo de varios de éstos. Además, el cos-to computacional de los emparejamientos es bastante alto. Por tales motivos, se hanpublicado diversas propuestas en la literatura abierta donde se muestran mejoras de losalgoritmos de los emparejamientos de Weil y de Tate. Recientemente, Vercauteren propu-so una variante del emparejamiento de Tate llamada emparejamiento óptimo “ate”. Otrasmejoras propuestas han sido en torno a la generación de curvas elípticas amigables conlos emparejamientos bilineales, como las presentadas por Barreto y Naehrig, las cualesson fáciles de generar a partir de una selección adecuada de parámetros que contribuyena la eficiencia del cálculo del emparejamiento. Posteriormente, Naehrig mostró la par-ticularización del emparejamiento óptimo “ate” para curvas Barreto-Naehrig. Esta tesisdescribe el análisis, diseño e implementación de una biblioteca de software eficiente parael cálculo del emparejamiento óptimo “ate” sobre curvas elípticas Barreto-Naehrig.

Page 6: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco
Page 7: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

AbstractSince year 2000, bilinear pairings have been the heart of several news and creative

cryptographic protocols. Unfortunately, the pairing based protocols require the compu-tation of many pairings. Hence pairings have a very high computational cost. For thosereasons, many proposal have been published in the open literature showing improvementson the Weil and Tate pairing algorithms. More recently, Vercauteren proposed and im-provement on the Tate pairing algorithm called optimal ate pairing. Others describedimprovements are about the pairing friendly elliptic curve generation, such kind of curvesare the described by Barreto and Naehrig, which are particularly easy to generate froman proper choice of parameters, those parameters will contribute to the efficiency onthe pairing computation. Then, Naehrig showed the particularization of the optimal atepairing on Barreto-Naehrig elliptic curves. This thesis describes the analysis, design andimplementation of an efficient software library for the optimal ate pairing computationon Barreto-Naehrig elliptic curves.

Page 8: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco
Page 9: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Índice general

Indice de tablas vii

1 Conceptos generales 11.1 Servicios de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Criptografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Criptografía de llave privada . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Criptografía de llave pública . . . . . . . . . . . . . . . . . . . . . . . . 41.5 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.7 Criptografía de curvas elípticas . . . . . . . . . . . . . . . . . . . . . . 61.8 Criptografía basada en emparejamientos bilineales . . . . . . . . . . . . 7

1.8.1 Ataques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.8.2 Protocolos basados en emparejamientos bilineales . . . . . . . . 7

1.8.2.1 Criptografía basada en la indentidad . . . . . . . . . . 81.8.2.2 Diffie-Hellman tri-partito de una ronda . . . . . . . . . 81.8.2.3 Firma corta . . . . . . . . . . . . . . . . . . . . . . . . 81.8.2.4 Firma a ciegas . . . . . . . . . . . . . . . . . . . . . . 81.8.2.5 Firma en cápsula de tiempo . . . . . . . . . . . . . . . 8

1.8.3 Modelo de capas . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Aritmetica de torres de campos 112.1 Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.1 Clase lateral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Anillos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.4 Campos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.5 Extensiones de campo . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.5.1 Cerradura algebraica . . . . . . . . . . . . . . . . . . . . . . . . 132.6 Torres de campos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

iii

Page 10: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

2.6.1 Operaciones en Fp . . . . . . . . . . . . . . . . . . . . . . . . . 142.6.1.1 Multiplicación . . . . . . . . . . . . . . . . . . . . . . 142.6.1.2 Inversión . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.6.2 Operaciones en Fp2 . . . . . . . . . . . . . . . . . . . . . . . . . 192.6.2.1 Adición . . . . . . . . . . . . . . . . . . . . . . . . . . 192.6.2.2 Multiplicación . . . . . . . . . . . . . . . . . . . . . . 192.6.2.3 Elevación al cuadrado . . . . . . . . . . . . . . . . . . 202.6.2.4 Inverso multiplicativo . . . . . . . . . . . . . . . . . . 20

2.6.3 Operaciones en Fp6 . . . . . . . . . . . . . . . . . . . . . . . . . 212.6.3.1 Adición . . . . . . . . . . . . . . . . . . . . . . . . . . 212.6.3.2 Multiplicación . . . . . . . . . . . . . . . . . . . . . . 212.6.3.3 Elevación al cuadrado . . . . . . . . . . . . . . . . . . 222.6.3.4 Inverso multiplicativo . . . . . . . . . . . . . . . . . . 23

2.6.4 Operaciones en Fp12 . . . . . . . . . . . . . . . . . . . . . . . . . 242.6.4.1 Adición . . . . . . . . . . . . . . . . . . . . . . . . . . 242.6.4.2 Multiplicación . . . . . . . . . . . . . . . . . . . . . . 242.6.4.3 Elevación al cuadrado . . . . . . . . . . . . . . . . . . 252.6.4.4 Inverso multiplicativo . . . . . . . . . . . . . . . . . . 25

2.6.5 Costo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Curvas elıpticas 293.1 Punto al infinito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2 Ley de grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3 Curvas sobre campos finitos . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3.1 Orden del grupo . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3.2 Adición de puntos . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.3.2.1 Coordenadas jacobianas . . . . . . . . . . . . . . . . . 323.3.2.2 Doblado de un punto . . . . . . . . . . . . . . . . . . . 333.3.2.3 Suma con coordenadas mixtas . . . . . . . . . . . . . . 33

3.3.3 Multiplicación por escalar . . . . . . . . . . . . . . . . . . . . . 343.3.4 Orden de un punto . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.3.4.1 Problema del logaritmo discreto en curvas elípticas . . 353.3.5 Puntos de torsión . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4 Emparejamientos bilineales 374.1 Emparejamiento de Tate . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.1.1 Divisores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1.1.1 Funciones sobre la curva . . . . . . . . . . . . . . . . . 38

4.1.2 Propiedades del emparejamiento de Tate . . . . . . . . . . . . . 394.2 Curvas “amigables” con los emparejamientos . . . . . . . . . . . . . . . 39

iv

Page 11: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

4.3 Curvas BN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.3.1 Twist de la curva . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.4 Ciclo de Miller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.5 Exponenciación Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.5.1 El operador de Frobenius . . . . . . . . . . . . . . . . . . . . . . 434.5.2 Grupo ciclotómico en Fp12 . . . . . . . . . . . . . . . . . . . . . . 46

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

5 Implementacion, resultados y comparaciones 555.1 Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.1.1 Implementaciones en Software . . . . . . . . . . . . . . . . . . . 555.1.2 Las mejores implementaciones con curvas ordinarias . . . . . . . 57

5.1.2.1 La implemetación más rápida de hardware . . . . . . . 575.1.2.2 La implementación más rapida de software . . . . . . . 58

5.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605.3 Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.3.1 Implementacion de la aritmética de Fp . . . . . . . . . . . . . . 615.3.2 Implementacion de la aritmetica de Fp2 . . . . . . . . . . . . . . 62

5.3.2.1 Multiplicación . . . . . . . . . . . . . . . . . . . . . . 625.3.2.2 Elevación al cuadrado . . . . . . . . . . . . . . . . . . 635.3.2.3 Multiplicación por ξ. . . . . . . . . . . . . . . . . . . . 63

5.4 Costos de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.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 . . . . . . . . . . . . . . . . . . 675.5 Comparación con otras implementaciones . . . . . . . . . . . . . . . . . 67

6 Conclusiones 716.1 Resumen de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.2 Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Referencias 75

v

Page 12: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

vi

Page 13: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Í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 . . . . . 182.2 Notación propuesta para representar las operaciones de cada extensión 262.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 calculolas variantes del emparejamiento “ate”. . . . . . . . . . . . . . . . . . . 68

5.2 Cuenta de ciclos por multiplicación en Fp2 , elevación al cuadrado Fp2 , yel emparejamiento óptimo “ate” en diferentes máquinas. . . . . . . . . . 69

5.3 Una comparación del tiempo y total de ciclos requeridos para el cálculo dediversas variantes del emparejamiento de Tate. La frecuencia esta dadaen GHz y los tiempos en milisegundos. . . . . . . . . . . . . . . . . . . 70

vii

Page 14: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

viii

Page 15: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Índice de algoritmos

1 Conversión de entero a polinomio[11, 10]. . . . . . . . . . . . . . . . . . 162 Nuestra propesta del algoritmo polinomial de Montgomery. . . . . . . . 173 Algoritmo de Montgomery para encontrar el inverso multiplicativo Fp [25]. 184 Adición en Fp2 = Fp[u]/(u2 − β). . . . . . . . . . . . . . . . . . . . . . . 195 Multiplicación en Fp2 = Fp[u]/(u2 − β). . . . . . . . . . . . . . . . . . . 196 Multiplicación con b0 ∈ Fp. . . . . . . . . . . . . . . . . . . . . . . . . . 207 Elevación al cuadrado en Fp2 = Fp[u]/(u2 − β). . . . . . . . . . . . . . . 208 Inversión en Fp2 = Fp[u]/(u2 − β). . . . . . . . . . . . . . . . . . . . . . 219 Adición in Fp6 = Fp2 [v]/(v3 − ξ). . . . . . . . . . . . . . . . . . . . . . . 2110 Multiplicación in Fp6 = Fp2 [v]/(v3 − ξ). . . . . . . . . . . . . . . . . . . 2211 Multiplicación by b0 ∈ Fp2 . . . . . . . . . . . . . . . . . . . . . . . . . . 2212 Multiplicación by b0 + b1v. . . . . . . . . . . . . . . . . . . . . . . . . . 2213 Elevación al cuadrado en Fp6 = Fp2 [v]/(v3 − ξ). . . . . . . . . . . . . . 2314 Inversión in Fp6 = Fp2 [v]/(v3 − ξ). . . . . . . . . . . . . . . . . . . . . . 2315 Adición in Fp12 = Fp6 [w]/(w2 − γ). . . . . . . . . . . . . . . . . . . . . . 2416 Multiplicación in Fp12 = Fp6 [w]/(w2 − γ). . . . . . . . . . . . . . . . . . 2417 Multiplicación por B = b0 + b1w, donde b0 ∈ Fp2 y b1 = b10 + b11v + 0v2 2518 Elevación al cuadrado en Fp12 = Fp6 [w]/(w2 − γ). . . . . . . . . . . . . 2519 Inverso multiplicativo en Fp12 = Fp6 [w]/(w2 − γ). . . . . . . . . . . . . . 2620 Doblado de un punto en coordenadas jacobianas. . . . . . . . . . . . . 3321 Suma de puntos con coordenadas mixtas. . . . . . . . . . . . . . . . . . 3422 Método binario para multiplicación por un escalar de izquierda a derecha. 3523 Ciclo de Miller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4324 Operador de Frobenius para elevar f ∈ Fp12 = Fp6 [w]/(w2 − γ) a la p. . 4525 Operador de Frobenius para elevar f ∈ Fp12 = Fp6 [w]/(w2 − γ) a la p2. . 4526 Operador de Frobenius para elevar f ∈ Fp12 = Fp6 [w]/(w2 − γ) a la p3. . 4627 Elevación al cuadrado en Fp12 = Fp6 [w]/(w2 − γ). . . . . . . . . . . . . 4728 Elevación al cuadrado en Fp4 = Fp2 [V ]/(V 2 − ξ). . . . . . . . . . . . . . 4829 Exponentiación final . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4930 Emparejamiento óptimo ”ate“ sobre curvas Barreto–Naehrig. . . . . . . 5131 Doblado de punto y evaluación de la linea tangente. . . . . . . . . . . . 52

ix

Page 16: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

32 Adición de punto y evaluación de linea. . . . . . . . . . . . . . . . . . . 5333 Exponenciación en Fp12 = Fp6 [w]/(w2 − γ). . . . . . . . . . . . . . . . . 5434 Multiplicación optimizada de Fp2 . . . . . . . . . . . . . . . . . . . . . . 6335 Elevación al cuadrado optimizada de Fp2 . . . . . . . . . . . . . . . . . . 6436 Multiplicación por ξ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6437 Reducción rápida x mod p. . . . . . . . . . . . . . . . . . . . . . . . . . 65

x

Page 17: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Capítulo 1

Conceptos generales

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

1.1. Servicios de seguridad

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

Confidencialidad: Este servicio consiste en garantizar que la información sólopueda 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 lasidentidades 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 unmensaje o transacción, se retracte de haberlo hecho.

Control de Acceso: Sirve para restringir el acceso a los usuarios de sistemas,según sus privilegios.

1

Page 18: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

1.2. Criptografía

Con el paso del tiempo, la humanidad ha ido generando conocimiento, y por ende lastécnicas para proteger la información se han ido perfeccionando, pero de igual forma losservicios 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 losmecanismos necesarios para ofrecer los servicios de seguridad previamente mencionados.

La criptografí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 disciplinascomo matemáticas, ciencias de la computación, e ingeniería.

Un sistema criptográfico, o criptosistema, es una quíntupla compuesta por los siguienteselementos [37]:

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

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

Llaves: También conocidas como claves ; es el conjunto de todos los posibles datos quevan a servir para cifrar un texto en claro. Denotado como K.

Operación de cifrado: Función que dados el texto en claro y una llave, produce unacifra. Dicha función debe ser reversible. Cada e ∈ K produce una biyección únicadeM a C, y es denotada por Ee

Operación de descifrado: Función que a partir de una llave y un cifrado, regresa altexto en claro. Dd determina la biyección única de C aM dada por algún d ∈ K.

El par de llaves (e, d), está relacionado de manera que Dd(Ee(m)) = m, y de igualforma 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.Idealmente e = d.

2

Page 19: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Debido a la estrecha relación entre la ciencia y la tecnología, las diversas técnicaspara brindar seguridad se ven limitadas por las capacidades de los recursos tecnológicosdisponibles 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 algunoscaracteres del alfabeto por números. Sin embargo, la llegada de la computación trajoconsigo un gran número de ventajas para diversas áreas de la ciencia, y la criptografíano fué la excepción.

La computación permite, entre otras cosas, la aceleración y automatización de diversoscálculos, por lo que eventualmente el uso de las computadoras dió lugar a criptosistemasmás complejos. Derivado de la posibilidad de la automatizacón de labores es que en ladécada de 1970, ocurrieron varios de los avances más significativos en la historia dela criptografía. En la década previamente mencionada, más concretamente en 1973, elNIST (National Institute of Standards and Technology) estableció el DES, cuyas siglassignifican estandar de cifrado de datos, y con dicho evento, se formalizó la relación entrelos criptosistemas y la computadora como herramienta principal de éstos. A partir deesa fecha se vuelve impensable implementar un criptosistema sin involucrar el uso decomputadoras 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 mecanismoscriptográ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 ambaspartes, 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 encada sesión de comunicación

Como se puede apreciar, la mayoría de las desventajas de la criptografía de llave privadaestán relacionadas con el manejo de las llaves. El primer problema surge al momentode establecer una llave para la comunicación entre dos entidades, e intentar mantenerla

3

Page 20: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

1.4. Criptografía de llave públicaToda vez que aún contando con el conocimiento de la llave e, 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 delos 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ó unaforma ingeniosa de establecer (entre dos entidades) de manera segura las llaves paraun 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 ydescifrado.

La criptografía de llave asimétrica forma parte crucial para la elaboración de firmasdigitales, una primitiva criptográfica que sirve para relacionar un documento digital conla 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 compartiruna llave privada, trae consigo un problema nuevo; el de autentificar la identidad delos propietarios de la llave, pues es necesario garantizar la identidad del poseedor deuna llave pública. Dicho problema usualmente requiere de la intervención de una terceraparte 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.

Dependiendo del modo de uso, las llaves pública y privada pueden mantenersevigentes durante largos periodos de tiempo, sin necesidad de ser renovadas. El usoprolongado de una llave en un sisteme simétrico aumenta la posibilidades de unataque. No ocurre lo mismo con las llaves asimétricas pues están relacionadas demanera que no se pueda obtener d a partir de e.

4

Page 21: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

Algunas desventajas son:

Las operaciones de cifrado y descifrado son considerablemente más lentas que lasrespectivas 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 criptosistemasde llave pública reside en la aparente intratabilidad de los problemas matemáticos enlos que están basados.

1.5. Diffie-HellmanAnteriormente se habló sobre la intratabilidad de problemas. Un problema computa-

cional se dice ser fácil o tratable, si éste puede ser resuelto en tiempo polinomial. Enotras palabras, si existe un algoritmo que puede resolver una fracción no despreciable deinstancias de un problema en tiempo polinomial, entonces el criptosistema, cuya seguri-dad está basada en dicho problema, se dice ser no seguro. Existen muchos problemascuya complejidad es desconocida, por lo que se cree son intratables, aunque no existeprueba 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. RSAEn 1977 Rivest, 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, basansu seguridad en la intratabilidad de lo que se conoce como el problema de RSA. Dadoun entero n que es producto de dos números primos impares diferentes p y q, un enteropositivo e tal que mcd(e, (p− 1)(q − 1)) = 1, y un entero c ∈ {0, . . . , n− 1}, encontrarm tal que me ≡ c(mod n).

El problema de RSA consiste en la dificultad de encontrar raíces e-ésimas módulo n.

5

Page 22: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Sin embargo también se puede resolver si se conocen los factores primos de n. En otraspalabras el problema de RSA puede ser reducido al de factorización: dado un enteropositivo n = pe11 p

e22 · · · p

ekk , 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, sinembargo por la naturaleza de los métodos para cifrar información, casi siempre talesmetas 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 loscriptosistemas comprometerán la eficiencia en el cálculo de las operaciones. RSA es unclaro ejemplo, pues para tener un nivel de seguridad aceptable1 se debe usar un módulon de al menos 1024 bits de longitud. Tal condición repercute de manera directa en eldesempeñ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 elnivel 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 curvaselípticas para crear sistemas criptográficos de llave pública. La idea no fue muy bienrecibida por la comunidad de RSA, y fue hasta la década de 1990 comenzó a teneraceptación comercial cuando organizaciones acreditadas crearon protocolos de curvaselí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 eneficiencia 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ásprecisa 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.1corresponde a s, los bits de seguridad ofrecidos por un criptosistemas, en otras palabrasse puede entender que serían necesarias 2s operaciones básicas (bit a bit) para poderromper un cifrador simétrico que usa llaves de s bits de longitus. La segunda y terceracolumna indican el tamaño de los parámetros necesarios para formar un criptosistema

1En la actualidad se busca garantizar un nivel de seguridad de 80 bits, nivel comparable al que setiene con RSA usando llaves de 1024 bits.

6

Page 23: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

de curvas elípticas y RSA respectivamente.

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

s Curvas elípticas RSA80 160 1024128 256 3072256 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 investigadores, pues da pie a novedosos esquemascriptográ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 elemparejamiento de Weil para reducir el problema del logaritmo discreto en un grupocí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 apesar de sus significativas ventajas aún quedan diversas áreas de oportunidad, donde sepueden mejorar varios aspectos de los emparejamientos para lograr implementacionesmás eficientes.

1.8.2. Protocolos basados en emparejamientos bilineales

Las características de los emparamentas bilineales los hacen esencialmente atractivospara 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íclicosaditivos formados por los puntos en una curva elíptica E, y las características de losgrupos cíclicos multiplicativos.

Hoy en día existe una amplia gama de protocolos que hacen uso de los emparejamientosbilineales; en [16] se abordan varios de éstos. A continuación se describen algunos de losmás significativos.

7

Page 24: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

1.8.2.1. Criptografía basada en la indentidad

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

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

1.8.2.2. Diffie-Hellman tri-partito de una ronda

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

1.8.2.3. Firma corta

Las operaciones de cifrado y descifrado proveen el servicio de confidencialidad. Parapoder obtener los servicios de autentificación, integridad y no-repudio, se hace uso defirmas 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 losesquemas de firmas previos, no así RSA, debían contener por lo menos tres datos parapoder 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ónde un fenómeno que se presente en la vida cotidiana. Pues al contrario de las firmasmanuscritas, en la firma a ciegas se busca que el signatario no pueda conocer el contenidode lo que firma. Tal firma se usa principalmente en esquemas de dinero electrónico, yvotación electrónica.

1.8.2.5. Firma en cápsula de tiempo

Este tipo de firma propuesta en [33] resulta muy interesante, pues la idea principales producir una firma cuya verificación sea válida sólo después de una fecha previamente

8

Page 25: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 sepuede abstraer en el modelo de capas de la figura 1.1. En dicho modelo cada capa estáconstruida sobre otra, simbolizando que las capas superiores son posibles una vez queya se cuenta con las inferiores.

EmparejamientosBilineales

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 desuma, 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.

La tercera capa son los emparejamientos bilineales. Finalmente la capa superior estáconstituida por las aplicaciones como los protocolos basados en emparejamientos bilin-eales.

9

Page 26: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 maneranatural 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 delcontenido de esta tesis. En el capítulo 2 se presentan los conceptos matemáticos en losque están basados emparejamientos bilineales. En el mismo capítulo se presentan losalgoritmos empleados para las operaciones aritméticas, además de mostrar la estructurade la torre de campos empleada.

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

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

Finalmente el capítulo 6 aglutina un resumen de los resultados más relevantes obtenidos,las conclusiones, y enlista las acciones que quedan como trabajo a futuro.

10

Page 27: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 algebraabstracta [34, 36, 37], que como se mencionó en el capítulo 1, son la piedra angular delos métodos empleados en la criptografía.

2.1. GruposUn grupo (G, •), se define como un conjunto G, con una operación binaria •, que

satisface los siguientes axiomas:

Cerradura: A •B ∈ G, ∀A,B ∈ G.

Asociatividad: (A •B) • C = A • (B • C), ∀A,B,C ∈ G.

Existencia de identidad: ∃I ∈ G tal que A • I = I • A = A, ∀A ∈ G.

Existencia de inverso: ∀A ∈ G, ∃X ∈ G tal que A •X = X • A = I.

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

Conmutatividad: A •B = B • A, ∀A,B ∈ G.

2.1.1. Clase lateral

Si H es un subconjunto de G, y es un grupo con la misma operación • que G, entoncesH es un sub-grupo de G. Si G es un grupo, H un sub-grupo de G, y g ∈ G entonces

gH = {gh : h ∈ H} es la clase lateral izquierda de H en G.

Hg = {hg : h ∈ H} es la clase lateral derecha de H en G.

11

Page 28: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

2.2. AnillosUn anillo (R,+,×) es un conjunto R con 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 si A×B = B × A, ∀A,B ∈ R.

2.3. CamposUn campo es un anillo 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∑m

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

2.4. Campos finitosUn 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 qelementos.

Fq tiene:un grupo aditivo F+

q con q elementos.

un grupo multiplicativo F∗q con q − 1 elementos.

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úmeroprimo y m ≥ 1; se dice que la característica del campo finito es p.

12

Page 29: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

2.5. Extensiones de campoSean K y L campos, donde K ⊆ L, K es entonces sub-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)), dondef(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, donde K ⊆ L, y α ∈ L, entonces α se dice ser algebraica sobreK si existe un polinomio no constante

f(x) = a0 + a1x+ · · ·+ am−1xm+1 + amx

m, ai ∈ K

tal que f(α) = 0. L se dice ser algebraico sobre K si todos sus elementos son algebraicossobre K. La cerradura algebraica de un campo K es el campo K tal que es algebraicosobre K y cada polinomio no constante g(x) con coeficientes en K tiene sus raices enK.

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

Fq =⋃m≥1

Fqm

2.6. Torres de camposSe 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ónde 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 en Fp12 sería polinomios de grado a lo másm = 12 con coeficientes en el campo base Fp. De ser así las operaciones de la extensiónserían altamente ineficientes, pues en el caso de una multiplicación, sería necesaro hacer144 multiplicaciones entre coeficientes, aplicando un método de multiplicación de com-plejidad cuadrática.

Afortunadamente no hay una manera única de construir las torres de campos, por loque se pueden agregar niveles intermedios entre el campo base y la extensión con el fin

13

Page 30: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 descomponercomo 12 = 22 · 3, la torre de campo puede ser formada como se muestra en la figura 2.1.

En [14] se muestra un estudio sobre las diversas formas de representar las torres decampos en busca de la mayor eficiencia posible cuando se desea alcanzar la extensiónFp12 . También se muestran diversos algoritmos para multiplicar y elevar al cuadrado encada una de las extensiones. En esta tesis optamos por representar la torre de camposcomo se muestra en la figura 2.1 debido a que de esa forma se logra un alto nivel deeficiencia en la aritmética de cada extensión.

2.6.1. Operaciones en Fp

Naturalmente las operaciones de adición/substracción son realizadas entre elementosen Fp, y no requieren de mayor explicación. La multiplicación en cambio es vital parael costo de las operaciones en las capas de la torre de campos, principalmente en laextensión doceava.

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

2.6.1.1. Multiplicación

De manera general, se puede decir que la multiplicación es la operación más trascen-dente en el costo del cálculo de un emparejamiento bilineal. La razón es sencilla, las

14

Page 31: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 elinverso multiplicativo de un elemento en Fp es más costosa, pero se realiza en contadasocasiones por lo que no se le puede considerar como una operación tan importante comola 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ón 4.3), con el fin de obtenerun algoritmo eficiente para calcular c = a · b mod p, donde p es un número primo ya, b, c ∈ [0, p − 1]. Además, para el caso concreto de las curvas BN el primo p es de laforma p = 36t4 + 36t3 + 18t2 + 6t+ 1, donde t ∈ Z.

La idea propuesta contempla representar a los operandos a y b como polinomios enla variable t, para posteriormente calcular su producto mediante una versión polinomialdel 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 eficientede reducción. Idealmente t debe ser un binomio. En esta tesis se proponen los valores

t = 263 − 249 y t = 263 − 254 + 244

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

2. Convertir los operandos en polinomios

Convertir los operandos a, b ∈ Fp a base t. de manera que estos queden representadoscomo si fuesen polinomios de grado cuatro, a[t], b[t]. En este trabajo se usó el algoritmo1, que puede ser encontrado en [11, 10]. Debido al hecho de que t es un binomio degrado 63 y a la forma del módulo p(t), al pasar los operandos a base t los primeroscoeficientes de un polinomio x(t), llámense x0, x1, x2, x3 son enteros de 64 bits, puestoque cada coeficiente debe estar en el intervalo [0, t − 1]. Mientras que el coeficiente x4

es un entero de 6 bits debido a que que se encuentra restringido a x4 < 36; lo anteriorse debe a que los elementos en Fp no son mayores a p, por lo que todo polinomio x(t)está en el intervalo [0, p(t)− 1].

15

Page 32: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

Entrada: Un entero 0 ≤ x < p, el módulo p(t) = 36t4 + 36t3 + 24t2 + 6t+ 1 y la base t.Salida: x(t) =

∑4i=0 xit

i, tal que x ≡ x(t) mod p, donde xi ≤ t/2.1: for i = 0 to 4 do2: xi = x mod t3: x = x/t4: if xi > t/2 then5: xi = xi − t6: x = x+ 17: end if8: end for9: return x(t) =

∑4i=0 xit

i.

3. Calcular el producto

Calcular c[t] = a[t] · b[t] mod p[t] usando el algorithmo 2, 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 entreenteros de 64 bits, las multiplicaciones entre un entero de 64 bits y uno de 6, y lasmultiplicaciones entre enteros de 6 bits como multiplicaciones 64× 64, 64× 6 y 6× 6respectivamente.

Para poder llevar a cabo el producto de dos polinomios de grado cuatro, en la línea1 del algoritmo 2, se utiliza el algoritmo de tipo Karatsuba propuesto en [44], graciasa eso, podemos calcular dicho producto en doce multiplicaciones 64× 64 y una 64× 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 conenteros de 6 bits se pueden hacer mediante “sumas y corrimientos”, por lo que resultanconsiderablemente más baratas que si se realizaran mediante multiplicaiones.

Por el mismo motivo, la multiplicación polinomial q(t)p(t) en la línea 4, resulta pococostosa, necesitando solamente doce multiplicaciones 64× 6, y ochenta y cinco sumas.

16

Page 33: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 2 Nuestra propesta del algoritmo polinomial de Montgomery.

Entrada: a(t) =∑4

i=0 aiti, b(t) =

∑4i=0 bit

i, p(t) = 36t4 + 36t3 + 24t2 + 6t+ 1, p′(t) =−36t3 − 12t2 + 6t− 1, t = 263 − 249.

Salida: c(t) = a(t)b(t)t−4 mod p(t).1: c(t)← a(t)b(t)2: u(t)← c(t) mod t43: q(t)← u(t)p′(t) mod t44: c(t)← (c(t) + q(t)p(t))/t4

5: return c(t).

Las multiplicaciones 64× 64 necesarias en el paso 1 producirán, en general, enterosde 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 comola baja de manera eficiente (empleando únicamente adiciones de 64 bits), usando lareducción de Solinas, como se muestra en la figura 2.2.

063126

Parte baja

Parte alta

+t = 263 − 249

Figura 2.2: Reducción con t

En la tabla 2.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 adicionesson representadas con M, m, m y a respectivamente.

En ambos casos, el cálculo de u = c mod r es gratis en terminos computacionales.

De manera general, se puede decir que la ganancia del algoritmo 2 está en el usode técnicas de orden sub-cuadrático para las multiplicaciones polinomiales requeridas;tales como los algoritmos propuestos en [30, 44, 55], están supeditados al hecho de que

17

Page 34: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Tabla 2.1: Costo de operaciones del algoritmo polinomial de Montgomery

Fan et al. [18] Nuestra propuestac = a · b 16M+8m+1m+25a 12M+1m+177aq = u · p′ 0 8m+15aq = u · p 25m 12m+77a

c = (c+ q)/r 30a 8aTotal 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 en Fp 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 dichaaritmética, y n = dlog2(p)e. El algoritmo 3 es el de Montgomery para hayar inversosmultiplicativos en un campo Fp.

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

Entrada: Un primo p > 2, n = dlog2(p)e, R2 mod p, y a = aR mod p, donde R = 2ωm.Salida: a−1R mod p.1: Encontrar el par de enteros (x, k), tal que x = a−12k mod p y n ≤ k ≤ 2n.2: if k < ωm then3: x← xR2.4: k ← k + ωm.5: end if6: x← xR2.7: x← x22ωm−k.8: return x.

Cabe mencionar que en las líneas 3, 6 y 7 se debe usar el algoritmo de multiplicaciónde Montgomery [43].

18

Page 35: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

2.6.2. Operaciones en Fp2

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 elementosA,B ∈ Fp2 .

Algorithm 4 Adición en Fp2 = Fp[u]/(u2 − β).Entrada: A = a0 + a1u ∈ Fp2 y B = b0 + 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 doselementos en Fp2 utilizando la técnica de Karatsuba-Ofman con el fin de reducir elnú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 − t15: return C ← c0 + c1u.

A veces es necesario realizar el producto de un elemento A ∈ Fp2 con un elementob0 ∈ F. En tal caso no es necesario utilizar el algoritmo 5, pues eso derivaría en el usoinnecesario de algunas multiplicaciones, sino el algoritmo 6. Éste último contempla alelemento en Fp como un elemento B = b0 + 0u ∈ Fp2 .

19

Page 36: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 uncosto 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: A ∈ Fp2 , donde A = a0 + a1u; ai ∈ Fp.Salida: C = A2, C ∈ Fp2 , 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 laidentidad (a0 + a1u)−1 = (a0− a1u)/(a2

0− βa21), la cual queda plasmada en el algoritmo

8.

1El nombre del método deriva de la similitud entre éste y la forma de multiplicar números complejos.

20

Page 37: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 8 Inversión en Fp2 = Fp[u]/(u2 − β).Entrada: A = a0 + a1u ∈ Fp2 .Salida: C = c0 + c1u = A−1 ∈ Fp2 .1: t0 ← a2

0;2: t1 ← a2

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

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

2.6.3. Operaciones en Fp6

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

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

donde ξ = u.

2.6.3.1. Adición

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

Algorithm 9 Adición in Fp6 = Fp2 [v]/(v3 − ξ).Entrada: A = a0 + a1v + a2v

2 ∈ Fp6 y B = b0 + b1v + b2v2 ∈ Fp6 .

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 + c2v

2;

2.6.3.2. Multiplicación

En el algoritmo 10, para multiplicar dos elementos en Fp6 , nuevamente se hace uso delmétodo de Karatsuba-Ofman para reducir el número de multiplicaciones. Otra opciónpudo ser usar el método de Toom-Cook-3, para ahorrar una multiplicación más, sinembargo el método implica un alto incremento en el número de sumas/restas, y por lotanto no es conveniente si se desea realizar una implementación eficiente en software.

21

Page 38: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 10 Multiplicación in Fp6 = Fp2 [v]/(v3 − ξ).Entrada: A = a0 + a1v + a2v

2 ∈ Fp6 y B = b0 + b1v + b2v2 ∈ Fp6 .

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 + c2v

2;

El algoritmo 11 calcula el producto de A ∈ Fp6 por una constante b0 ∈ Fp2 ; sinembargo, éste también puede ser usado para calcular el producto de A por una constanteb′0 ∈ Fp usando el algoritmo 6, en lugar de la multiplicación general en Fp2 .

Algorithm 11 Multiplicación by b0 ∈ Fp2 .Entrada: A = a0 + a1v + a2v

2 ∈ Fp6 y b0 ∈ Fp2 .Salida: C = c0 + c1v + c2v

2 = A · b0 ∈ Fp6 .1: c0 ← a0 · b0;2: c1 ← a1 · b0;3: c2 ← a2 · b0;4: return C = c0 + c1v + c2v

2;

El algoritmo 12 sirve para calcular el producto de dos elementos en Fp6 de la formaA = a0 + a1v + a2v

2, y B = b0 + b1v + 0v2, respectivamente.

Algorithm 12 Multiplicación by b0 + b1v.Entrada: A = a0 + a1v + a2v

2 ∈ Fp6 y b0, b1 ∈ Fp2Salida: C = c0 + c1v + c2v

2 = 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 + c2v

2;

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[9].

22

Page 39: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

2 ∈ Fp6 .Salida: C = c0 + c1v + c2v

2 = A2 ∈ Fp6 .1: c4 ← 2(a0 · a1);2: c5 ← a2

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

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

4;9: c0 ← c5 · ξ + c3;10: c2 ← c2 + c4 + c5 − c3;11: return C = c0 + c1v + c2v

2;

2.6.3.4. Inverso multiplicativo

El algoritmo 14 calcula el inverso de un elemento A ∈ Fp6 basado en la fórmulaobtenida en [50].

Algorithm 14 Inversión in Fp6 = Fp2 [v]/(v3 − ξ).Entrada: A = a0 + a1v + a2v

2 ∈ Fp6 .Salida: C = c0 + c1v + c2v

2 = A−1 ∈ Fp6 .1: t0 ← a2

0;2: t1 ← a2

1;3: t2 ← a2

2;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−1

6 ;14: c0 ← c0 · t6;15: c1 ← c1 · t6;16: c2 ← c2 · t6;17: return C = c0 + c1v + c2v

2;

23

Page 40: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

2.6.4. Operaciones en Fp12

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

Fp12 = Fp6 [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 enFp12 .

Algorithm 15 Adición in Fp12 = Fp6 [w]/(w2 − γ).Entrada: A = a0 + a1w ∈ Fp12 y B = b0 + b1w ∈ Fp12 .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 sobre Fp6 por lo quela aritmética es idéntica a la de Fp2 . El algoritmo 16 calcula el producto de A,B ∈ Fp12 .

Algorithm 16 Multiplicación in Fp12 = Fp6 [w]/(w2 − γ).Entrada: A = a0 + a1w ∈ Fp12 y B = b0 + b1w ∈ Fp12 .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;

El siguiente algoritmo, 17, será necesario durante el cálculo del emparejamiento, enlugar del algoritmo 16, para evitar algunas multiplicaciones innecesarias.

24

Page 41: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 ∈ Fp12 , with b0 = b00 + 0v + 0v2 yb1 = 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 algoritmo 18 hace uso del método complejo para calcular el cuadradode A ∈ Fp12 .

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

Y por último la inversión se realiza con el algoritmo 19.

25

Page 42: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 19 Inverso multiplicativo en Fp12 = Fp6 [w]/(w2 − γ).Entrada: A = a0 + a1w ∈ Fp12 .Salida: C = c0 + c1w = A−1 ∈ Fp12 .1: t0 ← a2

0;2: t1 ← a2

1;3: t0 ← t0 − γ · t1;4: t1 ← t−1

0 ;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 Fp12Adición/Substracción a ã A ÃMultiplición m m M MElevación al cuadrado s s S SInversión i i I IMultiplicació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 ahorasólo se han mencionado los algoritmos empleados para la aritmética de la torre sin haberdado a conocer el beneficio de éstos.

Para aclarar los detalles sobre la eficiencia de la torre de campos es necesario estableceruna 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 hacerloes contando las operaciones en los campos base necesarias por cada operación de cadaextensión.

Por conveniencia expresaremos el costo de las operaciones en Fp2 en términos de lasoperaciones en Fp. Mientras que el resto de las extensiones, Fp6 y Fp12 , serán represen-tadas en terminos de las operaciones en Fp2 . De igual manera expresaremos los costosde otros algoritmos en función de las operaciones de las extensiones, por lo que a partir

26

Page 43: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 condicionespreviamente 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 3a 6m+ 2mξ + 15a 2m+ 3s+ 2mξ + 8a9m+ 3s+ 4mξ

+4a+ i

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

+61a+ i

27

Page 44: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

28

Page 45: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 la ecuación generalizada de Weierstraß, donde ai son constantes y ∆ 6= 0,donde ∆ es el discriminante de E, definido de la siguiente manera.

∆ = −d22d8 − 8d3

4 − 27d26 + 9d2d4d6

d2 = a21 + 4a2

d4 = 2a4 + a1a3

d6 = a23 + 4a6

d8 = a21a6 + 4a2a6 − a1a3a4 + a2a

23 − a2

4

∆ 6= 0 nos asegura que la curva sea suave, en otras palabras que los puntos de lacurva tengan solamente una tangente. Tanto las constantes como las variables debenpertenecer a un campo, ya sea R, C, Q o incluso Fq, donde q = 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,

donde A y B son contantes. En la figura 3.1 se puede apreciar la gráfica correspondientea ese tipo de curva elíptica con valores en R.

3.1. Punto al infinitoPor diversas razones es conveniente agregar un punto al infinito a la curva elíptica,

el cual es el par (∞,∞), o simplemente denotado por O. Dicho punto está situado tanto

29

Page 46: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 sentidocuando en lugar de estar trabajando con elementos en R, se tiene un campo finito, ental 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 verticalesse intersectan en O; por simetría eso ocurre en la parte superior e inferior, sin embargoambos son el mismo punto O.

3.2. Ley de grupoEn 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ón y2 = x3 + Ax+ B. Para definir un puntonuevo P3 se traza un linea L de P1 a P2. Como se puede ver en la figura 3.2, L intersectaE en un tercer punto P ′3, reflejando P ′3 con respecto al eje de las abscisas obtenemosP3

1. Tal procedimiento se define

P1 + P2 = P3.

La operación de doblado de un punto es una adición cuyos operandos son el mismopunto 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 P1 = (x1, y1) yP2 = (x2, y2) puntos en E, donde P1, P2 6= O; P1 + P2 = P3 = (x3, y3) se define dela siguiente manera

1Reflejar un punto P con respecto al eje x solamente implica negar su coordenada y. Tal operaciónes equivalente a la negación del punto, se decir a −P

30

Page 47: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

1. Sí x1 6= x2, entonces

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

x2 − x1

2. Sí x1 = x2 pero y1 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, entoncesP1 + 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 siguientespropiedades:

Conmutatividad

Existencia de identidad

Existencia de inverso

Asociatividad

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

3.3. Curvas sobre campos finitosSupó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 lacurva 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,por ejemplo su orden.

31

Page 48: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 en E(Fq), denotadocomo #E(Fq), es el orden de E(Fq). Debido a que la ecuación de Weierstraß tiene a lomás dos soluciones para cada x ∈ Fq, se sabe de antemano que #E(Fq) ∈ [1, 2q+ 1], sinembargo 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 elorden de E esta dado por:

q + 1− 2√q ≤ #E(Fq) ≤ q + 1 + 2

√q.

Tal intervalo es conocido como intervalo de Hasse. Alternativamente #E(Fq) = q+1−tr,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 ytangentes. Sin embargo, ya sea para sumar dos puntos o para doblar uno, tales formulasrequieren de una inversión y varias multiplicaciones en Fp. Es por eso que en busca delograr mayor eficiencia en una operación que suele ser repetida en un gran número deveces, se idearon nuevas formas de representar los puntos.

3.3.2.1. Coordenadas jacobianas

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

Y 2 = X3 + aXZ4 + bZ6

32

Page 49: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Un punto (X1 : Y1 : Z1) en E corresponde a un punto (X1/Z21 , Y1/Z

31) en coordenadas

afines, con Z1 6= 0. De esta correspondencia se deduce que para pasar un punto (x, y) acoordenadas jacobianas solamente hay que agregarle su coordenada Z = 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 lassiguientes ecuaciones para calcular 2P = (X3 : Y3 : Z3):

X3 = (3X21 + aZ4

1)2 − 8X1Y2,

Y3 = (3X21 + aZ4

1)(4X1Y2

1 −X3)− 8Y 4,Z3 = 2Y1Z1.

Pero con ayuda de algunos valores temporales se puede reducir aún más el costo deldoblado 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 ← Y 2

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

1 + aZ41 .

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

Sea P = (X1 : Y1 : Z1) ∈ E, con Z1 6= 0, y Q = (X2, Y2, 1), suponiendo que P 6= ±Q,

33

Page 50: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

X3 = (Y2Z31 − Y1)2 − (X2Z

21 −X1)(X1 +X2Z

21),

Y3 = (Y2Z31 − Y1)(X1(X2Z

21 −X1)2 −X3)− Y1(X2Z

21 −X1)3,

Z3 = (X2Z21 −X1)Z1.

Nuevamente, almacenando valores temporales se puede reducir el costo de la sumade 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 ← Z2

1 .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 puntoP ∈ E, denotada por kP . Naturalmente dicha operación no es otra cosa que repetir kveces la operacion de adición sobre P .

kP = P + P + · · ·+ P︸ ︷︷ ︸k veces

Una forma sencilla de llevar a cabo la multiplicación por un escalar es mediante unaadaptación del conocido método de “elevar al cuadrado y multiplicar” para exponen-ciación modular.

34

Page 51: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

La idea es representar el escalar k en forma binaria, y recorrer los bits de éste mientrasse dobla el punto Q incondicionalmente, y realizando sumas de puntos si el bit es 1, talcomo se muestra en el algoritmo 22.

Algorithm 22 Método binario para multiplicación por un escalar de izquierda aderecha.Entrada: k = (kl−1, ..., k1, k0)2 y P ∈ E(Fp).Salida: Q = kP .1: for i = l − 1 downto 0 do2: Q = 2Q.3: if ki = 1 then4: Q = Q+ P.5: end if6: end for7: 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 talque rP = O. Es importante destacar que el orden de un punto siempre va a dividir elorden 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] radicaen la aparente dificultad de resolver el siguiente problema:

El problema del logaritmo discreto: Dado G un grupo cíclico multiplicativo de ordenr, α un generador de G, y un elemento β ∈ G, encontrar el entero x, 0 ≤ x ≤ r− 1, talque αx = β.

La seguridad de las curvas elípticas se basa en el problema de logaritmo discreto entales curvas. Como se menciono previamente, los puntos en la curva forman un grupoaditivo, por lo que el problema del logaritmo discreto en un grupo aditivo, escrito comoG = 〈P 〉, se puede enunciar como sigue: dados P,Q ∈ G, encontrar el entero x ∈ [0, r−1]tal que Q = xP .

El problema del logaritmo discreto es computacionalmente intratable en cierto gruposcíclicos. Tal es el caso cuando la cantidad de elementos es un número primo suficiente-mente grande; dando lugar a grupos multiplicativos de campos finitos, o dando lugar a

35

Page 52: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

Es importante destacar que el problema del logaritmo discreto para curvas elípticases 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 esprecisamente 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) esllamada ordinaria si E[p] ' Zp. En cambio si E[p] ' 0, entonces se dice ser supersingu-lar.

36

Page 53: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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 Dsobre E es una combinación lineal finita de tales símbolos con coeficientes enteros:

D =∑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 lasuma de un divisor, respectivamente, se definen como:

sop(∑j

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

deg(∑j

aj[Pj]) =∑j

aj ∈ Z

sum(∑j

aj[Pj]) =∑j

ajPj ∈ E(K)

La suma del divisor usa la ley de grupo de E para sumar los puntos de cada símbolo. Losdivisores de grado 0 forman un sub-grupo importante de Div(E), denotado por Div0(E).

37

Page 54: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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ónsobre E es una fracción de polinomios, también llamada función racional, definida de lasiguiente manera:

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

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

Una función se dice tener un cero en el punto P , si al evaluarla con los valores delas coordenadas de P , ésta toma el valor de 0; y se dice tener un polo en P , si toma elvalor 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) =∑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), paraalguna función f de E.

Los divisores D1, D2 ∈ Div(E) se dicen ser equivalentes, y se denotan D1 ∼ D2, sila diferencia de ambos D1−D2 es un divisor principal, por lo que tal diferencia se puedeescribir como D1 = 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 divisorprincipal, 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(Fp12). A partir de éste podemos construir un divisor DQ ∈ Div0(E),que cumpla las siguientes propiedades:

DQ ∼ (Q)− (O)

38

Page 55: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

Luego entonces el emparejamiento de Tate

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

r

está dado pore(P,Q) = fr,P (DQ).

Es importante mencionar que el emparejamiento de Tate no depende de la selección defr,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 finescriptográficos, son las siguientes las que nos interesan:

I 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 todo Q ∈ rE(Fp12).

I No es degenerativo.

Para cada punto P ∈ E(Fp)[r]O hay algún punto Q ∈ E(Fp12) tal que e(P,Q) /∈ (F×p12)

r

I Es bilineal.

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

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

ye(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 emparejamientosHasta este momento se ha descrito la importancia de las curvas elípticas para di-

versos esquemas criptográficos. Pero no se ha establecido claramente su relación con losemparejamientos bilineales. Tal relación es la siguiente:

39

Page 56: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Dada una curva elíptica E sobre un campo Fp, los emparejamientos bilineales tomancomo entradas los puntos en E(Fp), y los proyectan como un elemento en el grupo mul-tiplicativo F×

pk , donde k es conocido como el grado de encajamiento, y se define como elmenor entero k tal que r | pk − 1, siendo r el orden de los puntos en E[r].

En otras palabras, la función de emparejamiento toma como entradas elementos degrupos cíclicos aditivos y entrega como salida un elemento del grupo cíclico multiplica-tivo F×

pk . Es por eso que los emparejamientos fueron utilizados inicialmente como unataque a la criptografía de curvas elípticas, pues permite convertir el problema del log-aritmo discreto en E(Fp), al mismo problema en F×

pk .

Para tal problema existen diversos ataques bien estudiados como son: el cálculo deíndices, el paso de infante y paso de gigante, ρ de Pollard, entre otros [58]. Y la razónpor la que es más difícil dicho problema en el grupo cíclico formado por los puntos enE(Fp) es porque la compejidad del mejor ataque, ρ de Pollard, es 1

2· ln(p). Mientras que

la complejidad del cálculo de índices es 1.92 · (lnqk) 13 · (ln(ln(qk)))

23 , siendo éste el mejor

algoritmo para resolver el problema del logaritmo discreto en F×pk .

Tomando en cuenta lo anterior es necesaro escoger curvas con un sub-grupo de tor-sión r cuya longitud en bits sea suficiente para que no sea viable un ataque al problemadel logaritmo discreto en la curva. Igualmente el grado de encajamiento k debe garan-tizar la seguridad en el campo multiplicativo. Sin embargo no se pueden escoger dichosvalores demasiado grandes para r y k, pues se comprometería la eficiencia las operacio-nes aritméticas.

Si una curva E tiene un sub-grupo de torsión de orden primo r, cuyos puntos puedenser proyectados mediante el emparejamiento bilineal a F×

pk , tal que r y k garanticen laseguridad en el grupo cíclicos aditivo y el multiplicativo respectivamente, sin llegar acastigar la eficiencia de los cálculos en el emparejamiento, entonces E se dice ser unacurva amigable con los emparejamientos. Este trabajo de tesis está centrado solamenteen curvas ordinarias amigables con los emparejamientos.

Existen diversos tipos tipos de curvas amigables con los emparejamientos. En [19] sepresenta una taxonomía de la variedad de curvas que se pueden considerar amigablescon los emparejamientos bilineales.

Miyaji et al. [42] fueron los primeros en proponer una familia de curvas elípticas or-dinarias amigables con los emparejamientos, las cuales tienen grados de encajamientok = 3, 4 y 6, dependiendo de ciertas condiciones sobre la traza de Frobenius.

40

Page 57: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Posteriormente Scott et al. [53] y Galbraith et al. [21] tomaron como base las curvasMNT para construir sus propias versiones, donde k ≤ 6, y r era casi primo. Las curvaspresentadas en los tres trabajos están basadas en el método de multiplicación complejapara construcción de curvas.

En 2005 Barreto y Naehrig [4], presentaron una nueva familia de curvas elípticas cono-cida como curvas BN, y son precisamente éstas las curvas tratadas en la presente tesis.

4.3. Curvas BNLas curvas BN son una familia de curvas elípticas ordinarias amigables con los em-

parejamientos, construidas sobre un campo finito Fp. Las curvas BN están definidas porla ecuación E : y2 = x3 + b, con b 6= 0 [4].

El grado de encajamiento de estas curvas es k = 12, por lo que los puntos en la cur-va serán proyectados como elementos en el grupo multiplicativo F×p12 . La característicadel campo finito p, el orden r del sub-grupo E(Fp)[r], y la traza de Frobenius tr estánparametrizados de la siguiente manera:

p(t) = 36t4 + 36t3 + 24t2 + 6t+ 1,r(t) = 36t4 + 36t3 + 18t2 + 6t+ 1, (4.1)tr(t) = 6t2 + 1,

donde t es cualquier entero que satisfaga que p = p(t) y r = r(t) sean ambos númerosprimos.

4.3.1. Twist de la curva

Supóngase que la curva E admite un twist E ′ de grado d sobre Fpe , donde e = k/d.La existencia de tal twist E ′ está garantizada si r | E ′(Fpe) [26]. Sea Q′ ∈ E ′(Fpe)un punto de orden r, y sea G′2 = 〈Q′〉 el grupo generado por Q′, entonces existe unmonomorfísmo, de cálculo eficiente, φd : G′2 → E(Fpk), tal que Q = φd(Q

′).

Las curvas BN admiten un twist de grado 6, lo que contribuye de manera significativaa realizar muchos de los cálculos del emparejamiento bilineal de manera más eficiente,pues gran parte de las operaciones aritméticas que originalmente se debían efectuar enel campo Fp12 , terminan siendo realizadas en el campo Fp2 .

41

Page 58: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Las características mencionadas en los párrafos anteriores son la principal motivacióndel algoritmo de multiplicación propuesto en la sección 2.6.1.1, pues la parametrizaciónde p, favorece que los elementos en Fp sean representados como polinomios en la varia-ble t. Adicionalmente, el que k = 12 es la razón de haber construido la torre de campopresentada en el capítulo 2.

Concretamente para curvas BN, sea P ∈ E(Fp)[r], y sean G1 = 〈P 〉 y µr el sub-grupo deorden r de F×p12 . Sea Q un punto en el twist E(Fp2), y sea G2 = 〈Q〉, el emparejamientode Tate τr : G1 ×G2 → µr está definido por

τr(P,Q) = fr,P (Q)(p12−1)/r.

Básicamente el cálculo del emparejamiento se puede dividir en dos partes principales, elciclo de Miller para evaluar la función, y la exponenciación final para garantizar que elresultado del emparejamiento sea único. Tanto el ciclo de Miller como la exponenciaciónfinal son abordados más a fondo a continuación.

4.4. Ciclo de MillerLos emparejamientos de Weil y Tate existían antes del uso de las curvas elípticas en

criptografía, sin embargo no podían ser utilizados debido a que no existía un algoritmoeficiente para el cálculo de éstos, hasta que Victor Miller [40] mostró una forma de ha-cerlo. A tal procedimiento se le conoce como el ciclo de Miller.

Para poder explicar la idea de Miller primero debemos hacer algunas especificacionesmás. Supóngase P ∈ E(Fp) y fi,P una función racional con

div(fi,P ) = i(P )− (iP )− (i− 1)(O)

para cualquier entero i, entonces para cualquier par de enteros a, b se tiene que

fa+b,P = fa,P · fb,P ·gaP,bPg(a+b)P

.

Adicionalmente si P ∈ E(Fp)[r] se tiene que

div(fr,P ) = r(P )− (r)(O)

luego entonces si r se escribe en representación binaria (rl−1, ..., r1, r0)2, con su bit mássignificativo encendido, se puede construir fr,P recursivamente usando un método desuma y doblado de líneas

fa+1,P = fa,P ·gaP,Pg(a+1)P

y f2a,P = f 2a,P ·

gaP,aPg2aP.

Para el emparejamiento de Tate en curvas BN, anteriormente definido, el ciclo de Millerse lleva a cabo con el algoritmo 23.

42

Page 59: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 23 Ciclo de Miller.Entrada: P ∈ G1 y Q ∈ G2.Salida: fr,P (Q).1: Escribir r = 36t4 + 36t3 + 18t2 + 6t+ 1 de forma binaria (rl−1, ..., r1, r0)2;2: T ← P , f ← 1;3: for i = l − 2 to 0 do4: f ← f 2 · lT,T (Q); T ← 2T ;5: if si = 1 then6: f ← f · lT,P (Q); T ← T + P ;7: end if8: end for9: return f ;

4.5. Exponenciación FinalPosterior al ciclo de Miller, es necesario llevar a cabo el paso conocido como expo-

nenciación final, debido a que ésta nos asegura que el resultado del emparejamiento seaun valor único.

4.5.1. El operador de Frobenius

Para poder calcular la exponenciación final, debemos realizar varias elevaciones deun elemento f ∈ Fp12 = Fp6 [w]/(w2 − γ) a la p-ésima potencia. Tal operación puedellegar a ser sumamente costosa de no llevarse a cabo con el operador de Frobenius.

Primero hay que mencionar que la extensión Fp12 puede ser representada como unaextensión séxtica del campo cuadrático Fp2 , es decir como Fp12 = Fp2 [W ]/(W 6 − ξ).Además, podemos escribir f = g+hw ∈ Fp12 , donde g, h ∈ Fp6 tal que, g = g0+g1v+g2v

2

y h = h0 + h1v + h2v2; donde gi, hi ∈ Fp2 , para i = 1, 2, 3. En otras palabras, f ∈ Fp12

puede ser escrito como

f = g + hw = g0 + h0W + g1W2 + h1W

3 + g2W4 + h2W

5.

La razón principal de cambiar la representación de f , es porque elevar a la p-ésimapotencial un elemento de la extensión cuadrática Fp2 , puede ser calculado de maneramuy eficiente. Sea b ∈ Fp2 un elemento que puede ser representado como b = b0 + b1u,entonces

(b)p2i

= b y (b)p2i−1

= b,

donde b = b0 − b1u, para cualquier entero i.

43

Page 60: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Si gi, hi denotan los conjugados de gi, hi, para i = 1, 2, 3 respectivamente, entonces, usan-do la igualdad W p = ξ(p−1)/6W , se puede escribir, (W i)p = γ1,iW

i, con γ1,i = ξi(p−1)/6,para i = 1, . . . , 5. A partir de éstas definiciones dadas, se puede calcular fp como

fp =(g0 + h0W + g1W

2 + h1W3 + g2W

4 + h2W5)p

= g0 + h0Wp + g1W

2p + h1W3p + g2W

4p + h2W5p

= g0 + h0γ1,1W + g1γ1,2W2 + h1γ1,3W

3 + g2γ1,4W4 + h2γ1,5W

5.

La equación recién presentada tiene un costo de 5 multiplicaciones y 5 conjugaciones enFp2 , las cuales evidentemente son desdeñables. Y puede seguirse el mismo procedimien-to para calcular fp2 y fp3 , las cuales son operaciones requeridas para el cálculo de laexponenciación final del algoritmo del emparejamiento.

Para llevar a cabo el cálculo de fp, fp2 y fp3 , es necesario contar con los valores de

γ1,i = ξi·(p−1)/6, γ2,i = γ1,i · γ1,i, y γ3,i = γ1,i · γ2,i, for i = 1, . . . , 5, respectivamente. Elcosto de obtener dichos valores no es muy alto, pero no es necesario calcularlos al llevara cabo la exponenciación final, pues se pueden calcular fuera de línea antes de realizarel emparejamiento.

Los algoritmos 24, 25 y 26, calculan fp, fp2 y fp3 , respectivamente; donde f es un

elemento de la extensión Fp12 = Fp2 [W ]/(W 6 − ξ).

44

Page 61: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 24 Operador de Frobenius para elevar f ∈ Fp12 = Fp6 [w]/(w2 − γ) a la p.

Entrada: f ∈ Fp12 , donde f = g+hw; fi ∈ Fp6 . Y g = g0+g1v+g2v2; h = h0+h1v+h2v

2

Salida: fp ∈ Fp12 .1: t1 ← g0;2: t2 ← h0;3: t3 ← g1;4: t4 ← h1;5: t5 ← g2;6: t6 ← h2;7: for i = 1 to 5 do8: γ1,i = ξi·(p−1)/6;9: end for

10: t2 ← t2 · γ1,1;11: t3 ← t3 · γ1,2;12: t4 ← t4 · γ1,3;13: t5 ← t5 · γ1,4;14: t6 ← t6 · γ1,5;15: c0 ← t1 + t3v + t5v

2;16: c1 ← t2 + t4v + t6v

2;17: return C ← c0 + c1w;

Algorithm 25 Operador de Frobenius para elevar f ∈ Fp12 = Fp6 [w]/(w2 − γ) a la p2.

Entrada: f ∈ Fp12 , donde f = g+hw; fi ∈ Fp6 . Y g = g0+g1v+g2v2; h = h0+h1v+h2v

2

Salida: fp2 ∈ Fp12 .1: for i = 1 to 5 do2: γ2,i = γ1,i · γpi ;3: end for4: t1 ← g0;5: t2 ← h0 · γ2,1;6: t3 ← g1 · γ2,2;7: t4 ← h1 · γ2,3;8: t5 ← g2 · γ2,4;9: t6 ← h2 · γ2,5;

10: c0 ← t1 + t3v + t5v2;

11: c1 ← t2 + t4v + t6v2;

12: return C ← c0 + c1w;

45

Page 62: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 26 Operador de Frobenius para elevar f ∈ Fp12 = Fp6 [w]/(w2 − γ) a la p3.

Entrada: f ∈ Fp12 , donde f = g+hw; fi ∈ Fp6 . Y g = g0+g1v+g2v2; h = h0+h1v+h2v

2

Salida: fp3 ∈ Fp12 .1: t1 ← g0;2: t2 ← h0;3: t3 ← g1;4: t4 ← h1;5: t5 ← g2;6: t6 ← h2;7: for i = 1 to 5 do8: γ3,i = γ1,i · γ2,i;9: end for10: t2 ← t2 · γ3,1;11: t3 ← t3 · γ3,2;12: t4 ← t4 · γ3,3;13: t5 ← t5 · γ3,4;14: t6 ← t6 · γ3,5;15: c0 ← t1 + t3v + t5v

2;16: c1 ← t2 + t4v + t6v

2;17: return C ← c0 + c1w;

4.5.2. Grupo ciclotómico en Fp12.

Una ventaja de la forma elegida para torre de campos, es que el haber representadola extensión Fp12 como un extensión cuadrática de Fp6 , nos permite explotar el hecho queal momento de estar calculando la exponenciación final, el elemento f ∈ Fp12 se vuelveunitario [51, 52], es decir que tales elementos ahora pertenecen al grupo ciclotómicoGΦ6(Fp2), tal como está definido en [23].

Los elementos del grupo ciclotómico satisfacen fp6+1 = 1, lo que quiere decir que

f−1 = fp6

= g − hw. En otras palabras, la inversión de elementos en Fp12 , que usual-mente resultaría muy costosa, se puede realizar mediante una simple conjugación. Éstacaracterística favorece el uso de cadenas de adición en la exponenciación final.

Para ser más específicos, en la tabla 4.1 se muestran los costos de las operaciones delcampo ciclotómico. Si se comparan estos costos con los correspondientes en el campoFp12 , mostrados en la tabla 2.3, se podrá apreciar claramente que las operaciones en elcampo ciclotómico son mucho más baratas.

Adicionalmente, para la exponenciación final se hará uso de varias operaciones enlas que se requiere elevar f t, siendo t el parámetro seleccionado para las curvas BN. Por

46

Page 63: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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

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

GΦ6(Fp2) 6a 18m+ 6mξ + 60a9s+ 4mξ Conjugación

+30a

tal motivo es necesario implementar un algoritmo de “elevar al cuadrado y multiplicar’,que explote las ventajas del grupo ciclotómico. El algoritmo 27 para elevar al cuadradoen Fp12 hace justo lo anteriormente mencionado y con éste el método de exponenciaciónresulta más eficiente que si se utilizara con el algoritmo 18.

Algorithm 27 Elevación al cuadrado en Fp12 = Fp6 [w]/(w2 − γ).

Entrada: f = g + hw ∈ Fp12 , con g = g0 + g1v + g2v2 y h = h0 + h1v + h2v

2.Salida: C = c0 + c1w = f 2 ∈ Fp12 .1: t0,0, t1,1 ← (g0 + h1V )2;2: t1,2, t0,1 ← (h0 + g2V )2;3: t0,2, aux← (g1 + h2V )2;4: t1,0 ← aux · ξ;5: c0,0 ← −2g0 + 3t0,0;6: c0,1 ← −2g1 + 3t0,1;7: c0,2 ← −2g2 + 3t0,2;8: c1,0 ← 2h0 + 3t1,0;9: c1,1 ← 2h1 + 3t1,1;

10: c1,2 ← 2h2 + 3t1,2;11: c0, c1 ∈ Fp6 ;12: c0 ← c0,0 + c0,1v + c1,2v

2;13: c1 ← c1,0 + c1,1v + c1,2v

2;14: return C = c0 + c1w;

Es importante notar que las lineas 1, 2 and 3 del algoritmo 27, nos obligan a cam-biar la representación de la torre de campos, contruyendo una extensión cuadráticasobre la extensión Fp2 , tal como se menciona en [23]. Afortunadamente tal modificaciónsólo implica re-ordenar los elementos antes de poder usar el algoritmo 28, el cual sirveprecisamente para elevar al cuadrado en el campo Fp4 .

47

Page 64: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 28 Elevación al cuadrado en Fp4 = Fp2 [V ]/(V 2 − ξ).Entrada: A = a0 + a1V ∈ Fp4 .Salida: C = c0 + c1V = A2 ∈ Fp2 .1: t0 ← a2

0;2: t1 ← a2

1;3: c0 ← t1 · ξ;4: c0 ← c0 + t0;5: c1 ← a0 + a1;6: c1 ← c2

1 − t0 − t1;7: return C = c0 + c1V ;

Para llevar a cabo la exponeneciación final, f e donde e = (p12 − 1)/r, necesaria enel algoritmo del emparejamiento, es necesario seguir el procedimiento descrito por Scottet al. en [52], en donde los autores proponen dividir e en tres coeficientes de la siguienteforma

e =p12 − 1

r= (p6 − 1) · (p2 + 1) · p

4 − p2 + 1

r.

Tal como se mencionó anteriormente, se puede tomar ventaja del hecho de que elevar ala potencia p6 es equivalente a realizar una conjugación de sus coeficientes. Además, sepuede calcular

f (p6−1) = f · f−1,

con un costo de una inversión y una multiplicación en la extensión Fp12 . Y después dehaber efectuado la elevación a la p6 − 1, el elemento resultante formará parte del grupociclotómico GΦ6(Fp2), lo que implica que a partir de éste punto en adelante, las opera-ciones tendrán los costos mostrados en la tabla 4.1.

Para efectuar la exponenciación a la p2 + 1, son necesarias cinco multiplicaciones enel campo Fp2 , y una multiplicación en el campo Fp12 , gracias al uso del operador deFrobenius, tal como se explica en la sección 4.5.1.

Por último el procesamiento del tercer coeficiente, se le conoce como la parte difícilde la exponenciación final, debido a que la labor de calcular f (p4−p2+1)/r, con f ∈ Fp12 ,resulta ser más complicada en comparación con el cálculo de los otro coeficientes.

Para lograr realizar el cálculo del tercer coeficiente eficiéntemente, Scott et al. descri-bieron en [52] una forma muy ingeniosa que requiere del uso de las siguientes variablestemporales

mt, mt2 , mt3 , mp, mp2 , mp3 , m(tp), m(t2p), m(t3p), m(t2p2),

las cuales son indispensables para construir una cadena de adición, cuya evaluación dalugar al cálculo completo de la exponeneciación final, utilizando 13 y 4 multiplicaciones y

48

Page 65: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

elevadas al cuadrado en Fp12 , respectivamente. Evidentemente las elevadas al cuadradoson en el campo GΦ6(Fp2). Aprovechando la eficiencia del operador de Frobenius, lasvariables temporales pueden ser calculadas en costo muy bajo. El algoritmo 29 lista lospasos completos para llevar a cabo la exponenciación final.

Algorithm 29 Exponentiación finalEntrada: f ∈ Fp12 = Fp6 [w]/(w2 − γ), donde f = g + hw.Salida: f (p12−1)/r ∈ Fp12 .1: f1 ← f ;2: f2 ← f−1;3: f ← f1 · f2;4: f ← fp

2 · f ; (Algoritmo 25)5: ft1 ← f t; (Algoritmo 33)6: ft2 ← f t

2 ;7: ft3 ← f t

3 ;8: fp1 ← fp; (Algoritmo 24)9: fp2 ← fp

2 ; (Algoritmo 25)10: fp3 ← fp

3 ; (Algoritmo 26)11: y0 ← fp1 · fp2 · fp3;12: y1 ← f1;13: y2 ← (ft2)p

2 ; (Algoritmo 25)14: y3 ← (ft1)p; (Algoritmo 24)15: y3 ← y3;16: y4 ← (ft2)p · ft1; (Algoritmo 24)17: y4 ← y4;18: y5 ← ¯ft2;19: y6 ← (ft3)p · ft3; (Algoritmo 24)20: y6 ← y6;21: t0 ← y2

6 · y4 · y5; (Algoritmo 27 for squaring)22: t1 ← y3 · y5 · t0;23: t0 ← t0 · y2;24: t1 ← (t21 · t0)2; (Algoritmo 27 for squaring)25: t0 ← t1 · y1;26: t1 ← t1 · y0;27: t0 ← t20; (Algoritmo 27)28: f ← t1 · t0;29: return f ;

49

Page 66: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

4.6. Emparejamiento óptimo ”ate“ para curvas BN.Como se puede observar en el algoritmo 23, el costo de éste está directamente rela-

cionado con la longitud en bits y el peso de Hamming del orden r del punto P . Evidente-mente eso también repercute en el costo total del emparejamiento, por lo que una formade acelerar el tiempo necesario para el cálculo de éste, es buscar la forma de reducir elnúmero de iteraciones necesarias en el ciclo de Miller.

En el emparejamiento de Tate, el ciclo de Miller está relacionado con el orden de lacurva, r = 36t4 + 36t3 + 18t2 + 6t + 1, sin embargo recientes mejoras a dicho empare-jamiento, han logrado reducir las iteraciones del ciclo meidante la modificación de ladefinición del emparejamiento

Una de las mejoras más significativas, es la propuesta de Hess et a. [27], quienes inter-cambian los puntos del emparejamiento, evaluando la función sobre el punto P ∈ E(Fp).Tal mejora es conocida como el emparejamiento de Ate ar : G2 × G1 → µr, definiendocomo

ar(Q,P ) = ftr−1,Q(P )(p12−1)/r.

Como se puede apreciar en dicho emparejamiento el ciclo de Miller ahora depende de lalongitud de la traza de Frobenius tr, y dado que tr ≈

√r para las curvas BN, el número

de iteraciones del ciclo de Miller es reducido a la mitad.

Más recientemente, Vercauteren [57] realizó una mejora conocida como el emparejamien-to ”ate“ óptimo. dicho emparejamiento está dado por

aopt : G2 ×G1 −→ G3

(Q,P ) 7−→(f6t+2,Q(P ) · l[6t+2]Q,πp(Q)(P ) ·

l[6t+2]Q+πp(Q),−π2p(Q)(P )

) p12−1r ,

donde π : (x, y) 7→ (xp, yp) es el operador de Frobenius sobre un punto en E y lQ1,Q2 esla ecuación de la linea correspondiente a la adición de Q1 ∈ G2 con Q2 ∈ G2.

En el emparejamiento óptimo ”ate“ el número de iteraciones es una cuarta parte enrelación con el del emparejamiento de Tate, debido a que t ≈ 4

√r.

El algoritmo 30 muestra cómo se calcula el emparejamiento óptimo ”ate“ de acuerdocon lo establecido. Cabe mencionar que el algoritmo presentado es una modificación alalgoritmo utilizado en [45, 47], que a su vez es la particularización del emparejamientoóptimo ”Ate“ [56] para curvas BN. En nuestra propuesta tanto la adición, como la subs-tracción de puntos son permitidas para el cálculo del emparejamiento.

50

Page 67: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

En el ciclo de Miller (líneas 3–10) se calcula el valor de la función racional f6t+2,Q en elpunto P . Posteriormente, en las lineas 11–13 el producto de las funciones l[6t+2]Q,πp(Q)(P )·l[6t+2]Q+πp(Q),−π2

p(Q)(P ) es multiplicado por f6t+2,Q(P ). Mientras que en la linea 14 se re-aliza la exponenciación final.

Algorithm 30 Emparejamiento óptimo ”ate“ sobre curvas Barreto–Naehrig.Entrada: P ∈ G1 y Q ∈ G2.Salida: aopt(Q,P ).1: Escribir s = 6t+ 2 como s =

∑L−1i=0 si2

i, donde si ∈ {−1, 0, 1};2: T ← Q, f ← 1;3: for i = L− 2 to 0 do4: f ← f 2 · lT,T (P ); T ← 2T ;5: if si = −1 then6: f ← f · lT,−Q(P ); T ← T −Q;7: else if si = 1 then8: f ← f · lT,Q(P ); T ← T +Q;9: end if10: end for11: Q1 ← πp(Q); Q2 ← πp2(Q);12: f ← f · lT,Q1(P ); T ← T +Q1;13: f ← f · lT,−Q2(P ); T ← T −Q2;14: f ← f (p12−1)/r;15: return f ;

Es importante destacar que con el afán de hacer aún más eficiente el cálculo del em-parejamiento, en las lineas 4, 6 y 8, se hizo uso de formulas especiales, dadas en in [3],para poder ahorrar más operaciones.

Además, el resultado de evaluar la ecuación tangente a T ∈ G2 en P es un elemen-to disperso Fp12 , lo que quiere decir que la mitad de sus coeficientes son cero. Lo mismose puede observar en el resultado de la ecuación de la linea que pasa por los puntos Ty ±Q evaluada en P . Esta dispersión permite reducir el número de operaciones, puesvarias de las operaciones tendrían como operando el cero.

Como se mencionó, el cálculo de la linea tangente en el punto T se realiza al mis-mo tiempo que el doblado de T . De igual forma, la linea que pasa por los puntos T yQ) y la adición o substracción de puntos, se efectúan con un solo procedimiento

51

Page 68: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

El punto T ∈ E ′(Fp2) está representado en coordenadas Jacobianas, T = (XT , YT , ZT ).La fórmula para el doblado de punto T , presentada anteriormente en la sección 3.3.2.3,fué modificada para obtener R = 2T = (XR, YR, ZR) y la línea tangente a T evaluadaen P (con P en coordenadas afines), al mismo tiempo mediante

l = 2ZRZ2TyP − (6X2

TZ2TxP )W + (6X3

T − 4Y 2T )W 2 ∈ Fp12 .

El algoritmo 31 muestra el procedimiento para calcular la fórmula anterior.

Algorithm 31 Doblado de punto y evaluación de la linea tangente.Entrada: Q ∈ E(Fp2) y P ∈ E(Fp), donde Q = (XQ, YQ, ZQ) y P = (xP , yP ).Salida: T = 2Q y lQ,Q(P ) ∈ Fp12 , donde T = (XT , YT , ZT ) y l = l0 + l1w; li ∈ Fp6 .1: tmp0 ← X2

Q;2: tmp1 ← Y 2

Q;3: tmp2 ← tmp2

1;4: tmp3 ← (tmp1 +XQ)2 − tmp0 − tmp2;5: tmp3 ← 2tmp3;6: tmp4 ← 3tmp0;7: tmp6 ← XQ + tmp4;8: tmp5 ← tmp2

4;9: XT ← tmp5 − 2tmp3;

10: ZT ← (YQ + ZQ)2 − tmp1 − Z2Q;

11: YT ← (tmp3 −XT ) · tmp4 − 8tmp2;12: tmp3 ← −2(tmp4 · Z2

Q);13: tmp3 ← tmp3 · xP ; (Algoritmo 6)14: tmp6 ← tmp2

6 − tmp0 − tmp5 − 4tmp1;15: tmp0 ← 2(ZT · Z2

Q);16: tmp0 ← tmp0 · yP ; (Algoritmo 6)17: a0, a1 ∈ Fp6 ;18: a0 ← tmp0 + 0v + 0v2;19: a1 ← tmp3 + tmp6v + 0v2;20: T ← (XT , YT , ZT );21: l← a0 + a1w;22: return l, T ;

Sean Q = (XQ, YQ, ZQ) y T = (XT , YT , ZT ) las representaciones Jacobianas deQ, T ∈ E ′(Fp2). Entonces el punto R = T + Q = (XR, YR, ZR) y la línea que pasapor T y Q evaluada en P (P = (xP , yP )), pueden ser evaluados con la fórmula

l = 2ZRyP − 4xP (YQZ3T + YT )W + (4XQ(YQZ

3TXQ − YT )− 2YQZR)W 2 ∈ Fp12 .

Tal fórmula está plasmada en el algoritmo 32.

52

Page 69: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 32 Adición de punto y evaluación de linea.Entrada: Q,R ∈ E(Fp2) y P ∈ E(Fp), donde Q = (XQ, YQ, ZQ), R = (XR, YR, ZR) y

P = (xP , yP ).Salida: T = Q+R y lR,Q(P ) ∈ Fp12 , donde T = (XT , YT , ZT ) y l = l0 + l1w; li ∈ Fp6 .1: t0 ← XQ · Z2

R;2: t1 ← (YQ + ZR)2 − Y 2

Q − Z2R;

3: t1 ← t1 · Z2R;

4: t2 ← t0 −XR;5: t3 ← t22;6: t4 ← 4t3;7: t5 ← t4 · t2;8: t6 ← t1 − 2YR;9: t9 ← t6 ·XQ;10: t7 ← XR · t4;11: XT ← t26 − t5 − 2t7;12: ZT ← (ZR + t2)2 − Z2

R − t3;13: t10 ← YQ + ZT ;14: t8 ← (t7 −XT ) · t6;15: t0 ← 2(YR · t5);16: YT ← t8 − t0;17: t10 ← t210 − Y 2

Q − Z2T ;

18: t9 ← 2t9 − t10;19: t10 ← 2(ZT · yP ); (Algoritmo 6)20: t6 ← −t6;21: t1 ← 2(t6 · xP ); (Algoritmo 6)22: l0, l1 ∈ Fp6 ;23: l0 ← t10 + 0v + 0v2;24: l1 ← t1 + t9v + 0v2;25: T ← (XT , YT , ZT );26: l← l0 + l1w;27: return l, T ;

Algunas de esas multiplicaciones son entre elementos de diferentes campos, es nece-sario considerar eso para evitar realizar operaciones innecesarias.

Sin embargo, en el algoritmo de la exponenciación final 29, se hacen varias elevaciones ala potencia t, en tales casos también se puede tomar ventaja de representar t con valoresde 0 y ±1. En el algoritmo de exponenciación 33, se asume que el exponente e estádado como e = (eL−1, . . . , e1, e0), donde ei ∈ {−1, 0, 1} para i = 0, . . . , L − 1 y dondeeL−1 = 1.

53

Page 70: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 33 Exponenciación en Fp12 = Fp6 [w]/(w2 − γ).

Entrada: A ∈ Fp12 y e =∑L−1

i=0 ei2i.

Salida: C = Ae ∈ Fp12 .1: C ← A;2: for i← L− 2 downto 0 do3: C ← C2; (Algoritmo 27)4: if ei 6= 0 then5: if ei > 0 then6: C ← C · A;7: else8: C ← C · A;9: end if10: end if11: end for12: return C;

54

Page 71: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Capítulo 5

Implementación, resultados ycomparaciones

5.1. Estado del arte

Debido al gran auge de los emparejamientos bilineales como motor de protocoloscriptográficos novedosos, han habido diversas implementaciones de éstos. Sin embargoen dichos protocolos se requieren de más de un emparejamiento; eso aunado al grannúmero de operaciones necesarias para el cálculo de un emparejamiento obligan a bus-car la mayor eficiencia posible en cada implementación.

Sin embargo hay algunas implementaciones que se destacan por los técnicas usadasen búsqueda de la aceleración del cálculo del emparejamiento.

5.1.1. Implementaciones en Software

Hankerson et al.[24] desarrollaron la implementación en software que durante muchotiempo fue la más rápida para el cálculo de emparejamientos bilineales en característicap.

En general [24] es uno de los capítulos más completos en la literatura abierta. Enél se describen implementaciones tanto para emparejamientos sobre curvas elípticas or-dinarias como supersingulares, describiendo con lujo de detalle las técnicas utilizadaspara lograr implementaciones eficientes.

En [24] se utilizan curvas BN, por lo que proponen el valor de t = 6000000000001F2Dpara lograr que p y r tengan una longitud de 256 bits, lo que implica que la seguridades de 128 bits.

55

Page 72: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

La extensión de campo Fp12 es representada usando la siguiente torre de extensiones:

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

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

Fp12 = Fp6 [u]/(w2 − ν)

donde β = −2 y ξ = −u− 1.

Aunque previamente ya se habían realizado trabajos, como [50], donde se explicabala importancia de aritmética de torres de campos con el fin de reducir el número deoperaciones en el cálculo del emparejamiento, en [24] se muestra de manera clara quela repercusión directa que la aritmética de las torres tiene en el costo final del empare-jamiento. Como se mostró en el capitulo 2, por la estructura de las torres de campos, elcosto de cada operación, incluyendo el costo total del emparejamiento, puede ser dadoen términos de multiplicaciones en el campo base.

Los algoritmos de emparejamientos considerados en la sección 2 de [24], son el em-parejamiento de Tate, el emparejamiento “ate”, y el emparejamiento “R-ate”, el cual esuna generalización del emparejamiento “ate” hecha por Lee et al [32]. Para curvas BNel emparejamiento “R-ate” está definido por

Rt(Q,P ) = (f · (f · laQ,Q(P ))P · lπ(aQ+Q),aQ(P ))(p12−1)/r

donde a = 6t + 2. Y gracias al valor de t, a tiene una longitud en bits de 66 y un pesode Hamming de 9, lo que contribuye a la disminución de operaciones dentro del ciclo deMiller.

Adicionalmente, en [24] se hace uso de un alto nivel de programación, pues en dichotrabajo Hankerson usa el conjunto de instrucciones SSE de Intel [28], con el fin utilizarregistros de 128 bits, que son mucho más rápidos que los registros comunes.

También se puede hacer mención de mejoras considerables en la exponenciación final,pues en ésta se encuentran un poco menos de la mitad de las operaciones del empare-jamiento.

En general se puede decir que la combinación de talentos por parte de Hankerson etal, dió lugar a una buena combinación de mejoras teóricas y buenas técnicas de progra-mación.

Pero a pesar de los buenos resultados obtenidos en todas las implementaciones pre-sentadas en [24], en cuanto a emparejamientos sobre curvas elípticas supersingulares se

56

Page 73: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

refiere se puede hablar de trabajos mejor logrados. Tal es el caso de Beuchat et al.[6],donde se muestra una implementación eficiente para emparejamientos en característicasdos y tres.

Beuchat et al.[6], describen una biblioteca multi-core para el cálculo del emparejamientode Tate sobre curvas elípticas supersingulares.

Una de las principales aportaciones de [6] es la implementación de la aritmética debloque usando una variación de la multiplicación López-Dahab de izquierda a derechapresentada en [35], que es uno de los multiplicadores más rápidos para campos binarios.Dicho multiplicador también fue construido para usar los registros SSE.

La otra contribución más relevante del trabajo presentado en [6], es el hecho de haberparalelizado el ciclo de Miller, logrando así mejorar los tiempos considerablemente encomparación con la versión secuencial de dicho algoritmo.

Aranha et al.[2], prensentan un trabajo muy similar a [6]. Ambos trabajos muestranparalelizaciones del algoritmo de Miller para curvas elípticas supersingulares, con unaseguridad de 128 bits. Sin embargo en [2] logran un mejor desempeño en el cálculo delemparejamiento en campos binarios debido a que utilizaron técnicas para el balanceode carga en los núcleos al momento de realizar la paralelización. El balanceo de cargalogra que los núcleos se mantengan con iguales cargas de trabajo.

Tanto en [6] como en [2] logran sus mejores desempeños con el algoritmo de empare-jamiento ηT .

5.1.2. Las mejores implementaciones con curvas ordinarias

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

Aunque no es usual comparar implementaciones de emparejamientos en software conimplementaciónes de hardware, es necesario mencionar el trabajo realizado por Fan etal,[18]. En dicho trabajo se aplica nuevamente la filosofía de acelerar la aritmética delcampo base parar lograr la aceleración del resto del emparejamiento, sin embargo laforma de lograr dicha aceleración es poco ortodoxa comparada con los trabajos previa-mente descritos.

En [18] se propone expresar los elementos en Fp como polinomios, lo cual parte dela idea de que p, para el caso concreto de las curvas BN, ya se encuentra como un poli-nomio en términos de t.

57

Page 74: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

El expresar a los elementos en Fp, cuya longitud es de 256 bits, como polinomios degrado 4, hace que los coeficientes sean de 64 bits de longitud. Tales propiedades se ex-plotan en el multiplicador desarrollado por Fan et al.

El algoritmo híbrido de multiplicación modular, nombrado así por su propios autores,es una combinación del multiplicador de Montgomery presentado en [43], y las técnicaspresentadas por Chung-Hasan [9]. Cabe mencionar que la combinación de dichas técni-cas no logra una reducción en el total de multiplicaciones de coeficientes, es decir que lamultiplicación de dos polinomios de grado cuatro implica calcular 25 multiplicaciones anivel de coeficientes, tal como se mencionó en el capítulo 2.

El multiplicador presentado en [18] está dividido en etapas. La primera etapa es lamultiplicación polinomial, la segunda es la reducción polinomial y la tercera la reduc-ción de coeficientes. Ésta última es de suma importancia para el multiplicador, y porende para el emparejamiento, ya que para lograr la reducción a nivel de coeficientes esnecesario hacer una división por t, lo cual es usualmente costoso. Para disminuir el costode una división por t es necesario que se pueda expresar como t = 2m + s; donde s esun valor pequeño.

Tal requerimiento obliga a buscar cuidadosamente el valor de t, pues de éste depen-den los valores más relevantes para el emparejamiento, y la eficiencia del multiplicadordel campo base.

En [18] se propone usar t = 263 + 29 + 28 + 26 + 24 + 23 + 1, lo que provoca que ptenga un longitud de 257 bits, sin embargo para el cálculo del emparejamiento “R-ate”,el valor a tiene un peso Hamming de 6, lo que beneficia la eficiencia del emparejamien-to, logrando la implementación de hardware con curvas ordinarias más rápida reportadahasta ahora en la literatura abierta.

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

Mas recientemente Naehrig et al [47], presentaron una implementación en softwaremuy similar a [18]. En dicho trabajo se usan curvas BN para el cálculo de empare-jamientos sobre curvas ordinarias con una longitud de p de 257 bits.

En [47] se utiliza la misma idea de [18] de expresar a los elementos en Fp como poli-nomio, con la salvedad de que en el primer trabajo, basados en el trabajo aritmética depunto flotante de Bernstein [5], sugieren dividir el polinomio en 12 partes, las cualesson almacenadas en variables de punto flotante de doble precisión.

58

Page 75: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Para lograr convertir enteros en Fp en polinomios de grado 11, se asume que existeun entero v ∈ Z tal que u = v3. Mas aun, δ = 6

√6, y (δvx)3 =

√6ux3. Lo anterior

permite representar enteros como polinomios en el anillo

R = Z[x] ∩ Z[δvx]

donde Z denota el anillo de enteros en C. En dicho trabajo se propone v = 1966080.

Al igual que en el multiplicador de Fan et al, el multiplicador de [47] consta de unafase de multiplicación polinomial, y las reducciones polinomial y de coeficientes. Elproducto de dos enteros puede ser calculado por la multiplicación de los polinomioscorrespondientes en R. Dicha operación se hace con 144 multiplicaciones de coeficientes.

Sin embargo las fases de reducción son muy costosas, ya que a pesar de estar com-puestas en su mayoría por adiciones, el número de operaciones es alto. Por lo anterior sepuede pensar que el multiplicador del campo base es lento, igual que el emparejamiento,sin embargo Naehrig et al. logran solventar hasta cierto punto el problema, pues por lastécnicas de programación utilizadas logran una aceleración en el producto de elementosen Fp2 .

Las implementaciones que requieren de aritmética de grandes enteros en procesadoresde 64 bits usualmente descomponen el entero largo en bloques de 64 bits. La aritméticaes hecha entonces usando instrucciones rápidas de suma y multiplicación de 64 bits. Enel caso de [47] no se usó ese tipo de instrucciones, en su lugar se utilizó la aritmética depunto flotante de doble precisión.

Hoy en día la gran mayoría de los procesadores cuentan con unidades muy rápidasde aritmética de punto flotante con la intención de incrementar la velocidad en diversasaplicaciones como el procesamiento de imágenes o video. Sin embargo el uso de valoresde punto flotante de 64 bits también permite el uso de instrucciones SIMD, lo que per-mite realizar una operación sobre multiples datos en una sola instrucción.

Hay que mencionar que el uso de la aritmética de punto flotante por medio de lasinstrucciones SSE no es muy común, pues requiere de mucha experiencia en la pro-gramación. Adicionalmente Naehrig et al. tuvieron el cuidado de asegurarse que losresultados de las operaciones con los coeficientes no provoquen un desbordamiento depunto flotante.

Es de destacar el trabajo presentado en [47], pues no sólo incorpora lo mejor repor-tado previamente en la literatura abierta, sino que las mejoras que proponen requierende un muy alto nivel de programación.

59

Page 76: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Por todo lo anterior en [47] se reporta la implementación más rápida de emparejamien-tos sobre curvas elípticas ordinarias (al momento de escribir esta tesis), utilizando elemparejamiento óptimo “ate” para curvas BN con una seguridad de 120 bits.

5.2. Resultados

El trabajo desarrollado a lo largo de esta tesis sirvió para construir una biblioteca deemparejamientos bilineales con el conjunto de instrucciones [28]. Dicha biblioteca estaescrita en C++ y puede ser usada en diversas plataformás: 64-bit Windows 7 con VisualStudio 2008 Profesional, 64-bit Linux 2.6 y Mac OS X 10.5 con gcc 4.4.1 o más reciente,etc. En el afán de mejorar el desempeño en el tiempo de ejecución de la biblioteca,se realizo un extenso uso de Xbyak [41], un ensamblador x86/x64 just-in-time para ellenguaje C++.

5.3. Implementación

El conjunto de instrucciones x86_64tiene una operación mul que toma como en-trada dos enteros sin signo de 64 bits y regresa uno de 128. La ejecución de dichaoperación toma alrededor de 3 ciclos en procesadores Intel Core i7 y AMD Opteron.En comparación con las arquitecturas previas la diferencia entre una multiplicación yuna suma/resta es mucho menor, lo cual es una restricción a considerar al momento dediseñar un algoritmo que reduzca el número de multiplicaciones a cambio de un incre-mento dramático en las adiciones.

El método convencional de multiplicación resulta más rápido que el método de Karat-suba en el caso de operandos de 256 bits de longitud.

Un elemento x ∈ Fp es representado como x = (x3, x2, x1, x0), donde xi, 0 ≤ i ≤ 3,son enteros de 64 bits. Una multiplicación y una inversión en Fp son realizadas medi-ante los algoritmos de multiplicación e inversión de Montgomery, respectivamente, [25];mientras que la adición/substracción es llevada a cabo de forma convencional, es decir selleva a cabo la operación y posteriormente se realizar una operación extra si es necesario.

Las ecuaciones de la curva E(Fp) y el twist E(Fp2), respectivamente son:

E : y2 = x3 + 5 y E ′ : y2 = x3 + 5/ξ.

Originalmente, se tenia contemplado t = 263 − 249, con el que se garantiza que p y

60

Page 77: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

r son números primos de 258 bits de longitud. sin embargo, debido a que con tal valor laeficiencia de la operaciones disminuía por la longitud de los números, se optó por usarel trinomio

t = 262 − 254 + 244,

con el cual también se garantiza que tanto p como r sean números primos. Ademásambos tienen una longitud de 254 bits, lo cual ayuda a lograr un nivel de seguridad de126 bits debido a la complejidad del ataque “Pollard’s rho” [45, 17].

Además el trinomio presentado ayuda a contribuir con la eficiencia en el cálculo delemparejamiento.

5.3.1. Implementacion de la aritmética de Fp

Con la colaboración de Jean Luc Beuchat, Shigeo Mitsunari y Tadanori Teruya, sedesarrollo una implementación en C, haciendo uso de los registros SSE que actualmentese encuentran en la gran mayoría de los procesadores de las computadoras. Como sedescribió desde un principio, las funciones aritméticas en el campo base Fp son funda-mentales para el costo total del emparejamiento bilienal, y por ende también lo son parael desempeño de implementaciones basados en éstos.

La primera etapa de la implementación consistió en desarrollar la versión polinomialdel multiplicador de Mongomery, explicada en la sección 2.6.1.1. Tal multiplicador estábasado en [18], desafortunadamente, la idea tal cual no puede ser aplicada en softwareteniendo los mismos resultados, debido a que el número de operaciones necesarias para lareducción polinomial y de coeficientes hace a esta técnica poco eficiente, especialmentecuando el tamaño de los operandos es exactamente de 64 bits, pues las operaciones conacarreos resultan ser muy lentas.

En [47], el uso de la aritmética de punto flotante ayuda a mejorar el desempeño delas operaciones polinomiales, además de despreocuparse por los acarreos. Sin embargoel alto número de operaciones en las reducciones, tanto polinomial como de coeficientes,sigue castigando el costo total del emparejamiento.

En general el algoritmo de multiplicación propuesto en este trabajo de tesis, requiere deser implementado en una plataforma donde el costo de las adiciones sea considerable-mente más bajo que el de las multiplicaciones, situación que no ocurre con los registrosSSE, pues empiricamente obtuvimos que la siguiente proporción

1m ≈ 8a.

Por lo anterior desistimos de la idea de representar los números como polinomios enla variable t, pues el número de operaciones con los coeficientes repercutía de manera

61

Page 78: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

negativa en la eficiencia del emparejamiento.

5.3.2. Implementacion de la aritmetica de Fp2

A continuación se describe la implementación de las ecuaciones mostradas en elcapitulo 2.

5.3.2.1. Multiplicación

Se implementó una multiplicación sobre la extensión Fp2 siguiendo el esquema tradi-cional de la multiplicación de Montgomery [43], es decir, llevando a cabo una primerafase de multiplicación de dos números de 256 bits (produciendo un entero de 512 bits),denotada como mul256. Y posteriormente realizando la reducción de Montgomery deun entero de 512 bits a uno de 256. Tal operación es denotada como mod512.

De acuerdo con la implementación realizada, mul256 contiene 16 operaciones de mul-tiplicación y su ejecución toma aproximadamente 55 ciclos.

Siguiendo el método de Karatsuba para una multiplicación en la extensión cuadráti-ca Fp2 , son necesarias tres multiplicaciones en el campo base Fp, y pareciera ser quetambién son necesarias tres operaciones mod512. Sin embargo no es necesario realizartales reducciones pues se pueden mantener los resultados de las multiplicaciones en val-ores temporales de 512 bits, para posteriormente aplicar una sola llamada a mod512con el fin de tener el resultado de la longitud deseada ahorrando llamadas innecesariasa la operación de reducción. El enfoque anterior permite ahorrar una reducción como semuestra en el algoritmo 34. Es necesario aclarar que las funciones addNC/subNC enlas líneas 1, 2, 6, y 7 del algoritmo 34, hacen referencia a sumas/restas entre enteros de256 o 512 bits.

Es necesario destacar el hecho de que tanto en la adición x + y, como en la subs-tracción x − y, de dos elementos x, y ∈ Fp se requiere checar si el resultado aún estáen Fp. Afortunadamente p satisface 7p < N , (N = 2256) y la función mod512 puedereducir los operandos x, siempre que x < pN . Lo anterior implica que en promedio sepueden realizar siete adiciones sin necesidad de checar si el resultado está en el cam-po. Por ejemplo las multiplicaciones por el valor 5, pueden ser calculadas sin acarreo.Con las mejoras mencionadas se puede reducir el costo de una multiplicación en Fp2 deaproximadamente 640 ciclos (los cuales eran requeridos previos a la aplicación de lasoptimizaciones) a solo 440 ciclos.

62

Page 79: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 34 Multiplicación optimizada de Fp2 .Entrada: A y B ∈ Fp2 tal que A = a0 + a1u y B = b0 + b1u.Salida: C = A ·B ∈ Fp2 .1: s← addNC(a0, a1);2: t← addNC(b0, b1);3: d0 ←mul256(s, t);4: d1 ←mul256(a0, b0);5: d2 ←mul256(a1, b1);6: d0 ← subNC(d0, d1);7: d0 ← subNC(d0, d2);8: c1 ←mod512(d0);9: d2 ← 5d2;10: d1 ← d1 − d2;11: c0 ←mod512(d1);12: return C ← c0 + c1u;

5.3.2.2. Elevación al cuadrado

El algoritmo 35 realiza una elevación al cuadrado donde algunas operaciones conacarreo han sido reducidas.

5.3.2.3. Multiplicación por ξ.

El algoritmo 36 muestra el procedimiento seguido para calcular la multiplicación decualquier elemento A ∈ Fp2 por la constante ξ = u ∈ Fp2 .

Primero hay que destacar que el algoritmo 36 requiere de multiplicaciones por la con-stante 5. Calcular esta operacion usando expresiones de corrimientos y sumas como5n = n + (n � 2) para n ∈ Fp puede ser utilizado para evitar hacer la multiplicacióndirecta por dicha constante. De cualquier forma eso no representó ninguna ventaja de-bido a la mínima diferencia entre el costo de una multiplicación y el de una suma, porlo que se prefirió realizar la multiplicación directa por la constante.

El algoritmo de multiplicación por ξ requiere de la reducción modulo p de un entero xmenor a 13p (líneas 4 y 7). Aunque se necesitan cinco registros de 64 bits para almacenarx = (x4, x3, x2, x1, x0), se puede ver fácilmente que x4 = 0 o x4 = 1, y posteriormente sepuede demostrar que x div 2253 = (x4 � 3)|(x3 � 61). La división por 2253 puede serrealizada sólo con tres operaciones lógicas y por ende es calculada eficientemente en losprocesadores donde se efectuaron las pruebas. Mas aún, el valor de p seleccionado tienelas siguientes propiedades

63

Page 80: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 35 Elevación al cuadrado optimizada de Fp2 .Entrada: A ∈ Fp2 tal que A = a0 + a1u.Salida: C = A2 ∈ Fp2 .1: t← addNC(a1, a1);2: d1 ←mul256(t, a0);3: t← addNC(a0, p);4: t← subNC(t, a1);5: c1 ← 5a1;6: c1 ← addNC(c1, a0);7: d0 ←mul256(t, c1);8: c1 ←mod512(d1);9: d1 ← addNC(d1, d1);10: d0 ← subNC(d0, d1);11: c0 ←mod512(d0);12: return C ← c0 + c1u;

Algorithm 36 Multiplicación por ξ.Entrada: A ∈ Fp2 tal que A = a0 + a1u. Sea ξ = −u− 12.Salida: C = A · ξ ∈ Fp2 .1: t0 ← a0;2: t1 ← 5a1;3: t0 ← t0 − t1;4: c0 ← t0 mod p; (usar Algoritmo 37)5: t0 ← a1;6: t0 ← addNC(a0, t0);7: c1 ← t0 mod p; (usar Algoritmo 37)8: return C ← c0 + c1u;

(ip)div2253 =

{i si 0 ≤ i ≤ 9,i+ 1 si 10 ≤ i ≤ 14.

Por lo anterior se construyó una pequeña tabla de consulta p-Tbl definida de lasiguiente manera:

p-Tbl[i] =

{ip si 0 ≤ i ≤ 9,(i− 1)p si 10 ≤ i ≤ 14.

(5.1)

Con la tabla se puede obtener |x− p-Tbl[x � 253]| < p. El algoritmo 37 concentralo mencionado para realizar una reducción rápida módulo p.

64

Page 81: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Algorithm 37 Reducción rápida x mod p.Entrada: x ∈ Z tal que 0 ≤ x < 13p y representado como x = (x4, x3, x2, x1, x0), donde

xi, 0 ≤ i ≤ 4, son enteros de 64 bits. p-Tbl es la tabla de consulta definida en laequación (5.1).

Salida: z = x mod p.1: q ← (x4 � 3)|(x3 � 61); (q ← bx/2253c)2: z ← x− p-Tbl[q];3: if z < 0 then4: z ← z + p;5: end if6: return z;

5.4. Costos de funciones

Antes de comenzar a mostrar los costos obtenidos, es importante destacar que resultaparticularmente cómodo expresar los costos de las operaciones, así como el costo totaldel emparejamiento, desde una perspectiva algorítmica. Lo anterior quiere decir que re-sulta mucho mas práctico medir los costos de las funciones en términos de las operacionesque éstas usan en los algoritmos desarrollados teóricamente, como ya se había explicado.

En cambio, intentar dar los costos en términos de los llamados a funciones necesariosdentro de cada función programada, aunque más preciso, resulta totalmente tedioso ydificulta bastante la comprensión de dichos costos. Ésto se debe a que en busca de mayoreficiencia, algunas operaciones pueden o no, representar los algoritmos presentados enel capítulo 2, las funciones programadas pueden presentar algunos cambios a los algo-ritmos debido al paralelismo de las instrucciones SIMD de los registros SSE. Además deseguir tal tendencia, la comparación con otras implementaciones nos obligaría a revisary contar las funciones en los códigos de éstas.

Una vez aclarado lo anterior, podemos comenzar por contabilizar el número de ope-raciones.

5.4.1. Costo del ciclo de Miller

Primero debemos destacar que gracias a la selección del valor de t, 6t + 2 tieneuna longitud en bits L = 65, y un peso de Hamming de 7. Lo anterior implica quela ejecución del ciclo de Miller será efectuada con 64 operaciones de doblado, y 6 deadición/substracción en las líneas 6 y 8 del algoritmo 30 respectivamente.

Con las fórmulas mostradas en la sección 4.6, el costo de calcular de manera intercalada

65

Page 82: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

la evaluación de la línea tangente y el doblado del punto T es

3m+ 8s+ 16a+ 4m.

Mientras que el resto de las operaciones de la línea 4 son f 2 y el producto f 2 · lT,T (P ),las cuales tienen un costo de

12m+ 45a+ 4mξ y

13m+ 39a+ 2mξ,

respectivamente. En resumen el costo asociado a la línea 4 del algoritmo 30 es

28m+ 8s+ 100a+ 4m+ 6mξ.

En cuanto al costo de la combinación del cálculo de la línea que pasa por T y Q, yla adición/substracción de punto R = T +Q es

7m+ 7s+ 25a+ 4m.

Por último el costo del producto f · l es

13m+ 39a+ 2mξ.

Por lo tanto, el costo asociado a la línea 6 del algoritmo 30 está dado como

20m+ 7s+ 64a+ 4m+ 2mξ.

El cual es el mismo costo para la línea 8.

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

Hasta este punto ya se tiene acumulado el valor f = f6t+2,Q(P ), por lo que siguecalcular el costo del producto de las líneas que pasan por Q1,−Q2 ∈ E ′(Fp2), las cualesnombraremos, l[6t+2]Q,Q1(P ) · l[6t+2]Q+Q1,−Q2(P ).

los puntos Q1, Q2 pueden ser encontrados aplicando el operador de Frobenius, Q1 =πp(Q), Q2 = π2

p(Q). El costo de cálcular las líneas 11–13 es

42m+ 14s+ 128a+ 4mξ.

Finalmente, hay que recordar que 6t+2 = 264+263−256−255+246+245+2 es un número de

66

Page 83: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

65 bits y un peso Hamming de 7, usando una representación que contenga a los dígitos{−1, 0, 1}. Lo que implica que el costo para el ciclo de Miller de el emparejamientoóptimo “ate” está dado por

Costo del ciclo de Miller = 64 · (28m+ 8s+ 100a+ 4m+ 6mξ) +

6 · (20m+ 7s+ 64a+ 4m+ 2mξ) +

42m+ 14s+ 128a+ 10m+ 4mξ

= 1954m+ 568s+ 6912a+ 290m+ 400mξ.

5.4.2. Costo de la exponenciación final

La última etapa del emparejamiento óptimo “ate”, la exponenciación final, tiene uncosto basado en algunas de las operaciones previamente descritas. Más concretamente,el costo de calcular los valores temporales mp, mp2 , mp3 , m(tp), m(t2p), m(t3p), y m(t2p2),son 35 multiplicaciones en Fp2 .(véase Sección 4.5.1). Las operaciones más costosas de laparte difícil de la exponenciación final son mt,mt2 = (mt)t,mt3 = (mt2)t, pues impli-can realizar exponenciaciones. Pero gracias a la elección del valor t = 262 − 254 + 244,esos valores temporales pueden ser calculados con costo de 62 · 3 = 186 elevadas alcuadrado ciclotómicas, y 2 · 3 = 6 multiplicaciones de campo en Fp12 . Estas operacionesresultan ser más baratas que las correspondientes en [47], especialmente por la formade representar t en este trabajo. En [47] requieren 4·3 = 12 multiplicaciones más en Fp12 .

De acuerdo con los valores de las tablas 2.3 y 4.1 , podemos estimar el costo asoci-ado al cálculo de la exponenciación final como

Costo de Exp. Final = (25m+ 9s+ 12mξ + 61a+ i) + (18m+ 6mξ + 60a) +

5m+ (18m+ 6mξ + 60a) +

35m+ 13 · (18m+ 6mξ + 60a) + 4 · (9s+ 4mξ + 30a) +

186 · (9s+ 4mξ + 30a) + 6 · (18m+ 6mξ + 60a)

= 443m+ 1719s+ 7021a+ 898mξ + i.

5.5. Comparación con otras implementaciones

La tabla 5.1 presenta un comparación en términos de las operaciones aritméticas enFp2 de nuestro trabajo contra las librerias de emparejamientos de [24, 47]. De la tabla5.1, se puede observar que la combinación de algoritmos usados por nosotros, deriva enun ahorro del 39.5% y 12% de multiplicaciones en Fp2 , en comparación con [24] y [47],respectivamente.

67

Page 84: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Tabla 5.1: Una comparación de las operaciones aritméticas requiridas para el calculo las variantes delemparejamiento “ate”.

m s a i mξ

Hankerson et al. [24]Ciclo de Miller 2277 356 6712 1 412

Emparejamiento “R-ate”Exp. Final 1616 1197 8977 1 1062

Total 3893 1553 15689 2 1474

Naehrig et al. [47]Ciclo de Miller 2022 590 7140 410

Emparejamiento óptimo “ate”Exp. Final 678 1719 7921 1 988

Total 2700 2309 15061 1 1398

Este trabajoCiclo de Miller 1954 568 6912 400

Emparejamiento óptimo “ate”Exp. Final 443 1719 7021 1 898

Total 2397 2287 13933 1 1298

En la tabla 5.2 se muestran los tiempos registrados por las operaciones más representati-vas en diferentes arquitecturas. La biblioteca desarrollada con el trabajo producido poresta tesis es capaz de calcular el emparejamiento óptimo “ate” sobre un campo primo Fpde 254 bits en 2.33 millones de ciclos de reloj en un solo núcleo en una máquina IntelCore i7 con un procesador a 2.8GHz. Lo anterior implica que el cálculo del empare-jamiento es realizado en 0.84msec. En comparación con los trabajos mencionados 5.1,y en general con lo reportado en la literatura abierta, esta implementación es la primeraen calcular un emparejamiento criptográfico en menos de un milisegundo en un nivel deseguridad alto en una computadora de escritorio.

En la segunda columna de la tabla 5.2, se aprecia el costo (en ciclos de reloj) quefué medido para la aritmética de Fp2 en una máquina con un procesador Core i7 sonm = 435 y s = 342. Además, se midió a = 40.

Con motivos de comparación, en la misma tabla se muestra el desempeño de la bi-blioteca desarrollada por Naehrig et al. [47], la cual es la mejor implementación con laque se puede comparar la biblioteca presentada en esta tesis.1

La tabla 5.3 concentra los mejores resultados publicados en la literatura abierta desdeel 2007. Todos los trabajos mostrados en la tabla 5.3, están enfocados en un nivel deseguridad equivalente al del algoritmo AES-128, exceptuando [47] y la biblioteca cor-respondiente a esta tesis. Aranha et al. [2] y Beuchat et al. [6] consideran solamente

1Los resultados del procesador Core 2 Quad están reimpresos de [47]. Para poder hacer la compara-ción se descargo la biblioteca [49] y se realizaron experimentos en las plataformas mencionadas.

68

Page 85: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

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.

Nuestros resultadosCore i7a Opteronb Core 2 Duoc Athlon 64 X2d

Multiplicación en Fp2 435 443 558 473Elevación al cuadrado en Fp2 342 355 445 376Ciclo de Miller 1,330,000 1,360,000 1,680,000 1,480,000Exponentiación final 1,000,000 1,040,000 1,270,000 1,150,000Emparejamiento óptimo “ate” 2,330,000 2,400,000 2,950,000 2,630,000

dclxvi [47, 49]Core i7 Opteronb Core 2 Quade Athlon 64 X2d

Multiplicación en Fp2 – 695 693 424Elevación al cuadrado en Fp2 – 614 558 339Ciclo de Miller – 2,480,000 2,260,000 2,360,000Exponentiation final – 2,520,000 2,210,000 2,275,000Emparejamiento óptimo “ate” – 5,000,000 4,470,000 4,635,000

a Intel Core i7 860 (2.8GHz), Windows 7, Visual Studio 2008 Professionalb Quad-Core AMD Opteron 2376 (2.3GHz), Linux 2.6.18, gcc 4.4.1c Intel Core 2 Duo T7100 (1.8GHz), Windows 7, Visual Studio 2008 Professionald Athlon 64 X2 Dual Core 6000+(3GHz), Linux 2.6.23, gcc 4.1.2e Intel Core 2 Quad Q6600 (2394MHz), Linux 2.6.28, gcc 4.3.3

curvas elípticas supersingulares en característica 2 y 3, respectivamente. El resto de losautores se concentró en curvas elípticas ordinarias.

De la tabla 5.3, se puede apreciar que el costo computacional estimado para el empare-jamiento óptimo “ate” esta dado como,

Costo del emparejamiento óptimo “ate” = 2397m+ 2287s+ 13933a+ i

= 2397 · 435 + 2287 · 342 + 13933 · 40

= 2,382,169.

De lo anterior se concluye que los resultados experimentales presentados en la tabla 5.2,concuerdan muy bien con el análisis teórico hecho previamente en 5.4, y con lo mostado

69

Page 86: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Tabla 5.3: Una comparación del tiempo y total de ciclos requeridos para el cálculo de diversas variantesdel emparejamiento de Tate. La frecuencia esta dada en GHz y los tiempos en milisegundos.

Algo. Arquitectura Ciclos Freq.Calc.tiempo

Devegili et al. [13] “ate” Intel Pentium IV 69,600,000 3.0 23.20Naehrig et al. [46] “ate” Intel Core 2 Duo 29,650,000 2.2 13.50

Grabher et al. [22] “ate”Intel Core 2 Duo (1 core) 23,319,673

2.49.72

Intel Core 2 Duo (2 cores) 14,429,439 6.01

Aranha et al. [2] ηTIntel Xeon 45nm (1 core) 17,400,000

2.08.70

Intel Xeon 45nm (8 cores) 3,020,000 1.51

Beuchat et al. [6] ηTIntel Core i7 (1 core) 15,138,000

2.95.22

Intel Core i7 (8 cores) 5,423,000 1.87Hankerson et al. [24] “R-ate” Intel Core 2 10,000,000 2.4 4.10Fan et al. [18] “R-ate” 130 nm ASIC 59,976 .204 2.91Naehrig et al. [47] aopt Intel Core 2 Quad Q6600 4,470,000 2.4 1.80

Esta tesis aopt Intel Core i7 2,630,000 2.8 0.94

en la tabla 5.1.

Han sido varios los autores que han estudiado la implementaciones multi-core de losemparejamientos criptográficos [22, 6, 2]. De acuerdo a los resultados reportados en latabla 5.3, es fácilmente apreciable que la aceleración obtenida de una implementaciónen n núcleos es siempre menor que la ideal (n× la aceleración). Lo anterior se debeprincipalmente al costo de las operaciones aritméticas extras requeridas para combinarlos resultados parciales generados por cada núcleo, y a la dependencia entre diferentesoperaciones involucradas en la exponenciación final. Grabher et al. [22], concluyeronque la mejor manera de aprovechar una arquitectura multi-core en el cálculo de empare-jamientos, es dar a cada núcleo un emparejamiento. Tal premisa se ve respaldada porlo resultados obtenidos con las mejores implementaciones, incluyendo la prensentada eneste trabajo de tesis.

70

Page 87: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Capítulo 6

Conclusiones

El presente trabajo de tesis consiste en el diseño e implementación eficiente de unabiblioteca de software para el cálculo del emparejamiento óptimo “ate” en característicap.

A lo largo del año durante el cual se desarrolló la tesis, hubo varias situaciones delas cuales se pueden destacar las siguientes conclusiones:

El auge de los emparejamiento bilineales como parte fundamental de protocolosnovedosos que extienden y complementan a la criptografía basada en curvas elíp-ticas, es el principal motivador para generar implementaciones eficientes.

Se debe conocer a profundidad los nuevos procesadores con el fin de explotar lasventajas que éstos ofrecen. La gran mayoría de los procesadores actuales, cuentancon registros especiales sumamente veloces, sin embargo en tales registros se in-crementa la velocidad de operaciones que comúnmente suelen ser lentas, como lamultiplicación de enteros y la aritmética de punto flotante, entre otras. De lo an-terior se deduce que no es aconsejable el uso de algoritmos que reducen el númerode multiplicaciones a cambio de un incremento dramático en el uso de sumas.

Se debe procurar reducir el costo de las operaciones que se utilizan más. El casoideal sería aquel en el que la aritmética de los campos base es altamente eficiente.Tal es el caso del algoritmo presentado para calcular el emparejamiento, donde sepuso especial atención en el diseño e implementación de las operaciones en Fp yFp2 .

Hay que explotar al máximo la construcción de la torre de campos. Gracias a laforma de la torre de campos se pudo obtener una ahorro de operaciones tanto enel ciclo de Miller como en la exponenciación final.

71

Page 88: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

El uso de los parámetros que seleccionamos arrojó una reducción de operacionesen el cálculo del emparejamiento.

La modificación del algoritmo óptimo “ate” presentada, donde se permite el usode signos en los bits de 6t + 2, ayuda a que tal valor pueda ser expresado conun peso de Hamming muy bajo, lo cual también contribuye en la eficiencia delemparejamiento.

A juzgar por los resultados obtenidos, parece ser mejor buscar incrementos en elalgoritmo del emparejamiento sin necesidad de paralelización, pues el resultadode ésta nunca es el ideal. En otras palabras, la mejor manera de aprovechar unaarquitectura multinúcleo para el cálculo de varios emparejamientos, es darle unemparejamiento a cada núcleo.

6.1. Resumen de resultados

En general la combinación de las diversas técnicas implementadas para lograr unaaceleración en el cálculo del emparejamiento, produjo los siguientes resultados:

B Se desarrolló un multiplicador polinomial muy eficiente el cual fue presentado enformato de póster en el congreso internacional CHES 2010.

B La biblioteca desarrollada es la biblioteca de software más rápida reportada enla literatura abierta al momento de la escritura de esta tesis. Con ésta se logróreducir el tiempo necesario para el cálculo de un emparejamiento a 0.84 milise-gundos. Hasta donde sabemos esta es la primera vez que se puede calcular unemparejamiento, ya sea en uno o en varios núcleos, en menos de un milisegundo.La biblioteca es incluso más rápida que la mejor implementación en hardware parael cálculo de emparejamientos en curvas ordinarias.

B El diseño e implementación de la biblioteca se concentraron en un artículo [7], elcual fue sometido y aceptado en el congreso internacional Pairings 2010.

B Los resultados obtenidos han abierto las posibilidades de trabajar con varios delos investigadores más distinguidos en el área.

6.2. Trabajo a futuro

I Implementar el algoritmo de multiplicación polinomial presentado en la sección2.6.1.1, en una plataforma donde el costo de las sumas en Fp sea muy bajo enrelación con el costo de las multiplicaciones.

72

Page 89: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

I Realizar las modificaciones necesarias a la biblioteca desarrollada para ofrecer unnivel de seguridad de 192 bits. O estudiar otro tipo de curvas cuyos parámetros seajusten mejor para ofrecer mayor seguridad.

I Buscar si hay otra construcción de la torre de campos que derive en una aritméticamás eficiente, o en su defecto buscar si hay alguna otra forma de optimizar loscostos de las operaciones en el emparejamiento.

73

Page 90: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

74

Page 91: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

Referencias

[1] Public key cryptography - pkc 2003, 6th international workshop on theory andpractice in public key cryptography, miami, fl, usa, january 6-8, 2003, proceedings,2002.

[2] D.F. Aranha, J. López, and D. Hankerson. High-speed parallel software imple-mentation of the ηT pairing. In J. Pieprzyk, editor, Topics in Cryptology–CT-RSA2010, volume 5985 of Lecture Notes in Computer Science, pages 89–105. Springer,2010.

[3] C. Arene, T. Lange, M. Naehrig, and C. Ritzenthaler. Faster computation of theTate pairing. Cryptology ePrint Archive, Report 2009/155, 2009. Available athttp://eprint.iacr.org/2009/155.pdf.

[4] P.S.L.M. Barreto and M. Naehrig. Pairing-friendly elliptic curves of prime order.In B. Preneel and S. Tavares, editors, Selected Areas in Cryptography–SAC 2005,volume 3897 of Lecture Notes in Computer Science, pages 319–331. Springer, 2006.

[5] Daniel J. Bernstein. Curve25519: new diffie-hellman speed records. In In PublicKey Cryptography (PKC), Springer-Verlag LNCS 3958, page 2006, 2006.

[6] J.-L. Beuchat, E. López-Trejo, L. Martínez-Ramos, S. Mitsunari, and F. Rodríguez-Henríquez. Multi-core implementation of the Tate pairing over supersingular ellipticcurves. In J.A. Garay, A. Miyaji, and A. Otsuka, editors, Cryptology and NetworkSecurity–CANS 2009, number 5888 in Lecture Notes in Computer Science, pages413–432. Springer, 2009.

[7] Jean-Luc Beuchat, Jorge Enrique GonzÃąlez DÃŋaz, Shigeo Mitsunari, Eiji Okamo-to, Francisco RodrÃŋguez-HenrÃŋquez, and Tadanori Teruya. High-speed softwareimplementation of the optimal ate pairing over barreto-naehrig curves. CryptologyePrint Archive, Report 2010/354, 2010. http://eprint.iacr.org/.

[8] Dan Boneh, Ben Lynn, and Hovav Shacham. Short signatures from the weil pairing.In ASIACRYPT, pages 514–532, 2001.

75

Page 92: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

[9] J. Chung and M.A. Hasan. Asymmetric squaring formulae. In P. Kornerup andJ.-M. Muller, editors, Proceedings of the 18th IEEE Symposium on Computer Arith-metic, pages 113–122. IEEE Computer Society, 2007.

[10] J. Chung and M.A. Hasan. Low-weight polynomial form integers for efficient mod-ular multiplication. IEEE Transactions on Computers, 56(1):44–57, January 2007.

[11] J. Chung and M.A. Hasan. Montgomery reduction algorithm for modular multipli-cation using low-weight polynomial form integers. In P. Kornerup and J.-M. Muller,editors, Proceedings of the 18th IEEE Symposium on Computer Arithmetic, pages230–239. IEEE Computer Society, 2007.

[12] H. Cohen and G. Frey, editors. Handbook of Elliptic and Hyperelliptic Curve Cryp-tography. Chapman & Hall/CRC, 2006.

[13] A.J. Devegili, M. Scott, and R. Dahab. Implementing cryptographic pairings overBarreto–Naehrig curves. In T. Takagi, T. Okamoto, E. Okamoto, and T. Okamoto,editors, Pairing-Based Cryptography–Pairing 2007, volume 4575 of Lecture Notesin Computer Science, pages 197–207. Springer, 2007.

[14] Augusto Jun Devegili, Colm ÃŞ HÃľigeartaigh, and Michael Scott. Multiplicationand squaring on pairing-friendly, 2006.

[15] Whitfield Diffie and Martin E. Hellman. New directions in cryptography, 1976.

[16] Ratna Dutta, Rana Barua, and Palash Sarkar. Pairing-based cryptographic proto-cols: A survey. In In Cryptology ePrint Archive, Report 2004/064, 2004.

[17] I. Duursma, P. Gaudry, and F. Morain. Speeding up the discrete log computationon curves with automorphisms. In K.-Y. Lam, E. Okamoto, and C. Xing, edi-tors, Advances in Cryptology–ASIACRYPT 1999, volume 1716 of Lecture Notes inComputer Science, pages 103–121. Springer, 1999.

[18] J. Fan, F. Vercauteren, and I. Verbauwhede. Faster Fp-arithmetic for cryptographicpairings on Barreto–Naehrig curves. In C. Clavier and K. Gaj, editors, Cryptograph-ic Hardware and Embedded Systems–CHES 2009, number 5747 in Lecture Notes inComputer Science, pages 240–253. Springer, 2009.

[19] D. Freeman, M. Scott, and E. Teske. A taxonomy of pairing-friendly elliptic curves.Journal of Cryptology, 23(2):224–280, April 2010.

[20] Gerhard Frey, Michael Müller, and Hans-Georg Rück. The tate pairing and thediscrete logarithm applied to elliptic curve cryptosystems. IEEE Transactions onInformation Theory, 45(5), 1999.

76

Page 93: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

[21] Steven D. Galbraith, James F. McKee, and P. C. Valença. Ordinary abelian varietieshaving small embedding degree. Finite Fields and Their Applications, 13(4):800–814, 2007.

[22] P. Grabher, J. Großschädl, and D. Page. On software parallel implementation ofcryptographic pairings. In Selected Areas in Cryptography–SAC 2008, number 5381in Lecture Notes in Computer Science, pages 34–49. Springer, 2008.

[23] R. Granger and M. Scott. Faster squaring in the cyclotomic subgroup of sixthdegree extensions. Cryptology ePrint Archive, Report 2009/565, 2009. Available athttp://eprint.iacr.org/2009/565.pdf.

[24] D. Hankerson, A. Menezes, and M. Scott. Software implementation of pairings.In M. Joye and G. Neven, editors, Identity-based Cryptography, Cryptology andInformation Security Series, chapter 12, pages 188–206. IOS Press, 2009.

[25] D. Hankerson, A. Menezes, and S. Vanstone. Guide to Elliptic Curve Cryptography.Springer-Verlag New York, Inc., 2004.

[26] F. Hess, N. Smart, and F. Vercauteren. The Eta pairing revisited. IEEE Transac-tions on Information Theory, 52(10):4595–4602, October 2006.

[27] F. Hess, N. Smart, Frederik Vercauteren, and Technische UniversitÃďt Berlin. Theeta pairing revisited. IEEE Transactions on Information Theory, 52:4595–4602,2006.

[28] Intel Corporation. Intel 64 and IA-32 Architectures Software Developer’s Manuals.Available at http://www.intel.com/products/processor/manuals/.

[29] Antoine Joux. A one round protocol for tripartite diffie-hellman. In ANTS-IV:Proceedings of the 4th International Symposium on Algorithmic Number Theory,pages 385–394, London, UK, 2000. Springer-Verlag.

[30] A. Karatsuba and Y. Ofman. Multiplication of multidigit numbers on automata.Soviet Phys. Doklady (English Translation), 7(7):595–596, January 1963.

[31] N. Koblitz. Elliptic curve cryptosystems. In Mathematics of Computation, vol-ume 48, pages 203–209, 1987.

[32] E. Lee, H.-S. Lee, and C.-M. Park. Efficient and generalized pairing computationon abelian varieties. Cryptology ePrint Archive, Report 2008/040, 2008. Availableat http://eprint.iacr.org/2008/040.pdf.

[33] Benoît Libert and Jean-Jacques Quisquater. Practical time capsule signatures inthe standard model from bilinear maps. In Pairing, pages 23–38, 2007.

77

Page 94: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

[34] Rudolf Lidl and Harald Niederreiter. Introduction to finite fields and their applica-tions. Cambridge University Press, New York, NY, USA, 1986.

[35] Julio López and Ricardo Dahab. High-speed software multiplication in f2m. InINDOCRYPT ’00: Proceedings of the First International Conference on Progressin Cryptology, pages 203–212, London, UK, 2000. Springer-Verlag.

[36] Robert J. McEliece. Finite field for scientists and engineers. Kluwer AcademicPublishers, Norwell, MA, USA, 1987.

[37] Alfred Menezes, Paul C. van Oorschot, and Scott A. Vanstone. Handbook of AppliedCryptography. CRC Press, 1996.

[38] Alfred Menezes, Scott A. Vanstone, and Tatsuaki Okamoto. Reducing elliptic curvelogarithms to logarithms in a finite field. In STOC, pages 80–89, 1991.

[39] Victor S. Miller. Use of elliptic curves in cryptography. In CRYPTO, pages 417–426,1985.

[40] V.S. Miller. The Weil pairing, and its efficient calculation. Journal of Cryptology,17(4):235–261, September 2004.

[41] S. Mitsunari. Xbyak: JIT assembler for C++. Available at http://homepage1.nifty.com/herumi/soft/xbyak_e.html.

[42] A. Miyaji, M. Nakabayashi, and S. Takano. New explicit conditions of elliptic curvetraces for FR-reduction. IEICE Trans. Fundamentals, E84:1234–1243, 2001.

[43] P.L. Montgomery. Modular multiplication without trial division. Mathematics ofComputation, 44(170):519–521, 1985.

[44] P.L. Montgomery. Five, six, and seven-term Karatsuba-like formulae. IEEE Trans-actions on Computers, 54(3):362–369, March 2005.

[45] M. Naehrig. Constructive and Computational Aspects of Cryptographic Pairings.PhD thesis, Technische Universiteit Eindhoven, 2009. Available at http://www.cryptojedi.org/users/michael/data/thesis/2009-05-13-diss.pdf.

[46] M. Naehrig, P.S.L.M. Barreto, and P. Schwabe. On compressible pairings andtheir computation. In S. Vaudenay, editor, Progress in Cryptology–AFRICACRYPT2008, volume 5023 of Lecture Notes in Computer Science, pages 371–388. Springer,2008.

[47] M. Naehrig, R. Niederhagen, and P. Schwabe. New software speed records for cryp-tographic pairings. Cryptology ePrint Archive, Report 2010/186, 2010. Availableat http://eprint.iacr.org/2010/186.pdf.

78

Page 95: UnidadZacatenco DiseñoeImplementaciónEficientedelfrancisco/Tesis_Jorge.pdf · Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional UnidadZacatenco

[48] Ronald L. Rivest, Adi Shamir, and Leonard M. Adleman. A method for obtainingdigital signatures and public-key cryptosystems. Commun. ACM, 21(2), 1978.

[49] P. Schwabe. Software library of “New software speed records for cryptographicpairings”, Accessed June, 4, 2010. Available at http://cryptojedi.org/crypto/#dclxvi.

[50] M. Scott. Implementing cryptographic pairings. In T. Takagi, T. Okamoto,E. Okamoto, and T. Okamoto, editors, Pairing-Based Cryptography–Pairing 2007,volume 4575 of Lecture Notes in Computer Science, pages 177–196. Springer, 2007.

[51] M. Scott and P.S.L.M. Barreto. Compressed pairings. In M.K. Franklin, editor,Advances in Cryptology–CRYPTO 2004, volume 3152 of Lecture Notes in ComputerScience, pages 140–156. Springer, 2004.

[52] M. Scott, N. Benger, M. Charlemagne, L.J. Dominguez Perez, and E.J. Kachisa.On the final exponentiation for calculating pairings on ordinary elliptic curves.Cryptology ePrint Archive, Report 2008/490, 2008. Available at http://eprint.iacr.org/2008/490.pdf.

[53] Michael Scott and Paulo S. L. M. Barreto. Generating more mnt elliptic curves.Des. Codes Cryptography, 38(2):209–217, 2006.

[54] Adi Shamir. Identity-based cryptosystems and signature schemes. In CRYPTO,pages 47–53, 1984.

[55] A.L. Toom. The complexity of a scheme of functional elements realizing the mul-tiplication of integers. Soviet Mathematics Doklady, 3:714–716, 1963.

[56] F. Vercauteren. Optimal pairings. Cryptology ePrint Archive, Report 2008/096,2008. Available at http://eprint.iacr.org/2008/096.pdf.

[57] F. Vercauteren. Optimal pairings. IEEE Transactions on Information Theory,56(1):455–461, January 2010.

[58] Lawrence C. Washington. Elliptic Curves: Number Theory and Cryptography.Chapman & Hall / CRC, Secaucus, New Jersey, USA, 2003.

79