Criptografia_avanzada_(Modulo_5)

36
Pairings y sus aplicaciones Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel Tena Ayuso PID_00200950

description

Apuntes Universidad Oberta de Cataluña (Máster seguridad informática)

Transcript of Criptografia_avanzada_(Modulo_5)

Page 1: Criptografia_avanzada_(Modulo_5)

Pairings y susaplicacionesLlorenç Huguet Rotger

Josep Rifà Coma

Juan Gabriel Tena Ayuso

PID_00200950

Page 2: Criptografia_avanzada_(Modulo_5)

Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– auna licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España deCreative Commons. Podéis copiarlos, distribuirlos y transmitirlos públicamente siempre que citéisel autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), no hagáis un usocomercial y no hagáis una obra derivada. La licencia completa se puede consultar enhttp://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es

Page 3: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 Pairings y sus aplicaciones

Índice

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1. Pairings en curvas elípticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1. Aplicaciones bilineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2. El pairing de Weil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3. Pairing modificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.1. Construcción explícita de el . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.2. El algoritmo de Miller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.4. Grado de inmersión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2. Ataques basados en pairings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3. Criptografía basada en la identidad . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1. Intercambio de claves en criptografía 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 autoevaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Page 4: Criptografia_avanzada_(Modulo_5)
Page 5: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 5 Pairings y sus aplicaciones

Introducción

Una de las herramientas de la geometría de las curvas elípticas que se han

demostrado más fructíferas en criptografía son los denominados pairings. Los

pairings son aplicaciones bilineales definidas sobre los puntos de una curva

elíptica y con valores en un grupo cíclico de raíces de la unidad, grupo conte-

nido 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 carácter

auxiliar y algunos solo son aplicables a tipos particulares de curvas.

El pairing de Tate es más general que el de Weil (puede aplicarse a curvas más

generales que las elípticas) y ofrece ciertas ventajas computacionales, sin em-

bargo, es más difícil de describir por lo que, en lo que sigue, consideramos

solo el segundo. En cualquier caso, no estando interesados en la computación

explícita de tales pairings, sino en el papel que juegan en criptografía, ello es

en realidad irrelevante y la elección del pairing de Weil está motivada exclusi-

vamente por la claridad en la exposición.

Las aplicaciones criptográficas de los pairings son de dos tipos. Por una parte se

han utilizado con un propósito destructivo, para diseñar ataques al problema

del logaritmo discreto elíptico, y de otra, desde un punto de vista constructivo,

constituyen una herramienta básica de un nuevo paradigma, el de la cripto-

grafía basada en la identidad. El ataque basado en pairings tiene como con-

secuencia que ciertas curvas elípticas, las denominadas supersingulares, no se

consideren actualmente seguras para implementar criptosistemas y protoco-

los criptográficos basados en el logaritmo discreto elíptico, pero curiosamente

tales curvas supersingulares son idóneas para la criptografía basada en la Iden-

tidad.

Describiremos en lo que sigue los pairings y los dos tipos de aplicaciones crip-

tográficas mencionadas.

Page 6: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 6 Pairings y sus aplicaciones

Objetivos

En los materiales didácticos de este módulo el estudiante encontrará los con-

tenidos necesarios para alcanzar los objetivos siguientes:

1. Conocer el concepto de “pairing” en curvas elípticas, específicamente el

pairing de Weil.

2. Conocer las aplicaciones criptográficas de los pairings, sobre todo las enfo-

cadas al cálculo del logaritmo discreto elíptico y las enfocadas a la cripto-

grafía basada en la identidad.

3. Conocer algún protocolo específico de criptografía basada en la identidad

(acuerdo de claves, cifrado y firma).

4. Saber escribir software para implementar los protocolos anteriores.

Page 7: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 7 Pairings y sus aplicaciones

1. Pairings en curvas elípticas.

En este apartado se describen los pairings definidos sobre una curva elíptica y

se estudian sus propiedades. Se muestra asimismo cómo el grupo de llegada

de un pairing está contenido en un cuerpo finito, extensión del cuerpo base de

definición de la curva, se define el grado de inmersión y se discute el valor del

mismo.

1.1. Aplicaciones bilineales

Los pairings son aplicaciones bilineales entre ciertos grupos abelianos. Comen-

cemos considerando las aplicaciones bilineales entre espacios vectoriales, sin

duda más familiares al lector y cuya definición y propiedades se trasladarán

inmediatamente al lenguaje de pairings.

Sea K un cuerpo conmutativo y V1,V2,W, tres espacios vectoriales sobre K.

.

Definición 1.1. Una aplicación f : V1 ×V2 → W se denomina bilineal

si es aplicación 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 aplicación bilineal se denomina forma bilineal.

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

definición.

.

Definición 1.2. Una aplicación bilineal f : V × V → W se denomina:

1) Simétrica si ∀a,b ∈ V se verifica: f (a,b) = f (b,a).

2) Antisimétrica si ∀a,b ∈ V se verifica: f (a,b) = –f (b,a).

3) Alternada si ∀a ∈ V se verifica: f (a,a) = 0.

Page 8: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 8 Pairings y sus aplicaciones

Formas cuadráticas

Si f : V × V → K es unaforma bilineal simétrica laaplicaciónq : V → K, q(a) = f (a,a) sedenomina forma cuadrática.La teoría de las formascuadráticas, estrechamenterelacionada con la de formasbilineales simétricas, es unarama importante del Álgebra,y sin duda es familiar al lectora propósito del estudio de lascónicas y cuádricas.

.

Lema 1.3.

Toda forma bilineal alternada es antisimétrica. Si la característica del

cuerpo K es diferente de 2 se verifica el recíproco.

Demostración:

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 antisimétrica.

2) Supongamos f antisimétrica, en particular para a = b, se tiene

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

Puesto que la característica 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 serán 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 simétrica

2) f ((x,y),(x′,y′)) = xy′ – yx′: Forma antisimétrica y alternada

3) f ((x,y),(x′,y′)) = axx′ + bxy′ + b′x′y + cyy′, a,b,b′,c ∈ R, b 6= ±b′: Ni simétrica ni antisimé-

trica

Observación

La forma cuadrática asociadaa la forma bilineal simétricaf ((x,y),(x′,y′)) =

axx′ + b(xy′ + x′y) + cyy′ es laq((x,y)) = ax2 + 2bxy + cy2.

.

Definición 1.4. Sea f : V1 ×V2 → W una forma bilineal. Se denomina

núcleo por la izquierda de f al conjunto Kerizq = {a ∈ V1; f (a,b) =

0, ∀b ∈ V2}. Análogamente se denomina núcleo 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

Page 9: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 9 Pairings y sus aplicaciones

Demostración: 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 análogo.

.

Definición 1.6. La aplicación 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 simétrica o antisimétrica se verifica Kerizq = Kerder.

.

Definición 1.7. f : V × V → W aplicación bilineal simétrica o antisi-

métrica se denomina no degenerada si verifica las condiciones equiva-

lentes 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 también

f (b,a) 6= 0).

Caso contrario se denomina degenerada.

Ejemplo 1.2.

Sean K = R y V = R2.

La aplicación bilineal simétrica, f : V×V → K, f ((x,y),(x′,y′)) = xx′+yy′, es no degenerada.

La aplicación bilineal simétrica, f : V × V → K, f ((x,y),(x′,y′)) = xx′, es degenerada: todo

elemento (0,y) pertenece al núcleo por la izquierda (o por la derecha).

Como se ha indicado, la definición de aplicación bilineal puede formularse

para grupos abelianos. Para adaptarnos a la notación posteriormente utilizada

para pairings, supongamos dos grupos abelianos A,B con notación aditiva y C

un grupo abeliano con notación multiplicativa.

.

Definición 1.8. Una aplicación 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′)

Page 10: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 10 Pairings y sus aplicaciones

Las definiciones y propiedades antes enunciadas (simétrica, antisimétrica, al-

ternada, no degenerada) siguen siendo válidas en este caso, con los cambios

de notación pertinentes (en particular el elemento neutro de C debe escribirse

ahora 1).

1.2. El pairing de Weil

Sea E una curva elíptica definida sobre un cuerpo conmutativo K (en el con-

texto de las aplicaciones criptográfícas K será un cuerpo finito). Los pairings

son aplicaciones bilineales que aplican un par de puntos de E en un elemento

de un grupo cíclico finito, cuyos elementos pueden identificarse con raíces de

la unidad, grupo que en el caso K = Fq, cuerpo finito con q elementos, vere-

mos que puede considerarse contenido en un cuerpo Fqk con qk elementos,

para un cierto valor k.

* Ver, por ejemplo, A. Menezes

(1993). Elliptic Curves Public Key

Cryptography. Kluwer.

Tomaremos como modelo el pairing de Weil, el primer tipo de pairing pro-

puesto*. Para cada entero l, primo con la característica del cuerpo, se tiene

un pairing de Weil el, el cual está definido en los puntos del subgrupo E[l]

de l-torsión de E (subgrupo que definimos a continuación) y a valores en un

grupo cíclico µl con l elementos, cuya ley de grupo escribiremos con nota-

ción multiplicativa. Puesto que todo elemento x ∈ µl verifica xl = 1, puede

interpretarse µl como el grupo de las raíces l-simas de 1. A un generador de

este grupo cíclico le llamaremos, en este contexto, raíz primitiva l-sima de la

unidad.

Observación

En las aplicacionescriptográficas basadas en ellogaritmo discreto elíptico, setrabaja en el grupo cíclicogenerado por un puntoP ∈ E. Si l es el orden de P(usualmente primo) esentonces el pairing el el quese considera

.

Definición 1.9. Los puntos de l-torsión de una curva elíptica 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.

Referencia bibliográfica

J. H. Silverman (1986). TheArithmetic of Elliptic Curves.Springer-Verlag.

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

E racionales sobre K. Si K es una clausura algebraica de K podemos definir

análogamente el grupo E[l](K) de puntos de l-torsión racionales sobre K. El

grupo E[l](K) tiene cardinal l2 y la siguiente estructura (Silverman, 1986).

.

Lema 1.10.

E[l](K) ≃ Z/lZ × Z/lZ (4)

Page 11: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 11 Pairings y sus aplicaciones

Sin embargo, estos l2 puntos de E[l](K) no están todos necesariamente defi-

nidos sobre el cuerpo K y en general E[l] será solo una parte (un subgrupo)

de E[l](K). Nótese que dicho subgrupo siempre contiene al menos el elemento

neutro O ∈ E.

Ejemplo 1.3.

La curva elíptica E : y2 = x3 +x+8, sobre el cuerpo F11, posee solo dos puntos de 2-torsion

con coeficientes en el cuerpo base. Más precisamente, E[2] = {O,(8,0)} ≃ Z/2Z.

Ejemplo 1.4.

Para l = 3 la curva elíptica E : y2 = x3 + 7x, sobre el cuerpo F13 tiene sus 9 puntos de

3-torsión racionales, explícitamente

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 común 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-torsión

O

G1

G2

(9,5)(9,8)

G4

(10,2)(10,11)

(4,1)(4,12)

(3,3)(3,10)

G3

Page 12: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 12 Pairings y sus aplicaciones

.

Definición 1.11. El pairing de Weil es una aplicación:

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 también

antisimétrica, 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 raíz primitiva l-

sima de la unidad, luego el es suprayectiva.

Raíces primitivas

Se denomina raíz primitiva deorden n de la unidad aquellacuyo orden es exactamenten. Por ejemplo, en el cuerpoC de los complejos elelemento e2πi/5 es una raízde orden 15 de la unidad(pues(e2πi/5)15 = (e2πi)3 = 13 = 1),pero no es una raíz primitivade orden 15, ya que su ordenes 5 (y por tanto, en realidades una raíz primitiva de orden5 de la unidad).

Nota

El pairing de Tate es más 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 criptográficas los puntos considerados estarán en el

subgrupo 〈P〉 engendrado por un punto P de orden l, y por tanto, son todos de l torsión.

1.3. Pairing modificado

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

aplicaciones criptográficas. Puesto que en ellas se trabaja en el grupo engen-

drado por un punto P ∈ E, si el(P,P) = 1, para todo par de puntos R,S ∈ 〈P〉se tendría también 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 sería la aplicación trivial. Una so-

lución para solventar este problema es substituir el por un pairing modificado

el, utilizando lo que se denomina una aplicación distorsión.

.

Definición 1.12. Una aplicación distorsión para el punto P es un en-

domorfismo φ de la curva E tal que el(P,φ(P)) 6= 1. A veces se exige

también que el(P,φ(P)) sea una raíz primitiva de la unidad. Si l es pri-

mo, como es habitual, ambas condiciones son equivalentes.

Tener en cuenta las siguientes consideraciones:

1) En la definición 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

propósitos no debe estarlo). En particular φ(P) no tendrá coordenadas en Fq, sino

sobre un cuerpo extensión.

Page 13: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 13 Pairings y sus aplicaciones

3) Puede probarse que E posee una tal aplicación distorsión si y solamente si es super-

singular (Blake y otros, 2005). Ello hace que las curvas supersingulares sean especial-

mente útiles en criptografía basada en pairings.

.

Definición 1.13. Sea φ una aplicación distorsión. Se define e(R,S) =

e(R,φ(S)). La aplicación e se denomina pairing modificado.

Nótese que ahora tenemos e(P,P) 6= 1 y, por tanto, para R,S ∈ 〈P〉, R,S 6= O

también tenemos, por bilinealidad, e(R,S) 6= 1.

La definición 1.11 es obviamente incompleta, ya que lista las propiedades de el

pero no caracteriza quién es el elemento el(P,Q) correspondientes a P,Q ∈ E[l].

La definición de tal imagen involucra conceptos y resultados matemáticos que

no podemos desarrollar en detalle. Por otra parte, las aplicaciones criptográfi-

cas posteriores pueden comprenderse asumiendo únicamente las propiedades

de la definición 1.11.

Sin embargo, para el posible lector interesado, resumimos brevemente aquí la

definición explícita de el(P,Q) y damos un algoritmo eficiente de cómputo del

mismo.

1.3.1. Construcción explícita de el

Lectura recomendada

Ver J. H. Silverman (1986).

The Arithmetic of EllipticCurves. Springer-Verlag, para

detalles y demostraciones.

Comenzamos introduciendo (sin demostración) los conceptos y resultados

necesarios para la definición de el(P,Q).

.

Definición 1.14. Sea E una curva elíptica,

1) Un divisor es una suma formal finita de puntos de E: D =P

P∈E nP(P),

con coeficientes nP números enteros, positivos o negativos (y todos

nulos salvo un número finito). La notación anterior de suma es un

simple símbolo formal y no una operación, en particular no debe

confundirse con la operación adición de puntos de E. Tampoco de-

be confundirse el punto P ∈ E con el divisor (P) = 1(P).

2) Dados dos divisores D =P

P∈E nP(P), D′ =P

P∈E n′

P(P) , la adición: D+

D′ =P

P∈E(nP+n′

P)(P) confiere al conjunto de divisores una estructura

de grupo abeliano.

3) Se define el grado de D : gr(D) =P

nP ∈ Z.

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

Page 14: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 14 Pairings y sus aplicaciones

Observación

Aunque la grafía es parecidaconviene no confundir elpunto neutro de la curvaelíptica, O (el único puntodel infinito de la curva) con 0

elemento neutro del cuerpoK sobre el que está definidala curva. Tampoco hay queconfundirlo con el elementoneutro (O) del grupo dedivisores.

.

Definición 1.15.

1) Función racional sobre E: Función del tipo f = F1(x,y)F2(x,y) con

F1,F2 polinomios definidos módulo la ecuación 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 función f se tiene un divisor div(f ) =P

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 prin-

cipales.

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 función y D =P

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

f (P)nP .

.

Proposición 1.16.

1) Un divisor principal tiene grado cero. Como consecuencia, dos divi-

sores equivalentes tienen igual grado.

2) Un divisor con grado 0 no es necesariamente principal, pero admite

una expresión en forma canónica: 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 canónica de su suma es

D = D1 + D2 = (P3) – (O) + div(f1f2f3) (6)

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

uniendo P1, P2 (tangente a la curva si P1 = P2) y v ecuación 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 siP

nP = 0 yP

nPP = 0 (en la última expresión la suma indica la suma de puntos

en la curva elíptica).

Page 15: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 15 Pairings y sus aplicaciones

Ver también

Las fórmulas de adición seestudian en el módulo“Criptografía con curvaselípticas” de esta asignatura.

Ejemplo 1.5.

Sea la curva elíptica 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 combinación lineal formal de los ceros y los polos de la recta en los

puntos de la curva elíptica, contados con sus multiplicidades.

Para determinar los ceros hagamos la intersección de E y r: sustituyendo y = 2x + 2 en

la ecuación de E se obtiene la ecuación x3 – 4x2 = 0. Esta ecuación tiene la raíz doble

x = 0 y la raíz 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 Proposición 1.16, div(r) debe tener grado 0. Puesto que hay 3 ceros (con-

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

Nótese que si se escribe la ecuación de E en coordenadas proyectivas: y2z = 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 Proposición 1.16 si

lo fuese debería tener grado 0, condición que verifica, pero además la suma en E de

los puntos del divisor debería ser el punto del infinito O. Sin embargo, utilizando las

fórmulas de adición.

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

Estamos ya en disposición de definir el elemento el(P,Q).

.

Definición 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)

Page 16: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 16 Pairings y sus aplicaciones

* Para la demostración, podéis

ver J. H. Silverman (1986). The

Arithmetic of Elliptic Curves.

Springer-Verlag.

A partir de esta definición se deducen las propiedades del pairing enunciadas

en 1.11*.

Observar que los divisores A,B deben ser disjuntos para que fA(B),fB(A) estén

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)

* Ver A. Menezes (1993). Elliptic

Curves Public Key Cryptography.

Kluwer

El cálculo del pairing se reduce pues a evaluar ciertas funciones en ciertos di-

visores. El problema es el computo de tales funciones fA,fB. Tal cómputo pue-

de realizarse eficientemente utilizando el siguiente algoritmo*. Este algoritmo

permite también el cómputo 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 función 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 canónica (P′

i ) – (O) + div(fi), del

divisor ni((Pi) – (O)) como sigue:

i) Sean bd–1bd–2 · · · b1b0 la expresión binaria de ni (donde b0 son las

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

ii) El método para sumar divisores canónicos especificado en la ecua-

ción 6 proporciona para i = bd–2, . . . ,0:

a) fi := f 2i gRR; R := 2R

b) Si bi = 1, fi := figRPi, R := R + Pi

c) Output fi.

donde, dados los dos puntos R,S, gRS es la función tal que

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

3) Sumando los divisores canónicos anteriores se obtiene la función

buscada f .

Page 17: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 17 Pairings y sus aplicaciones

El ejemplo 1.6 se debe a A.

Menezes, (1993). Elliptic Curves

Public Key Cryptography, Kluwer.

Ejemplo 1.6.

Para la curva elíptica 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-torsión. El algoritmo de Miller

permite obtener

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

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

fB =(3x + y)(x + y + 10)

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

y finalmente e3(P,Q) = 9.

1.4. Grado de inmersión

Supongamos K = Fq, un cuerpo finito con q elementos. Veamos que el grupo

de llegada µl del pairing el puede considerarse contenido en una extensión Fqk

para algún valor (mínimo) k.

.

Lema 1.19. Existe un número natural k (de hecho puede tomarse 1 ≤k ≤ l – 1), tal que el grupo multiplicativo (Fqk )∗ contiene un subgrupo

isomorfo a µl.

Observación

El cardinal del grupo (Z/lZ)∗,igual al número de elementosno nulos en Z/lZ coprimoscon l, se denomina la funciónde Euler ϕ(l). En particular si les primo tenemos queϕ(l) = l – 1. El ordenmultiplicativo k del cardinal qdel cuerpo Fq es siempre undivisor de ϕ(l).

Demostración: El grupo (Fqk )∗ es cíclico, con cardinal qk – 1. Tal grupo con-

tendrá un subgrupo de cardinal l si, y solamente si, l|(qk – 1) es decir qk ≡ 1

mod l. Ahora bien, por hipótesis, mcd(q,l) = 1 y por tanto q ∈ (Z/lZ)∗, sub-

grupo de elementos invertibles de Z/lZ. El orden k de q en tal grupo será una

solución del problema.

Ver también

La función de Euler se estudiaen el módulo “Cuerposfinitos” de esta asignatura.

.

Definición 1.20. El mínimo valor k verificando el lema 1.19 se deno-

mina grado de inmersión.

Ver también

El teorema de Hasse seestudia en el módulo“Criptografía con curvaselípticas”.

El valor del grado de inmersión será crucial para los ataques al logaritmo

discreto elíptico, objeto del siguiente apartado. Recordemos que, en virtud

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

♯E = q + 1 – t, con |t| ≤ 2√

q. En las aplicaciones criptográficas basadas en

el logaritmo discreto elíptico se utiliza un subgrupo cíclico, del mayor orden

posible (y deseablemente primo), 〈P〉 ⊆ E, cuyo orden l será pues un divisor

de ♯E.

Page 18: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 18 Pairings y sus aplicaciones

* Ver A. Menezes (1993). Elliptic

Curves Public Key Cryptography.

Kluwer.

Para las curvas elípticas ordinarias, el grado de inmersión es en general muy

grande (exponencial en log(q), según demostraron Koblitz y Balasubramanian,

1998). Sin embargo, Menezes, Okamoto y Vanstone mostraron que para las

curvas supersingulares este grado es pequeño, de hecho k ≤ 6*.

Recordemos, tal como se ha visto en el módulo 4, que una curva elíptica con cardinal

q + 1 – t se llama supersingular si la característica 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

.

Proposición 1.21. Las curvas elípticas 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, t2 = q, y E(Fq) cíclico.

• Tipo IV) p = 2 ,m impar, t2 = 2q y E(Fq) cíclico.

• Tipo V) p = 3 ,m impar, t2 = 3q y E(Fq) cíclico.

• Tipo VI) m par, t2 = 4q y E(Fq) ≃ Z/(√

q ∓ 1)Z × Z/(√

q ∓ 1)Z

A partir de la clasificación de la proposición 1.21 es un simple ejercicio obtener

los grados de inmersión k para cada uno de los tipos, si (como es habitual) se

toma l = n1 cardinal del subgrupo cíclico maximal de E. Así, por ejemplo, para

las curvas del tipo I, con q + 1 elementos, es obvio que q2 – 1 es múltiplo de

q + 1 luego el grado de inmersión de estas curvas es k = 2. Los resultados se

recogen en la siguiente tabla.

Tipo t n1 k

I 0 q + 1 2

II 0 (q + 1)/2 2

III ±√q q + 1 ∓√

q 3

IV ±p

2q q + 1 ∓p

2q 4

V ±p

3q q + 1 ∓p

3q 6

VI ±2√

q√

q ∓ 1 1

Page 19: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 19 Pairings y sus aplicaciones

2. Ataques basados en pairings

.

Referencia bibliográfica

Menezes, Okamoto yVanstone (1993).

“Reducing elliptic curves

logarithms to a finite field”.

IEEE Trans. Info. Theory(vol. 39, pág. 1639-1646).

Los pairings permiten un tipo de ataque al logaritmo discreto elíptico, los de-

nominados algoritmos de reducción. Así Menezes, Okamoto y Vanstone (1993)

muestran cómo trasladar, utilizando el pairing de Weil, dicho logaritmo, defi-

nido sobre una curva elíptica sobre el cuerpo finito Fq al logaritmo discreto

sobre Fqk , con k el grado de inmersión.

Supongamos 〈P〉 ⊆ E(Fq) el grupo subyacente al logaritmo discreto elíptico,

subgrupo de orden l, primo con la característica 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 ∈ 〈P〉, 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.

Lectura recomendada

Ver los detalles del ejemplo

2.1 en A. Menezes, EllipticCurves Public KeyCryptography, Kluwer, 1993

y también uno de los

ejercicios al final del

módulo.

Ejemplo 2.1. Para la curva del Ejemplo 1.6 sobre Fq = 13 sea el punto R = (3,10) ∈ 〈P〉.Puesto que l = 3 y µ3 ⊂ F13 el grado de inmersión es 1.

El punto Q = (4,1) verifica que α = e3(P,Q) = 9, tiene orden 3 módulo 13. Se obtiene que

β = e3(R,Q) = 3. Como 92 ≡ 3 (mod 13) se tiene que logP(R) = 2, es decir R = 2P.

Ver también

El logaritmo discreto clásicosobre el grupo multiplicativose estudia en el módulo“Elementos de criptografía”.

La utilidad del algoritmo MOV depende fuertemente del valor de k: recorde-

mos que el logaritmo discreto clásico sobre el grupo multiplicativo (Fqk )∗ es

sensible al denominado Index Calculus, mientras que el logaritmo discreto

elíptico es inmune al mismo, lo que posibilita emplear claves mucho meno-

res. Así claves de 163 bits en el caso elíptico ofrecen la misma seguridad que

claves de 1024 bits en el caso clásico.

Ahora bien, lo que hace el algoritmo MOV es trasladar el problema en una cur-

va elíptica sobre el cuerpo Fq a un problema similar en Fqk . La longitud binaria

Page 20: Criptografia_avanzada_(Modulo_5)

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 tamaño del

cuerpo Fqk hace ineficaz los ataques basados en el Index Calculus. Sin embar-

go, 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 Proposición 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 clásico con longitud de clave 1024.

Y por supuesto para curvas del tipo VI en la proposición 1.21, la seguridad es

la misma que en el caso clásico 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 cripto-

sistemas y protocolos basados en el logaritmo discreto elíptico.

Dos observaciones antes de acabar:

Lectura recomendada

Frey y Ruck (1994). “A

remark concerning

m-divisibility and the

discrete logarithm problem

in the divisor class group of

curves”. Mathematics ofComputation (vol. 62, pág.

865-874) .

• Frey y Ruck (1994) propusieron un ataque similar al de MOV utilizando el pairingde 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 más eficiente.

• Para las denominadas curvas anómalas, curvas definidas sobre un cuerpo primo Fp y

con cardinal p existe otro algoritmo de reducción debido a Semaev, Smart, Satoh and

Araki (ver la obra de Blake y otros (2000)).

Page 21: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 21 Pairings y sus aplicaciones

3. Criptografía basada en la identidad.

Ver también

La criptografía de clavepública se estudia en elmódulo “Elementos decriptografía” de estaasignatura.

Una de las motivaciones de Diffie y Hellman para su introducción de la crip-

tografía de clave pública fué el problema de la distribución de claves (siendo

otra motivación la firma digital). El aumento del número de usuarios de la

criptografía, al sumarse nuevos actores a los clásicos, gubernamentales y mili-

tares, hizo que potencialmente cada dos de tales usuarios A,B necesitasen en

algún momento comunicarse de forma segura, lo que utilizando un sistema

de clave privada, exigía una clave compartida KAB. La forma de hacer llegar

tal clave a ambos usuarios planteaba un problema de Gestión y Distribución de

Claves.

La criptografía de clave pública proporcionó un sistema eficiente de resolver

tal distribución de llaves, ya que el envío de KAB puede hacerse de forma

segura, a través de un canal inseguro, utilizando las llaves públicas de A y B. De

hecho, actualmente los sistemas de clave pública se utilizan principalmente

para la distribución de claves de comunicaciones de un sistema privado.

Ver también

La infraestructura de clavepública (PKI) se estudia en elmódulo “Elementos decriptografía” de estaasignatura.

Sin embargo, pronto se hizo patente un nuevo problema: una clave pública

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 públi-

cas mediante un sistema de certificados y autoridades de certificación, lo que

genera una engorrosa infraestructura de clave pública (PKI).

Referencia bibliográfica

A. Shamir (1994).

“Identity-Based

Cryptosystems and

Signature Schemes.

Advances in Cryptology.

Proceedings of Crypto’84”.

Lecture Notes in ComputerScience, núm. 7, págs. 47-53.

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

era poder utilizar, de forma segura, claves públicas derivadas de la propia iden-

tidad del usuario (de ahí el nombre de criptografía basada en la identidad). El

propio Shamir construyó un esquema de distribución de claves basado en esta

idea, sin embargo, una solución satisfactoria a la idea de criptosistemas basa-

dos en la identidad solo se consiguió con la utilización de pairings, de hecho

el método se conoce también criptografía basada en pairing.

La criptografía basada en la identidad implica la existencia de una cierta auto-

ridad de confianza (AC) que selecciona los parámetros comunes a todos los par-

ticipantes 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 públicos al menos una curva elíptica E sobre un

cuerpo finito Fq, un punto P ∈ E de orden primo l, una aplicación distorsión

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

Page 22: Criptografia_avanzada_(Modulo_5)

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 pública, como claves privadas de los participantes.

Lectura recomendada

Para más detalles sobre la

criptografía basada en la

identidad, ver la obra de

Blake y otros (2005) y la de

Luther (2008).

En lo que sigue expondremos algunos de los métodos básicos de esta cripto-

grafía para el intercambio de claves, criptosistemas y firma digital.

3.1. Intercambio de claves en criptografía basada en la identidad

Como se ha dicho, una de las motivaciones para la introducción de la clave

pública fué el problema de la distribución de claves. De hecho, Diffie y Hell-

man proponen un sistema bipartito para acordar una clave común entre dos

participantes A,B : fijado un grupo cíclico conveniente 〈g〉 (por ejemplo F∗q , el

grupo cíclico multiplicativo de un cuerpo finito), A y B eligen separadamen-

te números aleatorios nA,nB; 1 < nA,nB < l, calculan los elementos del grupo

gnA , gnB y se intercambian estos valores.

Tanto A como B pueden entonces calcular la clave común KAB = gnAnB . La

seguridad del método radica en que un atacante, interceptando gnA , gnB , para

poder conocer la clave se vería enfrentado con el siguiente problema.

.

Definición 3.1 (Problema computacional de Diffie-Hellman).

Conocidos gnA ,gnB calcular gnAnB .

La dificultad del problema computacional de Diffie-Hellman se considera equi-

valente a la del logaritmo discreto en el mismo grupo. Desde luego si un ad-

versario pudiese resolver el problema del logaritmo discreto obtendría nA,nB y

podría calcular gnAnB .

Un esquema semejante puede formularse en criptografía basada en la identi-

dad utilizando pairings y la identidad IdA de cada usuario A (el nombre o cual-

quier otra información personal, como el e-mail, una foto digital, o cualquier

secuencia binaria seleccionada por A). Además, en este tipo de criptografía,

existe la posibilidad de un protocolo de acuerdo tripartito de claves. Veamos

estos dos algoritmos.

3.1.1. Acuerdo bipartito de claves

Ver también

La función resumen seestudia en el módulo 3 deesta asignatura.

En este esquema se supone que la AC ha elegido y hecho público, además

de los datos referidos a la curva elíptica y el pairing, una función resumen h

que transforma cualquier secuencia binaria en un punto de 〈P〉. El esquema de

acuerdo bipartito de claves viene dado por el siguiente algoritmo.

Page 23: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 23 Pairings y sus aplicaciones

.

Algoritmo 3.2.

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

1) calcula y envía a A el punto SA = sPA ∈ 〈P〉, donde PA = h(IdA).

2) calcula y envía a B el punto SB = sPB ∈ 〈P〉, 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 función resumen h son públicas),

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 común es KAB = el(SA,PB) = el(PA,SB).

Acuerdo bipartito de claves

SB

Alicia Bernardo

Parámetrospúblicos

Generador de claves

êl(SA,PB) = KABC êl(PA,SB) = KABC

PAPB

SA

Page 24: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 24 Pairings y sus aplicaciones

3.1.2. Acuerdo tripartito de claves

Lectura recomendada

A. Joux (2000). “A one

round protocol for tripartite

Diffie-Hellmann”, LNCS(vol. 1838, págs. 385-394.

El siguiente protocolo, propuesto por A. Joux (2000), permite el acuerdo de

una clave común 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 número aleatorio nA; 1 < nA < l y calcula PA = nAP

2) B toma un número aleatorio nB; 1 < nB < l y calcula PB = nBP

3) C toma un número aleatorio nC; 1 < nC < l y calcula PC = nCP

4) A,B,C intercambian los valores de PA,PB,PC

• Acuerdo de claves: Los participantes calculan la clave común,

1) el(PB,PC)nA = el(P,P)nAnBnC = KABC

2) el(PA,PC)nB = el(P,P)nAnBnC = KABC

3) el(PA,PB)nC = el(P,P)nAnBnC = KABC

Resumimos el protocolo de Joux en el diagrama siguiente.

Acuerdo tripartito de Joux

KABC

PB

Alicia Bernardo

Parámetrospúblicos

PA

PCPA

PC

Carlos

PB

PA

nA

KABC

PB nB

KABC

PC nC

Page 25: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 25 Pairings y sus aplicaciones

Si la seguridad del esquema clásico de Diffie-Hellman se basa en el problema

computacional de Diffie-Hellman, el acuerdo tripartito descansa en la supues-

ta intractabilidad de la siguiente variante.

.

Definición 3.4 (Problema Bilineal de Diffie-Hellman). Conoci-

dos nAP,nBP,nCP calcular el(P,P)nAnBnC .

Lectura recomendada

El ejemplo 3.1 puede

encontrarse en J. Hoffstein;

J. Pipher; J. Silverman

(2008). An Introduction toMathematical Cryptography.

Springer.

* Ver los ejercicios al final del

módulo.

Ejemplo 3.1.

Sea q = 1303 y la curva elíptica E : y2 = x3 + x sobre Fq. El punto P = (334,920) ∈ E tiene

orden primo l = 163. La aplicación distorsión φ : (x,y) → (–x,iy) donde i ∈ Fq2 es tal que

i2 = –1, proporciona el pairing modificado e163.*

Sean las elecciones de A,B,C:

1) nA = 71. A calcula y hace público PA = (1279,1171).

2) nB = 3. B calcula y hace público PB = (872,515)

3) nC = 126. C calcula y hace público PC = (196,815)

Los tres participantes pueden calcular ahora la clave común (para los cálculos tener en

cuenta que i2 = –1 y reducir todas las operaciones módulo 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

Lectura recomendada

Boneh y Franklin (2001).

“Identity based encryption

from the Weil pairing”.

LNCS (vol. 2139,

pág. 213-229).

Un sistema criptográfico efectivo, basado en la idea de Shamir de emplear la

identidad de un usuario como su clave pública fue propuesto por Boneh y

Franklin (2001). En realidad estos autores proponen dos versiones. Veamos en

primer lugar la versión que denominan básica.

.

Algoritmo 3.5 (Esquema básico de Boneh y Franklin).

• Parámetros: Los mensajes en claro M serán elementos del conjunto

M de secuencias binarias de una longitud prefijada n, es decir M =

{0,1}n. Además de los parámetros antes mencionados con carácter

general, la AC,

1) crea y envía a los participantes su propia clave pública PAC = sP,

2) elige una función resumen h1 que permite asignar a la identidad de

cada usuario A una clave pública PA = h1(IdA) ∈ 〈P〉,

3) elige una función resumen h2 : µl → M,

4) calcula la clave privada de cada participante SA = sPA.

Page 26: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 26 Pairings y sus aplicaciones

.

• 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:

C1 = rP, C2 = M ⊕ h2(el(PA,PAC)r) (13)

(dondeL

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

rias).

3) B envía 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)

Observación

Cabe señalar la similitudformal entre la versión básicadel criptosistema deBoneh-Franklin y elcriptosistema ElGamal: enambos el cifrado viene dadopor un par cuya primeracomponente es producto opotencia del generador y unnúmero aleatorio, mientrasque la segunda componenteincluye el mensaje en clarocomo sumando o factor.

El esquema siguiente ilustra el esquema básico de Boneh y Franklin.

Cifrado básico de Boneh-Franklin

M

PAC

Alicia Bernardo

Parámetrospúblicos

Generador de claves

C2, êl(SA,C1)

PA

C = (C1,C2)

SA

M,r C2

r C1

AC

Page 27: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 27 Pairings y sus aplicaciones

Boneh y Franklin consideran que su esquema básico no reúne las garantías

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

.

Algoritmo 3.6.

• Parámetros: Además de los parámetros del anterior esquema básico,

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 válido M′ (= M). Caso contrario rechaza

el mensaje recibido.

Lectura recomendada

Para un análisis de la

seguridad del modelo

completo de Boneh y

Franklin, ver la obra de

Blake y otros (2005) y la de

Luther (2008).

La seguridad del modelo completo de Boneh y Franklin se considera equipa-

rable a la del problema bilineal de Diffie-Hellman.

3.3. Esquemas de firma basados en la identidad

Ver también

La firma digital de unmensaje se estudia en elmódulo “Elementos deCriptografía” de estaasignatura.

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

Franklin puede adaptarse también al proceso de firma digital. Recordemos

que la firma digital de un mensaje M es el análogo electrónico de la firma

ordinaria (con la diferencia de que la firma electrónica depende del mensaje

concreto M), en cuanto permite demostrar, incluso con valor legal, la identi-

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

Page 28: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 28 Pairings y sus aplicaciones

.

Definición 3.7.

1) Algoritmo de firma: Implica un cómputo en el que interviene el

mensaje M y la clave privada del firmante (la cual, en el caso de la

criptografía de clave pública clásica, habrá sido elegida por él mismo

y en el caso de la criptografía basada en la identidad le debe ser pro-

porcionada por la AC) y una cierta función resumen. Este computo

produce un resultado F(M).

2) Algoritmo de verificación: Recibido como input el mensaje M y

su firma F(M), tiene como output uno de los dos valores siguientes:

firma válida ó firma no válida

Observemos las siguientes características importantes:

1) Ciertos tipos de firmas, Firmas con recuperación del mensaje, recuperan M

durante el proceso de verificación. Sin embargo lo usual es que las firmas re-

quieran el mensaje original (quizás previamente cifrado si se desea preservar

su secreto) para la verificación: Firmas con Apéndice.

2) En las firmas con apéndice, el empleo de función resumen permite que el

texto a firmar sea pequeño. Además, 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,

Ver también

Los diferentes tipos de firmasse estudian en el módulo“Elementos de Criptografía”de esta asignatura.

4) La firma puede depender de un valor aleatorio: firmas aleatorias, (por ejem-

plo la firma ElGamal, el Digital Signature Standard, etc.).

El siguiente algoritmo esquematiza un ejemplo de firma digital (aleatoria, con

apéndice) similar a la firma de ELGamal.

.

Algoritmo 3.8.

• Parámetros: Los mensajes M ∈ M serán secuencias binarias de lon-

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

elíptica E, el punto base P ∈ E, de orden primo l, una aplicación

distorsión φ y el correspondiente pairing modificado el, así como su

propia clave secreta s, 1 < s < l. Además la AC,

1) crea y envía a los participantes su propia clave pública PAC = sP,

2) elige una función resumen h1 que permite asignar a la identidad de

cada usuario A una clave pública PA = h1(IdA) ∈ 〈P〉,

3) elige una función resumen h2 : M× 〈P〉 → {r; 1 < r < l},

4) calcula la clave privada de cada participante SA = sPA.

Page 29: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 29 Pairings y sus aplicaciones

.

• 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 Verificación: 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 válida (un simple cálculo

muestra que, si el proceso se ha realizado correctamente, debe veri-

ficarse tal igualdad).

Resumimos el esquema de firma en el diagrama siguiente.

Firma basada en la identidad

PAC

Alicia

Bernardo

Verificador

Parámetrospúblicos

Generador de claves

PA

SA

F2

AC

PB

(M,F)r F1

F1,M,r F2

F = (F1, F2)

MF1

êl[] = êl[]

?

Page 30: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 30 Pairings y sus aplicaciones

Modelos de seguridad

La seguridad de un esquemacriptográfico se demuestra enel contexto de un modelo de

seguridad. En el modeloestándar se trata de probarque romper el sistemaimplica resolver un problemamatemáticocomputacionalmenteintratable. El modelo RandomOracle demuestra laseguridad asumiendo que lasfunciones resumen utilizadasson realmente funcionesaleatorias.

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

atacante no es capaz de crear una firma que sea aceptable como válida para

ningún mensaje) de la firma descrita, en el modelo de seguridad denominado

Random Oracle Model.

Lectura recomendada

Boneh, Lynn y Shacham(2001). “Short signatures

from the Weil pairings”.

Asiacrypt 2001. LNCS (vol.

2248, págs. 514-532)

El siguiente esquema de firma de Boneh, Lynn y Shacham (2001), es especial-

mente eficiente y permite claves muy cortas.

.

Algoritmo 3.9.

• Parámetros: Los mensajes M ∈ M son secuencias binarias de lon-

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

elíptica E, el punto base P ∈ E, de orden primo l, una aplicación

distorsión φ y el correspondiente pairing modificado el. Además,

1) una función resumen h : M → 〈P〉,

2) una clave privada de cada participante nA; 1 < nA < l y pública

PA = nAP.

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

nAh(M).

• Algoritmo de Verificación: Cuando el verificador recibe el par

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

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

Lectura recomendada

M. Barreto y otros (2002).

“Efficient algorithms for

pairing-based

cryptosystems”. CRYPTO

2002. LNCS (vol. 2442,

págs. 354-368)

En este esquema el proceso de firma solo requiere una función resumen y una

multiplicación escalar, mientras que la verificación solo necesita calcular dos

pairings. Por otra parte, es posible el uso de claves de longitud pequeña. Así,

Barreto y otros (2002) han realizado una implementación sobre el cuerpo F397

con longitud binaria log2(397) = 97log23 ≈ 154 bits, permitiendo el mismo

nivel de seguridad que el Digital Signature Algorithm, que utiliza claves de

320 bits.

Page 31: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 31 Pairings y sus aplicaciones

Ejercicios de autoevaluación

1. Sea Fq cuerpo finito con q = pn elementos y sea Tr : Fq → Fp la aplicación traza. Sea la

aplicación 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 dimensión n sobre

el cuerpo Fp).

b) Supongamos que n no es múltiplo de la característica p. Probar que T es no degenerada.

Traza

En los ejercicios del módulo“Cuerpos finitos” se introdujola noción de aplicación traza,la cual asigna a un elementox ∈ Fq el elemento de Fp

traza de la multiplicación porx en el espacio vectorial Fq

sobre Fp.

2. Sea V un espacio vectorial de dimensión n sobre un cuerpo conmutativo K y B = {v1,v2,

. . . ,vn} una base de V. Si f : V×V → K es una forma bilineal simétrica, 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 (respecti-

vamente no nulo) en otra base B′

b) La aplicación f es no degenerada si, y solamente si, el discriminante en cualquier base es

no nulo.

3. Sea la curva elíptica 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 pun-

to anterior encontrar divisores D′

1, D′

2 equivalentes a D1 y D2 y que tengan soportes

disjuntos.

4. Sea la curva elíptica 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 elíptica 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 elíptica E : y2 = x3 + 7x definida sobre el cuerpo F13 y los puntos de 3-torsión

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.

Ver también

Las curvas elípticas seestudian en el módulo“Criptografía con curvaselípticas” de esta asignatura.

7. Sea p = 101 y la curva elíptica 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

fórmulas de adición de puntos de una curva elíptica).

a) Calcular el grado de inmersión de e17.

b) Sea la aplicación φ : E → E; φ(x,y) = (x,ζy) donde ζ3 = 1. El elemento ζ no está en el

cuerpo F101, sino en su extensión de grado 2, F1012 , (en efecto ζ es raíz del polinomio

x2 + x + 1, irreducible sobre F101). Probar que φ es una aplicación distorsión para P.

8. Sea p = 547 y la curva elíptica sobre F547, E : y2 = x3 + x, con cardinal 548. El punto

P = (67,481) ∈ E tiene orden l = 137.

a) Calcular el grado de inmersión de e137.

b) Sea la aplicación φ : E → E; φ(x,y) = (–x,iy) donde i2 = –1, elemento en F5472 (raíz

del polinomio x2 + 1, irreducible sobre F547). Probar que φ es una aplicación distorsión

para P.

9. Sean los mismos datos del ejercicio anterior y sea e137 el pairing modificado correspon-

diente a P y φ. Tres participantes A,B,C desean acordar una clave común 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 común del protocolo dado en el algoritmo 3.3.

10. Escribir un script en SAGE que permita calcular la clave común KABC del algoritmo de

Joux, sabiendo la clave privada nA de A y las claves públicas PB y PC de B y C, respectivamente.

Los datos públicos, o sea el cuerpo finito, la curva elíptica, el punto P y la distorsión 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).

Page 32: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 32 Pairings y sus aplicaciones

Soluciones

1) a) T es bilineal por ser lineal en cada variable. La simetría 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 = x–1: en efecto, T(x,x–1) = Tr(xx–1) = Tr(1) = n 6= 0 (pues n no es múltiplo de p).

2) a) Sean las ecuaciones del cambio de base v′i =P

j cijvj, 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|2DisB(f ) de donde el resultado.

b) Supongamos nulo el discriminante (en cualquier base B). Existirá pues una combinación

lineal no trivial λ1F1 + · · · + λnFn = 0 entre las filas Fi de la matriz (f (vi,vj)), luego para

todo j se tiene una relación: λ1f (v1,vj) + · · · + λnf (vn,vj) = 0. Denotando w = λ1v1 + · · · +

λnvn (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

también f (w,v) = 0, ∀v ∈ V, luego w es un elemento del núcleo de f (por la derecha y

por la izquierda), luego f es degenerada.

El recíproco es análogo. Si f es degenerada existirá un vector no nulo w ∈ V tal que

f (w,v) = 0, ∀v ∈ V. Si w = λ1v1+· · ·λnvn, se deduce entonces una relación 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 elíptica, contados con sus multiplicidades.

Para determinar los ceros hagamos la intersección de E y r: sustituyendo y = x en la

ecuación de E se obtiene la ecuación x3 – x2 + x = 0. Una raíz de esta ecuación de tercer

grado es x = 0. Resolviendo (en el cuerpo F7) la ecuación x2 – x + 1 se obtienen las otras

dos raíces: 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 común (5,5). Si se observa que este

punto aparece también en el soporte de div(r) resulta razonable tomar,

D′

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

D′

1 ya tiene soporte disjunto con D2, por tanto basta tomar D′

2 = D2.

4) Para encontrar los ceros, determinemos los puntos de corte de la curva elíptica 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 elíptica 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 debería 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 ecuación de E en coordenadas proyectivas: y2z = x3 + z3 Pero ahora el corte

con z = 0 proporciona y2z = z3 y simplificando y2 = z3. Haciendo z = 0, se tiene la función

cuadrática 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) ∈ 〈P〉 se tendría φ(P) = mP, para algún

m luego el(P,φ(P)) = el(P,P)m = 1.

Page 33: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 33 Pairings y sus aplicaciones

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

virtud del Lema 1.10 el grupo de l-torsión E[l](K) es producto de dos grupos cíclicos de orden

l. Por hipótesis uno de ellos es 〈P〉, por tanto φ(P), por ser independiente de P debe estar en

el segundo grupo cíclico y por ser este de orden primo, φ(P) es un generador.

En definitiva, el par {P,φ(P)} es una base de E[l](K). Por tanto debe tenerse el(P,φ(P)) 6= 1,

pues en caso contrario el sería trivial en todo E[l](K), en contra de la no degeneración de el,

ver definición 1.11.

Ver también

Las fórmulas de adición depuntos en E se han dado enel módulo “Criptografía concurvas elípticas” de estaasignatura.

6) Dado que se sabe que R ∈ 〈P〉 y que 〈P〉 tiene cardinal 3, se tendrá que 〈P〉 = {P, 2P, 3P =

O}. Como R 6= P, O debe ser R = 2P, lo que también puede comprobarse utilizando las

fórmulas de adición de puntos en E.

Sin embargo, en las aplicaciones criptográficas l es enorme y el razonamiento anterior no es

aplicable.

7) a) El grado de inmersión es el menor k tal que 17 divide a 101k – 1. Fácilmente se com-

prueba que k = 2, lo que también se habría podido deducir del hecho de ser E curva

supersingular de tipo I (ver Proposición 1.21).

b) En primer lugar, es necesario mostrar que φ es realmente una aplicación de E en E, es

decir, que si (x,y) es un punto de la curva también lo es (x,ζy). Teniendo en cuenta la

ecuación de la curva y que ζ3 = 1, la comprobación es trivial. Es también inmediata la

linealidad de φ, por tanto φ es un endomorfismo de la curva.

Puesto que φ(P) no tiene coeficientes en F103, no puede ser un múltiplo 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 aplicación distorsión.

8) De forma análoga al problema anterior se obtiene,

a) El grado de inmersión es 2 (E curva supersingular de tipo II, ver 1.4).

b) Si (x,y) ∈ E se comprueba que (–x,iy) lo es también. 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

aplicación distorsión.

9) a) Utilizando las fórmulas de adición y doblado de puntos en una curva elíptica, se obtie-

ne:

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 cálculos módulo 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 descripción 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 elíptica 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)

Page 34: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 34 Pairings y sus aplicaciones

#Construimos el cuerpo extensión cuadrática de F y llamamos alpha a su generador

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

En este punto, definimos el pairing de Weil modificado. La definición la damos en función

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 en-

contrar el resultado:

sage: P=E(67,481)# Construimos el punto P y comprobamos su orden137

sage: Px=Ex(P)#El punto P sobre la curva elíptica 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; KABC54 + 198 alpha

Page 35: Criptografia_avanzada_(Modulo_5)

CC-BY-NC-ND • PID_00200950 35 Pairings y sus aplicaciones

Bibliografía

Blake, I.; Seroussi, G.; Smart, N. (2000). “Elliptic Curves in Cryptography”. LondonMathematical Society Lecture Note Series (núm. 265). Cambridge: Cambridge U. Press.

Blake, I.; Seroussi, G.; Smart, N. (2005). “Advances in Elliptic Curves in Cryptography”.

London Mathematical Society Lecture Note Series (núm. 317). Cambridge: Cambridge U. Press.

Hoffstein, J.; Pipher, J.; Silverman, J. (2008). “An Introduction to Mathematical Cryp-

tography.” Undergraduate Texts in Mathematics. Nueva York: Springer.

Martin, L. (2008). “Introduction to Identity-based Encryption”. Artech House Inc. Massa-

chusetts: Norwood.

Page 36: Criptografia_avanzada_(Modulo_5)