Вы находитесь на странице: 1из 36

Pairings y sus

aplicaciones
Lloren Huguet Rotger
Josep Rif Coma
Juan Gabriel Tena Ayuso
PID_00200950

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

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

ndice

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.

Pairings en curvas elpticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.1.

Aplicaciones bilineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.

El pairing de Weil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.3.

Pairing modificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.3.1.

Construccin explcita de el . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.3.2.

El algoritmo de Miller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

Grado de inmersin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.

Ataques basados en pairings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

3.

Criptografa basada en la identidad . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.1.

Intercambio de claves en criptografa basada en la identidad .

22

3.1.1.

Acuerdo bipartito de claves . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.1.2.

Acuerdo tripartito de claves . . . . . . . . . . . . . . . . . . . . . . . . . .

24

3.2.

Cifrado basado en la identidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.3.

Esquemas de firma basados en la identidad . . . . . . . . . . . . . . . . . . .

27

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

31

Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

1.4.

CC-BY-NC-ND PID_00200950

Introduccin

Una de las herramientas de la geometra de las curvas elpticas que se han


demostrado ms fructferas en criptografa son los denominados pairings. Los
pairings son aplicaciones bilineales definidas sobre los puntos de una curva
elptica y con valores en un grupo cclico de races de la unidad, grupo contenido en un cierto cuerpo finito.
Existen diversos tipos de pairings, siendo los fundamentales el pairing de Weil
y el de Tate. Recientemente han sido propuestos otros tipos de pairings: eta
pairings, ate, omega pairings, etc, los cuales tienen en realidad solo un carcter
auxiliar y algunos solo son aplicables a tipos particulares de curvas.
El pairing de Tate es ms general que el de Weil (puede aplicarse a curvas ms
generales que las elpticas) y ofrece ciertas ventajas computacionales, sin embargo, es ms difcil de describir por lo que, en lo que sigue, consideramos
solo el segundo. En cualquier caso, no estando interesados en la computacin
explcita de tales pairings, sino en el papel que juegan en criptografa, ello es
en realidad irrelevante y la eleccin del pairing de Weil est motivada exclusivamente por la claridad en la exposicin.
Las aplicaciones criptogrficas de los pairings son de dos tipos. Por una parte se
han utilizado con un propsito destructivo, para disear ataques al problema
del logaritmo discreto elptico, y de otra, desde un punto de vista constructivo,
constituyen una herramienta bsica de un nuevo paradigma, el de la criptografa basada en la identidad. El ataque basado en pairings tiene como consecuencia que ciertas curvas elpticas, las denominadas supersingulares, no se
consideren actualmente seguras para implementar criptosistemas y protocolos criptogrficos basados en el logaritmo discreto elptico, pero curiosamente
tales curvas supersingulares son idneas para la criptografa basada en la Identidad.
Describiremos en lo que sigue los pairings y los dos tipos de aplicaciones criptogrficas mencionadas.

Pairings y sus aplicaciones

CC-BY-NC-ND PID_00200950

Objetivos

En los materiales didcticos de este mdulo el estudiante encontrar los contenidos necesarios para alcanzar los objetivos siguientes:

1. Conocer el concepto de pairing en curvas elpticas, especficamente el


pairing de Weil.
2. Conocer las aplicaciones criptogrficas de los pairings, sobre todo las enfocadas al clculo del logaritmo discreto elptico y las enfocadas a la criptografa basada en la identidad.
3. Conocer algn protocolo especfico de criptografa basada en la identidad
(acuerdo de claves, cifrado y firma).
4. Saber escribir software para implementar los protocolos anteriores.

Pairings y sus aplicaciones

CC-BY-NC-ND PID_00200950

1. Pairings en curvas elpticas


.

En este apartado se describen los pairings definidos sobre una curva elptica y
se estudian sus propiedades. Se muestra asimismo cmo el grupo de llegada
de un pairing est contenido en un cuerpo finito, extensin del cuerpo base de
definicin de la curva, se define el grado de inmersin y se discute el valor del
mismo.

1.1. Aplicaciones bilineales


Los pairings son aplicaciones bilineales entre ciertos grupos abelianos. Comencemos considerando las aplicaciones bilineales entre espacios vectoriales, sin
duda ms familiares al lector y cuya definicin y propiedades se trasladarn
inmediatamente al lenguaje de pairings.
Sea K un cuerpo conmutativo y V1 ,V2 ,W, tres espacios vectoriales sobre K.
.
Definicin 1.1. Una aplicacin f : V1 V2 W se denomina bilineal
si es aplicacin lineal de espacios vectoriales en cada una de las varia-

bles, es decir, si para todo a,a V1 , b,b V2 , K, se verifican las


cuatro propiedades siguientes:
1) f (a + a ,b) = f (a,b) + f (a ,b)
2) f (a,b) = f (a,b)
3) f (a,b + b ) = f (a,b) + f (a,b )
4) f (a,b) = f (a,b)
Si W = K una aplicacin bilineal se denomina forma bilineal.

Supongamos que se tiene V1 = V2 = V, entonces podemos dar la siguiente


definicin.
.
Definicin 1.2. Una aplicacin bilineal f : V V W se denomina:
1) Simtrica si a,b V se verifica: f (a,b) = f (b,a).
2) Antisimtrica si a,b V se verifica: f (a,b) = f (b,a).
3) Alternada si a V se verifica: f (a,a) = 0.

Pairings y sus aplicaciones

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

Formas cuadrticas

Lema 1.3.

Si f : V V K es una
forma bilineal simtrica la
aplicacin
q : V K, q(a) = f (a,a) se
denomina forma cuadrtica.
La teora de las formas
cuadrticas, estrechamente
relacionada con la de formas
bilineales simtricas, es una
rama importante del lgebra,
y sin duda es familiar al lector
a propsito del estudio de las
cnicas y cudricas.

Toda forma bilineal alternada es antisimtrica. Si la caracterstica del


cuerpo K es diferente de 2 se verifica el recproco.

Demostracin:
1) Supongamos f alternada; para a,b V se tendr:
0 = f (a + b,a + b) = f (a,a) + f (a,b) + f (b,a) + f (b,b) = 0 + f (a,b) + f (b,a) + 0

(1)

luego f (a,b) = f (b,a), es decir f es antisimtrica.


2) Supongamos f antisimtrica, en particular para a = b, se tiene

f (a,a) = f (a,a) 2f (a,a) = 0.

(2)

Puesto que la caracterstica de K es diferente de 2, debe ser f (a,a) = 0, es decir


f es alternada.

Ejemplo 1.1. Sean K = R y V = R2 . Los elementos a V sern vectores con dos


coordenadas reales, a = (x,y). Sean las siguientes formas bilineales f : V V R:
1) f ((x,y),(x ,y )) = axx + b(xy + x y) + cyy , a,b,c R: Forma simtrica

2) f ((x,y),(x ,y )) = xy yx : Forma antisimtrica y alternada

3) f ((x,y),(x ,y )) = axx + bxy + b x y + cyy , a,b,b ,c R, b 6= b : Ni simtrica ni antisimtrica

.
Definicin 1.4. Sea f : V1 V2 W una forma bilineal. Se denomina

ncleo por la izquierda de f al conjunto Kerizq = {a V1 ; f (a,b) =

0, b V2 }. Anlogamente se denomina ncleo por la derecha de f al


conjunto Kerder = {b V2 ; f (a,b) = 0, a V1 }.

.
Lema 1.5. El elemento 0 V1 pertenece a Kerizq y el elemento 0 V2

pertenece a Kerder

Observacin
La forma cuadrtica asociada
a la forma bilineal simtrica
f ((x,y),(x ,y )) =
axx + b(xy + x y) + cyy es la
q((x,y)) = ax2 + 2bxy + cy2 .

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

Demostracin: Para cualquier a V1 , b V2 se tiene,


f (a,b) = f (0 + a,b) = f (0,b) + f (a,b) f (0,b) = 0 0 Kerizq .

(3)

El resultado para 0 Kerder es anlogo.


.
Definicin 1.6. La aplicacin f se denomina no degenerada por la
izquierda si Kerizq = {0} y no degenerada por la derecha si Kerder = {0}.

Es evidente que si f es simtrica o antisimtrica se verifica Kerizq = Kerder .


.
Definicin 1.7. f : V V W aplicacin bilineal simtrica o antisimtrica se denomina no degenerada si verifica las condiciones equivalentes siguientes:
1) f es no degenerada por la izquierda.
2) f es no degenerada por la derecha.
3) Para todo a V existe un b V tal que f (a,b) 6= 0 (y tambin
f (b,a) 6= 0).

Caso contrario se denomina degenerada.

Ejemplo 1.2.
Sean K = R y V = R2 .
La aplicacin bilineal simtrica, f : VV K, f ((x,y),(x ,y )) = xx +yy , es no degenerada.
La aplicacin bilineal simtrica, f : V V K, f ((x,y),(x ,y )) = xx , es degenerada: todo
elemento (0,y) pertenece al ncleo por la izquierda (o por la derecha).

Como se ha indicado, la definicin de aplicacin bilineal puede formularse


para grupos abelianos. Para adaptarnos a la notacin posteriormente utilizada
para pairings, supongamos dos grupos abelianos A,B con notacin aditiva y C
un grupo abeliano con notacin multiplicativa.
.
Definicin 1.8. Una aplicacin f : A B C se denomina bilineal si
verifica:

1) f (a + a ,b) = f (a,b) f (a ,b)


2) f (a,b + b ) = f (a,b) f (a,b )

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

10

Las definiciones y propiedades antes enunciadas (simtrica, antisimtrica, alternada, no degenerada) siguen siendo vlidas en este caso, con los cambios
de notacin pertinentes (en particular el elemento neutro de C debe escribirse
ahora 1).

1.2. El pairing de Weil


Sea E una curva elptica definida sobre un cuerpo conmutativo K (en el contexto de las aplicaciones criptogrfcas K ser un cuerpo finito). Los pairings
son aplicaciones bilineales que aplican un par de puntos de E en un elemento
de un grupo cclico finito, cuyos elementos pueden identificarse con races de
la unidad, grupo que en el caso K = Fq , cuerpo finito con q elementos, veremos que puede considerarse contenido en un cuerpo Fqk con qk elementos,
para un cierto valor k.
Tomaremos como modelo el pairing de Weil, el primer tipo de pairing propuesto*. Para cada entero l, primo con la caracterstica del cuerpo, se tiene
un pairing de Weil el , el cual est definido en los puntos del subgrupo E[l]

* Ver, por ejemplo, A. Menezes


(1993). Elliptic Curves Public Key
Cryptography. Kluwer.

de l-torsin de E (subgrupo que definimos a continuacin) y a valores en un


grupo cclico l con l elementos, cuya ley de grupo escribiremos con notacin multiplicativa. Puesto que todo elemento x l verifica xl = 1, puede

interpretarse l como el grupo de las races l-simas de 1. A un generador de

este grupo cclico le llamaremos, en este contexto, raz primitiva l-sima de la


unidad.
Observacin

.
Definicin 1.9. Los puntos de l-torsin de una curva elptica son los
elementos del conjunto E[l] = {P E; l P = 0}, donde como habitual-

mente l P indica el producto escalar de l por el punto P.

Es evidente que el conjunto E[l] es un subgrupo del grupo E(K) de puntos de


es una clausura algebraica de K podemos definir
E racionales sobre K. Si K
de puntos de l-torsin racionales sobre K.
El
anlogamente el grupo E[l](K)
tiene cardinal l2 y la siguiente estructura (Silverman, 1986).
grupo E[l](K)

En las aplicaciones
criptogrficas basadas en el
logaritmo discreto elptico, se
trabaja en el grupo cclico
generado por un punto
P E. Si l es el orden de P
(usualmente primo) es
entonces el pairing el el que
se considera

Referencia bibliogrfica
J. H. Silverman (1986). The
Arithmetic of Elliptic Curves.
Springer-Verlag.

.
Lema 1.10.

Z/lZ Z/lZ
E[l](K)

(4)

CC-BY-NC-ND PID_00200950

11

no estn todos necesariamente defiSin embargo, estos l2 puntos de E[l](K)


nidos sobre el cuerpo K y en general E[l] ser solo una parte (un subgrupo)
Ntese que dicho subgrupo siempre contiene al menos el elemento
de E[l](K).
neutro O E.
Ejemplo 1.3.
La curva elptica E : y2 = x3 +x+8, sobre el cuerpo F11 , posee solo dos puntos de 2-torsion
con coeficientes en el cuerpo base. Ms precisamente, E[2] = {O,(8,0)} Z/2Z.

Ejemplo 1.4.
Para l = 3 la curva elptica E : y2 = x3 + 7x, sobre el cuerpo F13 tiene sus 9 puntos de
3-torsin racionales, explcitamente

E[3] = {O,(3,3),(3,10),(4,1),(4,12),(9,5),(9,8),(10,2),(10,11)}
Estos puntos constituyen un subgrupo isomorfo al grupo Z/3Z Z/3Z, el cual contiene
cuatro subgrupos de orden tres, los cuales tienen en comn el elemento neutro.

G1 = {O,(3,3),(3,10)}

G2 = {O,(4,1),(4,12)}

G3 = {O,(9,5),(9,8)}

G4 = {O,(10,2),(10,11)}

El siguiente diagrama muestra estos cuatro subgrupos.

Grupos de 3-torsin

G1

(3,3)
(3,10)

G2

G3
O

(4,1)
(4,12)

(9,5)
(9,8)

(10,2)
(10,11)
G4

Pairings y sus aplicaciones

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

12

.
Definicin 1.11. El pairing de Weil es una aplicacin:

el : E[l] E[l] l

(5)

con las siguientes propiedades:


1) Bilineal, es decir el (P + P ,Q) = el (P,Q)el (P ,Q), el (P,Q + Q ) =
el (P,Q)el (P,Q ).
2) Alternada, es decir el (P,P) = 1, P E. Por ser alternada es tambin
antisimtrica, luego el (P,Q) = el (Q,P)1 .

3) No-degenerada, es decir el (P,Q) = 1, Q P = O, el (P,Q) = 1, P


Q = O.

4) Existen puntos P,Q E[l] tales que el (P,Q) es una raz primitiva lsima de la unidad, luego el es suprayectiva.

Nota
El pairing de Tate es ms general que el de Weil al exigir solo que el primer punto P est
en E[l], mientras que Q puede ser cualquier punto de la curva. Sin embargo, como se
ha mencionado, en las aplicaciones criptogrficas los puntos considerados estarn en el
subgrupo hPi engendrado por un punto P de orden l, y por tanto, son todos de l torsin.

1.3.

Pairing modificado

La propiedad alternada del pairing de Weil presenta un inconveniente en las


aplicaciones criptogrficas. Puesto que en ellas se trabaja en el grupo engendrado por un punto P E, si el (P,P) = 1, para todo par de puntos R,S hPi

se tendra tambin el (R,S) = 1 (si R = rP, S = sP utilizando la propiedad de


bilinealidad el (R,S) = el (P,P)rs = 1) es decir el sera la aplicacin trivial. Una solucin para solventar este problema es substituir el por un pairing modificado
el , utilizando lo que se denomina una aplicacin distorsin.
.
Definicin 1.12. Una aplicacin distorsin para el punto P es un endomorfismo de la curva E tal que el (P, (P)) 6= 1. A veces se exige

tambin que el (P, (P)) sea una raz primitiva de la unidad. Si l es primo, como es habitual, ambas condiciones son equivalentes.

Tener en cuenta las siguientes consideraciones:


1) En la definicin anterior el punto (P) es, al igual que P, de l-torsion (pues l (P) =
(lP) = (O) = O ), y por tanto tiene sentido aplicar el pairing de Weil al par (P, (P)).
2) En general, el endomorfismo no est definido sobre el cuerpo Fq (y para nuestros
propsitos no debe estarlo). En particular (P) no tendr coordenadas en Fq , sino
sobre un cuerpo extensin.

Races primitivas
Se denomina raz primitiva de
orden n de la unidad aquella
cuyo orden es exactamente
n. Por ejemplo, en el cuerpo
C de los complejos el
elemento e2i/5 es una raz
de orden 15 de la unidad
(pues
(e2i/5 )15 = (e2i )3 = 13 = 1),
pero no es una raz primitiva
de orden 15, ya que su orden
es 5 (y por tanto, en realidad
es una raz primitiva de orden
5 de la unidad).

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

13

3) Puede probarse que E posee una tal aplicacin distorsin si y solamente si es supersingular (Blake y otros, 2005). Ello hace que las curvas supersingulares sean especialmente tiles en criptografa basada en pairings.

.
Definicin 1.13. Sea una aplicacin distorsin. Se define e(R,S) =
e(R, (S)). La aplicacin e se denomina pairing modificado.

Ntese que ahora tenemos e(P,P) 6= 1 y, por tanto, para R,S hPi, R,S 6= O

tambin tenemos, por bilinealidad, e(R,S) 6= 1.

La definicin 1.11 es obviamente incompleta, ya que lista las propiedades de el


pero no caracteriza quin es el elemento el (P,Q) correspondientes a P,Q E[l].
La definicin de tal imagen involucra conceptos y resultados matemticos que
no podemos desarrollar en detalle. Por otra parte, las aplicaciones criptogrficas posteriores pueden comprenderse asumiendo nicamente las propiedades
de la definicin 1.11.
Sin embargo, para el posible lector interesado, resumimos brevemente aqu la
definicin explcita de el (P,Q) y damos un algoritmo eficiente de cmputo del
mismo.

1.3.1. Construccin explcita de el


Comenzamos introduciendo (sin demostracin) los conceptos y resultados
Lectura recomendada

necesarios para la definicin de el (P,Q).

Ver J. H. Silverman (1986).


The Arithmetic of Elliptic
Curves. Springer-Verlag, para
detalles y demostraciones.

.
Definicin 1.14. Sea E una curva elptica,
1) Un divisor es una suma formal finita de puntos de E: D =

PE

nP (P),

con coeficientes nP nmeros enteros, positivos o negativos (y todos


nulos salvo un nmero finito). La notacin anterior de suma es un
simple smbolo formal y no una operacin, en particular no debe
confundirse con la operacin adicin de puntos de E. Tampoco debe confundirse el punto P E con el divisor (P) = 1(P).
2) Dados dos divisores D =
D =

PE (nP +nP )(P)

PE

nP (P), D =

PE

nP (P) , la adicin: D +

confiere al conjunto de divisores una estructura

de grupo abeliano.
3) Se define el grado de D : gr(D) =

nP Z.

4) Se define el soporte de D : sp(D) = {P; nP 6= 0}.

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

14

Observacin

Definicin 1.15.
1) Funcin racional sobre E: Funcin del tipo f

F1 (x,y)
F2 (x,y)

con

F1 ,F2 polinomios definidos mdulo la ecuacin de la curva E.


2) Un punto P se dice cero de f si f (P) = 0 y polo de f si f no est
definido en P (porque F2 (P) = 0) en cuyo caso se conviene en notar
f (P) = .
3) Asociado con una funcin f se tiene un divisor div(f ) =

ordP (f )(P)

donde
a) ordP (f ) = 0 si f (P) 6= 0,

b) ordP (f ) = n 1 si tiene un cero con multiplicidad (u orden) n.


c) ordP (f ) = n (n 1) si tiene un polo con multiplicidad n.

4) Los divisores de funciones racionales se denominan divisores principales.


5) Dos divisores D,D se llaman equivalentes (y escribiremos D D ) si
se diferencian en un divisor principal, es decir: D = D + div(f ).

6) Sea f una funcin y D =


Q

PE

nP (P) un divisor. Se define f (D) =

nP

f (P) .

.
Proposicin 1.16.
1) Un divisor principal tiene grado cero. Como consecuencia, dos divisores equivalentes tienen igual grado.
2) Un divisor con grado 0 no es necesariamente principal, pero admite
una expresin en forma cannica: D = (P) (O) + div(f ), con P nico.
3) Dados Di = (Pi ) (O) + div(fi ), i = 1,2, divisores de grado 0, pero no
principales (luego Pi 6= O) la forma cannica de su suma es
D = D1 + D2 = (P3 ) (O) + div(f1 f2 f3 )

(6)

donde P3 = P1 + P2 y f3 = s/v con s ecuacin de la recta secante


uniendo P1 , P2 (tangente a la curva si P1 = P2 ) y v ecuacin de la
recta vertical uniendo P3 con el punto del infinito O (si P3 = O
tomar v = 1).
4) Un divisor D =
P

nP (P) es principal si y solamente si

nP = 0 y

nP P = 0 (en la ltima expresin la suma indica la suma de puntos

en la curva elptica).

Aunque la grafa es parecida


conviene no confundir el
punto neutro de la curva
elptica, O (el nico punto
del infinito de la curva) con 0
elemento neutro del cuerpo
K sobre el que est definida
la curva. Tampoco hay que
confundirlo con el elemento
neutro (O) del grupo de
divisores.

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

15

Ejemplo 1.5.
Sea la curva elptica E : y2 = x3 + x + 4 definida sobre el cuerpo finito F7 .
1) Sea la recta r : y = 2x + 2. Determinemos el divisor principal div(r):
El divisor de r es la combinacin lineal formal de los ceros y los polos de la recta en los
puntos de la curva elptica, contados con sus multiplicidades.
Para determinar los ceros hagamos la interseccin de E y r: sustituyendo y = 2x + 2 en
la ecuacin de E se obtiene la ecuacin x3 4x2 = 0. Esta ecuacin tiene la raz doble
x = 0 y la raz simple x = 4. Los ceros son pues los puntos (0,2), con multiplicidad
2 (puede comprobarse que la recta es tangente a la curva en este punto) y (4,3) con
multiplicidad 1.
En virtud de la Proposicin 1.16, div(r) debe tener grado 0. Puesto que hay 3 ceros (contados con sus multiplicidades) deben existir tres polos. Como, en los puntos afines de E,
la recta r no tiene polos, estos deben estar en el punto del infinito O = (0 : 1 : 0) de la
curva, punto que ser pues un polo de orden 3.
Ntese que si se escribe la ecuacin de E en coordenadas proyectivas: y2 z = x3 + xz2 + 4z3 ,
haciendo z = 0, se tiene x3 , polinomio de grado 3.
Por tanto,

div(r) = 2(0,2) + 1(4,3) 3(O)

2) Sea el divisor: D = 1(0,2) + 1(0,5) + (2)(6,3). Este divisor tiene grado 1+1-2=0. Sin
embargo, no es un divisor principal: en efecto, de acuerdo con la Proposicin 1.16 si
lo fuese debera tener grado 0, condicin que verifica, pero adems la suma en E de
los puntos del divisor debera ser el punto del infinito O. Sin embargo, utilizando las
frmulas de adicin.

(0,2) + (0,5) 2(6,3) = O 2(6,3) = 2(6,4) = (4,4).

Estamos ya en disposicin de definir el elemento el (P,Q).


.
Definicin 1.17. Dados P,Q E[l] elijamos A,B divisores de grado

cero con soportes disjuntos y tales que:

A (P) (0),

B (Q) (O)

Sean fA ,fB funciones sobre E tales que,

div(fA ) = lA,

div(fB ) = lB.

Se define entonces:

el (P,Q) = fA (B)/fB (A)

(7)

Ver tambin
Las frmulas de adicin se
estudian en el mdulo
Criptografa con curvas
elpticas de esta asignatura.

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

16

A partir de esta definicin se deducen las propiedades del pairing enunciadas


en 1.11*.

* Para la demostracin, podis


ver J. H. Silverman (1986). The
Arithmetic of Elliptic Curves.
Springer-Verlag.

Observar que los divisores A,B deben ser disjuntos para que fA (B),fB (A) estn
bien definidos. Una forma de obtenerlos es tomar un punto S E con S 6=

O,P, Q,P Q y A = (P + S) (S); B = (Q S) (S). Entonces

el (P,Q) = fA ((Q S) (S))/fB ((P + S) (S)) =

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

(8)

El clculo del pairing se reduce pues a evaluar ciertas funciones en ciertos divisores. El problema es el computo de tales funciones fA ,fB . Tal cmputo puede realizarse eficientemente utilizando el siguiente algoritmo*. Este algoritmo
permite tambin el cmputo del pairing de Tate.

1.3.2. El algoritmo de Miller


.
Algoritmo 1.18 (Algoritmo de Miller). Input: D =

Pr

i=1

ni (Pi ) un

divisor principal. Output: una funcin f tal que D = div(f )


1) Puesto que D tiene grado 0 puede escribirse: D =

Pr

i=1

ni ((Pi ) (O))

2) Para cada i obtenemos la forma cannica (Pi ) (O) + div(fi ), del


divisor ni ((Pi ) (O)) como sigue:
i) Sean bd1 bd2 b1 b0 la expresin binaria de ni (donde b0 son las

unidades y bd1 = 1), R := Pi ; fi := 1.

ii) El mtodo para sumar divisores cannicos especificado en la ecuacin 6 proporciona para i = bd2 , . . . ,0:
a) fi := fi2 gRR ; R := 2R
b) Si bi = 1, fi := fi gRPi , R := R + Pi
c) Output fi .
donde, dados los dos puntos R,S,

gRS es la funcin tal que

div(gRS ) = (R) + (S) (R + S) (O).

3) Sumando los divisores cannicos anteriores se obtiene la funcin


buscada f .

* Ver A. Menezes (1993). Elliptic


Curves Public Key Cryptography.
Kluwer

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

17

Ejemplo 1.6.
Para la curva elptica del Ejemplo 1.4, E : y2 = x3 + 7x, definida sobre el cuerpo F13 , sean
los puntos de E: P = (3,3), Q = (4,1) ambos puntos de 3-torsin. El algoritmo de Miller
permite obtener

fA =

(8x + y)(x + y + 1)(x + 4)


,
(x + 3)(11x + y)(8x + y + 11)

(9)

(3x + y)(x + y + 10)


(10x + y)(12x + y + 3)

(10)

fB =

El ejemplo 1.6 se debe a A.


Menezes, (1993). Elliptic Curves
Public Key Cryptography, Kluwer.

y finalmente e3 (P,Q) = 9.

1.4. Grado de inmersin


Supongamos K = Fq , un cuerpo finito con q elementos. Veamos que el grupo
de llegada l del pairing el puede considerarse contenido en una extensin Fqk
para algn valor (mnimo) k.
.
Lema 1.19. Existe un nmero natural k (de hecho puede tomarse 1

k l 1), tal que el grupo multiplicativo (Fqk ) contiene un subgrupo

isomorfo a l .

Demostracin: El grupo (Fqk ) es cclico, con cardinal qk 1. Tal grupo contendr un subgrupo de cardinal l si, y solamente si, l|(qk 1) es decir qk 1

mod l. Ahora bien, por hiptesis, mcd(q,l) = 1 y por tanto q (Z/lZ) , subgrupo de elementos invertibles de Z/lZ. El orden k de q en tal grupo ser una
solucin del problema.
.
Definicin 1.20. El mnimo valor k verificando el lema 1.19 se deno-

Observacin
El cardinal del grupo (Z/lZ) ,
igual al nmero de elementos
no nulos en Z/lZ coprimos
con l, se denomina la funcin
de Euler (l). En particular si l
es primo tenemos que
(l) = l 1. El orden
multiplicativo k del cardinal q
del cuerpo Fq es siempre un
divisor de (l).

mina grado de inmersin.


Ver tambin

El valor del grado de inmersin ser crucial para los ataques al logaritmo
discreto elptico, objeto del siguiente apartado. Recordemos que, en virtud

La funcin de Euler se estudia


en el mdulo Cuerpos
finitos de esta asignatura.

del teorema de Hasse, el cardinal de una curva elptica E viene dado por

E = q + 1 t, con |t | 2 q. En las aplicaciones criptogrficas basadas en

el logaritmo discreto elptico se utiliza un subgrupo cclico, del mayor orden

posible (y deseablemente primo), hPi E, cuyo orden l ser pues un divisor

de E.

Ver tambin
El teorema de Hasse se
estudia en el mdulo
Criptografa con curvas
elpticas.

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

18

Para las curvas elpticas ordinarias, el grado de inmersin es en general muy


grande (exponencial en log(q), segn demostraron Koblitz y Balasubramanian,
1998). Sin embargo, Menezes, Okamoto y Vanstone mostraron que para las
curvas supersingulares este grado es pequeo, de hecho k 6*.
Recordemos, tal como se ha visto en el mdulo 4, que una curva elptica con cardinal
q + 1 t se llama supersingular si la caracterstica p del cuerpo divide a t. En otro caso la
curva se denomina ordinaria.

Para mostrar este resultado Menezes, Okamoto y Vanstone dan el siguiente


resultado
.
Proposicin 1.21. Las curvas elpticas supersingulares definidas sobre
el cuerpo finito Fq , q = pm y con cardinal q + 1 t se clasifican en los seis
tipos siguientes:

Tipo I)

t = 0 y E(Fq ) Z/(q + 1)Z

Tipo II) q 3 (mod 4) , t = 0 y E(Fq ) Z/((q + 1)/2)Z Z/2Z


Tipo III)

m par, t 2 = q, y E(Fq ) cclico.

Tipo IV)

p = 2 ,m impar, t 2 = 2q y E(Fq ) cclico.

Tipo V)
Tipo VI)

p = 3 ,m impar, t 2 = 3q y E(Fq ) cclico.

m par, t 2 = 4q y E(Fq ) Z/( q 1)Z Z/( q 1)Z

A partir de la clasificacin de la proposicin 1.21 es un simple ejercicio obtener


los grados de inmersin k para cada uno de los tipos, si (como es habitual) se
toma l = n1 cardinal del subgrupo cclico maximal de E. As, por ejemplo, para
las curvas del tipo I, con q + 1 elementos, es obvio que q2 1 es mltiplo de
q + 1 luego el grado de inmersin de estas curvas es k = 2. Los resultados se
recogen en la siguiente tabla.

Tipo

n1

q+1

II

q
p
2q
p
3q

2 q

(q + 1)/2

q+1 q
p
q + 1 2q
p
q + 1 3q

q1

III
IV
V
VI

3
4
6
1

* Ver A. Menezes (1993). Elliptic


Curves Public Key Cryptography.
Kluwer.

CC-BY-NC-ND PID_00200950

19

Pairings y sus aplicaciones

2. Ataques basados en pairings


.

Los pairings permiten un tipo de ataque al logaritmo discreto elptico, los denominados algoritmos de reduccin. As Menezes, Okamoto y Vanstone (1993)
muestran cmo trasladar, utilizando el pairing de Weil, dicho logaritmo, definido sobre una curva elptica sobre el cuerpo finito Fq al logaritmo discreto
sobre Fqk , con k el grado de inmersin.

Referencia bibliogrfica
Menezes, Okamoto y
Vanstone (1993).
Reducing elliptic curves
logarithms to a finite field.
IEEE Trans. Info. Theory
(vol. 39, pg. 1639-1646).

Supongamos hPi E(Fq ) el grupo subyacente al logaritmo discreto elptico,

subgrupo de orden l, primo con la caracterstica p y denotemos l Fqk . El

ataque de Menezes, Okamoto y Vanstone (MOV) viene dado por el siguiente


algoritmo.
.
Algoritmo 2.1.
Input: P, R hPi, R 6= 0.
Output: m, 0 < m < l, mP = R.
1) Encontrar el menor k tal que l Fqk .
2) Encontrar Q tal que = el (P,Q) tenga orden l.
3) Calcular = el (R,Q).
4) Calcular m, el logaritmo de en la base , en Fqk .
5) Retornar m.

Ejemplo 2.1. Para la curva del Ejemplo 1.6 sobre Fq = 13 sea el punto R = (3,10) hPi.
Puesto que l = 3 y 3 F13 el grado de inmersin es 1.
El punto Q = (4,1) verifica que = e3 (P,Q) = 9, tiene orden 3 mdulo 13. Se obtiene que
= e3 (R,Q) = 3. Como 92 3 (mod 13) se tiene que logP (R) = 2, es decir R = 2P.

La utilidad del algoritmo MOV depende fuertemente del valor de k: recordemos que el logaritmo discreto clsico sobre el grupo multiplicativo (Fqk ) es
sensible al denominado Index Calculus, mientras que el logaritmo discreto
elptico es inmune al mismo, lo que posibilita emplear claves mucho menores. As claves de 163 bits en el caso elptico ofrecen la misma seguridad que
claves de 1024 bits en el caso clsico.
Ahora bien, lo que hace el algoritmo MOV es trasladar el problema en una curva elptica sobre el cuerpo Fq a un problema similar en Fqk . La longitud binaria

Lectura recomendada
Ver los detalles del ejemplo
2.1 en A. Menezes, Elliptic
Curves Public Key
Cryptography, Kluwer, 1993
y tambin uno de los
ejercicios al final del
mdulo.

Ver tambin
El logaritmo discreto clsico
sobre el grupo multiplicativo
se estudia en el mdulo
Elementos de criptografa.

CC-BY-NC-ND PID_00200950

20

Pairings y sus aplicaciones

de qk es k veces la longitud binaria de q, por tanto para k grande el tamao del


cuerpo Fqk hace ineficaz los ataques basados en el Index Calculus. Sin embargo, como hemos visto, para curvas supersingulares el valor de k es a lo sumo
6. En este caso, correspondiente a curvas del tipo V en la Proposicin 1.21,
para cuerpos de longitud q = 163 bits, se tiene que q6 tiene longitud 978, por
lo que la seguridad es equiparable al caso clsico con longitud de clave 1024.
Y por supuesto para curvas del tipo VI en la proposicin 1.21, la seguridad es
la misma que en el caso clsico sobre el cuerpo base, caso que, para longitud
163, se considera actualmente muy vulnerable al Index Calculus.
Como consecuencia, las curvas supersingulares no son adecuadas para criptosistemas y protocolos basados en el logaritmo discreto elptico.
Dos observaciones antes de acabar:

Frey y Ruck (1994) propusieron un ataque similar al de MOV utilizando el pairing


de Weil. Kanayama, Kobayashi, Saito y Uchiyama (2000) probaron que si l no es un
divisor de q 1, los algoritmos MOV y Frey-Ruck son equivalentes, sin embargo, para
curvas con cardinal q 1, el algoritmo de Frey-Ruck es ms eficiente.
Para las denominadas curvas anmalas, curvas definidas sobre un cuerpo primo Fp y
con cardinal p existe otro algoritmo de reduccin debido a Semaev, Smart, Satoh and
Araki (ver la obra de Blake y otros (2000)).

Lectura recomendada
Frey y Ruck (1994). A
remark concerning
m-divisibility and the
discrete logarithm problem
in the divisor class group of
curves. Mathematics of
Computation (vol. 62, pg.
865-874) .

CC-BY-NC-ND PID_00200950

21

Pairings y sus aplicaciones

3. Criptografa basada en la identidad


.

Una de las motivaciones de Diffie y Hellman para su introduccin de la criptografa de clave pblica fu el problema de la distribucin de claves (siendo
otra motivacin la firma digital). El aumento del nmero de usuarios de la
criptografa, al sumarse nuevos actores a los clsicos, gubernamentales y militares, hizo que potencialmente cada dos de tales usuarios A,B necesitasen en

Ver tambin
La criptografa de clave
pblica se estudia en el
mdulo Elementos de
criptografa de esta
asignatura.

algn momento comunicarse de forma segura, lo que utilizando un sistema


de clave privada, exiga una clave compartida KAB . La forma de hacer llegar
tal clave a ambos usuarios planteaba un problema de Gestin y Distribucin de
Claves.
La criptografa de clave pblica proporcion un sistema eficiente de resolver
tal distribucin de llaves, ya que el envo de KAB puede hacerse de forma
segura, a travs de un canal inseguro, utilizando las llaves pblicas de A y B. De
hecho, actualmente los sistemas de clave pblica se utilizan principalmente
para la distribucin de claves de comunicaciones de un sistema privado.
Sin embargo, pronto se hizo patente un nuevo problema: una clave pblica
que se nos hace llegar como perteneciente a A puede en realidad pertenecer
a un atacante C. Ello obliga a garantizar la autenticidad de las claves pblicas mediante un sistema de certificados y autoridades de certificacin, lo que
genera una engorrosa infraestructura de clave pblica (PKI).

Ver tambin
La infraestructura de clave
pblica (PKI) se estudia en el
mdulo Elementos de
criptografa de esta
asignatura.

Un paradigma alternativo fu propuesto en 1984 por A. Shamir (1994). La idea


era poder utilizar, de forma segura, claves pblicas derivadas de la propia identidad del usuario (de ah el nombre de criptografa basada en la identidad). El
propio Shamir construy un esquema de distribucin de claves basado en esta
idea, sin embargo, una solucin satisfactoria a la idea de criptosistemas basados en la identidad solo se consigui con la utilizacin de pairings, de hecho
el mtodo se conoce tambin criptografa basada en pairing.
La criptografa basada en la identidad implica la existencia de una cierta autoridad de confianza (AC) que selecciona los parmetros comunes a todos los participantes y les proporciona unas ciertas claves privadas (claves que pueden ser
generadas solo cuando el usuario las necesita, lo que evita su almacenamiento
y reduce el riesgo de fugas de seguridad). En lo que sigue supondremos que tal
AC ha seleccionado y hecho pblicos al menos una curva elptica E sobre un
cuerpo finito Fq , un punto P E de orden primo l, una aplicacin distorsin

y el correspondiente pairing modificado el . Asimismo la AC ha elegido una

Referencia bibliogrfica
A. Shamir (1994).
Identity-Based
Cryptosystems and
Signature Schemes.
Advances in Cryptology.
Proceedings of Crypto84.
Lecture Notes in Computer
Science, nm. 7, pgs. 47-53.

CC-BY-NC-ND PID_00200950

22

Pairings y sus aplicaciones

cierta clave secreta propia s, 1 < s < l, que le servir tanto para generar su
clave pblica, como claves privadas de los participantes.
En lo que sigue expondremos algunos de los mtodos bsicos de esta criptografa para el intercambio de claves, criptosistemas y firma digital.

3.1. Intercambio de claves en criptografa basada en la identidad

Lectura recomendada
Para ms detalles sobre la
criptografa basada en la
identidad, ver la obra de
Blake y otros (2005) y la de
Luther (2008).

Como se ha dicho, una de las motivaciones para la introduccin de la clave


pblica fu el problema de la distribucin de claves. De hecho, Diffie y Hellman proponen un sistema bipartito para acordar una clave comn entre dos
participantes A,B : fijado un grupo cclico conveniente hg i (por ejemplo Fq , el

grupo cclico multiplicativo de un cuerpo finito), A y B eligen separadamente nmeros aleatorios nA ,nB ; 1 < nA ,nB < l, calculan los elementos del grupo
g nA , g nB y se intercambian estos valores.

Tanto A como B pueden entonces calcular la clave comn KAB = g nA nB . La


seguridad del mtodo radica en que un atacante, interceptando g nA , g nB , para
poder conocer la clave se vera enfrentado con el siguiente problema.
.
Definicin 3.1 (Problema computacional de Diffie-Hellman).
Conocidos g nA ,g nB calcular g nA nB .

La dificultad del problema computacional de Diffie-Hellman se considera equivalente a la del logaritmo discreto en el mismo grupo. Desde luego si un adversario pudiese resolver el problema del logaritmo discreto obtendra nA ,nB y
podra calcular g nA nB .
Un esquema semejante puede formularse en criptografa basada en la identidad utilizando pairings y la identidad IdA de cada usuario A (el nombre o cualquier otra informacin personal, como el e-mail, una foto digital, o cualquier
secuencia binaria seleccionada por A). Adems, en este tipo de criptografa,
existe la posibilidad de un protocolo de acuerdo tripartito de claves. Veamos
estos dos algoritmos.

3.1.1. Acuerdo bipartito de claves


En este esquema se supone que la AC ha elegido y hecho pblico, adems
de los datos referidos a la curva elptica y el pairing, una funcin resumen h
que transforma cualquier secuencia binaria en un punto de hPi. El esquema de
acuerdo bipartito de claves viene dado por el siguiente algoritmo.

Ver tambin
La funcin resumen se
estudia en el mdulo 3 de
esta asignatura.

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

23

.
Algoritmo 3.2.

Claves privadas de A y B: solicitud previa de A y B a la AC, sta

1) calcula y enva a A el punto SA = sPA hPi, donde PA = h(IdA ).


2) calcula y enva a B el punto SB = sPB hPi, donde PB = h(IdB ).

Acuerdo de clave: Los participantes A y B calculan

1) A, utilizando su clave privada SA y PB (que puede calcular, ya que


tanto la identidad IdB como la funcin resumen h son pblicas),
obtiene

el (SA ,PB ) = el (sPA ,PB ) = el (PA ,PB )s l .

(11)

2) B, utilizando su su clave privada SB y PA obtiene

el (PA ,SB ) = el (PA ,sPB ) = el (PA ,PB )s l .

(12)

3) La clave comn es KAB = el (SA ,PB ) = el (PA ,SB ).

Acuerdo bipartito de claves

Alicia

Bernardo

l(SA,PB) = KABC

l(PA,SB) = KABC

PB

PA

Parmetros
pblicos
SA

SB

Generador de claves

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

24

3.1.2. Acuerdo tripartito de claves


El siguiente protocolo, propuesto por A. Joux (2000), permite el acuerdo de
una clave comn entre tres entidades A,B,C. Este acuerdo que, a diferencia
del anterior, no necesita claves secretas de los participantes, viene dado por el
siguiente algoritmo.
.
Algoritmo 3.3.

Intercambio de mensajes: Los participantes A,B,C

1) A toma un nmero aleatorio nA ; 1 < nA < l y calcula PA = nA P


2) B toma un nmero aleatorio nB ; 1 < nB < l y calcula PB = nB P
3) C toma un nmero aleatorio nC ; 1 < nC < l y calcula PC = nC P
4) A,B,C intercambian los valores de PA ,PB ,PC

Acuerdo de claves: Los participantes calculan la clave comn,

1) el (PB ,PC )nA = el (P,P)nA nB nC = KABC


2) el (PA ,PC )nB = el (P,P)nA nB nC = KABC
3) el (PA ,PB )nC = el (P,P)nA nB nC = KABC

Resumimos el protocolo de Joux en el diagrama siguiente.


Acuerdo tripartito de Joux

PA
Bernardo

Alicia
PB

nA
PA
KABC

nB
PB
KABC

Parmetros
pblicos

PC

PA
PC

PB

nC
PC
KABC
Carlos

Lectura recomendada
A. Joux (2000). A one
round protocol for tripartite
Diffie-Hellmann, LNCS
(vol. 1838, pgs. 385-394.

CC-BY-NC-ND PID_00200950

25

Pairings y sus aplicaciones

Si la seguridad del esquema clsico de Diffie-Hellman se basa en el problema


computacional de Diffie-Hellman, el acuerdo tripartito descansa en la supuesta intractabilidad de la siguiente variante.
.
Definicin 3.4 (Problema Bilineal de Diffie-Hellman). Conocidos nA P,nB P,nC P calcular el (P,P)nA nB nC .

Ejemplo 3.1.

Lectura recomendada
y2

x3

Sea q = 1303 y la curva elptica E :


=
+ x sobre Fq . El punto P = (334,920) E tiene
orden primo l = 163. La aplicacin distorsin : (x,y) (x,iy) donde i Fq2 es tal que
i2 = 1, proporciona el pairing modificado e163 .*
Sean las elecciones de A,B,C:

El ejemplo 3.1 puede


encontrarse en J. Hoffstein;
J. Pipher; J. Silverman
(2008). An Introduction to
Mathematical Cryptography.
Springer.

1) nA = 71. A calcula y hace pblico PA = (1279,1171).


2) nB = 3. B calcula y hace pblico PB = (872,515)
3) nC = 126. C calcula y hace pblico PC = (196,815)

* Ver los ejercicios al final del


mdulo.

Los tres participantes pueden calcular ahora la clave comn (para los clculos tener en
cuenta que i2 = 1 y reducir todas las operaciones mdulo 1303):
1) el (PB ,PC )71 = (172 + 256i)71 = 768 + 662i
2) el (PA ,PC )3 = (1227 + 206i)3 = 768 + 662i
3) el (PA ,PB )126 = (282 + 173i)126 = 768 + 662i

3.2. Cifrado basado en la identidad


Un sistema criptogrfico efectivo, basado en la idea de Shamir de emplear la
identidad de un usuario como su clave pblica fue propuesto por Boneh y
Franklin (2001). En realidad estos autores proponen dos versiones. Veamos en
primer lugar la versin que denominan bsica.
.
Algoritmo 3.5 (Esquema bsico de Boneh y Franklin).

Parmetros: Los mensajes en claro M sern elementos del conjunto


M de secuencias binarias de una longitud prefijada n, es decir M =
{0,1}n . Adems de los parmetros antes mencionados con carcter

general, la AC,

1) crea y enva a los participantes su propia clave pblica PAC = sP,


2) elige una funcin resumen h1 que permite asignar a la identidad de
cada usuario A una clave pblica PA = h1 (IdA ) hPi,
3) elige una funcin resumen h2 : l M,
4) calcula la clave privada de cada participante SA = sPA .

Lectura recomendada
Boneh y Franklin (2001).
Identity based encryption
from the Weil pairing.
LNCS (vol. 2139,
pg. 213-229).

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

26

Cifrado: Si B desea enviar a A un mensaje M M.

1) calcula PA = h1 (IdA ) (tanto h1 como IdA son conocidos),


2) toma aleatoriamente r, 1 < r < l y calcula:

C2 = M h2 (el (PA ,PAC )r )

C1 = rP,

(donde

(13)

indica la suma bit a bit o XOR de ambas secuencias bina-

rias).
3) B enva a A el par C = (C1 ,C2 ).

Descifrado: Cuando A recibe el mensaje cifrado C = (C1 ,C2 ),

1) calcula

el (SA ,C1 ) = el (sPA ,rP) = el (PA ,P)rs = el (PA ,sP)r = el (PA ,PAC )r ,

(14)

2) calcula

C2 h2 (el (SA ,C1 )) = M h2 (el (PA ,PAC ))r h2 (el (PA ,PAC ))r = M.

(15)

El esquema siguiente ilustra el esquema bsico de Boneh y Franklin.

Observacin

Cifrado bsico de Boneh-Franklin

Alicia

Bernardo
C = (C1,C2)

C2, l(SA,C1)

PA

Parmetros
pblicos
SA

C2

M,r

PAC

AC

Generador de claves

C1

Cabe sealar la similitud


formal entre la versin bsica
del criptosistema de
Boneh-Franklin y el
criptosistema ElGamal: en
ambos el cifrado viene dado
por un par cuya primera
componente es producto o
potencia del generador y un
nmero aleatorio, mientras
que la segunda componente
incluye el mensaje en claro
como sumando o factor.

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

27

Boneh y Franklin consideran que su esquema bsico no rene las garantas


suficientes de seguridad, por lo que proponen el siguiente esquema completo.
.
Algoritmo 3.6.

Parmetros: Adems de los parmetros del anterior esquema bsico,


se consideran dos funciones resumen adicionales:

1) h3 : {0,1}2n {r; 1 < r < l}


2) h4 : {0,1}n {0,1}n

Cifrado: Si B desea enviar a A un mensaje M M,

1) calcula PA = h1 (IdA ),
2) toma S {0,1}n aleatoriamente,
3) calcula r = h3 (S,M),
4) calcula C = (C1 ,C2 ,C3 ) donde,

C1 = rP,

C2 = S h2 (el (PA ,PAC )r ),

C3 = M h4 (S).

(16)

Descifrado: Cuando A recibe el mensaje cifrado C = (C1 ,C2 ,C3 ),

1) calcula S = C2 h2 (el (SA ,C1 )),


2) calcula M = C3 h4 (S ),
3) calcula r = h3 (S ,M ).
4) Si C1 = r P, A acepta como vlido M (= M). Caso contrario rechaza
el mensaje recibido.

La seguridad del modelo completo de Boneh y Franklin se considera equiparable a la del problema bilineal de Diffie-Hellman.

3.3. Esquemas de firma basados en la identidad


La infraestructura basada en la identidad del esquema de cifrado de Boneh-

Lectura recomendada
Para un anlisis de la
seguridad del modelo
completo de Boneh y
Franklin, ver la obra de
Blake y otros (2005) y la de
Luther (2008).

Franklin puede adaptarse tambin al proceso de firma digital. Recordemos


que la firma digital de un mensaje M es el anlogo electrnico de la firma
ordinaria (con la diferencia de que la firma electrnica depende del mensaje
concreto M), en cuanto permite demostrar, incluso con valor legal, la identidad de quien ha producido la firma de M, siendo el intento de falsificar tal
firma por parte de un adversario computacionalmente imposible.
Un esquema de firma digital comporta siempre dos algoritmos.

Ver tambin
La firma digital de un
mensaje se estudia en el
mdulo Elementos de
Criptografa de esta
asignatura.

CC-BY-NC-ND PID_00200950

28

Pairings y sus aplicaciones

.
Definicin 3.7.
1) Algoritmo de firma: Implica un cmputo en el que interviene el
mensaje M y la clave privada del firmante (la cual, en el caso de la
criptografa de clave pblica clsica, habr sido elegida por l mismo
y en el caso de la criptografa basada en la identidad le debe ser proporcionada por la AC) y una cierta funcin resumen. Este computo
produce un resultado F(M).
2) Algoritmo de verificacin: Recibido como input el mensaje M y
su firma F(M), tiene como output uno de los dos valores siguientes:
firma vlida firma no vlida

Observemos las siguientes caractersticas importantes:


1) Ciertos tipos de firmas, Firmas con recuperacin del mensaje, recuperan M
durante el proceso de verificacin. Sin embargo lo usual es que las firmas requieran el mensaje original (quizs previamente cifrado si se desea preservar
su secreto) para la verificacin: Firmas con Apndice.
2) En las firmas con apndice, el empleo de funcin resumen permite que el
texto a firmar sea pequeo. Adems, juega un papel crucial en la seguridad de
la firma. (Hash-and-Sign Paradigm).
3) Dos firmas del mismo mensaje pueden producir el mismo resultado: firmas
deterministas, o bien,
4) La firma puede depender de un valor aleatorio: firmas aleatorias, (por ejemplo la firma ElGamal, el Digital Signature Standard, etc.).
El siguiente algoritmo esquematiza un ejemplo de firma digital (aleatoria, con
apndice) similar a la firma de ELGamal.
.
Algoritmo 3.8.

Parmetros: Los mensajes M M sern secuencias binarias de lon-

gitud arbitraria. Como siempre la AC habr seleccionado una curva


elptica E, el punto base P E, de orden primo l, una aplicacin

distorsin y el correspondiente pairing modificado el , as como su


propia clave secreta s, 1 < s < l. Adems la AC,

1) crea y enva a los participantes su propia clave pblica PAC = sP,


2) elige una funcin resumen h1 que permite asignar a la identidad de
cada usuario A una clave pblica PA = h1 (IdA ) hPi,
3) elige una funcin resumen h2 : M hPi {r; 1 < r < l},
4) calcula la clave privada de cada participante SA = sPA .

Ver tambin
Los diferentes tipos de firmas
se estudian en el mdulo
Elementos de Criptografa
de esta asignatura.

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

29

Algoritmo de Firma: si A desea firmar el mensaje M entonces

1) elige aleatoriamente r; 1 < r < l y


2) calcula:

F1 = rPA ; h = h2 (M,F1 ); F2 = (r + h)SA .

(17)

3) El par F = (F1 ,F2 ) es la firma de M.

Algoritmo de Verificacin: cuando el verificador recibe el par (M,F).

1) Calcula si se verifica la igualdad

el (PAC ,F1 + hPA ) = el (P,F2 )

(18)

2) En caso afirmativo acepta la firma como vlida (un simple clculo


muestra que, si el proceso se ha realizado correctamente, debe verificarse tal igualdad).

Resumimos el esquema de firma en el diagrama siguiente.

Firma basada en la identidad

Bernardo
Verificador

Alicia
(M,F)

r
F1
F1,M,r
F2
F = (F1, F2)

F1

F2

?
l[] = l[]

PB

PA

Parmetros
pblicos
SA

PAC

AC

Generador de claves

CC-BY-NC-ND PID_00200950

30

Al igual que la firma ElGamal, puede probarse la seguridad existencial (un

Pairings y sus aplicaciones

Modelos de seguridad

atacante no es capaz de crear una firma que sea aceptable como vlida para
ningn mensaje) de la firma descrita, en el modelo de seguridad denominado
Random Oracle Model.
El siguiente esquema de firma de Boneh, Lynn y Shacham (2001), es especialmente eficiente y permite claves muy cortas.
.
Algoritmo 3.9.

Parmetros: Los mensajes M M son secuencias binarias de lon-

La seguridad de un esquema
criptogrfico se demuestra en
el contexto de un modelo de
seguridad. En el modelo
estndar se trata de probar
que romper el sistema
implica resolver un problema
matemtico
computacionalmente
intratable. El modelo Random
Oracle demuestra la
seguridad asumiendo que las
funciones resumen utilizadas
son realmente funciones
aleatorias.

gitud arbitraria. Como siempre, la AC habr seleccionado una curva

elptica E, el punto base P E, de orden primo l, una aplicacin


distorsin y el correspondiente pairing modificado el . Adems,

1) una funcin resumen h : M hPi,


2) una clave privada de cada participante nA ; 1 < nA < l y pblica

Lectura recomendada
Boneh, Lynn y Shacham
(2001). Short signatures
from the Weil pairings.
Asiacrypt 2001. LNCS (vol.
2248, pgs. 514-532)

PA = nA P.

Algoritmo de Firma: Si A desea firmar el mensaje M calcula F(M) =

Algoritmo de Verificacin: Cuando el verificador recibe el par

nA h(M).

(M,F), acepta la firma si, y solo si,


el (F(M),P) = el (h(M),PA ).

En este esquema el proceso de firma solo requiere una funcin resumen y una
multiplicacin escalar, mientras que la verificacin solo necesita calcular dos
pairings. Por otra parte, es posible el uso de claves de longitud pequea. As,
Barreto y otros (2002) han realizado una implementacin sobre el cuerpo F397
con longitud binaria log2 (397 ) = 97log2 3 154 bits, permitiendo el mismo
nivel de seguridad que el Digital Signature Algorithm, que utiliza claves de
320 bits.

Lectura recomendada
M. Barreto y otros (2002).
Efficient algorithms for
pairing-based
cryptosystems. CRYPTO
2002. LNCS (vol. 2442,
pgs. 354-368)

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

31

Ejercicios de autoevaluacin
1. Sea Fq cuerpo finito con q = pn elementos y sea Tr : Fq Fp la aplicacin traza. Sea la
aplicacin de dos variables: T : Fq Fq Fp , definida por: T(x,y) = Tr(xy).
a) T es una forma bilineal no degenerada (en el espacio vectorial Fq , de dimensin n sobre
el cuerpo Fp ).
b) Supongamos que n no es mltiplo de la caracterstica p. Probar que T es no degenerada.
2. Sea V un espacio vectorial de dimensin n sobre un cuerpo conmutativo K y B = {v1 ,v2 ,
. . . ,vn } una base de V. Si f : V V K es una forma bilineal simtrica, se denomina DisB (f ),
discriminante de f en la base B, al determinante de la matriz, n n: (f (vi ,vj )). Probar:
a) Si el discriminante de f es nulo (respectivamente no-nulo) en la base B, es nulo (respectivamente no nulo) en otra base B
b) La aplicacin f es no degenerada si, y solamente si, el discriminante en cualquier base es
no nulo.
3. Sea la curva elptica E : y2 = x3 + x definida sobre el cuerpo finito F7 .
a) Sea la recta r : y = x. Determinar el divisor principal div(r).
b) Sean los dos divisores: D1 = 2(1,4) + (1)(5,5); D2 = 1(1,3) + 2(5,5). Utilizando el punto anterior encontrar divisores D1 , D2 equivalentes a D1 y D2 y que tengan soportes
disjuntos.

Traza
En los ejercicios del mdulo
Cuerpos finitos se introdujo
la nocin de aplicacin traza,
la cual asigna a un elemento
x Fq el elemento de Fp
traza de la multiplicacin por
x en el espacio vectorial Fq
sobre Fp .

4. Sea la curva elptica E : y2 = x3 +1 definida sobre el cuerpo finito F11 y sea la recta r : x = 0.
Determinar el divisor div(r).
5. Sea un endomorfismo de la curva elptica E, P E un punto de orden primo l y el el
pairing de Weil. Probar que el (P, (P)) 6= 1 si y solamente si ambos puntos son linealmente
independientes.
6. Sea la curva elptica E : y2 = x3 + 7x definida sobre el cuerpo F13 y los puntos de 3-torsin
de E: P = (3,3), R = (3,10). En el ejemplo 2.1 se ha mostrado que R = 2P. Probar este resultado
sin utilizar el algoritmo de Miller.
7. Sea p = 101 y la curva elptica sobre F101 , E : y2 = x3 + 1, con cardinal 102. El punto
P = (87,61) pertenece a la curva y tiene orden 17 (lo que puede comprobarse utilizando las
frmulas de adicin de puntos de una curva elptica).
a) Calcular el grado de inmersin de e17 .
b) Sea la aplicacin : E E; (x,y) = (x,y) donde 3 = 1. El elemento no est en el
cuerpo F101 , sino en su extensin de grado 2, F1012 , (en efecto es raz del polinomio
x2 + x + 1, irreducible sobre F101 ). Probar que es una aplicacin distorsin para P.
8. Sea p = 547 y la curva elptica sobre F547 , E : y2 = x3 + x, con cardinal 548. El punto
P = (67,481) E tiene orden l = 137.
a) Calcular el grado de inmersin de e137 .
b) Sea la aplicacin : E E; (x,y) = (x,iy) donde i2 = 1, elemento en F5472 (raz
del polinomio x2 + 1, irreducible sobre F547 ). Probar que es una aplicacin distorsin
para P.
9. Sean los mismos datos del ejercicio anterior y sea e137 el pairing modificado correspondiente a P y . Tres participantes A,B,C desean acordar una clave comn KABC mediante el
protocolo de acuerdo tripartito de Joux.
a) Los participantes eligen y guardan secretos los valores: nA = 4, nB = 10, nC = 5. Calcular
los puntos PA = 4P, PB = 10P, PC = 5P
b) Conocidos los puntos calculados en el apartado anterior y supuesto que nos dan como
datos los valores,
i) e137 (PB ,PC ) = 151 + 135i.
ii) e137 (PA ,PC ) = 74 + 514i.
iii) e137 (PA ,PB ) = 11 + 39i.
Calcular la clave comn del protocolo dado en el algoritmo 3.3.
10. Escribir un script en SAGE que permita calcular la clave comn KABC del algoritmo de
Joux, sabiendo la clave privada nA de A y las claves pblicas PB y PC de B y C, respectivamente.
Los datos pblicos, o sea el cuerpo finito, la curva elptica, el punto P y la distorsin que
permite definir el pairing de Weil modificado son los mismos que en el ejercicio 1-8.
Calcular la clave acordada entre los tres participantes en el caso en que nA = 7, PB = (97,151)
y PC = (497,498).

Ver tambin
Las curvas elpticas se
estudian en el mdulo
Criptografa con curvas
elpticas de esta asignatura.

CC-BY-NC-ND PID_00200950

32

Soluciones
1) a) T es bilineal por ser lineal en cada variable. La simetra se deduce de la conmutatividad
del producto en Fq .
b) Sea x 6= 0 un elemento de Fq . Veamos que existe un y tal que T(x,y) 6= 0. Basta tomar
y = x1 : en efecto, T(x,x1 ) = Tr(xx1 ) = Tr(1) = n 6= 0 (pues n no es mltiplo de p).
P
2) a) Sean las ecuaciones del cambio de base vi = j cij vj , o matricialmente B = CB donde
C es una matriz inversible y por tanto con determinante no nulo. Sustituyendo estas
ecuaciones en DisB (f ) y utilizando la propiedad de bilinealidad, se obtiene DisB (f ) =
|C|2 DisB (f ) de donde el resultado.
b) Supongamos nulo el discriminante (en cualquier base B). Existir pues una combinacin
lineal no trivial 1 F1 + + n Fn = 0 entre las filas Fi de la matriz (f (vi ,vj )), luego para
todo j se tiene una relacin: 1 f (v1 ,vj ) + + n f (vn ,vj ) = 0. Denotando w = 1 v1 + +
n vn (w 6= 0, pues los i no son todos nulos) y utilizando las propiedades de bilinealidad
de f se obtiene f (w,vj ) = 0. Como ello es cierto para todos los vectores vj de la base
tambin f (w,v) = 0, v V, luego w es un elemento del ncleo de f (por la derecha y
por la izquierda), luego f es degenerada.
El recproco es anlogo. Si f es degenerada existir un vector no nulo w V tal que
f (w,v) = 0, v V. Si w = 1 v1 + n vn , se deduce entonces una relacin de dependencia
entre las filas Fi con coeficientes i .
3) a) Para determinar el divisor de r hay que encontrar los ceros y los polos de la recta en los
puntos de la curva elptica, contados con sus multiplicidades.
Para determinar los ceros hagamos la interseccin de E y r: sustituyendo y = x en la
ecuacin de E se obtiene la ecuacin x3 x2 + x = 0. Una raz de esta ecuacin de tercer
grado es x = 0. Resolviendo (en el cuerpo F7 ) la ecuacin x2 x + 1 se obtienen las otras
dos races: x = 5; x = 3. Los ceros son pues los puntos (0,0), (3,3), (5,5) los cuales tienen
multiplicidad 1 (puesto que son distintos).
Como en el ejemplo 1.5 se muestra que existe un polo de orden 3 en el punto del infinito
O = (0 : 1 : 0).
Por tanto,

div(r) = 1(0,0) + 1(3,3) + 1(5,5) 3(O)

b) Los divisores D1 ,D2 tienen soportes con el punto comn (5,5). Si se observa que este
punto aparece tambin en el soporte de div(r) resulta razonable tomar,

D1 = D1 + div(r) = 1(0,0) + 2(1,4) + 1(3,3) 3(O).

D1 ya tiene soporte disjunto con D2 , por tanto basta tomar D2 = D2 .


4) Para encontrar los ceros, determinemos los puntos de corte de la curva elptica y de la
recta. Haciendo x = 0 se obtienen los dos puntos (0,1) y (0,10) con multiplicidad 1. El tercer
punto de corte de r (el eje y) con la curva elptica es el punto del infinito. Pero en este punto
la curva no tiene un cero sino un polo. Puesto que tenemos dos ceros, este polo debera ser
de orden 2. Sin embargo, tanto en el ejemplo 1.5 como en el ejercicio anterior dicho orden
era 3. A qu obedece la diferencia?
Escribamos la ecuacin de E en coordenadas proyectivas: y2 z = x3 + z3 Pero ahora el corte
con z = 0 proporciona y2 z = z3 y simplificando y2 = z3 . Haciendo z = 0, se tiene la funcin
cuadrtica y2 de donde la multiplicidad 2.
Por tanto: div(r) = 1(0,1) + 1(0,10) (2)O.
5) Si los puntos fuesen dependientes, es decir, si (P) hPi se tendra (P) = mP, para algn
m luego el (P, (P)) = el (P,P)m = 1.

Pairings y sus aplicaciones

CC-BY-NC-ND PID_00200950

Pairings y sus aplicaciones

33

Supongamos ambos puntos linealmente independientes, en particular debe ser (P) 6= O. En


es producto de dos grupos cclicos de orden
virtud del Lema 1.10 el grupo de l-torsin E[l](K)
l. Por hiptesis uno de ellos es hPi, por tanto (P), por ser independiente de P debe estar en
el segundo grupo cclico y por ser este de orden primo, (P) es un generador.
Por tanto debe tenerse el (P, (P)) 6= 1,
En definitiva, el par {P, (P)} es una base de E[l](K).
en contra de la no degeneracin de el ,
pues en caso contrario el sera trivial en todo E[l](K),
ver definicin 1.11.
6) Dado que se sabe que R hPi y que hPi tiene cardinal 3, se tendr que hPi = {P, 2P, 3P =
O}. Como R 6= P, O debe ser R = 2P, lo que tambin puede comprobarse utilizando las
frmulas de adicin de puntos en E.
Sin embargo, en las aplicaciones criptogrficas l es enorme y el razonamiento anterior no es
aplicable.

Ver tambin
Las frmulas de adicin de
puntos en E se han dado en
el mdulo Criptografa con
curvas elpticas de esta
asignatura.

7) a) El grado de inmersin es el menor k tal que 17 divide a 101k 1. Fcilmente se comprueba que k = 2, lo que tambin se habra podido deducir del hecho de ser E curva
supersingular de tipo I (ver Proposicin 1.21).
b) En primer lugar, es necesario mostrar que es realmente una aplicacin de E en E, es
decir, que si (x,y) es un punto de la curva tambin lo es (x,y). Teniendo en cuenta la
ecuacin de la curva y que 3 = 1, la comprobacin es trivial. Es tambin inmediata la
linealidad de , por tanto es un endomorfismo de la curva.
Puesto que (P) no tiene coeficientes en F103 , no puede ser un mltiplo de P es decir P y
(P) son linealmente independientes y por tanto (ver un problema anterior) e17 (P, (P) 6=
1, es decir es una aplicacin distorsin.
8) De forma anloga al problema anterior se obtiene,
a) El grado de inmersin es 2 (E curva supersingular de tipo II, ver 1.4).
b) Si (x,y) E se comprueba que (x,iy) lo es tambin. Asimismo, se comprueba la linealidad
de , por tanto es un endomorfismo de la curva.
El mismo razonamiento del problema anterior es aplicable para comprobar que es una
aplicacin distorsin.
9) a) Utilizando las frmulas de adicin y doblado de puntos en una curva elptica, se obtiene:
i) PA = 4(67,481) = (391,472)
ii) PB = 10(67,481) = (157,5)
iii) PC = 5(67,481) = (395,379)
b) Aplicando el algoritmo 3.3 y realizando las operaciones correspondientes en el cuerpo
F5472 (es decir, reduciendo los clculos mdulo 547 y teniendo en cuenta que i2 = 1),
se obtiene:
i) A calcula (151 + 135i)4 = 137 + 289i.
ii) B calcula (74 + 514i)10 = 137 + 289i.
iii) C calcula (11 + 39i)5 = 137 + 289i.
10) La descripcin del script la haremos directamente sobre cada uno de los comandos que
utilizamos.

sage: F=GF(547); E=EllipticCurve(F,[0,0,0,1,0]);E.order()


# Construimos la curva elptica que nos dan y comprobamos el orden de la misma.
sage: FX.<x>=F[]
#Construimos el anillo de polinomios a coeficientes en F
sage: F2.<alpha> = GF(547^2, name=alpha, modulus=x^2+1)

CC-BY-NC-ND PID_00200950

34

#Construimos el cuerpo extensin cuadrtica de F y llamamos alpha a su generador


sage: Ex=E.change_ring(F2)
# Construimos la curva elptica sobre el nuevo cuerpo finito

En este punto, definimos el pairing de Weil modificado. La definicin la damos en funcin


del pairing de Weil, que ya est incluido en SAGE.
sage: def weil_pairing_modificat(P,Q,l):
return P.weil_pairing(Ex(-Q[0],alpha*Q[1]),l)

Ahora solo nos queda entrar los datos del problema concreto que queremos resolver y encontrar el resultado:
sage: P=E(67,481)
# Construimos el punto P y comprobamos su orden
137
sage: Px=Ex(P)
#El punto P sobre la curva elptica calculada en el nuevo cuerpo extendido.
sage: PB = Ex(97,151), PC = Ex(497,498)
# los puntos que nos da el enunciado
sage: nA = 47;
# la clave privada de A
sage: W = weil_pairing_modificat(PB,PC,137); KABC = W**nA; KABC
54 + 198 alpha

Pairings y sus aplicaciones

CC-BY-NC-ND PID_00200950

35

Bibliografa
Blake, I.; Seroussi, G.; Smart, N. (2000). Elliptic Curves in Cryptography. London
Mathematical Society Lecture Note Series (nm. 265). Cambridge: Cambridge U. Press.
Blake, I.; Seroussi, G.; Smart, N. (2005). Advances in Elliptic Curves in Cryptography.
London Mathematical Society Lecture Note Series (nm. 317). Cambridge: Cambridge U. Press.
Hoffstein, J.; Pipher, J.; Silverman, J. (2008). An Introduction to Mathematical Cryptography. Undergraduate Texts in Mathematics. Nueva York: Springer.
Martin, L. (2008). Introduction to Identity-based Encryption. Artech House Inc. Massachusetts: Norwood.

Pairings y sus aplicaciones

Вам также может понравиться