• No se han encontrado resultados

Pairings y sus aplicaciones

N/A
N/A
Protected

Academic year: 2022

Share "Pairings y sus aplicaciones"

Copied!
36
0
0

Texto completo

(1)

Pairings y sus aplicaciones

Llorenç Huguet Rotger Josep Rifà Coma

Juan Gabriel Tena Ayuso

PID_00200950

(2)

Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a una licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España de Creative Commons. Podéis copiarlos, distribuirlos y transmitirlos públicamente siempre que citéis el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), no hagáis un uso comercial y no hagáis una obra derivada. La licencia completa se puede consultar en

http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es

(3)

Índice

Introducción . . . . 5

Objetivos . . . . 6

1. Pairingsen 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

(4)
(5)

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.

(6)

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.

(7)

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×V2W se denomina bilineal si es aplicación lineal de espacios vectoriales en cada una de las varia- bles, es decir, si para todo a,aV1, b,bV2,λ ∈ 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×VW se denomina:

1) Simétrica sia,bV se verifica: f (a,b) = f (b,a).

2) Antisimétrica sia,bV se verifica: f (a,b) = –f (b,a).

3) Alternada siaV se verifica: f (a,a) = 0.

(8)

Formas cuadráticas

Si f : V × V → K es una forma bilineal simétrica la aplicación

q : V→ K, q(a) = f (a,a) se denomina forma cuadrática.

La teoría de las formas cuadráticas, estrechamente relacionada con la de formas bilineales simétricas, es una rama importante del Álgebra, y sin duda es familiar al lector a propósito del estudio de las có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,bV 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+ xy) + 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+ bxy + cyy, a,b,b,c∈ R, b 6= ±b: Ni simétrica ni antisimé- trica

Observación

La forma cuadrática asociada a la forma bilineal simétrica f ((x,y),(x,y)) =

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

.

Definición 1.4. Sea f : V1×V2W una forma bilineal. Se denomina núcleo por la izquierda de f al conjunto Kerizq = {aV1; f (a,b) = 0,∀bV2}. Análogamente se denomina núcleo por la derecha de f al conjunto Kerder={bV2; f (a,b) = 0,aV1}.

.

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

(9)

Demostración: Para cualquier aV1, bV2 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×BC 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)

(10)

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 cuerpoFqk 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 aplicaciones criptográficas basadas en el logaritmo discreto elíptico, se trabaja en el grupo cíclico generado por un punto P∈ E. Si l es el orden de P (usualmente primo) es entonces el pairing el el que se considera

.

Definición 1.9. Los puntos de l-torsión de una curva elíptica son los elementos del conjunto E[l] ={PE; 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). The Arithmetic 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)

(11)

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

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

(12)

.

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,QP = O, el(P,Q) = 1,PQ = O.

4) Existen puntos P,QE[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 de orden n de la unidad aquella cuyo orden es exactamente n. Por ejemplo, en el cuerpo Cde los complejos el elemento e2πi/5 es una raíz de orden 15 de la unidad (pues

(e2πi/5)15= (e2πi)3= 13= 1), pero no es una raíz primitiva de orden 15, ya que su orden es 5 (y por tanto, en realidad es una raíz primitiva de orden 5 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 subgrupohPi 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 ∈ hPi 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.

(13)

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 ∈ hPi, 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,QE[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 Elliptic Curves. 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 =PPEnP(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 PE con el divisor (P) = 1(P).

2) Dados dos divisores D =PPEnP(P), D=PPEnP(P) , la adición: D + D=PPE(nP+nP)(P) confiere al conjunto de divisores una estructura de grupo abeliano.

3) Se define el grado de D : gr(D) =PnP∈ Z. 4) Se define el soporte de D : sp(D) ={P; nP6= 0}.

(14)

Observación

Aunque la grafía es parecida conviene no confundir el punto neutro de la curva elíptica, O (el único punto del infinito de la curva) con 0 elemento neutro del cuerpo K sobre el que está definida la curva. Tampoco hay que confundirlo con el elemento neutro (O) del grupo de divisores.

.

Definición 1.15.

1) Función racional sobre E: Función del tipo f = FF12(x,y)(x,y) con F1,F2polinomios 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 ) =PordP(f )(P) donde

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

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

c) ordP(f ) = –n (n1) 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 DD) si se diferencian en un divisor principal, es decir: D = D+ div(f ).

6) Sea f una función y D = PPEnP(P) un divisor. Se define f (D) = Qf (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 Pi6= 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 = PnP(P) es principal si y solamente si PnP = 0 y PnPP = 0 (en la última expresión la suma indica la suma de puntos en la curva elíptica).

(15)

Ver también

Las fórmulas de adición se estudian en el módulo

“Criptografía con curvas elí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,QE[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)

(16)

* 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 = Pri=1ni(Pi) un divisor principal. Output: una función f tal que D = div(f )

1) Puesto que D tiene grado 0 puede escribirse: D =Pri=1ni((Pi) – (O)) 2) Para cada i obtenemos la forma canónica (Pi) – (O) + div(fi), del

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

i) Sean bd–1bd–2· · ·b1b0 la expresión binaria de ni (donde b0son 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:= fi2gRR; 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 .

(17)

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ónFqk

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

.

Lema 1.19. Existe un número natural k (de hecho puede tomarse 1kl – 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 elementos no nulos en Z/lZ coprimos con l, se denomina la función de Euler ϕ(l). En particular si l es primo tenemos que ϕ(l) = l – 1. El orden

multiplicativo k del cardinal q del cuerpo Fqes siempre un divisor 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 deZ/lZ. El orden k de q en tal grupo será una solución del problema.

Ver también

La función de Euler se estudia en el módulo “Cuerpos finitos” 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 se estudia en el módulo

“Criptografía con curvas elí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| ≤ 2q. 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), hPi ⊆E, cuyo orden l será pues un divisor de♯E.

(18)

* 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 k6*.

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 finitoFq, 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) q3 (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/(q1)Z× Z/(q1)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 + 1q 3 IV ±p2q q + 1p2q 4 V ±p3q q + 1p3q 6

VI ±2q q∓ 1 1

(19)

2. Ataques basados en pairings .

Referencia bibliográfica

Menezes, Okamoto y Vanstone (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 sobreFqk, con k el grado de inmersión.

Supongamos hPi ⊆ E(Fq) el grupo subyacente al logaritmo discreto elíptico, subgrupo de orden l, primo con la característica p y denotemos µlFqk. El ataque de Menezes, Okamoto y Vanstone (MOV) viene dado por el siguiente algoritmo.

.

Algoritmo 2.1.

Input: P, R∈ hPi, R6= 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α, enFqk. 5) Retornar m.

Lectura recomendada

Ver los detalles del ejemplo 2.1 en A. Menezes, Elliptic Curves Public Key

Cryptography, 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)∈ hPi.

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ásico sobre el grupo multiplicativo se 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 cuerpoFq a un problema similar enFqk. La longitud binaria

(20)

de qk es k veces la longitud binaria de q, por tanto para k grande el tamaño del cuerpoFqk 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 of Computation (vol. 62, pág.

865-874) .

Frey y Ruck (1994) propusieron un ataque similar al de MOV utilizando el pairing de Weil. Kanayama, Kobayashi, Saito y Uchiyama (2000) probaron que si l no es un divisor de q – 1, los algoritmos MOV y Frey-Ruck son equivalentes, sin embargo, para curvas con cardinal q – 1, el algoritmo de Frey-Ruck es 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)).

(21)

3. Criptografía basada en la identidad .

Ver también

La criptografía de clave pública se estudia en el módulo “Elementos de criptografía” de esta asignatura.

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 clave pública (PKI) se estudia en el módulo “Elementos de criptografía” de esta asignatura.

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 Computer Science, 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 finitoFq, un punto PE de orden primo l, una aplicación distorsión φ y el correspondiente pairing modificado ˆel. Asimismo la AC ha elegido una

(22)

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 convenientehgi (por ejemploFq, 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 se estudia en el módulo 3 de esta 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 dehPi. El esquema de acuerdo bipartito de claves viene dado por el siguiente algoritmo.

(23)

.

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∈ hPi, donde PA= h(IdA).

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

Acuerdo de clave: Los participantes A y B calculan

1) A, utilizando su clave privada SA y PB (que puede calcular, ya que tanto la identidad IdB como la 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ámetros públicos

Generador de claves

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

PA PB

SA

(24)

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ámetros públicos PA

PC

PA

PC

Carlos PB PA

nA

KABC PB nB

KABC PC nC

(25)

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 to Mathematical 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 decirM= {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)∈ hPi, 3) elige una función resumen h2:µl→ M,

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

Referencias

Documento similar