criptografia_avanzada_(modulo_5)
DESCRIPTION
Apuntes Universidad Oberta de Cataluña (Máster seguridad informática)TRANSCRIPT
Pairings y susaplicacionesLlorenç Huguet Rotger
Josep Rifà Coma
Juan Gabriel Tena Ayuso
PID_00200950
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
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
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.
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.
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.
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
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′)
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)
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
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.
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}.
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).
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)
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 .
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.
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
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
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)).
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
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.
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
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
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.
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
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.
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.
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[]
?
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.
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).
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.
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)
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
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.