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
Agradecimientos
Primeramente debo aclarar que por falta de espacio no me es posible nombrar a todas las personas a las que debo agradecer, pues el estudiante que escribe esta tesis no es otra cosa sino el resultado de una gigantesca suma de esfuerzos y voluntades.
Gracias a mis padres, Jesús González García y Guadalupe Díaz Méndez, y familiares cercanos, quienes me han apoyado incondicionalmente.
Gracias a mi compañera de vida Susana Nava Alverdín, por su asombrosa compren-sión durante el estudio de mi maestría.
A mi director de tesis el Dr. Francisco Rodríguez Henríquez le agradezco por su valiosa guía y orientación, sus conocimientos fueron la mejor de las bases para esta tesis.
Agradezco también a los investigadores Jean Luc Beuchat, Jérémie Detrey, Peter Schwabe, Nicolas Estibals, Teruya Tadanori y Shigeo Mitsunari por sus contribuciones de diversas maneras en mi proyecto de tesis.
En general a los Doctores con quienes he tomado materias, pero más concretamente a los Doctores Gregorio Toscano Pulido, Debrup Chakraborty, Gerardo de la Fraga y Guillermo Morales Luna, quienes no conformes con haberme transmitido una gran canti-dad de conocimientos, también me ofrecieron su amistad y apoyo en diversos momentos.
Agradezco a las secretarias Felipa Rosas, Erika Ríos y muy especialmente a Sofía Reza por su infinita paciencia y el gran cariño con el desempeña sus labores.
A todas aquellas personas que me ofrecieron su amistad durante mis estudios.
Agradezco al Consejo Nacional de Ciencia y Tecnología (CONACyT) por el apoyo económico que me fue otorgado a partir de su programa de becas, y a los proyectos SEP-CONACYT 60240, SEP-CONACYT 90543 y UC MEXUS-CONACYT, entre la Universidad de California, campus Santa Barbara, E.U.A y el CINVESTAV-IPN.
Resumen
Abstract
Índice general
´Indice de tablas
vii1 Conceptos generales
11.1 Servicios de seguridad . . . 1
1.2 Criptografía . . . 2
1.3 Criptografía de llave privada . . . 2
1.4 Criptografía de llave pública . . . 4
1.5 Diffie-Hellman . . . 5
1.6 RSA . . . 5
1.7 Criptografía de curvas elípticas . . . 6
1.8 Criptografía basada en emparejamientos bilineales . . . 7
1.8.1 Ataques . . . 7
1.8.2 Protocolos basados en emparejamientos bilineales . . . 7
1.8.2.1 Criptografía basada en la indentidad . . . 8
1.8.2.2 Diffie-Hellman tri-partito de una ronda . . . 8
1.8.2.3 Firma corta . . . 8
1.8.2.4 Firma a ciegas . . . 8
1.8.2.5 Firma en cápsula de tiempo . . . 8
1.8.3 Modelo de capas . . . 9
2 Aritm´etica de torres de campos
11 2.1 Grupos . . . 112.1.1 Clase lateral . . . 11
2.2 Anillos . . . 12
2.3 Campos . . . 12
2.4 Campos finitos . . . 12
2.5 Extensiones de campo . . . 13
2.5.1 Cerradura algebraica . . . 13
2.6.1 Operaciones enFp . . . 14
2.6.1.1 Multiplicación . . . 14
2.6.1.2 Inversión . . . 18
2.6.2 Operaciones enFp2 . . . 19
2.6.2.1 Adición . . . 19
2.6.2.2 Multiplicación . . . 19
2.6.2.3 Elevación al cuadrado . . . 20
2.6.2.4 Inverso multiplicativo . . . 20
2.6.3 Operaciones enFp6 . . . 21
2.6.3.1 Adición . . . 21
2.6.3.2 Multiplicación . . . 21
2.6.3.3 Elevación al cuadrado . . . 22
2.6.3.4 Inverso multiplicativo . . . 23
2.6.4 Operaciones enFp12 . . . 24
2.6.4.1 Adición . . . 24
2.6.4.2 Multiplicación . . . 24
2.6.4.3 Elevación al cuadrado . . . 25
2.6.4.4 Inverso multiplicativo . . . 25
2.6.5 Costo . . . 26
3 Curvas el´ıpticas
29 3.1 Punto al infinito. . . 293.2 Ley de grupo . . . 30
3.3 Curvas sobre campos finitos . . . 31
3.3.1 Orden del grupo . . . 32
3.3.2 Adición de puntos . . . 32
3.3.2.1 Coordenadas jacobianas . . . 32
3.3.2.2 Doblado de un punto . . . 33
3.3.2.3 Suma con coordenadas mixtas . . . 33
3.3.3 Multiplicación por escalar . . . 34
3.3.4 Orden de un punto . . . 35
3.3.4.1 Problema del logaritmo discreto en curvas elípticas . . 35
3.3.5 Puntos de torsión . . . 36
4 Emparejamientos bilineales
37 4.1 Emparejamiento de Tate . . . 374.1.1 Divisores. . . 37
4.1.1.1 Funciones sobre la curva . . . 38
4.1.2 Propiedades del emparejamiento de Tate . . . 39
4.3 Curvas BN . . . 41
4.3.1 Twist de la curva . . . 41
4.4 Ciclo de Miller . . . 42
4.5 Exponenciación Final . . . 43
4.5.1 El operador de Frobenius. . . 43
4.5.2 Grupo ciclotómico enFp12. . . 46
4.6 Emparejamiento óptimo ”ate“ para curvas BN. . . 50
5 Implementaci ´on, resultados y comparaciones
55 5.1 Estado del arte . . . 555.1.1 Implementaciones en Software . . . 55
5.1.2 Las mejores implementaciones con curvas ordinarias . . . 57
5.1.2.1 La implemetación más rápida de hardware . . . 57
5.1.2.2 La implementación más rapida de software . . . 58
5.2 Resultados . . . 60
5.3 Implementación . . . 60
5.3.1 Implementacion de la aritmética de Fp . . . 61
5.3.2 Implementacion de la aritmetica de Fp2 . . . 62
5.3.2.1 Multiplicación . . . 62
5.3.2.2 Elevación al cuadrado . . . 63
5.3.2.3 Multiplicación por ξ. . . 63
5.4 Costos de funciones . . . 65
5.4.1 Costo del ciclo de Miller . . . 65
5.4.1.1 Aplicación del oeprador de Frobenius y última adición (lines 11–13). . . 66
5.4.2 Costo de la exponenciación final . . . 67
5.5 Comparación con otras implementaciones . . . 67
6 Conclusiones
71 6.1 Resumen de resultados . . . 726.2 Trabajo a futuro . . . 72
Índice de tablas
1.1 Niveles de seguridad correspondientes a diversas longitudes de parámetros. 7
2.1 Costo de operaciones del algoritmo polinomial de Montgomery . . . 18
2.2 Notación propuesta para representar las operaciones de cada extensión 26
2.3 Costos computationales de la aritmetica de la torre de campos. . . 27
4.1 Costos computationales de las operaciones en el campo ciclotómico. . . 47
5.1 Una comparación de las operaciones aritméticas requiridas para el calculo las variantes del emparejamiento “ate”. . . 68
5.2 Cuenta de ciclos por multiplicación en Fp2, elevación al cuadrado F
p2, y
el emparejamiento óptimo “ate” en diferentes máquinas. . . 69
Índice de algoritmos
1 Conversión de entero a polinomio[11, 10]. . . 16
2 Nuestra propesta del algoritmo polinomial de Montgomery. . . 17
3 Algoritmo de Montgomery para encontrar el inverso multiplicativoFp [25]. 18 4 Adición enFp2 =F p[u]/(u2−β). . . 19
5 Multiplicación enFp2 =Fp[u]/(u2−β). . . 19
6 Multiplicación conb0 ∈Fp. . . 20
7 Elevación al cuadrado enFp2 =Fp[u]/(u2−β). . . 20
8 Inversión enFp2 =F p[u]/(u2−β). . . 21
9 Adición inFp6 =Fp2[v]/(v3−ξ). . . 21
10 Multiplicación in Fp6 =Fp2[v]/(v3 −ξ). . . 22
11 Multiplicación byb0 ∈Fp2. . . 22
12 Multiplicación byb0+b1v. . . 22
13 Elevación al cuadrado enFp6 =Fp2[v]/(v3−ξ). . . 23
14 Inversión inFp6 =F p2[v]/(v3−ξ). . . 23
15 Adición inFp12 =F p6[w]/(w2−γ). . . 24
16 Multiplicación in Fp12 =Fp6[w]/(w2−γ). . . 24
17 Multiplicación por B =b0+b1w, donde b0 ∈Fp2 y b1 =b10+b11v+ 0v2 25 18 Elevación al cuadrado enFp12 =F p6[w]/(w2 −γ). . . 25
19 Inverso multiplicativo enFp12 =F p6[w]/(w2−γ).. . . 26
20 Doblado de un punto en coordenadas jacobianas. . . 33
21 Suma de puntos con coordenadas mixtas. . . 34
22 Método binario para multiplicación por un escalar de izquierda a derecha. 35 23 Ciclo de Miller. . . 43
24 Operador de Frobenius para elevarf ∈Fp12 =Fp6[w]/(w2−γ) a la p. . 45
25 Operador de Frobenius para elevarf ∈Fp12 =Fp6[w]/(w2−γ) a la p2.. 45
26 Operador de Frobenius para elevarf ∈Fp12 =F p6[w]/(w2−γ) a la p3.. 46
27 Elevación al cuadrado enFp12 =F p6[w]/(w2 −γ). . . 47
28 Elevación al cuadrado enFp4 =Fp2[V]/(V2−ξ). . . 48
29 Exponentiación final . . . 49
30 Emparejamiento óptimo ”ate“ sobre curvas Barreto–Naehrig. . . 51
32 Adición de punto y evaluación de linea. . . 53
33 Exponenciación enFp12 =Fp6[w]/(w2−γ). . . 54
34 Multiplicación optimizada deFp2. . . 63
35 Elevación al cuadrado optimizada deFp2. . . 64
36 Multiplicación por ξ. . . 64
Capítulo 1
Conceptos generales
El incremento en la capacidad de comunicación ha traido consigo una gran cantidad de ventajas, así como un considerable número de obligaciones, entre las cuales destaca la de proteger información. Dicha labor eventualmente derivó en la necesidad de transmitir conocimiento protegido de manera que sólo el o los receptores que el emisor desease pudieran interpretar.
1.1.
Servicios de seguridad
Típicamente cuando se desarrolla una aplicación, los esfuerzos se centran en lograr la funcionalidad pretendida. Postergando la implementación de medidas que garanticen la seguridad requerida. Sin embargo, por lo general se desea contar con los siguientes servicios de seguridad [37]:
Confidencialidad: Este servicio consiste en garantizar que la información sólo pueda ser leída o interpretada por aquellos que cuenten con los privilegios necesa-rios.
Autentificación:Es importante corroborar tanto el origen de los datos como las
identidades de las entidades que se comunican.
Integridad: Este servicio permite garantizar que los datos no han sufrido
modi-ficaciones no autorizadas.
No-repudio: Dicho servicio ayuda a evitar que la entidad que ha enviado un
mensaje o transacción, se retracte de haberlo hecho.
Control de Acceso: Sirve para restringir el acceso a los usuarios de sistemas,
Disponibilidad: Se busca que la información pueda ser accesible en tiempo y
forma.
1.2.
Criptografía
Con el paso del tiempo, la humanidad ha ido generando conocimiento, y por ende las técnicas para proteger la información se han ido perfeccionando, pero de igual forma los servicios que dichas técnicas deben cubrir han ido en incremento. La criptografía es es-encial para cubrir las necesidades anteriormente mencionadas, es decir, que provee de los mecanismos necesarios para ofrecer los servicios de seguridad previamente mencionados.
Lacriptografía se puede definir como la práctica y el estudio de cifrar y descifrar infor-mación mediante técnicas matemáticas. La criptografía hace uso de diversas disciplinas como matemáticas, ciencias de la computación, e ingeniería.
Unsistema criptográfico, ocriptosistema, es una quíntupla compuesta por los siguientes elementos [37]:
Mensajes: El conjunto de todos los posibles textos en claro que pueden ser cifrados.
Denotado como M.
Cifrados: El conjunto de todos los posibles textos cifrados. Denotado como C.
Llaves: También conocidas comoclaves; es el conjunto de todos los posibles datos que van a servir para cifrar un texto en claro. Denotado comoK.
Operación de cifrado: Función que dados el texto en claro y una llave, produce una
cifra. Dicha función debe ser reversible. Cada e∈ K produce una biyección única deM aC, y es denotada por Ee
Operación de descifrado: Función que a partir de una llave y un cifrado, regresa al
texto en claro.Dd determina la biyección única de C a Mdada por algún d∈ K.
El par de llaves (e, d), está relacionado de manera que Dd(Ee(m)) = m, y de igual
forma Ee(Dd(m)) =m, ∀m∈ M y ∀d, e∈ K.
1.3.
Criptografía de llave privada
Toda vez que la llave d se puede obtener fácilmente con conocimiento de e, o vi-ceversa, el criptosistema (M, C, K, Ee, Dd) se dice ser de llave privada, o simétrico.
Debido a la estrecha relación entre la ciencia y la tecnología, las diversas técnicas para brindar seguridad se ven limitadas por las capacidades de los recursos tecnológicos disponibles en cada época. En un principio la criptografía era hecha de manera artesanal, los primeros métodos para cifrar información eran tan sencillos como sustituir algunos caracteres del alfabeto por números. Sin embargo, la llegada de la computación trajo consigo un gran número de ventajas para diversas áreas de la ciencia, y la criptografía no fué la excepción.
La computación permite, entre otras cosas, la aceleración y automatización de diversos cálculos, por lo que eventualmente el uso de las computadoras dió lugar a criptosistemas más complejos. Derivado de la posibilidad de la automatizacón de labores es que en la década de 1970, ocurrieron varios de los avances más significativos en la historia de la criptografía. En la década previamente mencionada, más concretamente en 1973, el
NIST (National Institute of Standards and Technology) estableció el DES, cuyas siglas significanestandar de cifrado de datos, y con dicho evento, se formalizó la relación entre los criptosistemas y la computadora como herramienta principal de éstos. A partir de esa fecha se vuelve impensable implementar un criptosistema sin involucrar el uso de computadoras o dispositivos electrónicos.
Algunas de las ventajas más significativas de la criptografía simétrica son:
En general los cifradores de llave simétrica son altamente eficientes.
Las llaves tienen una longitud relativamente corta.
Dichos cifradores pueden ser utilizados como primitivas para diversos mecanismos criptográficos, como generadores de número pseudo-aleatorios, funciones picadillo, etc.
Algunas de las desventajas de la criptografía de llave privada se listan a continuación;
En la comunicación entre dos entidades, la llave se debe mantener secreta en ambas partes, lo cual puede ser inconveniente o imprático en algunos escenarios.
En una red suficientemente grande, el manejo de llaves se vuelve muy complicado.
Idealmente en una comunicación entre dos entidades, la llave debe renovarse en cada sesión de comunicación
en secreto. Dicho problema se agrava a medida que aumenta el número de veces que se debe repetir la operación. En general, la distribución de llaves de manera segura se vuelve muy complicada cuando se realice entre en número cosiderablemente grande de entidades.
1.4.
Criptografía de llave pública
Toda vez que aún contando con el conocimiento de la llavee, resulte
computacional-mente inviable obtener d y/o descifrar el mensaje, el criptosistema (M, C, K, Ee, Dd)
se dice ser de llave pública, o simplemente asimétrico.
En 1976 Diffie y Hellman publican [15], trabajo que derivó en lo que la mayoría de los criptógrafos calificaron como el desarrollo más impactante en la criptografía. En di-cho trabajo se introdujo el concepto de criptografía de llave pública, y se presentó una forma ingeniosa de establecer (entre dos entidades) de manera segura las llaves para un criptosistema simétrico. Con la publicación de [15] nace la criptografía asimétrica, y se conoce así debido a que se usan llaves diferentes para las operaciones de cifrado y descifrado.
La criptografía de llave asimétrica forma parte crucial para la elaboración de firmas digitales, una primitiva criptográfica que sirve para relacionar un documento digital con la entidad que emite la firma. La firma digital sirve para cubrir los servicios de autntifi-cación, no repudio e integridad.
A pesar de que la criptografía de llave pública soluciona el problema de compartir una llave privada, trae consigo un problema nuevo; el de autentificar la identidad de los propietarios de la llave, pues es necesario garantizar la identidad del poseedor de una llave pública. Dicho problema usualmente requiere de la intervención de unatercera parte confiable.
Algunas ventajas de la criptogrfía de llave pública son: Sólo la llave privada debe mantenerse secreta.
En una red suficientemente grande solamente se requiere la presencia de una ter-cera parte confiable para el manejo adecuado de las llaves.
Muchos de los sistemas de llave pública se prestan para realizar mecanismos efi-cientes defirma digital.
Algunas desventajas son:
Las operaciones de cifrado y descifrado son considerablemente más lentas que las respectivas en los esquemas de llave simétrica.
La longitud de las llaves es más larga.
Ningún esquema de llave pública cuenta con una prueba de seguridad.
La razón de la ultima desventaja citada, se debe a que la seguridad de los criptosistemas de llave pública reside en la aparente intratabilidad de los problemas matemáticos en los que están basados.
1.5.
Diffie-Hellman
Anteriormente se habló sobre laintratabilidad de problemas. Un problema computa-cional se dice ser fácil o tratable, si éste puede ser resuelto en tiempo polinomial. En otras palabras, si existe un algoritmo que puede resolver una fracción no despreciable de instancias de un problema en tiempo polinomial, entonces el criptosistema, cuya seguri-dad está basada en dicho problema, se dice ser no seguro. Existen muchos problemas cuya complejidad es desconocida, por lo que se cree son intratables, aunque no existe prueba formal de ello.
Uno de los problemas intratables más estudiados es precisamente el que da susten-to al trabajo de Diffie y Hellman [15], el problema del logaritmo discreto, el cual será definido más adelante.
1.6.
RSA
En1977Rivest, Shamir y Adleman [48], dan a conocer el esquema de cifrado de llave pública RSA. Dicho esquema se mantiene vigente hasta nuestros días.
El esquema de cifrado de RSA, así como el esquema de firmas digitales de RSA, basan su seguridad en la intratabilidad de lo que se conoce como el problema de RSA. Dado un entero n que es producto de dos números primos impares diferentesp y q, un entero
positivo e tal que mcd(e,(p−1)(q−1)) = 1, y un entero c∈ {0, . . . , n−1}, encontrar
m tal que me ≡c(mod n).
Sin embargo también se puede resolver si se conocen los factores primos de n. En otras
palabras el problema de RSA puede ser reducido al de factorización: dado un entero positivo n = pe1
1 pe
2
2 · · ·pekk, donde cada pi son primos distintos y ei ≥1, encontrar tales
factores.
Los dos grandes motivadores de la criptografía son la secrecidad y la eficiencia, sin embargo por la naturaleza de los métodos para cifrar información, casi siempre tales metas llegan a ser objetivos que se comprometen entre sí. En otras palabras entre ma-yor sea el nivel de seguridad que se desea tener, los parámetros seleccionados para los criptosistemas comprometerán la eficiencia en el cálculo de las operaciones. RSA es un claro ejemplo, pues para tener un nivel de seguridad aceptable1 se debe usar un módulo
n de al menos 1024 bits de longitud. Tal condición repercute de manera directa en el desempeño de los cálculos necesarios.
1.7.
Criptografía de curvas elípticas
Con el afán de conseguir criptosistemas más eficientes, sin tener que sacrificar el nivel de seguridad deseado, se han buscado otras opciones, como es el caso de la crip-tografía de curvas elípticas, la cual será tratada más a fondo en los capítulos posteriores.
En 1985 Koblitz [31] y Miller[39], propusieron (independientemente) el uso de curvas
elípticas para crear sistemas criptográficos de llave pública. La idea no fue muy bien recibida por la comunidad de RSA, y fue hasta la década de 1990 comenzó a tener aceptación comercial cuando organizaciones acreditadas crearon protocolos de curvas elípticas, y compañias privadas incluyeron dichos protocolos en sus sistemas de seguri-dad.
Las curvas elípticas contruidas sobre campos finitos tienen considerables ventajas en eficiencia con respecto a RSA, pues para lograr un nivel equivalente a 80 bits de se-guridad, basta con usar datos de 160 bits de longitud. La tabla 1.1 nos da un idea más
precisa de la relación entre el nivel de seguridad y el tamaño de los parámetros nece-sarios para formar los criptosistemas en cuestión. La primera columna de la tabla 1.1
corresponde a s, los bits de seguridad ofrecidos por un criptosistemas, en otras palabras
se puede entender que serían necesarias 2s operaciones básicas (bit a bit) para poder
romper un cifrador simétrico que usa llaves de s bits de longitus. La segunda y tercera columna indican el tamaño de los parámetros necesarios para formar un criptosistema
1En la actualidad se busca garantizar un nivel de seguridad de80bits, nivel comparable al que se
de curvas elípticas y RSA respectivamente.
Tabla 1.1: Niveles de seguridad correspondientes a diversas longitudes de parámetros.
s Curvas elípticas RSA
80 160 1024
128 256 3072
256 512 15360
1.8.
Criptografía basada en emparejamientos bilineales
1.8.1.
Ataques
En la actualidad la criptografía basada en emparejamientos bilineales ha acapara-do la antención de la mayoría de los investigaacapara-dores, pues da pie a noveacapara-dosos esquemas criptográficos. La criptografía basada en emparejamientos surgió como un ataque pre-sentado por Menezes, Okamoto y Vanstone [38]. Dicho trabajo describía cómo usar el emparejamiento de Weil para reducir el problema del logaritmo discreto en un grupo cíclico, al problema de logaritmo discreto en el grupo de las raíces de unidad. Posterior-mente Frey y Rück [20], lograron un resultado similar usando el emparejamiento de Tate.
Tiempo después los emparejamientos fueron empleados con fines más constructivos. Desde entonces los emparejamientos han captado el interés de muchas personas, pues a pesar de sus significativas ventajas aún quedan diversas áreas de oportunidad, donde se pueden mejorar varios aspectos de los emparejamientos para lograr implementaciones más eficientes.
1.8.2.
Protocolos basados en emparejamientos bilineales
Las características de los emparamentas bilineales los hacen esencialmente atractivos para extender y completar las propiedades de la criptografía basada en curvas elípticas, pues los emparejamientos sirven como un puente entre la eficiencia de los grupos cíclicos aditivos formados por los puntos en una curva elíptica E, y las características de los grupos cíclicos multiplicativos.
1.8.2.1. Criptografía basada en la indentidad
Como se mencionó previamente, en la criptografía el uso de llaves es esencial para cifrar información, sin embargo típicamente las entidades que desean cifrar mensajes no están facultadas para elegir el contenido de dichas llaves.
La criptografía basada en la identidad fue planteada por Shamir en 1984, en [54], y la finalidad en ese esquema es lograr generar las llaves públicas a partir de datos que identifiquen a las entidades, y que fueran parte del dominio público. La criptografía basada en la identidad es el resultado de una ingeniosa forma de combinar las funciones picadillo, más concretamente laTransformación a Punto (Map to Point en inglés), y los emparejamientos bilineales.
1.8.2.2. Diffie-Hellman tri-partito de una ronda
Anteriormente se mencionó el trabajo presentado por Diffie y Hellman [15], y el impacto que produjo. Desde que fue planteada la posibilidad de intercambiar llaves pri-vadas de manera segura entre dos entidades, se pretendió extender el mismo intercambio para tres entidades. Lo anterior era posible, siempre y cuando se realizaran más de una ronda de intercambio de llaves. Joux en el 2000 [29] presentó una forma de realizar dicho intercambio en una sola ronda.
1.8.2.3. Firma corta
Las operaciones de cifrado y descifrado proveen el servicio de confidencialidad. Para poder obtener los servicios de autentificación, integridad y no-repudio, se hace uso de firmas digitales y verificación de las mismas. Hasta antes de que Boneh et al. [8] en-contraran una forma de producir una firma verificable con sólo dos datos, todos los esquemas de firmas previos, no así RSA, debían contener por lo menos tres datos para poder llevar a cabo su verificación.
1.8.2.4. Firma a ciegas
La firma a ciegas más trascendente fue ideada por Boldyreva [1], y no es la abstracción de un fenómeno que se presente en la vida cotidiana. Pues al contrario de las firmas manuscritas, en la firma a ciegas se busca que el signatario no pueda conocer el contenido de lo que firma. Tal firma se usa principalmente en esquemas de dinero electrónico, y votación electrónica.
1.8.2.5. Firma en cápsula de tiempo
determinada. En otras palabras, la verificación de una firma en cápsula de tiempo, de-pende de una fecha estipulada, y antes de dicha fecha, la firma será rechazada.
1.8.3.
Modelo de capas
En terminos de implementaciones, todo lo que se ha mencionado hasta ahora se puede abstraer en el modelo de capas de la figura1.1. En dicho modelo cada capa está construida sobre otra, simbolizando que las capas superiores son posibles una vez que ya se cuenta con las inferiores.
Emparejamientos Bilineales
Torres de campos Curvas Elípticas
Aritmética
+
−
ˆ
×
[image:25.612.213.432.256.479.2]Aplicaciones
Figura 1.1: Modelo de capas
La capa base es la aritmética de campos finitos; está formada por las operaciones de suma, resta, multiplicación, exponenciación, etc.
La segunda capa está dividida en dos secciones, las torres de campos y las curvas elíp-ticas, ambas construidas con las operaciones de la capa base.
Es importante mencionar que la operación más demandante en los protocolos men-cionados es el cálculo del los emparejamientos bilineales. Por tal motivo se busca cons-tantemente mejoras en los algoritmos para calcular los emparejamientos, y una manera natural de hacerlo es mediante la aceleración en las primeras tres capas de la figura 1.1, las cuales serán tratadas en los siguientes capítulos.
El modelo de capas presentado es tambén un retrato de la estructura del resto del contenido de esta tesis. En el capítulo 2 se presentan los conceptos matemáticos en los que están basados emparejamientos bilineales. En el mismo capítulo se presentan los algoritmos empleados para las operaciones aritméticas, además de mostrar la estructura de la torre de campos empleada.
En el capítulo 3 se da una breve introducción a las curvas elípticas contruidas sobre campos finitos, para posteriormente abordar el tipo de curvas con el que se trabajó en la presente tesis.
El capítulo 4 concentra la información necesaria para explicar el algoritmo utilizado en esta tesis para el cálculo del emparejamiento. Posteriormente en el capítulo 5 se muestran los resultados obtenidos de la tesis, presentando también una comparación con las implementaciones más importantes del estado del arte.
Capítulo 2
Aritmética de torres de campos
En este capítulo se abordan algunas de las definiciones de teoría de números y algebra abstracta [34, 36, 37], que como se mencionó en el capítulo 1, son la piedra angular de los métodos empleados en la criptografía.
2.1.
Grupos
Un grupo (G,•), se define como un conjunto G, con una operación binaria •, que satisface los siguientes axiomas:
Cerradura: 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-mutativoo grupo abeliano,
Conmutatividad: A•B =B•A, ∀A, B ∈G.
2.1.1.
Clase lateral
SiHes un subconjunto deG, y es un grupo con la misma operación•queG, entonces H es un sub-grupo deG. Si Ges un grupo, H un sub-grupo de G, y g ∈G entonces
gH={gh:h∈H} es la clase lateral izquierda deH enG.
Luego entonces, una clase lateral es una clase lateral izquierda o derecha de algún subgrupo de G. De manera más general se puede entender que una clase lateral es una copia desplazada de H.
2.2.
Anillos
Un anillo(R,+,×)es un conjuntoRcon dos operadores binarios+y×que cumplen los siguientes axiomas:
(R,+) es un grupo abeliano.
La operación × es asociativa.
R tiene identidad multiplicativa.
La operación × es distributiva sobre +.
R se dice ser conmutativo siA×B =B ×A, ∀A, B ∈R.
2.3.
Campos
Un campo es unanillo conmutativo en el cual cada elemento diferente de cero tiene un único inverso multiplicativo.
La característica u orden de un campo es 0 si Pm
i=11 nunca es igual a 0 para m ≥ 1. De otra forma la característica del campo es el menor entero positivo mtal que el valor de la suma anteriormente mencionada es 0.
2.4.
Campos finitos
Un campo finito es un campo F, el cual contiene un número finito de elementos. El orden de F es el número de elementos que éste tiene. Fq denota un campo finito con q
elementos.
Fq tiene:
un grupo aditivo F+q con q elementos.
un grupo multiplicativo F∗
q con q−1elementos.
Tanto el grupo aditivo como el multiplicativo son abelianos.
Un campo finito con q elementos existe solamente si q = pm, donde p es un número
2.5.
Extensiones de campo
Sean K y L campos, donde K ⊆L, K es entoncessub-campo de L, mientras que L
se dice ser una extensión de K.
Una extensión finita de Fq de grado m, es de la forma Fqm. Fqm ∼=Fq[x]/(f(x)), donde
f(x) es un polinomio irreducible de grado m en Fq.
Es importante mencionar que Fqr ⊆Fqs, si y sólo si r|s.
2.5.1.
Cerradura algebraica
Sean K y L campos, dondeK ⊆L, y α∈L, entoncesα se dice seralgebraica sobre
K si existe un polinomio no constante
f(x) =a0 +a1x+· · ·+am−1xm+1+amxm, ai ∈K
tal quef(α) = 0. Lse dice seralgebraico sobre K si todos sus elementos son algebraicos
sobre K. La cerradura algebraica de un campo K es el campo K¯ tal que es algebraico
sobre K y cada polinomio no constante g(x) con coeficientes en K tiene sus raices en
¯
K.
La cerradura algebraica de un campo finito Fq es la máxima de sus extensiones, es
decir:
¯
Fq = [
m≥1 Fqm
2.6.
Torres de campos
Se le conoce como torres de campos a las construcciones formadas por campos fini-tos, donde cada campo finito representa un nivel de la torre y por ende es una extensión de los campos de los niveles inferiores.
Por motivos que se expondrán en el capítulo 4, se pretende construir la extensión Fp12.
Si se hiciera de manera directa, los elementos enFp12 sería polinomios de grado a lo más m= 12 con coeficientes en el campo base Fp. De ser así las operaciones de la extensión serían altamente ineficientes, pues en el caso de una multiplicación, sería necesaro hacer
144 multiplicaciones entre coeficientes, aplicando un método de multiplicación de
com-plejidad cuadrática.
Fp2=Fp[u]/(u2−β)
Fp12 Fp12 =Fp6[w]/(w2−γ)
Fp6=Fp2[v]/(v3−ξ)
[image:30.612.225.395.79.251.2]Fp Fp
Figura 2.1: Torres de campos.
de lograr una aritmética más eficiente. Debido a que la extensión se puede descomponer como12 = 22·3, la torre de campo puede ser formada como se muestra en la figura2.1. En [14] se muestra un estudio sobre las diversas formas de representar las torres de campos en busca de la mayor eficiencia posible cuando se desea alcanzar la extensión Fp12. También se muestran diversos algoritmos para multiplicar y elevar al cuadrado en
cada una de las extensiones. En esta tesis optamos por representar la torre de campos como se muestra en la figura 2.1 debido a que de esa forma se logra un alto nivel de eficiencia en la aritmética de cada extensión.
2.6.1.
Operaciones en
F
pNaturalmente las operaciones de adición/substracción son realizadas entre elementos en Fp, y no requieren de mayor explicación. La multiplicación en cambio es vital para
el costo de las operaciones en las capas de la torre de campos, principalmente en la extensión doceava.
Como se mostró en la figura 1.1, las operaciones en Fp constituyen la base para el cálculo de emparejamientos bilineales, y por consiguiente resulta importante realizar una aritmética muy eficiente si se desea tener protocolos basados en emparejamientos que puedan ser calculados rápidamente.
2.6.1.1. Multiplicación
operaciones de adición y substracción tienen un costo bajo en comparación con la mul-tiplicación; la elevación al cuadrado regularmente se lleva a cabo mediante una multi-plicación por lo que termina teniendo el mismo costo; y la operación de encontrar el inverso multiplicativo de un elemento en Fp es más costosa, pero se realiza en contadas
ocasiones por lo que no se le puede considerar como una operación tan importante como la multiplicación.
Basados en el trabajo de [18], se buscó explotar las características de las curvas BN [4] (las cuales serán explicadas con mayor detalle en la sección4.3), con el fin de obtener un algoritmo eficiente para calcular c = a·b modp, donde p es un número primo y
a, b, c ∈ [0, p−1]. Además, para el caso concreto de las curvas BN el primo p es de la
forma p= 36t4+ 36t3+ 18t2+ 6t+ 1, dondet ∈Z.
La idea propuesta contempla representar a los operandos a y b como polinomios en
la variablet, para posteriormente calcular su producto mediante una versión polinomial del multiplicador de Montgomery.
De manera general, la idea involucra los siguientes pasos:
1. Seleccionar t
Seleccionar t con un peso de Hamming muy bajo, para tener un algoritmo eficiente
de reducción. Idealmente t debe ser un binomio. En esta tesis se proponen los valores
t = 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 operandosa, b∈Fp a baset. de manera que estos queden representados
como si fuesen polinomios de grado cuatro,a[t], b[t]. En este trabajo se usó el algoritmo
1, que puede ser encontrado en [11, 10]. Debido al hecho de que t es un binomio de grado 63 y a la forma del módulo p(t), al pasar los operandos a base t los primeros coeficientes de un polinomio x(t), llámense x0, x1, x2, x3 son enteros de 64 bits, puesto que cada coeficiente debe estar en el intervalo [0, t−1]. Mientras que el coeficiente x4 es un entero de 6 bits debido a que que se encuentra restringido a x4 <36; lo anterior se debe a que los elementos en Fp no son mayores a p, por lo que todo polinomio x(t)
Algorithm 1 Conversión de entero a polinomio[11, 10].
Entrada: Un entero0≤x < p, el módulo p(t) = 36t4+ 36t3+ 24t2+ 6t+ 1 y la baset. Salida: x(t) =P4i=0xiti, tal que x≡x(t)mod p, dondexi ≤t/2.
1: for i= 0 to 4 do
2: xi =x modt
3: x=x/t
4: if xi > t/2then
5: xi =xi−t
6: x=x+ 1
7: end if
8: end for
9: return x(t) =P4i=0xiti.
3. Calcular el producto
Calcular c[t] =a[t]·b[t] modp[t] usando el algorithmo2, el cual es una version poli-nomial del algoritmo de multiplicación de Montgomery [43].
Para fines prácticos, a partir de ahora nos referiremos a las multiplicaciones entre enteros de 64 bits, las multiplicaciones entre un entero de 64 bits y uno de 6, y las multiplicaciones entre enteros de 6 bits como multiplicaciones 64×64, 64×6 y 6×6
respectivamente.
Para poder llevar a cabo el producto de dos polinomios de grado cuatro, en la línea
1 del algoritmo 2, se utiliza el algoritmo de tipo Karatsuba propuesto en [44], gracias a eso, podemos calcular dicho producto en doce multiplicaciones 64×64 y una64×6, además de setenta y siete adiciones.
La línea 2 es gratuita, pues sólo implica quedarse con los primeros cuatro coeficien-tes de c(t).
El paso 3 es llevado a cabo con ocho multiplicaciones 64×6 debido a los coeficien-tes de p′(t), y quince adiciones. Es importante mencionar que las multiplicaciones con enteros de 6bits se pueden hacer mediante “sumas y corrimientos”, por lo que resultan considerablemente más baratas que si se realizaran mediante multiplicaiones.
Algorithm 2 Nuestra propesta del algoritmo polinomial de Montgomery.
Entrada: a(t) =P4i=0aiti, b(t) =P4i=0biti,p(t) = 36t4+ 36t3+ 24t2+ 6t+ 1, p′(t) =
−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) modt4 3: q(t)←u(t)p′(t) modt4 4: c(t)←(c(t) +q(t)p(t))/t4 5: return c(t).
Las multiplicaciones 64×64necesarias en el paso 1 producirán, en general, enteros de 128 bits que deben ser separados en una parte alta y una baja. En los pasos 3 y 4,
los resultados de los productos 64×6 también necesitan ser reducidos.
Sin embargo, aprovechando el hecho de que t tiene un peso de Hamming muy bajo,
con sólo dos coeficientes diferentes de cero, podemos obtener tanto la parte alta como la baja de manera eficiente (empleando únicamente adiciones de 64 bits), usando la reducción de Solinas, como se muestra en la figura 2.2.
0 63
126
Parte baja Parte alta
[image:33.612.193.457.370.497.2]+ t= 263−249
Figura 2.2: Reducción cont
En la tabla2.1 se aprecia una comparación entre el trabajo propuesto en [18] y nues-tra propuesta, donde las multplicaciones 64×64, las 64×6, las 6×6 y las adiciones
son representadas conM, m,˜ m y a respectivamente.
En ambos casos, el cálculo deu=cm´odr es gratis en terminos computacionales.
Tabla 2.1: Costo de operaciones del algoritmo polinomial de Montgomery
Fanet al. [18] Nuestra propuesta
c=a·b 16M+8m˜+1m+25a 12M+1m˜+177a
q=u·p′ 0 8m˜+15a
q=u·p 25m˜ 12m+˜ 77a
c= (c+q)/r 30a 8a
Total 16M+33m˜+1m+55a 12M+21m˜+177a
las sumas sean mucho más baratas que las multiplicación.
2.6.1.2. Inversión
La inversión enFp es realizada mediante el conocido algoritmo de inversión de
Mont-gomery [25]. En la aritmética de Montgomery se selecciona un valor R = 2ωm ≥ 2n,
donde m suele ser el tamaño de palabra del procesador donde se implementa dicha aritmética, y n = ⌈log2(p)⌉. El algoritmo 3 es el de Montgomery para hayar inversos
multiplicativos en un campoFp.
Algorithm 3 Algoritmo de Montgomery para encontrar el inverso multiplicativo Fp [25].
Entrada: Un primop > 2, n =⌈log2(p)⌉, R2 modp,ya¯=aR modp, dondeR = 2ωm.
Salida: a−1R mod p.
1: Encontrar el par de enteros (x, k), tal que x= ¯a−12k modp y n ≤k≤2n.
2: if k < ωm then
3: x←xR2. 4: k ←k+ωm.
5: end if
6: x←xR2. 7: x←x22ωm−k.
8: return x.
2.6.2.
Operaciones en
F
p2Como se mostró previamente en la figura 2.1, el primer nivel de la torre de campos, es la extensión cuadrática
Fp2 =Fp[u]/(u2−β)
donde β=−5.
2.6.2.1. Adición
El algoritmo 4 muestra la forma como se lleva a cabo la suma de dos elementos
A, B ∈Fp2.
Algorithm 4 Adición en Fp2 =Fp[u]/(u2−β). Entrada: A=a0+a1u∈Fp2 y B =b
0+b1u∈Fp2. Salida: C =c0 +c1u=A+B ∈Fp2.
1: c0 ←a0 +b0; 2: c1 ←a1 +b1;
3: return C =c0+c1u;
2.6.2.2. Multiplicación
A continuación se muestra el algoritmo 5, mismo que sirve para multiplicar dos elementos en Fp2 utilizando la técnica de Karatsuba-Ofman con el fin de reducir el
número de multiplicaciones en Fp.
Algorithm 5 Multiplicación en Fp2 =Fp[u]/(u2 −β).
Entrada: A, B ∈Fp2, donde A=a0+a1u y B =b0+b1u;ai, bi ∈Fp. Salida: C =A·B, C ∈Fp2, donde C=c0+c1u; ci ∈Fp.
1: t0 ←a0·b0 2: t1 ←a1·b1 3: c0 ←t0+t1·β
4: c1 ←(a0+a1)·(b0+b1)−t0−t1 5: return C ←c0+c1u.
Algorithm 6 Multiplicación con b0 ∈Fp.
Entrada: A=a0+a1u∈Fp2 y b0 ∈Fp. Salida: C=c0+c1u=A·b0 ∈Fp2.
1: c0 ←a0·b0; 2: c1 ←a1·b0;
3: return C=c0+c1u;
2.6.2.3. Elevación al cuadrado
Para elevar al cuadrado en Fp2, se hace uso del método complejo1, el cual tiene un
costo menor, en terminos de multiplicaciones en Fp, que si se utilizara el algoritmo 5.
Algorithm 7 Elevación al cuadrado en Fp2 =Fp[u]/(u2−β). Entrada: A∈Fp2, dondeA=a0+a1u; ai ∈Fp.
Salida: C=A2, C ∈F
p2, donde C =c0+c1u; ci ∈Fp.
1: c0 ←a0−a1 2: c3 ←5a1 +a0 3: c2 ←2(a0·a1) 4: c1 ←c2
5: c2 ←2c2
6: c0 ←c0·c3−c2
7: return C←c0+c1u.
2.6.2.4. Inverso multiplicativo
El inverso de un elemento A = a0 +a1u ∈ Fp2, puede ser calculado a partir de la
identidad(a0+a1u)−1 = (a0−a1u)/(a20−βa21), la cual queda plasmada en el algoritmo
8.
Algorithm 8 Inversión en Fp2 =Fp[u]/(u2−β). Entrada: A=a0+a1u∈Fp2.
Salida: C =c0 +c1u=A−1 ∈Fp2.
1: t0 ←a20; 2: t1 ←a21;
3: t0 ←t0−β·t1; 4: t1 ←t−01;
5: c0 ←a0 ·t1; 6: c1 ← −1·a1·t1; 7: return C =c0+c1u;
2.6.3.
Operaciones en
F
p6El segundo nivel de la torre de campos corresponde a la extensión cúbica sobre Fp2,
construida de la siguiente forma
Fp6 =F
p2[v]/(v3−ξ)
donde ξ=u.
2.6.3.1. Adición
En el algoritmo 9se muestra cómo llevar a cabo la adición de dos elementos en Fp6.
Algorithm 9 Adición in Fp6 =F
p2[v]/(v3−ξ).
Entrada: A=a0+a1v+a2v2 ∈Fp6 y B =b0+b1v+b2v2 ∈F
p6. Salida: C =c0 +c1v+c2v2 =A+B ∈Fp6.
1: c0 ←a0 +b0; 2: c1 ←a1 +b1; 3: c2 ←a2 +b2;
4: return C =c0+c1v+c2v2;
2.6.3.2. Multiplicación
En el algoritmo10, para multiplicar dos elementos enFp6, nuevamente se hace uso del
Algorithm 10 Multiplicación in Fp6 =Fp2[v]/(v3−ξ).
Entrada: A=a0+a1v+a2v2 ∈Fp6 y B =b0+b1v +b2v2 ∈F
p6. Salida: C=c0+c1v+c2v2 =A·B ∈Fp6.
1: t0 ←a0 ·b0; 2: t1 ←a1 ·b1; 3: t2 ←a2 ·b2;
4: c0 ←[(a1+a2)·(b1 +b2)−t1−t2]·ξ+t0; 5: c1 ←(a0 +a1)·(b0+b1)−t0−t1+ξ·t2; 6: c2 ←(a0 +a2)·(b0+b2)−t0−t2+t1; 7: return C=c0+c1v+c2v2;
El algoritmo 11 calcula el producto de A ∈ Fp6 por una constante b0 ∈ F
p2; sin
embargo, éste también puede ser usado para calcular el producto deApor una constante b′
0 ∈Fp usando el algoritmo 6, en lugar de la multiplicación general enFp2. Algorithm 11 Multiplicación by b0 ∈Fp2.
Entrada: A=a0+a1v+a2v2 ∈Fp6 y b0 ∈F
p2. Salida: C=c0+c1v+c2v2 =A·b0 ∈Fp6.
1: c0 ←a0·b0; 2: c1 ←a1·b0; 3: c2 ←a2·b0;
4: return C=c0+c1v+c2v2;
El algoritmo 12sirve para calcular el producto de dos elementos en Fp6 de la forma A=a0+a1v+a2v2, y B =b0+b1v+ 0v2, respectivamente.
Algorithm 12 Multiplicación by b0+b1v.
Entrada: A=a0+a1v+a2v2 ∈Fp6 y b0, b1 ∈Fp2 Salida: C=c0+c1v+c2v2 =A·(b0+b1v)∈Fp6.
1: t0 ←a0 ·b0; 2: t1 ←a1 ·b1;
3: c0 ←((a1+a2)·(b1)−t1)·ξ+t0; 4: c1 ←(a0 +a1)·(b0+b1)−t0−t1; 5: c2 ←a2·b0+t1;
6: return C=c0+c1v+c2v2;
2.6.3.3. Elevación al cuadrado
El algoritmo 13 calcula el cuadrado de A ∈ Fp6, a partir de la fórmula obtenida en
Algorithm 13 Elevación al cuadrado en Fp6 =Fp2[v]/(v3−ξ). Entrada: A=a0+a1v+a2v2 ∈Fp6.
Salida: C =c0 +c1v+c2v2 =A2 ∈Fp6.
1: c4 ←2(a0·a1); 2: c5 ←a22;
3: c1 ←c5·ξ+c4; 4: c2 ←c4−c5; 5: c3 ←a20;
6: c4 ←a0 −a1+a2; 7: c5 ←2(a1·a2); 8: c4 ←c24;
9: c0 ←c5·ξ+c3;
10: c2 ←c2+c4+c5−c3;
11: return C =c0+c1v+c2v2;
2.6.3.4. Inverso multiplicativo
El algoritmo 14 calcula el inverso de un elemento A ∈ Fp6 basado en la fórmula
obtenida en [50].
Algorithm 14 Inversión in Fp6 =F
p2[v]/(v3−ξ). Entrada: A=a0+a1v+a2v2 ∈Fp6.
Salida: C =c0 +c1v+c2v2 =A−1 ∈Fp6.
1: t0 ←a20; 2: t1 ←a21; 3: t2 ←a22; 4: t3 ←a0·a1; 5: t4 ←a0·a2; 6: t5 ←a1·a2; 7: c0 ←t0−ξ·t5; 8: c1 ←ξ·t2−t3; 9: c2 ←t1−t4; 10: t6 ←a0·c0;
11: t6 ←t6+ξ·a2·c1; 12: t6 ←t6+ξ·a1·c2; 13: t6 ←t−61;
14: c0 ←c0·t6; 15: c1 ←c1·t6; 16: c2 ←c2·t6;
2.6.4.
Operaciones en
F
p12Finalmente el último nivel de la torre de campos, la extensión Fp12 es representada
como
Fp12 =F
p6[w]/(w2−γ)
donde γ =√3 ξ.
2.6.4.1. Adición
En el algoritmo 15 se muestra la forma de llevar a cabo la adición de elementos en Fp12.
Algorithm 15 Adición in Fp12 =F
p6[w]/(w2−γ). Entrada: A=a0+a1w∈Fp12 y B =b0+b1w∈F
p12. Salida: C=c0+c1w=A+B ∈Fp12.
1: c0 ←a0+b0; 2: c1 ←a1+b1;
3: return C=c0+c1w;
2.6.4.2. Multiplicación
La extensión doceava es básicamente es una extensión cuadrática sobreFp6 por lo que
la aritmética es idéntica a la deFp2. El algoritmo16calcula el producto deA, B ∈Fp12.
Algorithm 16 Multiplicación in Fp12 =F
p6[w]/(w2−γ). Entrada: A=a0+a1w∈Fp12 y B =b0+b1w∈F
p12. Salida: C=c0+c1w=A·B ∈Fp12.
1: t0 ←a0 ·b0; 2: t1 ←a1 ·b1; 3: c0 ←t0+t1·γ;
4: c1 ←(a0 +a1)·(b0+b1)−t0−t1; 5: return C=c0+c1w;
Algorithm 17 Multiplicación por B =b0+b1w, donde b0 ∈Fp2 y b1 =b10+b11v+ 0v2 Entrada: A = a0 +a1w ∈ Fp12 y B = b0 +b1w ∈ F
p12, with b0 = b00+ 0v + 0v2 y b1 =b10+b11v+ 0v2.
Salida: C =c0 +c1w=A·B ∈Fp12.
1: t0 ←a0·b0; (Algoritmo 11)
2: t1 ←a1·b1; (Algoritmo 12)
3: c0 ←t0+t1·γ;
4: t2 ←(b0+b10)v+b11v + 0v2;
5: c1 ←(a0+a1)·t2; (Algoritmo 12)
6: c1 ←c1−t0−t1; 7: return C =c0+c1w;
2.6.4.3. Elevación al cuadrado
Nuevamente el algoritmo18hace uso del método complejo para calcular el cuadrado deA∈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
Algorithm 19 Inverso multiplicativo en Fp12 =Fp6[w]/(w2−γ). Entrada: A=a0+a1w∈Fp12.
Salida: C=c0+c1w=A−1 ∈Fp12.
1: t0 ←a20; 2: t1 ←a21;
3: t0 ←t0−γ·t1; 4: t1 ←t−01; 5: c0 ←a0·t1; 6: c1 ← −1·a1·t1; 7: return C=c0+c1w;
[image:42.612.167.417.327.440.2]2.6.5.
Costo
Tabla 2.2:Notación propuesta para representar las operaciones de cada extensión
Fp Fp2 Fp6 Fp12
Adición/Substracción a ã A Ã
Multiplición m m˜ M M˜
Elevación al cuadrado s ˜s S ˜S
Inversión i ˜i I ˜I
Multiplicación por β mβ
Multiplicación por ξ mξ
Como se mencionó previamente, la idea de formar la torre de campos con la estruc-tura descrita es con el fin de lograr la mayor eficiencia posible. Sin embargo hasta ahora sólo se han mencionado los algoritmos empleados para la aritmética de la torre sin haber dado a conocer el beneficio de éstos.
Para aclarar los detalles sobre la eficiencia de la torre de campos es necesario establecer una medida confiable sobre la cual podamos determinar qué tan costosas son nues-tras operaciones en las extensiones de la torre. La forma más conveniente de hacerlo es contando las operaciones en los campos base necesarias por cada operación de cada extensión.
Por conveniencia expresaremos el costo de las operaciones en Fp2 en términos de las
operaciones en Fp. Mientras que el resto de las extensiones, Fp6 y F
p12, serán
represen-tadas en terminos de las operaciones en Fp2. De igual manera expresaremos los costos
de ahora usaremos la notación propuesta en la tabla 2.2.
[image:43.612.96.555.203.311.2]La tabla 2.3 lista los costos computacionales de la torre de campos bajo las condiciones previamente descritas.
Tabla 2.3: Costos computationales de la aritmetica de la torre de campos.
Campo Ad./Sub. Mult. Cuadrado Inversión
Fp2 ˜a= 2a m˜ = 3m+ 3a+mβ ˜s= 2m+ 3a+mβ
˜i= 4m+mβ +2a+i
Fp6 3˜a 6 ˜m+ 2m
ξ+ 15˜a 2 ˜m+ 3˜s+ 2mξ+ 8˜a
9 ˜m+ 3˜s+ 4mξ
+4˜a+ ˜i
Fp12 6˜a 18 ˜m+ 6mξ+ 60˜a 12 ˜m+ 4mξ+ 45˜a 25 ˜m+ 9˜s+ 12mξ
Capítulo 3
Curvas elípticas
Una curva elíptica E es la gráfica correspondiente a una ecuación de la forma
y2+a1xy+a3y=x3+a2x2+a4x+a6,
conocida como laecuación generalizada de Weierstraß, dondeai son constantes y∆6= 0,
donde ∆es el discriminante deE, definido de la siguiente manera.
∆ = −d2
2d8−8d34−27d26+ 9d2d4d6
d2 = a21+ 4a2
d4 = 2a4+a1a3
d6 = a23+ 4a6
d8 = a21a6+ 4a2a6−a1a3a4+a2a23−a24
∆ 6= 0 nos asegura que la curva sea suave, en otras palabras que los puntos de la curva tengan solamente una tangente. Tanto las constantes como las variables deben pertenecer a un campo, ya sea R, C, Q o incluso Fq, dondeq =pm, con m ≥1.
Sin embargo también existe una versión particular de dicha ecuación, conocida sim-plemente como la ecuación de Weierstraß:
y2 =x3+Ax+B,
dondeAyB son contantes. En la figura3.1 se puede apreciar la gráfica correspondiente a ese tipo de curva elíptica con valores enR.
3.1.
Punto al infinito
Figura 3.1:E:y2 =x3
+Ax+B
en la parte más alta como la más baja del eje de las ordenadas. Lo anterior tiene sentido cuando en lugar de estar trabajando con elementos en R, se tiene un campo finito, en tal caso no es necesario distinguir la parte superior de la inferior del eje de las ordenadas.
Una linea pasa por O solamente cuando ésta es vertical. Todas las lineas verticales se intersectan en O; por simetría eso ocurre en la parte superior e inferior, sin embargo ambos son el mismo punto O.
3.2.
Ley de grupo
En una curva elíptica es posible empezar con un punto, para producir otro. Sin embargo se suele comenzar con dos puntos
P1 = (x1, y1), P2 = (x2, y2)
en una curva elíptica E dada por la ecuacióny2 =x3+Ax+B. Para definir un punto nuevoP3 se traza un lineaLdeP1 aP2. Como se puede ver en la figura3.2,Lintersecta
E en un tercer punto P′
3, reflejando P3′ con respecto al eje de las abscisas obtenemos
P31. Tal procedimiento se define
P1+P2 =P3.
La operación de doblado de un punto es una adición cuyos operandos son el mismo punto P1, y la linea L es la tangente de P1 como se muestra en la figura 3.3.
Sea E una curva elíptica definida por y2 = x3 + Ax + B, y sean P
1 = (x1, y1) y
P2 = (x2, y2) puntos en E, donde P1, P2 6= O; P1 +P2 = P3 = (x3, y3) se define de la siguiente manera
1Reflejar un puntoP con respecto al ejexsolamente implica negar su coordenada y. Tal operación
1. Sí x1 6=x2, entonces
x3 =m2−x1−x2, y3 =m(x1−x3)−y1, dondem =
y2−y1
x2−x1
2. Sí x1 =x2 peroy1 6=y2, entonces
P1+P2 =O
3. Sí P1 =P2 y y1 6= 0, entonces
x3 =m2−2x1, y3 =m(x1−x3)−y1, donde m=
3x2 1+A
2y1
4. Sí P1 =P2 y y1 = 0, entonces
P1+P2 =O
Adicionalmente P +O=P,∀P ∈E.
Teorema 3.2.1. La adición de puntos en una curva elíptica E satisface las siguientes propiedades:
Conmutatividad
Existencia de identidad
Existencia de inverso
Asociatividad
En otras palabras, los puntos en E forman un grupo aditivo abeliano con O como el elemento identidad.
3.3.
Curvas sobre campos finitos
Supóngase que E está definida sobre un campo finito Fp, entonces las puntos en E
serán los pares de coordenadas (x, y), tales que x, y ∈ Fp satisfagan la ecuación de la
curva elíptica. Además tal curva es denotada por E(Fp).
Varias propiedades del grupo E(Fp) son importantes en el contexto de la criptografía,
P3
P′
3
P2
[image:48.612.120.245.69.205.2]P1
Figura 3.2: Suma de puntos.
2P1
[image:48.612.360.488.73.206.2]P1
Figura 3.3: Doblado de un punto.
3.3.1.
Orden del grupo
Sea E una curva elíptica definida sobre Fq, el número de puntos enE(Fq), denotado
como #E(Fq), es el orden deE(Fq). Debido a que la ecuación de Weierstraß tiene a lo
más dos soluciones para cada x∈Fq, se sabe de antemano que#E(Fq)∈[1,2q+ 1], sin
embargo el siguiente teorema brinda límites más precisos.
Teorema 3.3.1. Hasse [25]. Sea E una curva elíptica definida sobre Fq, entonces el orden de E esta dado por:
q+ 1−2√q≤#E(Fq)≤q+ 1 + 2√q.
Tal intervalo es conocido comointervalo 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 y tangentes. Sin embargo, ya sea para sumar dos puntos o para doblar uno, tales formulas requieren de una inversión y varias multiplicaciones en Fp. Es por eso que en busca de
lograr mayor eficiencia en una operación que suele ser repetida en un gran número de veces, se idearon nuevas formas de representar los puntos.
3.3.2.1. Coordenadas jacobianas
Lascoordenadas jacobianas son una particularización de las coordenadas proyectivas (vease [12,58,25]). Con las coordenadas jacobianas la curvaEestá dada por la ecuación
Un punto (X1 : Y1 : Z1) enE corresponde a un punto (X1/Z12, Y1/Z13) en coordenadas afines, conZ1 6= 0. De esta correspondencia se deduce que para pasar un punto (x, y)a coordenadas jacobianas solamente hay que agregarle su coordenadaZ = 1.
El punto al infinito O es representado como (1 : 1 : 0), y la negación de un punto (X1 :Y1 :Z1) es (X1 :−Y1 :Z1).
3.3.2.2. Doblado de un punto
Utilizando la representación de un punto en coordenadas jacobianas, P = (X1 :
Y1 : Z1), se puede utilizar la fórmula previamente vista y adaptarla para obtener las siguientes ecuaciones para calcular 2P = (X3 :Y3 :Z3):
X3 = (3X12+aZ14)2−8X1Y2,
Y3 = (3X12+aZ14)(4X1Y12−X3)−8Y4,
Z3 = 2Y1Z1.
Pero con ayuda de algunos valores temporales se puede reducir aún más el costo del doblado a seis elevadas al cuadrado y cuatro multiplicaciones usando el algoritmo 20.
Algorithm 20 Doblado de un punto en coordenadas jacobianas.
Entrada: P = (X1, Y1, Z1).
Salida: 2P = (X3, Y3, Z3). 1: t1 ←Y12.
2: t2 ←4X1·t1. 3: t3 ←8t21.
4: t4 ←3X12+aZ14. 5: X3 ←t24−2t2.
6: Y3 ←t4·(t2−X3)−t3. 7: Z3 ←2Y1·Z1.
8: return 2P = (X3 :Y3 :Z3).
3.3.2.3. Suma con coordenadas mixtas
De igual manera que con el doblado de un punto, utilizando las coordenadas jaco-bianas, se puede obtener un algoritmo más eficiente para la suma de puntos. Sin embargo la mejor forma de hacerlo implica usar coordenadas mixtas, es decir que uno de los pun-tos esté definido en coordenadas jacobianas, y el otro en afines.
entonces se puede utilizar la fórmula para coordenadas afines, y obtener las siguientes ecuaciones para calcular R = (X3 :Y3 :Z3) =P +Q [58]:
X3 = (Y2Z13 −Y1)2−(X2Z12−X1)(X1+X2Z12),
Y3 = (Y2Z13 −Y1)(X1(X2Z12−X1)2−X3)−Y1(X2Z12−X1)3,
Z3 = (X2Z12−X1)Z1.
Nuevamente, almacenando valores temporales se puede reducir el costo de la suma de puntos a tres elevadas al cuadrado y ocho multiplicaciones con el algoritmo 21.
Algorithm 21 Suma de puntos con coordenadas mixtas. Entrada: P = (X1, Y1, Z1) y Q= (X2, Y2, Z2).
Salida: R= (X3, Y3, Z3). 1: t1 ←Z12.
2: t2 ←Z1·t1. 3: t3 ←X2·t1. 4: t4 ←Y2·t2. 5: t5 ←t3−X1. 6: t6 ←t4−Y1. 7: t7 ←t25. 8: t8 ←t7·t5. 9: t9 ←X1·t7.
10: X3 ←t26−(t8+ 2t9).
11: Y3 ←t6·(t9−X3)−Y1·t8. 12: Z3 ←Z1·t5.
13: return 2P = (X3 :Y3 :Z3).
3.3.3.
Multiplicación por escalar
La operación de multiplicación, se lleva a cabo mediante un escalar k y un punto P ∈E, denotada por kP. Naturalmente dicha operación no es otra cosa que repetir k
veces la operacion de adición sobre P.
kP =P +P +· · ·+P
| {z }
k veces
La idea es representar el escalark en forma binaria, y recorrer los bits de éste mientras
se dobla el puntoQ incondicionalmente, y realizando sumas de puntos si el bit es1, tal
como se muestra en el algoritmo 22.
Algorithm 22 Método binario para multiplicación por un escalar de izquierda a
derecha.
Entrada: k = (kl−1, ..., k1, k0)2 y P ∈E(Fp).
Salida: Q=kP.
1: for i=l−1 downto0 do
2: Q= 2Q.
3: if ki = 1 then
4: Q=Q+P.
5: end if
6: end for
7: return Q.
3.3.4.
Orden de un punto
En el caso de un punto P ∈E(Fq), el orden de un punto es el mínimo entero r tal
que rP =O. Es importante destacar que el orden de un punto siempre va a dividir el
orden de E(Fq)
3.3.4.1. Problema del logaritmo discreto en curvas elípticas
En la sección 1.5 se menciona que la seguridad del método propuesto en [15] radica en la aparente dificultad de resolver el siguiente problema:
El problema del logaritmo discreto: Dado G un grupo cíclico multiplicativo de orden
r, α un generador deG, y un elementoβ ∈G, encontrar el enterox, 0≤x≤r−1, tal queαx =β.
La seguridad de las curvas elípticas se basa en el problema de logaritmo discreto en tales curvas. Como se menciono previamente, los puntos en la curva forman un grupo aditivo, por lo que el problema del logaritmo discreto en un grupo aditivo, escrito como G=hPi, se puede enunciar como sigue: dadosP, Q∈G, encontrar el enterox∈[0, r−1]
tal que Q=xP.
grupos aditivos formados por puntos sobre una curva elíptica, que a su vez está definida sobre un campo finito.
Es importante destacar que el problema del logaritmo discreto para curvas elípticas es más díficil de resolver que para campos cíclicos multiplicativos.
3.3.5.
Puntos de torsión
Los puntos de torsión son aquellos puntos en E cuyo orden es finito. Más
con-cretamente, se les conoce como puntos de torsión r a aquellos puntos cuyo orden es
precisamente r, y son denotados por E[r], además éstos son un subconjunto de E(Fp).
Es importante para propositos criptográficos que r sea un factor primo de #E(Fp)
su-ficientemente grande como para garantizar un nivel de seguridad deseado.
Existe más de una forma para determinar si una curva es ordinaria o supersingular, sin embargo una manera sencilla de hacer es la siguiente: una curva elíptica E(Fp) es
llamada ordinaria si E[p]≃Zp. En cambio si E[p]≃0, entonces se dice ser
Capítulo 4
Emparejamientos bilineales
4.1.
Emparejamiento de Tate
4.1.1.
Divisores
Sea E una curva elíptica definida sobre un campo K. Para cada punto P ∈ E( ¯K),
se define un símbolo formal (P), siendo K¯ la cerradura algebraica de K. Un divisor D
sobre E es una combinación lineal finita de tales símbolos con coeficientes enteros:
D=X
j
aj[Pj], aj ∈Z,
por lo tanto un divisor es un elemento del grupo abeliano generado por los símbolos(P).
El grupo de divisores sobre E es denotado como Div(E). Y el soporte, el grado y la suma de un divisor, respectivamente, se definen como:
sop(X
j
aj[Pj]) = {P ∈E|aj 6= 0}
deg(X
j
aj[Pj]) =
X
j
aj ∈Z
sum(X
j
aj[Pj]) =
X
j
ajPj ∈E( ¯K)
La suma del divisor usa la ley de grupo deE para sumar los puntos de cada símbolo. Los
4.1.1.1. Funciones sobre la curva
Para el caso en que E está definida por la ecuación y2 =x3+Ax+B, una función sobreE es una fracción de polinomios, también llamada función racional, definida de la siguiente manera:
f(x, y)∈K¯[x, y],
la cual está definida para al menos un punto en E( ¯K). La función puede tomar valores
enK¯ ∪ ∞.
Una función se dice tener un cero en el punto P, si al evaluarla con los valores de
las coordenadas de P, ésta toma el valor de 0; y se dice tener un polo en P, si toma el valor de ∞. Por supuesto, el número de ceros y polos es finito.
Existes una función uP,conocida como uniformador en P, tal que uP(P) = 0, y
to-da función f(P)puede ser escrita como:
f =unPg,
donde n es un entero y g(P)6= 0,∞. A n se le conoce como el orden de f en P, y está representado por ordP(f).
El divisor de una función f está definido como:
div(f) = X
P∈E
ordP(f)(P)
y es importante mencionar que div(f) = 0, solamente si f es una función constante. Se le conoce como divisor principal sobre E a aquel divisor que es igual a div(f), para
alguna función f deE.
Los divisores D1, D2 ∈ Div(E) se dicen ser equivalentes, y se denotan D1 ∼ D2, si la diferencia de ambosD1−D2 es un divisor principal, por lo que tal diferencia se puede escribir comoD1 =D2+div(f) para alguna función racional f.
Supóngase que se tiene un punto P ∈ E(Fp)[r], entonces r(P)− r(O) es un divisor principal, y por lo tanto existe una función fr,P ∈ E(Fp) cuyo divisor div(fr,P) =
r(P)−r(O). Adicionalmente consideremos un punto Q, el cual representa la clase
lat-eral en E(Fp12)/rE(F
p12).A partir de éste podemos construir un divisor D
Q ∈Div0(E),
que cumpla las siguientes propiedades:
sop(DQ)∩sop(div(fr,P)) = 0
Luego entonces el emparejamiento de Tate
e(·,·) :E(Fp)[r]×E(Fp12)/rE(F
p12)→F×
p12/(F
×
p12)
r
está dado por
e(P, Q) = fr,P(DQ).
Es importante mencionar que el emparejamiento de Tate no depende de la selección de
fr,P, ni de la selección del divisor DQ.
4.1.2.
Propiedades del emparejamiento de Tate
Los emparejamiento bilineales tiene diversas propiedades, sin embargo, para fines criptográficos, son las siguientes las que nos interesan:
◮ Está bien definido.
e(O, Q) = 1 para todo punto Q ∈ E(Fpt). Y e(P, Q) ∈ (F×
p12)r para todo P ∈ E(Fp)[r] y todoQ∈rE(Fp12).
◮ No es degenerativo.
Para cada punto P ∈E(Fp)[r]
O hay algún punto Q∈E(Fp12) tal que e(P, Q)∈/ (F×
p12)r
◮ Es bilineal.
Para todos P, P1, P2 ∈E(Fp) y todosQ, Q1, Q2 ∈E(Fp12), tenemos que
e(P1+P2, Q)≡e(P1, Q)e(P2, Q)
y
e(P, Q1 +Q2)≡e(P, Q)e(P, Q2)
Particularmente la propiedad de bilinealidad es la que hace a los emparejamientos bi-lineales la gran fuente de protocolos que son hoy en día.