260
Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel Tena Ayuso PID_00200953 https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/ Criptografia_avanzada_(Modulo_1).pdf

Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

Embed Size (px)

Citation preview

Page 1: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

Cuerpos finitosLlorenç Huguet Rotger

Josep Rifà Coma

Juan Gabriel Tena Ayuso

PID_00200953

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 2: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 3: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 Cuerpos finitos

Índice

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

Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1. Existencia y propiedades de los cuerpos finitos . . . . . . . . . . . . . . 7

1.1. Existencia y construcción de cuerpos finitos . . . . . . . . . . . . . . . . . . 7

1.2. Estructura aditiva y multiplicativa de un cuerpo finito . . . . . . . . 12

1.2.1. Representación aditiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.2. Representación multiplicativa . . . . . . . . . . . . . . . . . . . . . . . . 14

2. Bases de cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3. Computación en cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1. Aritmética en cuerpos finitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.1. Multiplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.2. División . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.3. Exponenciación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2. Complejidad de la aritmética en cuerpos finitos . . . . . . . . . . . . . . 23

3.3. Algoritmos aritméticos en cuerpos finitos . . . . . . . . . . . . . . . . . . . . . 27

Ejercicios de autoevaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 4: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 5: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 5 Cuerpos finitos

Introducción

Los sistemas y protocolos criptográficos que serán objeto de estudio en módu-

los posteriores utilizan como alfabeto un cuerpo finito o una curva definida

sobre ese cuerpo. La necesidad de la estructura de cuerpo obedece a que en

dichos sistemas hay que realizar las cuatro operaciones de suma, diferencia,

multiplicación y división y obviamente, como siempre en criptografía, este

tipo de alfabeto debe ser finito.

Los cuerpos finitos han sido estudiados desde hace siglos por diversos mate-

máticos, en particular Evariste Galois (de hecho son también conocidos como

cuerpos de Galois), pero es en los últimos 50 años cuando el interés por estas

estructuras ha conocido un crecimiento espectacular, debido a sus aplicacio-

nes en diferentes campos de indudable interés para el mundo industrial y

financiero, como son la criptografía o los códigos correctores de errores.

La teoría de códigos correctores de errores trata de preservar la calidad de la

información cuando es transmitida a través de canales susceptibles de sufrir

perturbaciones, que introducen errores en el mensaje transmitido. Un código

corrector permite, dentro de ciertos límites, detectar y corregir tales errores.

Esta teoría comparte con la criptografía fines (si los códigos correctores tratan

de defender la información de la degradación natural la criptografía trata de

defenderla de los ataques humanos) y técnicas, en particular diversos sistemas

criptográficos (McEliece, Niederreiter), están basados en códigos correctores.

Denotaremos Fq a un cuerpo finito con q elementos (algunos autores utilizan

la notación GF(q), por Galois field con q elementos). El presente módulo es-

tudia esta estructura matemática, con especial énfasis en los aspectos compu-

tacionales de su aritmética.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 6: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 6 Cuerpos finitos

Objectivos

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

tenidos necesarios para alcanzar los objetivos siguientes:

1. Conocer la estructura aditiva y multiplicativa de un cuerpo finito Fq, de

q = pm elementos, donde p es un número primo.

2. Saber calcular la tabla de equivalencias polinomial-exponencial y saber cal-

cular en un cuerpo finito Fq dando los resultados en cualquiera de las dos

representaciones.

3. Saber reconocer la complejidad computacional de un cálculo en cuerpos

finitos.

4. Conocer y saber aplicar los principales algoritmos aritméticos en cuerpos

finitos.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 7: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 7 Cuerpos finitos

1. Existencia y propiedades de los cuerpos finitos.

En este apartado se muestra para qué valores de q existe un cuerpo finito Fq y

cómo construirlo explícitamente y se estudian sus propiedades y estructura.

1.1. Existencia y construcción de cuerpos finitos

En primer lugar señalemos el siguiente resultado del teorema 1.

Lectura recomendada

Sobre el teorema de

Wedderburn podéis

consultar la obra de Lidl y

Niederreiter (1997).

.

Teorema 1.1 (Teorema de Wedderburn). Todo cuerpo finito es

conmutativo (es decir, su multiplicación es conmutativa).

Observación

Existen cuerpos infinitos queno son conmutativos, comoel cuerpo de los cuaterniones.

.

Definición 1.2 (Característica de un cuerpo). La característica de un

cuerpo K se define como el mínimo p de los enteros positivos n tales

que n · 1 = 1 + 1 + · · · + 1 = 0 (suma de n copias de 1), donde 0 es el

elemento neutro de la suma y 1 el elemento neutro del producto en el

cuerpo K. Si tal p no existe, como sucede con el cuerpo de los números

reales, decimos que K tiene característica 0. Caso contrario p debe ser

un número primo (si p = r · s, 1 < r,s < p se tendría que 0 = p · 1 =

(r · 1)(s · 1) y uno de los dos factores debería ser cero, en contradicción

con la minimalidad de p) y el cuerpo se dice de característica prima p.

Un primer ejemplo de cuerpo finito viene dado por el siguiente resultado.

.

Proposición 1.3. Para todo número primo p el conjunto Zp de los en-

teros módulo p, con la suma y producto inducidos por las de Z, cons-

tituye un cuerpo conmutativo.

Demostración: Recordemos que el conjunto Zp de los enteros módulo p es

el conjunto de clases de equivalencia de números enteros, donde dos enteros

x,y son equivalentes si, y solamente si, son congruentes módulo p: x ≡ y

(mod p) (es decir x – y es divisible por p). El conjunto Zp tiene cardinal p y un

conjunto de representantes viene dado por Fp = {0,1, . . . ,p – 1}.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 8: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 8 Cuerpos finitos

Las operaciones a + b (mod p) y a · b (mod p) (realizar la suma o producto de

a y b en Z , dividir el resultado por p y tomar el resto) dota a este conjunto

de estructura de cuerpo: es obvio que (Fp,+) es un grupo aditivo, con 0 como

elemento neutro y opuesto de a ∈ Fp el elemento –a = p – a. Por lo que se

refiere a (F∗p = Fp –{0},·) la multiplicación es conmutativa, el elemento 1 actúa

como unidad y dado un elemento a ∈ F∗p la existencia de inverso (y un método

efectivo de calcularlo) se deduce del algoritmo de Euclides (el cual se describirá

a continuación): dado que a y p son coprimos entre sí, existen elementos

x,y ∈ Z tales que mcd(a,p) = 1 = ax + py, y por tanto en Fp (nótese que p ≡ 0

(mod p)) ax ≡ 1 (mod p), luego el elemento x (mod p) es el inverso del a.

Cuerpo binario

Si p = 2, se tiene el cuerpocon dos elementosF2 = {0,1} base de lacomputación binaria (lasoperaciones de cuerpocoinciden con lasoperaciones lógicasO-exclusivo (XOR) y AND).

El algoritmo de Euclides (Euclides, libro VII), que permite obtener el máximo

común divisor d de dos números a,b ∈ N, es uno de los algoritmos bási-

cos en matemática computacional. Una modificación - algoritmo de Euclides

extendido- permite obtener d como combinación lineal de a y b con coefi-

cientes enteros (Identidad de Bezout):

d = ax + by (1)

Exponemos a continuación el algoritmo de Euclides extendido.

.

Algoritmo 1.4.

1. Tomar, como valores iniciales,

a0 := a, a1 := b, x0 := 1, x1 := 0, y0 := 0, y1 := 1.

2. A partir de i := 1, iterar las asignaciones

ai+1 := ai–1 – qiai (calculamos el cociente qi y el residuo ai+1

de la división entre ai–1 y ai)

xi+1 := xi–1 – qixi (a partir de xi–1,xi i qi, calculamos xi+1)

yi+1 := yi–1 – qiyi (a partir de yi–1,yi i qi, calculamos yi+1)

hasta obtener un residuo ai = 0.

3. Si an es el primer residuo nulo, entonces d = an–1 = axn–1 + byn–1.

Ejemplo 1.1. Sean a = 256, b = 96. Aplicando el algoritmo 1.4 se obtiene: a2 = 64, a3 =

32, a4 = 0, x2 = 1, x3 = –1, y2 = –2, y3 = 3. Luego d = a3 = 32 = 256(–1) + 96 · 3. Observación

El Algoritmo 1.4 puedeaplicarse también a dospolinomios a(X),b(X) concoeficientes en un cuerpo K.Ver el ejemplo 1.3.

Ejemplo 1.2. Sea p = 7, y el cuerpo F7 = {0,1,2,3,4,5,6}. Para a = 3, b = 6 se tiene

3 + 6 ≡ 2 (mod 7), 3 · 6 ≡ 4 (mod 7) y 3–1 ≡ 5 (mod 7) (nótese que 1 = 1 · 7 – 2 · 3).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 9: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 9 Cuerpos finitos

Ejemplo 1.3. Calcular el máximo común divisor mcd(P(X),Q(X)) y expresar el resulta-

do como combinación de los polinomios iniciales P(X) y Q(X), donde P(X) y Q(X) son

polinomios a coeficientes en F3: P(X) = X7 + 2X2 + X + 1; Q(X) = X3 + 2X2.

La aplicación del algoritmo de Euclides extendido nos da:

a0 = X7 + 2X2 + X + 1; a1 = X3 + 2X2; a2 = X + 1; a3 = 1; a4 = 0

q1 = X4 + X3 + X2 + X + 1; q2 = X2 + X + 2

x0 = 1; x1 = 0; x2 = 1; x3 = 2X2 + 2X + 1

y0 = 0; y1 = 1; y2 = 2X4 + 2X3 + 2X2 + 2X + 2; y3 = X6 + 2X5 + X4 + X3 + X2

O sea que, 1 = mcd(P(X),Q(X)) y, además:

(X2 + X + 2)P(X) + (X6 + 2X5 + X4 + X3 + X2)Q(x) = 1

Determinemos ahora para qué otros valores de q, distintos de los primos, exis-

te un cuerpo finito con q elementos.

.

Proposición 1.5. Sea K = Fq un cuerpo finito con q elementos, con

elemento neutro para la adición 0K y elemento unidad para la multi-

plicación 1K. Existe un primo p tal que K contiene al cuerpo Fp de los

enteros módulo p.

Demostración: El cuerpo K no puede tener característica 0 (caso contrario

contendría al conjunto infinito {1K,2 · 1K, · · · ,n · 1K, · · · }). K es pues de carac-

terística prima p y contiene al subcuerpo {0K,1K,2 · 1K, · · · (p – 1) · 1K} isomorfo

al cuerpo Fp de los enteros módulo p.

.

Corolario 1.6. Sea Fq un cuerpo de característica p. Existe un entero

positivo m tal que q = pm.

Demostración: Fq admite una estructura de espacio vectorial sobre su sub-

cuerpo Fp, sea m su dimensión (obviamente finita). Fijada una base cualquiera

de este espacio vectorial, Fq se identifica con el conjunto de vectores Fmp , con-

junto con cardinal pm.

Observación

El cuerpo C de los númeroscomplejos contiene las raícesde todo polinomio concoeficientes en el cuerpo Q

de los números racionales.Sin embargo C no es unaclausura algebraica de Q yaque no se cumple lacondición de minimalidad. Laclausura es un subcuerpo deC denominado cuerpo de losnúmeros algebraicos.

El resultado anterior muestra que el cardinal de un cuerpo finito es siempre

potencia de un número primo. El siguiente teorema muestra que para cual-

quier potencia de un primo existe un cuerpo finito con ese cardinal y que tal

cuerpo es esencialmente único.

.

Definición 1.7 (Clausura algebraica). Sea K un cuerpo. La clausura

algebraica de K es un cuerpo que contiene a K, tal que todo polinomio

con coeficientes en K tiene todas sus raíces en él y que es minimal con

esta propiedad. Tal clausura existe y es única salvo isomorfismo.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 10: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 10 Cuerpos finitos

.

Teorema 1.8. Para todo primo p y todo número natural m existe un

cuerpo finito con q = pm elementos. Tal cuerpo es único salvo isomor-

fismo.

Demostración: Sea Fp el cuerpo con p elementos y el polinomio definido

sobre este cuerpo: F(X) = Xq – X. Sea R el conjunto de las q raíces de F(X) en

una cierta clausura algebraica de Fp (no confundir con las raíces complejas de

tal polinomio, nótese que Fp no está contenido en los complejos). Tales raíces

son distintas (el polinomio F(X) no tiene raíces múltiples, ya que su derivada

no es nula: F′(X) = qXq–1 – 1 ≡ –1 (mod p) y por tanto R tiene cardinal q.

Ahora bien R es un cuerpo: Sean α,β ∈ R, es decir αq = α, βq = β. Obviamente,

entonces (α · β)q = α · β y (suponiendo β 6= 0) (α : β)q = α : β. Pero teniendo en

cuenta que en Fp, q ≡ 0, también (α±β)q = α±β (pues todos los demás miem-

bros del desarrollo de (a + b)q son múltiplos de p), luego la suma, diferencia,

producto y cociente de elementos de R están en R.

Sea K otro cuerpo con q elementos. El grupo multiplicativo K∗ = K – {0} tiene

cardinal q–1 y por tanto, todo elemento a ∈ K∗ verifica aq–1 = 1K, luego aq = a,

ecuación que obviamente también verifica OK. Es decir, los q elementos de K

son raíces de Xq – X y por tanto K puede identificarse con R.

Habitualmente, en criptografía se utilizan los dos tipos de cuerpos siguientes:

1) Cuerpos binarios F2m , con 2m elementos.

2) Cuerpos Fp, con p elementos y p primo (habitualmente muy grande).

El teorema 1.8 demuestra la existencia de un cuerpo finito con q elemen-

tos, pero no una construcción explícita. El método siguiente proporciona tal

construcción, que es formalmente análoga a la del cuerpo Fp como clases de

equivalencia de los enteros módulo p.

Sea f (X) = Xm+fm–1Xm–1+· · ·+f1X+f0 ∈ Fp[X] un polinomio mónico (coeficiente

del término de mayor grado igual a 1) e irreducible, con coeficientes en Fp.

En el anillo de polinomios Fp[X] consideremos el conjunto de sus clases de

equivalencia módulo f (X). Un conjunto de representantes de estas clases viene

dado por el conjunto K de los q = pm polinomios a0+a1X+· · ·+am–1Xm–1 ∈ Fp[X]

de grado menor que m (pues todo g(X) ∈ Fp[X] es equivalente al polinomio

resto de su división por f (X)).

Si denotamos α ∈ K a la clase de equivalencia de X, es decir α ≡ X (mod f (X)),

podemos identificar el elemento a0 + a1X + · · · + am–1Xm–1 con a0 + a1α + · · · +

am–1αm–1 y K con el conjunto de estas expresiones.

Nótese que αm + fm–1αm–1 + · · · + f1α + f0 ≡ 0K y por tanto α puede considerarse

como una raíz del polinomio f (X) en K. Se tiene,

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 11: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 11 Cuerpos finitos

.

Teorema 1.9. El conjunto K con las operaciones suma y producto en

Fp[α] inducidas por la suma y producto de polinomios en Fp[X] es un

cuerpo con q elementos.

Demostración: El razonamiento es totalmente análogo al de la proposición

1.3 y los detalles se dejan como ejercicio. En particular el inverso de un ele-

mento no nulo se obtiene utilizando el algoritmo de Euclides extendido para

polinomios.

Nota

Se ha señalado que α puede considerarse como raíz de f (X). Dado que este polinomio

de grado m tiene m raíces puede plantearse cuál de ellas es α. Sin embargo, a diferencia

de lo que sucede con las raíces de un polinomio con coeficientes racionales, las cuales

pueden individualizarse y tienen un valor concreto (real o complejo), esto no ocurre en

cuerpos finitos. El elemento α puede considerarse como un símbolo, que se toma como

raíz de f (X); una vez fijada esta raíz, las restantes pueden expresarse en función de α (ver

el ejemplo siguiente).

Ejemplo 1.4. Consideremos el polinomio irreducible X3 + X + 1 ∈ F2[X], y sea α una

raíz. Las otras dos raíces son entonces α2 y α2 + α. Un cuerpo con 8 elementos estaría

formado por los elementos:

F8 = {0,1,α,1 + α,α2,1 + α2,α + α2,1 + α + α2} (2)

con las siguientes tablas de adición y multiplicación:

+ 0 1 α 1 + α α2 1 + α2 α + α2 1 + α + α2

0 0 1 α 1 + α α2 1 + α2 α + α2 1 + α + α2

1 1 0 1 + α α 1 + α2 α2 1 + α + α2 α + α2

α α 1 + α 0 1 α + α2 1 + α + α2 α2 1 + α2

1 + α 1 + α α 1 0 1 + α + α2 α + α2 1 + α2 α2

α2 α2 1 + α2 α + α2 1 + α + α2 0 1 α 1 + α

1 + α2 1 + α2 α2 1 + α + α2 α + α2 1 0 1 + α α

α + α2 α + α2 1 + α + α2 α2 1 + α2 α 1 + α 0 1

1 + α + α2 1 + α + α2 α + α2 1 + α2 α2 1 + α α 1 0

· 1 α 1 + α α2 1 + α2 α + α2 1 + α + α2

1 1 α 1 + α α2 1 + α2 α + α2 1 + α + α2

α α α2 α + α2 1 + α 1 1 + α + α2 1 + α2

1 + α 1 + α α + α2 1 + α2 1 + α + α2 α2 1 α

α2 α2 1 + α 1 + α + α2 α + α2 α 1 + α2 1

1 + α2 1 + α2 1 α2 α 1 + α + α2 1 + α α + α2

α + α2 α + α2 1 + α + α2 1 1 + α2 1 + α α α2

1 + α + α2 1 + α + α2 1 + α2 α 1 α + α2 α2 1 + α

Nota

El ejemplo anterior construye un cuerpo con 8 elementos utilizando el polinomio irre-

ducible X3 + X + 1 ∈ F2[X]. Pero una construcción análoga podría obtenerse a partir de

una raíz β del polinomio X3 + X2 + 1 ∈ F2[X] el cual es también irreducible (en realidad,

salvo para p = m = 2 en que el único polinomio irreducible es el X2 +X+1, siempre existe

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 12: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 12 Cuerpos finitos

más de un polinomio irreducible de grado m). En esta otra construcción se obtendrían

tablas aditivas y multiplicativas aparentemente diferentes.

Sin embargo, el teorema 1.8 garantiza que solo existe un cuerpo con 8 elementos. ¿Cuál

es la explicación de esta aparente contradicción? En realidad es un simple problema de

etiquetado de los elementos: en concreto, puede comprobarse que la asignación α→ β′ =

1 + β se extiende a un isomorfismo entre ambos cuerpos (las tablas para α y β′ son

iguales).

1.2. Estructura aditiva y multiplicativa de un cuerpo finito

El cuerpo finito Fq contiene dos grupos abelianos, (Fq,+) y (F∗q ,·). La estructura

de estos grupos es particularmente simple.

.

Teorema 1.10 (Estructura aditiva). Si q = pm, el grupo aditivo

(Fq,+) es un producto directo de m grupos cíclicos de orden p:

(Fq,+) ≃ Z/pZ × · · · × Z/pZ. (3)

Demostración: Como se ha indicado (Fq,+) es un espacio vectorial sobre

su subcuerpo primo Fp. Cualquier base de este espacio (por ejemplo, una ba-

se del tipo {1,α · · · ,αm–1} utilizada en el teorema 1.9 induce el isomorfismo

indicado.

1.2.1. Representación aditiva

En virtud del teorema 1.10 los elementos de Fq pueden representarse como

vectores m-dimensionales con coeficientes en Fp, es decir, expresiones de la

forma (a1,a2, . . . ,am) con ai ∈ {0,1, . . . ,p–1}. Así, por ejemplo, los elementos de

F8 pueden identificarse con el conjunto de triples binarias {(i,j,k)}|i,j,k ∈ {0,1},

lo que proporciona una forma adecuada de transmitir los elementos de tal

cuerpo a través de un canal binario.

En esta forma aditiva los elementos pueden sumarse (sumando coordenada a

coordenada módulo p) o multiplicarse escalarmente por un elemento de Fp.

Para estudiar la estructura multiplicativa, recordemos que, dado un grupo abe-

liano finito (G,·), llamamos orden de x ∈ G al orden del subgrupo engendra-

do por x, es decir, ord(x) = min{n | xn = 1} y exponente de G a exp(G) =

mcm{ord(x) |x ∈ G}.

.

Lema 1.11. Si (G,·) es un grupo abeliano finito de exponente n, enton-

ces existe un elemento x ∈ G de orden n.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 13: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 13 Cuerpos finitos

Demostración: Sea n = pe1

1 · · · pemm la descomposición de n en factores primos.

Como pei

i aparece en la factorización, existe xi ∈ G de orden kipei

i para un

cierto entero natural ki. Entonces el elemento xki

i tendrá orden pei

i y por tanto

x =Qm

i=1 xki

i tendrá orden exactamente n.

.

Teorema 1.12 (Estructura multiplicativa). El grupo multiplicati-

vo (F∗q ,·) es cíclico de orden q – 1.

Demostración: Sea n el exponente de F∗q . En virtud del lema anterior debe

existir un elemento de orden n. Por tanto n ≤ q – 1 = #F∗q . Por otra parte, por

ser n múltiplo del orden de todo elemento, los q–1 elementos de F∗q satisfacen

la ecuación Xn – 1 = 0, con lo que q – 1 ≤ n y finalmente n = q – 1.

Dado que existe un elemento de orden q – 1 el grupo es cíclico.

.

Definición 1.13 (Elemento primitivo). Llamaremos elemento pri-

mitivo de Fq a un generador del grupo cíclico (F∗q ,·).

Nota

La noción de elemento primitivo en el contexto de un grupo cíclico finito de orden n y

la notación ϕ(n) para el número de tales elementos primitivos puede encontrarse en el

módulo 5 del curso Criptografía de la UOC. Tal número es importante en matemáticas y

será utilizado en otras partes de este curso, por lo que damos a continuación su definición

y algunas de sus propiedades.

.

Definición 1.14 (Función de Euler). Para todo número natural n se

denota ϕ(n) al número de elementos a; 0 < a < n tales que mcd(a,n) =

1. La función así obtenida se denomina función de Euler.

.

Proposición 1.15. La función de Euler verifica las siguientes propie-

dades:

1) Si p es un número primo, ϕ(p) = p – 1.

2) Si p es un número primo y r un número natural, ϕ(pr) = pr – pr–1 =

pr–1(p – 1).

3) Si m,n son números naturales primos entre sí (es decir, mcd(m,n) =

1), ϕ(mn) = ϕ(m)ϕ(n)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 14: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 14 Cuerpos finitos

La demostración es sencilla y se deja como un ejercicio.

.

Corolario 1.16. Sea n = pr1

1 . . . prss la factorización prima del número

natural n. Se tiene:

ϕ(n) = n ·Y

i

(1 – 1/pi) (4)

El corolario 1.16 muestra que el cálculo de ϕ(n) es fácil si se conoce la fac-

torización de n. Por contra, sin conocer tal factorización, este cálculo es un

problema computacionalmente dificil.

1.2.2. Representación multiplicativa

En virtud del teorema 1.12, si α es un elemento primitivo de Fq, entonces

F∗q = {αi | i = 1, . . . ,q – 1}. Esta representación será fundamental en los sistemas

criptográficos basados en el problema del logaritmo discreto.

Ejemplo 1.5 . Para q = 11, α = 2 es un elemento primitivo de F∗

11.

Observación

No se conoce ningúnalgoritmo eficiente para elcálculo de un elementoprimitivo, ni siquiera en elcaso de los cuerpos Fp, pprimo.

Ejemplo 1.6 . Como en el ejemplo 1.4, consideremos el polinomio irreducible X3 + X +

1 ∈ F2[X], y sea α una raíz.

Para saber si α es un elemento primitivo, en F8 deberíamos calcular su orden y ver si es

máximo. O sea, si el menor entero positivo r tal que αr = 1 es r = q – 1 = 7.

Sabemos que α3 +α + 1 = 0, o sea α3 = α + 1. Luego, α4 = α2 +α; α5 = α3 +α2 = α2 +α + 1;

α6 = (α3)2 = α2 + 1 y α7 = α3 + α = 1.

Luego α es un elemento primitivo y la tabla de equivalencias entre la representación

vectorial (o polinomial) y exponencial es:

Observación

Observar que al escribir unpolinomio como vector,utilizando los coeficientes desu expresión aditiva, hemosempezado por el término degrado cero como primeracoordenada.

Exponencial Vectorial Polinomial

0 (0,0,0) 0

α0 (1,0,0) 1

α1 (0,1,0) α

α2 (0,0,1) α2

α3 (1,1,0) 1 + α

α4 (0,1,1) α + α2

α5 (1,1,1) 1 + α + α2

α6 (1,0,1) 1 + α2

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 15: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 15 Cuerpos finitos

2. Bases de cuerpos finitos.

Como se ha indicado, los elementos de Fq, q = pm pueden expresarse como

combinación lineal, con coeficientes en Fp, de los elementos de una base.

Desde un punto de vista computacional, dos tipos de bases son especialmente

importantes.

.

Definición 2.1 (Base polinómica). Se denomina base polinómica

del cuerpo Fq a una base del tipo {1,α · · · ,αm–1}, con α raíz de un

polinomio mónico e irreducible con coeficientes en Fp.

El número de bases polinómicas de Fq será pues igual al número de polino-

mios mónicos e irreducibles de grado m con coeficientes en Fp. Tal número

puede determinarse explícitamente.

.

Proposición 2.2. Xq – X es el producto de todos los polinomios irre-

ducibles sobre Fp cuyo grado divide a m.

Demostración: Sea g(X) ∈ Fp[X] un polinomio mónico e irreducible de gra-

do d|m. Es decir m = dd′. En virtud del teorema 1.9 las raíces de g(X) determi-

nan un cuerpo con Fpd elementos y por tanto, por el teorema 1.8, son raíces

de Xpd

– X, luego g(X) divide a Xpd

– X. Se tiene pm – 1 = (pd – 1)(pd(d′–1) + pd(d′–2) +

· · · pd + 1) es decir pd – 1 divide a pm – 1. Un razonamiento análogo con X en

lugar de p, muestra que Xpd–1 – 1 divide a Xpm–1 – 1 luego Xpd

– X y por tanto

g(X) divide a Xq – X.

Recíprocamente, un razonamiento similar prueba que si g(X) es un polinomio

mónico e irreducible que divide a Xq – X, su grado es un divisor de m.

.

Corolario 2.3. Si denotamos por Np(d) el número de polinomios irre-

ducibles de grado d sobre Fp, se tiene,

q =X

d|m

dNp(d). (5)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 16: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 16 Cuerpos finitos

El número buscado Np(m) figura como sumando en la expresión anterior. Vea-

mos cómo despejarlo.

.

Definición 2.4 (Función de Moebius). Llamaremos función de Moe-

bius a la función de variable natural, µ : N –→ {–1,0,1} definida del

modo siguiente: si n ∈ N y n =Qs

i=1 pei

i es su descomposición en factores

primos, entonces

µ(n) =

8

>

>

>

>

>

>

<

>

>

>

>

>

>

:

1 si n = 1;

0 si ei ≥ 2 para algún valor de i;

(–1)s si ei = 1 para todo valor de i.

(6)

.

Lema 2.5. Si n ∈ N, se verifica que

X

d|n

µ(d) =

8

>

>

<

>

>

:

1 si n = 1;

0 si n > 1.

(7)

Demostración: El caso n = 1 es trivial. Supongamos pues que n > 1 y sean

p1,p2, . . . ,ps los divisores primos distintos de n. Teniendo en cuenta la defini-

ción de la función de Moebius,

X

d|n

µ(d) = µ(1) +s

X

i=1

µ(pi) +X

1≤i<j≤s

µ(pipj) + · · · + µ(p1p2 . . . ps)

= 1 +

0

B

B

@

s

1

1

C

C

A

(–1) +

0

B

B

@

s

2

1

C

C

A

(–1)2 + · · · +

0

B

B

@

s

s

1

C

C

A

(–1)s

= (1 – 1)s = 0.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 17: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 17 Cuerpos finitos

.

Lema 2.6 (Fórmula de inversión de Moebius). Sea f una función

de variable natural con valores en un grupo abeliano. Para n ∈ N defi-

namos g(n) mediante

g(n) =X

d|n

f (d). (8)

Se verifica que

f (n) =X

d|n

µ(d)g(n

d) =

X

d|n

µ(n

d)g(d). (9)

Demostración:

X

d|n

µ(d)g(n

d) =

X

d|n

µ(d)X

e|(n/d)

f (e)

=X

e|n

X

d|(n/e)

µ(d)f (e)

=X

e|n

f (e)X

d|(n/e)

µ(d)

= f (n).

donde para la última igualdad hemos tenido en cuenta el lema 2.5.

.

Teorema 2.7. El número de polinomios irreducibles de grado m sobre

Fp es

Np(m) =1

m

X

d|m

µ(d)pm/d =1

m

X

d|m

µ(m

d)pd. (10)

Demostración: Basta aplicar la fórmula de inversión de Moebius a la función

f (m) = mNp(m).Observación

Un polinomio irreducible degrado m puede obtenersetomando polinomiosarbitrarios y aplicándoles untest de irreducibilidad (Lidl yNiederreiter, 1997). El valorNp(m) dado por el teorema2.7 proporciona unaestimación de la probabilidadde éxito de tal búsquedaaleatoria.

Ejemplo 2.1. Para p = 2 el número de polinomios de grado m es:

1) 1 si m = 2. El polinomio: X2 + X + 1.

2) 2 si m = 3. Los polinomios: X3 + X + 1 y X3 + X2 + 1.

3) 3 si m = 4. Los polinomios: X4 + X + 1, X4 + X3 + 1 y X4 + X3 + X2 + X + 1.

4) etc.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 18: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 18 Cuerpos finitos

.

Definición 2.8 (Base Normal). Se denomina base normal de Fq a

una base del tipo {α,αp, · · · ,αpm–1

} con α ∈ Fq.

Como se verá en el apartado siguiente, las bases normales son muy eficientes

para el cómputo de la exponenciación en Fq, operación básica en los algorit-

mos criptográficos basados en el problema del logaritmo discreto. Para tener

una base normal es necesario un elemento α cuyas potencias p-ésimas sucesi-

vas sean linealmente independientes.

Ejemplo 2.2. Sea q = 8 = 23, α raíz del polinomio irreducible,

• X3 + X + 1. En este caso {α,α2,α4} no es base normal (pues ni siquiera es base, ya que

los tres elementos son linealmente dependientes).

• X3 + X2 + 1. En este caso {α,α2,α4} es base normal.

Lectura recomendada

Sobre el teorema de la base

normal podéis ver la obra

de Lidl y Niederreiter (1997)

o la de Menezes (1993).

En general, no es obvia la existencia de un elemento α generando una base

normal. Se tiene, sin embargo, el teorema 2.9.

.

Teorema 2.9 (Teorema de la base normal). Existe una base nor-

mal para todo cuerpo finito.

Evaluemos el número de bases normales. Supongamos fijada una tal base nor-

mal B = {α,αp, . . . ,αpm–1

} (cuya existencia garantiza el teorema 2.9). Un cambio

de base de B a una nueva base B′ = {β0,β1, . . . ,βm–1} viene determinado por

una matriz m × m inversible C = (cij), cij ∈ Fp.

Observación

Comenzar con 0 lossubíndices de los elementosde la base B′ y de loscomponentes de la matrizcirculante es por coherenciacon los exponentes de la basenormal B: p0,p1, . . . ,pm–1

Veamos qué condición debe cumplir C para que la nueva base B′ sea también

normal.

.

Definición 2.10 (Matriz circulante). Se denomina matriz circulan-

te (con coeficientes en un cuerpo o anillo) a una matriz del tipo:

[a0,a1, . . . ,am–1] =

0

B

B

B

B

B

B

B

B

B

B

B

B

B

B

@

a0 a1 . . . am–1

am–1 a0 . . . am–2

. . . .

. . . .

a1 a2 . . . a0

1

C

C

C

C

C

C

C

C

C

C

C

C

C

C

A

. (11)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 19: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 19 Cuerpos finitos

Es decir, la matriz queda determinada por su primera fila, ya que las siguientes

se deducen cada una de la anterior mediante una permutación cíclica de sus

elementos, que desplaza cada coordenada una posición a la derecha.

.

Teorema 2.11. La base B′ es normal si, y solo si, la matriz C de cambio

de base es circulante

Demostración: Supongamos que la matriz es circulante, es decir C = [a0,a1,

. . . ,am–1] lo que implica que cij = aj–i luego,

βi =X

j

aj–iαpj

=

0

@

X

j

aj–iαpj–i

1

A

pi

=

0

@

X

j

ajαpj

1

A

pi

= βpi

0

lo que muestra que la base B′ es normal.

Si recíprocamente suponemos B′ normal, sea β0 =P

j c0jαpj

. Se tendrá:

βi = βpi

0 =X

j

c0jαpi+j

=X

j

c0,j–iαpj

(12)

pero también (por definición) βi =P

j cijβpj

, lo que muestra que la matriz C es

circulante.

Lectura recomendada

Para la determinación del

número de bases normales

del cuerpo Fq podéis ver la

obra de Lidl y Niederreiter.

El número de bases normales del cuerpo Fq será pues igual al número de ma-

trices m × m circulantes e invertibles con coeficientes en Fp.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 20: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 20 Cuerpos finitos

3. Computación en cuerpos finitos.

El propósito de este apartado es mostrar cómo pueden realizarse, con los ele-

mentos de un cuerpo finito Fq, las operaciones aritméticas habituales y cuál

es el coste computacional de las mismas.

3.1. Aritmética en cuerpos finitos

Como se ha indicado en el teorema 1.10, fijada una base de Fq sobre Fp,

todo elemento a ∈ Fq puede ser representado como un vector de la forma

a = (a1,a2, . . . ,am), con ai ∈ {0,1, . . . ,p – 1}. La adición o substracción de dos

elementos a, b se realiza sumando o restando coordenada a coordenada y re-

duciendo el resultado módulo p.

3.1.1. Multiplicación

Fijada una base cualquiera B = {v1,v2, . . . ,vm} y dos elementos de Fq: a = a1v1 +

a2v2 + · · · + amvm, b = b1v1 + b2v2 + · · · + bmvm, (que podemos identificar con los

vectores a = (a1,a2, · · · ,am), b = (b1,b2, · · · ,bm)), se tiene:

c = a · b = (X

i

aivi)(X

j

bjvj) =X

ij

aibj(vivj) =X

ij

aibj(X

k

tkijvk) (13)

Luego, denotando Tk = (tkij), k = 1,2, . . . ,m, se tienen m matrices m × m deno-

minadas tablas de multiplicación. Si c = c1v1 + c2v2 + · · · + cmvm, las coordenadas

ci vienen dadas por la ecuación matricial:

Observación

En la ecuación 14 la bt

denota el vector traspuestodel b (en este caso un vectorescrito verticalmente).

ck = aTkbt . (14)

Las tablas de multiplicación determinan pues el producto. Este puede imple-

mentarse bien en software, almacenando las m tablas, bien en dispositivos

hardware específicos, que constan de m circuitos cada uno de los cuales da,

como salida a los inputs a,b ∈ Fq, una componente ck del producto.

Usualmente se emplean bases particulares, como las polinómicas o las norma-

les, ya descritas. Veamos las características específicas de estos dos casos:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 21: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 21 Cuerpos finitos

• Base polinómica: Sea {1,α, · · · ,αm–1}, con α raíz del polinomio (mónico

e irreducible) f (X). En este caso, dados a = a0 + a1α + · · · + am–1αm–1 y b =

b0 + b1α + · · · + bm–1αm–1, el cálculo de a · b implica dos operaciones:

1) Multiplicación de a y b como si fuesen polinomios en X.

2) Reducción del polinomio obtenido, de grado a lo sumo 2m – 2, módulo

f (X) (es decir, realizar la división euclídea por f (X) y tomar el resto).

Ejemplo 3.1. Sea el cuerpo F8 y α raíz de f (X) = X3+X+1 y los elementos a = 1+α2, b =

1 + α.

1) El producto de los polinomios a(X) = X2 + 1 y b(X) = X + 1 da como resultado el

polinomio c(X) = X3 + X2 + X + 1.

2) La division de c(X) por f (X) da como resto X2.

Luego a · b = α2.

• Base Normal: Si se utiliza una base normal B = {α0 = α,α1 = αp, . . . ,αm–1 =

αpm–1

}, las m tablas de multiplicación Tk = (tkij) verifican la siguiente rela-

ción:

.

Lema 3.1. Para 0 < l ≤ m – 1 se tiene tlij = t0

i–l,j–l. Es decir, la tabla Tl se

deduce de la T0 por desplazamiento de l posiciones en filas y columnas.

Demostración: Por definición de las tablas αiαj =P

k tkijαk. Elevando ambos

miembros a p–l se tiene que αp–l

i αp–l

j = αi–lαj–l =P

k tkijαk–l. Pero, por definición,

αi–lαj–l =P

k tki–l,j–lαk. Igualando los coeficientes de α0 en ambas expresiones se

tiene el resultado.

En consecuencia, si se tiene un algoritmo (o en hardware un circuito electró-

nico) para calcular la primera coordenada c0 del producto de los elementos

a,b ∈ Fq el mismo algoritmo o circuito calcula la coordenada cl con las coor-

denadas de a y b desplazadas l posiciones.

3.1.2. División

La división de dos elementos a,b ∈ Fq, b 6= 0, implica la multiplicación de a

por el inverso del elemento b. Si se emplea una base polinómica, dicho inverso

puede computarse utilizando el algoritmo de Euclides 1.4 para polinomios.

Ejemplo 3.2. Sea f (X) = X3 + X + 1, b = 1 + α2. El algoritmo de Euclides proporciona:

a2 = 1,a3 = 0, x2 = 1, y2 = X y por tanto 1 = f (X) · 1 + (X2 + 1)X, luego b–1 = α.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 22: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 22 Cuerpos finitos

3.1.3. Exponenciación

* A su vez necesarios en el

sistema criptográfico RSA;

consultar la obra de Koblitz

(1994).

Cálculos del tipo an (mod m), con a,n,m ∈ Z (o bien del tipo an, a ∈ Fq, n ∈

N) son una herramienta fundamental en los sistemas criptográficos basados

en el problema del logaritmo discreto y en otros campos como los tests de

primalidad*. En principio podría realizarse este cálculo multiplicando a por sí

mismo n veces y posteriormente reduciendo módulo m el resultado obtenido.

Ahora bien, para n grande, un cálculo del tipo anterior sería impracticable por

dos razones:

1) El número excesivo de multiplicaciones.

2) Los cálculos intermedios de estas multiplicaciones proporcionan números

de tamaño creciente, que pronto superarán la capacidad de almacenamiento

del computador.

Existe sin embargo un algoritmo (multiplicación y elevación al cuadrado) que

permite evitar estos dos inconvenientes:

Sea n = s0 + s12 + · · · sk–12k–1 la expresión binaria de n y sea b := 1,

.

Algoritmo 3.2 (Multiplicar y elevar al cuadrado).

Desde j = k – 1 hasta 0

Si sj = 1 entonces b := b·a (mod m).

Si j > 0 entonces b := b2 (mod m).

Final Desde

El resultado es an = b (mod m).

Ejemplo 3.3. Sean a = 3, m = 5, n = 67. Teniendo en cuenta que en base 2, 67 =

1000011, ejecutando las etapas del algoritmo anterior se obtiene 367 ≡ 2 (mod 5).

Notas

1) El algoritmo puede adaptarse a la expresión del exponente n en otra base diferente

de 2 (por ejemplo, para base 3 se tendría un algoritmo donde en lugar de elevar al

cuadrado se elevaría al cubo).

2) La reducción módulo m puede sustituirse por operación en un cuerpo finito Fq. En

particular para m = p primo la reducción módulo p es la operación en el cuerpo

primo Fp.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 23: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 23 Cuerpos finitos

La exponenciación puede simplificarse, especialmente en el caso de cuerpos

binarios, utilizando bases normales. En efecto se tiene:

.

Lema 3.3. Sean {a0,a1, . . . ,am–1} las coordenadas de un elemento a ∈ Fq

en la base normal {α,αp, . . . ,αpm–1

}. El elemento ap tiene por coordena-

das (am–1,a0,a1, . . . ,am–2).

Demostración: Se tiene (teniendo en cuenta que todos los demás miembros

del desarrollo de (a + b)q son potencia de p y por tanto nulos en característica

p, que api = ai y que αpn

= αq = α) que:

(a0α+a1αp+· · ·+am–1α

pm–1

)p = a0αp+a1α

p2

+· · ·+am–1αpm

= am–1α+a0αp+· · ·+am–2α

pm–1

El lema anterior muestra que la elevación a la potencia p implica simplemente

una permutación circular de los coeficientes y por tanto, su coste computacio-

nal es despreciable. Si p = 2 es la elevación al cuadrado, pieza fundamental en

el algoritmo 3.2, la que tiene coste cero.

3.2. Complejidad de la aritmética en cuerpos finitos

Veamos cómo obtener una estimación del coste de los algoritmos aritméti-

cos descritos en un cuerpo finito Fq. La disciplina que estudia el coste de los

algoritmos y problemas matemáticos se denomina teoría de la complejidad

computacional. Si se desea medir la cantidad de computación necesaria pa-

ra ejecutar un algoritmo, habrá que tener una unidad de medida. Dado que

un computador reduce cualquier cálculo a sumas binarias elementales, puede

tomarse tal suma como unidad.

.

Definición 3.4 (Operación bit). Se denomina operación bit a la adi-

ción de dos elementos en el cuerpo F2, es decir, a la suma binaria (mó-

dulo 2) de dos números iguales a 0 ó 1 (bits).

Para medir en operaciones bit el tiempo o cantidad de computación de un algo-

ritmo, la teoría de la complejidad computacional introduce dos precisiones:

1) El tiempo debe ser función de la longitud de los datos (inputs). Tales datos

son siempre números naturales (o reducibles a ellos: por ejemplo, un elemento

de un cuerpo finito con cardinal q = pm queda determinado por m números

naturales menores que p).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 24: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 24 Cuerpos finitos

2) El tiempo de ejecución de un algoritmo, para una longitud dada de los da-

tos, variará en cada caso concreto. Se adopta el criterio del caso peor tomando

una cota válida para toda instancia particular de dicha longitud.

.

Definición 3.5 (Longitud binaria de un número). Se denomina

longitud (binaria) k de un número natural n , al número de dígitos de

su expresión en base 2. Dicha longitud es el número natural k tal que

2k–1 ≤ n < 2k y por tanto k = ⌊log2 n⌋ + 1. Nótese que la longitud de

un número es también el número de bits de memoria necesarios para

almacenarlo en un computador.

.

Definición 3.6 (Notación O). Dadas f ,g funciones en las variables

naturales k1,k2, . . . ,ks y con valores reales positivos, se dice que f es del

orden de g (f = O(g)), si existen constantes reales t,C tales que si ki > t

para todo i , f (k1,k2, . . . ,ks) < Cg(k1,k2, . . . ,ks).

.

Definición 3.7 (Complejidad Polinómica). Un algoritmo con da-

tos iniciales: los enteros n1,n2, . . . ,ns , de longitudes k1,k2, . . . ,ks , se llama

de complejidad polinómica si existe un polinomio P en s variables tal que

el tiempo de ejecución de dicho algoritmo, medido en operaciones bit,

es O(P(k1,k2, . . . ,ks)).

Algoritmos eficientes

Los algoritmos decomplejidad polinómica sedenominancomputacionalmenteeficientes o buenos, ya que elcomputador puedeejecutarlos en un tiemporazonable, por oposición a losalgoritmos cuya complejidades exponencial en la longitudde los datos.

Como veremos, las operaciones aritméticas usuales en cuerpos finitos, en par-

ticular las implicadas en los algoritmos criptográficos, tienen una complejidad

polinómica. Dado que las operaciones en cuerpos finitos se remiten a opera-

ciones con números enteros, veamos previamente la complejidad de algunos

algoritmos básicos con enteros.

.

Proposición 3.8.

• El tiempo necesario para sumar dos números naturales de longitud

binaria k es O(k). La adición de números naturales tiene pues com-

plejidad lineal en la longitud de los datos.

• El tiempo necesario para multiplicar dos enteros naturales de longi-

tudes k, l , l ≤ k es O(k2). La multiplicación tiene pues una compleji-

dad cuadrática en la longitud de los datos.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 25: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 25 Cuerpos finitos

Observación

Debe señalarse que elalgoritmo habitual demultiplicación no es el mejoralgoritmo conocido pararealizar esta operación. Existeotro, debido a Schönhage yStrassen, con complejidadO(k log(k) log log(k))

Demostración:

1) Puede siempre suponerse la misma longitud para ambos sumandos, aña-

diendo eventualmente ceros a la izquierda de la representación binaria del de

menor longitud. La suma se obtiene entonces realizando k sumas binarias, es

decir, por definición, k operaciones bit.

2) Sea l ≤ k. Con la regla habitual de multiplicación: colocar el número me-

nor debajo del mayor y multiplicar cada dígito de aquel por este, colocar los

resultados en filas desplazadas cada una de ellas una posición a la izquierda

respecto de la anterior y sumando, a lo sumo, las l filas, de longitud k + l, (te-

niendo en cuenta los k–l desplazamientos), se tiene un número de operaciones

bit,

O(l(k + l)) = O(2kl) = O(2k2) = O(k2)

Nota

La operación de substracción o resta tiene obviamente el mismo tiempo de ejecución

que la suma. La división, con la regla habitual, se reduce a multiplicaciones y diferencias

y tiene pues igual tipo de complejidad que la multiplicación, es decir, cuadrática. Sin

embargo, debe recordarse que la estimación de la complejidad, dada por la notación O,

implica una constante, por lo que dos algoritmos con igual complejidad pueden tener de

hecho costes muy diferentes. Es el caso de la división, bastante más costosa que la mul-

tiplicación. Ello justifica el tratar de evitar o limitar al máximo el número de divisiones;

en el caso de la criptografía con curvas elípticas, ello puede conseguirse mediante el uso

de coordenadas proyectivas.

Veamos la complejidad del algoritmo 1.4 (de Euclides extendido) necesario,

como hemos visto, para el cálculo de inversos en Fp.

Obsérvese que en el algoritmo 1.4 los restos ai, obtenidos al iterar el paso 2,

forman una sucesión decreciente. Por tanto, el algoritmo finaliza necesaria-

mente en un número finito de etapas. Más concretamente se tiene,

.

Lema 3.9. Si a ≥ b, el número de etapas necesarias en la ejecución del

algoritmo de Euclides extendido es O(log(a)).

Demostración: Basta probar que los restos ai verifican la relación ai+2 <12 ai,

lo que implica que el número de etapas es, a lo sumo, 2⌊log(a)⌋. Ahora bien,

si ai+1 ≤ 12 ai, entonces ai+2 < ai+1 ≤ 1

2 ai. Si ai+1 >12 ai, la división euclídea

proporciona ai = 1ai+1 + ai+2, con lo que también en este caso, ai+2 = ai – ai+1 <

12 ai.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 26: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 26 Cuerpos finitos

.

Proposición 3.10. El coste computacional del algoritmo de Euclides

extendido es O(log2 a) (es decir, cuadrático en la longitud de los datos).

Demostración: Cada etapa del algoritmo comporta una división (de ai entre

ai+1), dos multiplicaciones (de qi+1 por xi+1 y por yi+1) y dos diferencias (para

obtener xi+2 e yi+2). El coste total de estas operaciones elementales es O(log2 a).

La proposición se deduce teniendo en cuenta el lema anterior.

Veamos finalmente la complejidad del algoritmo 3.2, de multiplicar y elevar

al cuadrado:

.

Proposición 3.11. El algoritmo de multiplicar y elevar al cuadrado

para calcular an (mod m), tiene una complejidad de O(log2(m) log(n)).

Demostración: El algoritmo comporta, como máximo, O(log(n)) cuadrados,

O(log(n)) multiplicaciones y O(log(n)) divisiones (para realizar las reducciones

módulo m), de números, todos ellos de longitud O(log m). Luego la compleji-

dad sería del orden de 3· log(n)· log2(m), o sea O(log2(m)· log(n)).

Coste computacional de las operaciones en cuerpos finitos

Una vez establecido el coste computacional, medido en operaciones bit, de

las operaciones aritméticas elementales con números naturales, así como del

algoritmo de Euclides y el algoritmo de multiplicar y elevar al cuadrado, po-

demos deducir el coste de la aritmética en el cuerpo finito Fq, q = pm,

.

Proposición 3.12. El coste computacional de una adición (o de una

substracción) de elementos de Fq es O(log(q)) operaciones bit.

Demostración: La adición de dos elementos a,b, realizada como adición

(o sustracción) de vectores con coeficientes en Fp implica la realización de m

adiciones (o sustracciones) de números naturales menores que p y la reducción

de cada resultado módulo p. Obsérvese que para tal reducción no es necesaria

una división: dado que los números obtenidos son menores o iguales que

2(p–1), para obtener el resultado módulo p basta dejar el resultado inalterado

si el número es menor que p y restarle p caso contrario. Luego la complejidad

será,

O(m)O(log(p)) = O(m log(p)) = O(log(q)). (15)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 27: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 27 Cuerpos finitos

Observación

A efectos computacionales elcoste de las sumas odiferencias en un algoritmoen cuerpos finitos suelenconsiderarse irrelevantes, yaque su complejidad es menorque la de la multiplicación. Aveces tal complejidad seexpresa no en operacionesbit sino en número deoperaciones elementales: eneste caso se entienden por tallas multiplicaciones.

.

Proposición 3.13. El coste computacional (utilizando la representa-

ción polinómica) de una multiplicación (o de una división) de elemen-

tos de Fq es O(log3 q) operaciones bit.

Demostración: Los elementos a ∈ Fq se manejarán como expresiones a =

a0 + a1α + · · · + am–1αm–1, ai ∈ {0,1, . . . ,p – 1}. Realizar la multiplicación de a

por b implica realizar el producto de los polinomios que los representan y la

reducción del resultado módulo f (X).

La multiplicación de dos polinomios de grado m – 1 sobre Fp implica la reali-

zación de O(m2) multiplicaciones de enteros módulo p, cada una de las cuales

requiere O(log2 p) operaciones bit, más una serie de adiciones que, por tener

un coste computacional inferior, podemos no tomar en consideración. Así

pues, esta primera etapa requiere O(m2 log2 p) operaciones bit. La división del

resultado por el polinomio f (X) requiere realizar O(m) divisiones de enteros

módulo p (que realizadas con el algoritmo de Euclides requieren O(log3 p) ope-

raciones bit) y O(m2) multiplicaciones de enteros módulo p; por tanto, esta

reducción representa un coste de O(m log3 p + m2 log2 p).

En total, la multiplicación de a por b implica pues

O(m2 log2(p) + m log3(p) + m2 log2(p)) = O((m log(p))3) = O(log3(q)) (16)

operaciones bit.

Observación

Puede observarse que lacomplejidad de lamultiplicación (o división) enun cuerpo finito es cúbicamientras que lamultiplicación (o división) ennúmeros naturales escuadrática. Ello obedece alsobrecoste de la reducciónmódulo p y del cálculo delinverso módulo p.

Por lo que respecta a la división x/y, solo resta probar que el inverso de y ∈ F∗q

puede computarse en O(log3 q) operaciones bit. Basta aplicar el algoritmo de

Euclides a f (X) y al polinomio que representa b, lo que requiere O(m) di-

visiones de polinomios de grado a lo sumo m, cada una de las cuales com-

porta O(m log3 p + m2 log2 p) operaciones bit. En definitiva, el coste total es

O(m3 log3 p) = O(log3 q) operaciones bit.

3.3. Algoritmos aritméticos en cuerpos finitos

El subapartado 3.1 describe los aspectos matemáticos de las operaciones arit-

méticas en cuerpos finitos. Desde un punto de vista computacional, especial-

mente para cuerpos de cardinal q muy grande es crucial poder implementar,

tanto en software como en hardware, tales operaciones lo más eficientemen-

te posible. Existen numerosos algoritmos con este propósito, adaptados tanto

al tipo de cuerpo finito como a la plataforma particular en la que se quiere

implementar tal aritmética (por ejemplo, existen algoritmos específicos para

plataformas con reducida capacidad de computación y de memoria, como las

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 28: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 28 Cuerpos finitos

tarjetas inteligentes o las etiquetas electrónicas). Es este un activo campo de

investigación en la actualidad, pero que desborda los objetivos del curso, por

lo que nos limitamos a mostrar un solo ejemplo básico para la adición y la

multiplicación en los dos tipos de cuerpos usuales en criptografía: los cuerpos

primos Fp y los cuerpos binarios F2m .

Referencias adicionales

Para otros algoritmos de

adición y multiplicación, así

como de exponenciación y

división remitimos a la

numerosa bibliografía sobre

el tema, por ejemplo, I.

Blake; G. Seroussi; N. Smart

(2000). Elliptic Curves inCryptography, London

Mathematical Society

Lecture Note Series 265.

Cambridge: U. Press; y D.

Hankerson; A. Menezes; S.

Vanstone (2004).Guide toElliptic Curve Cryptography.

Springer.

1) Cuerpos primos Fp

Si el cardinal p del cuerpo es grande, sus elementos tendrán longitud k =

⌈log2 p⌉ mayor que la longitud P de palabra del computador (usualmente P =

16,32 o 64 bits). Si t = ⌈k/P⌉ los elementos a ∈ Fp pueden representarse en la

forma A := A[t – 1] . . . A[1]A[0], concatenación de t bloques A[i] de P bits.

Para dos tales bloques x,y, notaremos [z,ǫ] si x + y = ǫ2P + z, ǫ = 0,1, 0 ≤ z ≤

2P – 1.

Algoritmo de adición: Sean a,b ∈ {0,1, . . . ,p–1}. El siguiente algoritmo calcula

c ≡ a + b (mod p).

.

Algoritmo 3.14.

1. Sea (C[0],ǫ) := A[0] + B[0].

2. Para i = 1, . . . ,t – 1 sea (C[i],ǫ) := A[i] + B[i] + ǫ.

3. Sea c = C[t – 1] · · ·C[0].

Si ǫ = 1 tomar c := c – p.

Si c ≥ p tomar c := c – p.

4 c ≡ a + b (mod p).

Ejemplo 3.4. Por simplicidad supondremos P = 2 (como se ha indicado, los valores

habituales de P suelen ser 16,32,64, etc). Sea el primo p = 101, lo que implica k = 7, t = 4.

Sean a = 83 = 26 + 24 + 2 + 1 (luego A[0] = 11, A[1] = 00, A[2] = 01,A[3] = 01) y b = 71 =

26 + 22 + 2 + 1 (es decir B[0] = 11, B[1] = 01, B[2] = 00,B[3] = 01). Apliquemos el algoritmo

anterior a los elementos a,b. Se tiene que (C[0],ǫ) = (10,1) (pues A[0] + B[0] = 3 + 3 = 6 =

1 · 2P + 2). Análogamente se obtiene:

(C[1],ǫ) = (10,0), (C[2],ǫ) = (01,0), (C[3],ǫ) = (10,0)

Concatenando los bloques C[i] se tiene: c = 10011010 = 27 + 24 + 23 + 2 = 154. Como este

número es mayor que p el resultado final es c := c – p = 53.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 29: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 29 Cuerpos finitos

Algoritmo de multiplicación: Sean a,b ∈ {0,1, . . . ,p – 1}. El producto en Fp

implica el cálculo del producto entero c = a ·b y la posterior reducción módulo

p. Para la etapa de reducción existen diversos algoritmos (Barret, Montgomery,

etc). El siguiente algoritmo calcula el producto entero c = a · b.

.

Algoritmo 3.15.

1. Sean R0 := 0, R1 := 0, R2 = 0.

2. Para k = 0,1, . . . 2t – 2, calcular,

2.1: Para cada par (i,j); i + j = k, 0 ≤ i,j ≤ t – 1.

UV := A[i] · B[j].

(R0,ǫ) := R0 + V.

(R1,ǫ) := R1 + U + ǫ.

R2 := R2 + ǫ.

2.2 C[k] := R0, R0 := R1, R1 := R2, R2 := 0.

3 C[2t – 1] := R0.

4 c = C[2t – 2] . . . C[0].

Ejemplo 3.5. Sean los mismos datos del ejercicio 3.4. Apliquemos el algoritmo anterior

a a,b.

Para k = 0 se tiene UV = A[0]B[0] = 9 = 1001 (luego U = 10, V = 01). Por tanto

(R0,ǫ) = (01,0), (R1,ǫ) = (10,0), R2 = 0

luego c[0] = 01. Análogamente se obtendría,

C[1] = 01, C[2] = 00, C[3] = 00, C[4] = 11, C[5] = 01, C[6] = 01

Es decir c = 011100000101 = 5893.

2) Cuerpos binarios F2m

En este caso la longitud binaria del cardinal del cuerpo es obviamente m. En

la base polinómica determinada por una raíz α del polinomio irreducible de

grado m f (X), los elementos a ∈ F2m se expresan en la forma: a = a0 + a1α +

· · · + am–1αm–1, ai = 0,1. Escribimos f (X) = Xm + r(X).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 30: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 30 Cuerpos finitos

La adición de dos elementos a,b ∈ F2m es trivial: expresados a,b en cualquier

base basta realizar la suma binaria de los dos bits correspondientes a cada una

de las m coordenadas.

Algoritmo de multiplicación. El producto de los elementos a,b comporta

la multiplicación de dos polinomios binarios a(X),b(X), de grado a lo sumo

m – 1 y la posterior reducción módulo f (X). El siguiente algoritmo resuelve

el primer problema. El resultado c(X) polinomio de grado a lo sumo 2m – 2

puede expresarse como una palabra C formada por t bloques C[j] de tamaño

P cuyas componentes son el bloque B representando a b(X) o bien un bloque

nulo.

.

Algoritmo 3.16.

1. C := concatenación de t bloques de tamaño P con entradas nulas.

2. Para k = 0,1, . . . P – 1,

Para j = 0,1, . . . ,t – 1.

Si el bit k de A[j] es 1 colocar B en la posición k del bloque A[j].

Caso contrario colocar un bloque nulo en dicha posición.

3. C es la representación de c(X).

Ejemplo 3.6.

Sean a = 101101 y P = 2, luego t = 3, A[0] = 01, A[1] = 11, A[2] = 10.

C estará formado por 3 bloques de tamaño 2 cuyas entradas son nulas o B: Para cada

k = 0,1 si el bit correspondiente de A[j]; j = 0,1,2 es 1 se pone B en la casilla correspon-

diente de C[j] y caso contrario un bloque 0. Queda finalmente C = [B,0][B,B][0,B].

Nótese que el resultado corresponde a la forma polinómica c(X) = BX5 + BX3 + BX2 + B,

el mismo resultado que se habría obtenido multiplicando a(X) = X5 + X3 + X2 + 1 por B.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 31: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 31 Cuerpos finitos

Ejercicios de autoevaluación

1. Justificar la necesidad de que n sea primo para que Zn, el conjunto de los enteros módulo

n, tenga estructura de cuerpo. Mostrar que Z6 no es un cuerpo.

2. Construir explícitamente el cuerpo finito F9 con 9 elementos y dar la tabla de equivalen-

cias vectorial-exponencial.

3. ¿Qué elementos de F9 se pueden tomar como generadores de su grupo multiplicativo?

¿Qué elementos de F9 tienen raíz cuadrada en este cuerpo?

4. ¿Para qué valores de p, (p = 3,5,7,11,13,19,23), se puede construir un cuerpo de orden p2

usando el polinomio x2 + 1?

5. Encontrar los valores de m para los cuales X2 + mX + 2 es un polinomio irreducible y

primitivo en Z11[X].

6. Sea q = pm, p primo, r ∈ N. Probar que el cuerpo Fpr está contenido en el cuerpo Fq si, y

solamente si, r es un divisor de m.

7. Sea el cuerpo F8, definido por el polinomio binario f (X) = X3 + X + 1 y sea α una raíz de

f (X). Expresar en la base polinómica {1,α,α2} los elementos α5 y α1+α2 .

8. Demostrar que en el cuerpo Fq la suma de todos los elementos es cero y si q es una potencia

de un número primo impar, el producto de todos los elementos no nulos es –1.

9. Demostrar que en un cuerpo finito de característica p,

a) Si p = 2, cada elemento es un cuadrado;

b) Si p es impar, exactamente la mitad de los elementos son cuadrados.

10. Escribir la tabla de equivalencias vectorial-exponencial para el cuerpo finito F24 , con

generador α.

a) Determinar δ como potencia de α, donde δ = α10 +α7 + α23

1 + α12+ 1

b) Encontrar todas las raíces de la ecuación:

α7x2 + (α2 + α9)x +1 + α

α4= 0

11. Utilizar el algoritmo extendido de Euclides para calcular:

a) El inverso de 43 en el cuerpo Z101.

b) El inverso de (1,2) en el cuerpo F9 (generar F9 a partir del polinomio irreducible f (X) =

X2 + 1)

12. Encontrar todas las bases normales del cuerpo F8, sobre el cuerpo F2.

13. Sea q = pm, p primo, Fq el cuerpo finito con q elementos y B : {x1, . . . ,xm} una base

de Fq sobre Fp. Dado x ∈ Fq sea la aplicación lineal ϕx : Fq → Fq dada por: ϕx(y) = xy.

Como toda aplicación lineal ϕ vendrá determinada en la base B por una matriz m × m con

coeficientes en Fp, A = (aij).

Se denomina Traza de x a Tr(x) =P

i aii ∈ Fp (es decir, lo que se denomina traza de la ma-

triz A, la suma de los elementos de su diagonal principal) y Norma de x a N(x) = |A| ∈ Fp

(determinante de la matriz A). Aunque definido en términos de una base concreta, puede

verse en cualquier texto de álgebra lineal que Tr(x),N(x) son los mismos en cualquier base.

Al variar x ∈ Fq se tienen dos aplicaciones Tr : Fq → Fp y N : Fq → Fp. Probar las siguientes

propiedades:

i) Tr(x + y) = Tr(x) + Tr(y),

i’) N(x · y) = N(x) · N(y), x,y ∈ Fq,

ii) Tr(λx) = λTr(x),

ii’) N(λx) = λmN(x), λ ∈ Fp, x ∈ Fq,

iii) Tr(λ) = mλ,

iii’) N(λ) = λm,λ ∈ Fp.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 32: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 32 Cuerpos finitos

14.a) Multiplicar en binario los números a = 103, b = 65. Determinar el número de operaciones

bits realizadas.

b) Generalizar al caso a número de longitud binaria k y b = 2k–1 + 1.

c) Comparar el número de operaciones bits de esta última multiplicación con la complejidad

general para la multiplicación obtenida en la proposición 3.8.

15.a) Formular un algoritmo para la exponenciación an en un cuerpo finito análogo al algorit-

mo 3.2 para la exponenciación modular en Z.

b) Determinar la complejidad del algoritmo anterior.

c) Aplicar al caso del cuerpo F8, a = 1 + α, α raíz del polinomio X3 + X + 1 ∈ F2[X] y n = 5.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 33: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 33 Cuerpos finitos

Soluciones

1) Si n no fuese primo admitiría una factorización n = ab, 1 < a,b < n. Los elementos a,bno admiten entonces inverso: si por ejemplo a admitiese inverso a–1, a–1 ∈ {1,2, . . . ,n–1} se

tendría que aa–1 = 1 y multiplicando ambos miembros por b: (ba)a–1 = na–1 y 1b = b. Dado

que n · a–1 = 0 en Zn, entonces b = 0, lo que es una contradicción.

En el caso n = 6, de lo anterior se deduce que los elementos 2 y 3 no admiten inverso, lo

que también puede comprobarse directamente, viendo que el producto de 2 o de 3 por los

elementos del conjunto {1,2,3,4,5} nunca es 1.

2) De acuerdo a la construcción dada por el teorema 1.9 es necesario tomar un polinomio

irreducible de grado dos sobre el cuerpo primo con tres elementos F3. Un tal polinomio es

por ejemplo el X2 + 1. Si α es una raíz de dicho polinomio se tendría:

F9 = {0,1,2,α,2α,1 + α,2 + α,1 + 2α,2 + 2α}

Las tablas aditivas y multiplicativas para este cuerpo podrían construirse como en el ejemplo

1.4. Sin embargo, el polinomio usado no es primitivo y una raíz de este polinomio no nos

sirve como generador del grupo multiplicativo del cuerpo (observemos que α4 = 1).

Tomemos ahora el polinomio X2 + 2X + 2 y sea α una raíz y por tanto, α2 = 1 + α. Se tiene la

correspondencia.

Exponencial Vectorial Polinomial

0 (0,0) 0

α0 (1,0) 1

α1 (0,1) α

α2 (1,1) 1 + α

α3 (1,2) 1 + 2α

α4 (2,0 2

α5 (0,2) 2α

α6 (2,2) 2 + 2α

α7 (2,1) 2 + α

3) Puesto que F∗

9 es un grupo cíclico de orden 8, la teoría general de grupos cíclicos nos dice

que existen φ(8) = φ(23) = 22 · 1 = 4 generadores del grupo multiplicativo de este cuerpo.

Si α es un tal generador (por ejemplo, como en el ejercicio anterior, puede tomarse como α

una raíz del polinomio X2 + 2X + 2 ∈ F3[X]) se tiene:

F∗

9 = {α,α2,α3,α4,α5,α6,α7,α8 = 1}

Los generadores serán de la forma αi, donde mcd(i,8) = 1 y, por lo tanto, i = 1,3,5 y 7. Así

pues, los generadores serán {α,α3,α5,α7}. En efecto, todos estos elementos tienen orden 8 y

por tanto, sus potencias recorren todo F∗

9 .

Los elementos que tienen raíz cuadrada son aquellos en los que el exponente es par, o sea

{α2,α4,α6,α8}. En efecto estos elementos tienen raíz cuadrada, de hecho, cada uno de ellos

tiene dos raíces cuadradas: por ejemplo α2 tiene por raíz α pero también α5 ((α5)2 = α10 =

α2). En cambio los elementos con exponente i impar no admiten raíz cuadrada, lo que puede

comprobarse directamente. Obsérvese que si β ∈ F9 fuese una raíz cuadrada de αi, es decir

β2 = αi, puesto que αi tiene orden 8, β tendría orden 16, lo que es absurdo pues su orden

debe ser divisor del orden del grupo, que es 8.

4) Debemos averiguar para qué valores de p se puede construir un cuerpo con p2 elementos

a partir del polinomio irreducible X2 + 1, es decir, debemos poder construir un cuerpo Fp2 =

Zp[X]/(X2 + 1). Si f (X) = X2 + 1 no fuera irreducible, podría ser descompuesto de la forma

(X – a)(X – b). Entonces, si existen valores X = a o X = b tales que f (X) = 0 (mod p), f (X)

no sería irreducible, y por lo tanto, Zp[X]/X2 + 1 no será un cuerpo. Supongamos f (X) = 0,

entonces sería X2 +1 = 0 (mod p) y X2 = –1 = p–1 (mod p). Así pues, comprobaremos si p–1

tiene raíz cuadrada módulo p y, en caso afirmativo, f (X) no será irreducible.

a) Para p = 3: x2 = 2 no tiene solución, por tanto f (X) es irreducible.

b) Para p = 5: x2 = 4 tiene solución x = 2, x = –2, por tanto f (X) no es irreducible.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 34: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 34 Cuerpos finitos

c) Para p = 7: x2 = 6 no tiene solución, por tanto f (X) es irreducible.

d) Para p = 11: x2 = 10 no tiene solución, por tanto f (X) es irreducible.

e) Para p = 13: x2 = 12 tiene solución x = 5 (52 = 25 = 12 (mod p)), por tanto f (X) no es

irreducible.

f) Para p = 19: x2 = 18 no tiene solución, por tanto f (X) es irreducible.

g) Para p = 23: x2 = 22 no tiene solución, por tanto fXx) es irreducible.

Los valores de p que cumplen que Fp2 = Zp[X]/X2 + 1 es un cuerpo son: 3,7,11,19 y 23.

Obsérvese que son todos los primos del conjunto dado congruentes con 3 módulo 4.

5) Debemos encontrar todos los valores de m tales que el polinomio p(X) = X2 + mX + 2 sea

irreducible y primitivo en Z11[X].

Primero encontraremos los valores de m para los cuales p(X) es irreducible. Para ello, su-

pondremos que p(X) se puede descomponer en factores, X2 + mX + 2 = (X – a)(X – b) =

X2 – bx – ax + ab = X2 – (a + b)X + ab. O sea, –(a + b) = m y ab = 2.

Las posibles soluciones son: (a = 1,b = 2,m = 8); (a = 2,b = 1,m = 8), (a = 3,b = 8,m = 0),

(a = 4,b = 6,m = 1), (a = 5,b = 7,m = 10), (a = 6,b = 4,m = 1), (a = 7,b = 5,m = 10),

(a = 8,b = 3,m = 0), (a = 9,b = 10,m = 3), (a = 10,b = 9,m = 3). La conclusión es que los

posibles valores de m para que p(x) sea irreducible son 2,4,5,6,7 y 9.

Finalmente, debemos sustituir m por estos valores y ver si p(x) es primitivo. Para ver que

un polinomio es primitivo, debemos comprobar que sus raíces tengan orden pn – 1, o sea,

orden 120 en nuestro caso. Un elemento α tiene orden i si αi = α0 = 1 en el cuerpo en el

que estamos trabajando. Entonces, podemos tomar α = [X] como raíz e ir calculando las

potencias de este elemento hasta llegar a un exponente i tal que αi = 1. Si i = 120 (orden

máximo), podemos decir que α es primitivo y el polinomio correspondiente también (no

hace falta calcular todas las potencias de α hasta 120, basta calcular αi con i divisor de 120).

Finalmente, después de las operaciones pertinentes, nos quedan como valores que hacen que

p(x) sea primitivo m = 4,5,6 y 7.

6) Si r|m se ha probado en la proposición 2.2 que el polinomio Xpr– X divide al polinomio

Xpm– X. Por tanto las raíces del primero (que constituyen el cuerpo Fpr ) son también raíces

del segundo, es decir, elementos del cuerpo Fq.

Supongamos recíprocamente que Fpr ⊂ Fpm . Puesto que ambos cuerpos contienen a Fp se

tiene la cadena Fp ⊂ Fpr ⊂ Fpm . Entonces se tiene que:

• Fpr es un espacio vectorial de dimensión r sobre Fp

• Fpm es un espacio vectorial de dimensión m sobre Fp

• Fpm es un espacio vectorial sobre Fpr . Llamemos s a su dimensión.

Pero es fácil demostrar la siguiente relación entre las tres dimensiones:

n = [Fpm : Fp] = [Fpm : Fpr ][Fpr : Fp] = rs ⇒ r|m

[Basta tomar bases {v1,v2, . . . ,vs} de Fpm sobre Fpr y {w1,w2, . . . ,wr} de Fpr sobre Fp y com-

probar que los productos viwj forman una base de Fpm sobre Fp.]

7) Por ser raíz del polinomio f (X) = X3 + X + 1, α verifica (en binario) α3 = α + 1. Por tanto

a) α4 = α2 + α y α5 = α3 + α2 = α + 1 + α2.

b) α1+α2 = α(1 + α2)–1. Para obtener el inverso de 1 + α2 se aplica el algoritmo de Euclides

para a = a0 = X3 + X + 1, b = a1 = X2 + 1 y xo = 1, x1 = 0, y0 = 0, y1 = 1. Se obtiene:

a2 = 1, a3 = 0, x2 = 1, y2 = X. Luego

1 = mcd(a,b) = X3 + X + 1 + X(X2 + 1) ⇒ (1 + α2)–1 = α

Finalmente: α1+α2 = αα = α2.

8) El cuerpo Fpm está formado por todos los elementos que cumplen Xpm– x = 0. Sean estos

elementos {0,a1,a2, · · · ,apm–1}. Entonces Xpm–1 – 1 = (X – a1)(X – a2) · · · (X – apm–1). Haciendo

operaciones:

Xpm–1 – 1 = Xpm–1 – (a1 + a2 + · · · + apm–1)| {z }

=0

Xpm – 2 + · · · + (–1)pm–1Y

ai

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 35: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 35 Cuerpos finitos

En cualquier caso la suma de todos los elementos de Fpm da cero y, si p es impar, pm – 1 es par

y, entonces, el producto es igual a –1.

9) Supongamos que p = 2, entonces podemos escribir el cuerpo finito F2m como F2m =

{0,α1,α2, · · · ,α2m–1 = 1}, donde α es un elemento primitivo. Vamos a ver si α tiene raíz

cuadrada:

1 = α0 = α2m–1 =⇒ α = α2m=⇒

√α = α2m–1

Como α tiene raíz cuadrada, todos los elementos de F2m la tendrán también.

En segundo lugar, supongamos que p = 2k + 1. En este caso podemos escribir Fpm = {0,α1,α2,

· · · ,αpm–1}, donde α es un elemento primitivo y αpm–1 = α0. Evidentemente, α2k tiene raíz

cuadrada, así como el elemento cero. Por lo tanto, los elementos que podemos asegurar que

tienen raíz cuadrada serán:

{0,α0,α2, · · · ,αpm–1}

que son exactamente la mitad de los elementos no nulos de Fpm y, además, el cero.

Vamos a ver que no hay más elementos en Fpm con raíz cuadrada y, para ello, consideremos

φ : Fpm –→ Fpm , definida como φ(x) = x2. En esta aplicación, excepto el cero, todas las

imágenes tienen exactamente dos antiimágenes. En efecto, supongamos que dos elementos

x,y ∈ Fpm ,x 6= y tienen un mismo cuadrado, es decir, x2 = y2. Entonces

x2 = y2 =⇒ x2 – y2 = 0 =⇒ (x + y) · (x – y) = 0

Esta ecuación tiene dos posibles soluciones: x = y y x = –y. Como p es impar, siempre existirán

valores diferentes x,y ∈ Fpm tales que x = –y, excepto en el caso del cero.

10) Tomemos el cuerpo finito F24 = Z2[X]/f (x), dónde f (x) se un polinomio irreducible de

grado 4 y coeficientes en Z2. Nuestro primer problema es, pues, encontrar un polinomio

irreducible y primitivo de cuarto grado.

Empecemos, primero, con los polinomios irreducibles de grado 1 (hay dos: X,X + 1). Los de

grado 2 (hay uno: X2 + X + 1). Los de grado 3 (hay dos: X3 + X2 + 1; X3 + X + 1). Los de grado

4 (hay 3: X4 + X3 + X2 + X + 1; X4 + X3 + 1; X4 + X + 1). De entre estos últimos polinomios

de cuarto grado, buscaremos uno que sea primitivo, es decir, que sus raíces tengan orden

pn – 1 = 15.

Comprobemos el polinomio X4 + X3 + X2 + X + 1:

Sea α una raíz, entonces

α4 = α3 + α2 + α + 1,

α5 = α4 + α3 + α2 + α = 1,

O sea, α5 = 1 y, por tanto, α no es de orden 15 y el polinomio no es primitivo.

Comprobemos ahora el polinomio X4 + X3 + 1:

Sea α una raíz, entonces

α4 = α3 + 1

α5 = α4 + α = α3 + α + 1

α6 = α4 + α2 + α = α3 + α2 + α + 1

α7 = α4 + α3 + α3 + α = α2 + α + 1

α8 = α3 + α2 + α

α9 = α4 + α3 + α2 = α2 + 1

α10 = α3 + α

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 36: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 36 Cuerpos finitos

α11 = α4 + α2 = α3 + α2 + 1

α12 = α9 + α6 + α3 + 1 = α + 1

α13 = α2 + α

α14 = α3 + α2

α15 = 1

Por tanto, el polinomio X4 + X3 + 1 se primitivo.

Así pues, utilizaremos el polinomio primitivo X4 + X3 + 1 y F24 = Z2[X]/X4 + X3 + 1.

La tabla de equivalencias vectorial-potencial es:

0 (0000) α0 (1000) α1 (0100) α2 (0010) α3 (0001)

α4 (1001) α5 (1101) α6 (1111) α7 (1110) α8 (0111)

α9 (1010) α10 (0101) α11 (1011) α12 (1100) α13 (0110)

α14 (0011)

• Para calcular δ como potencia de α, calcularemos:

δ = α10 +α7 + α23

1 + α12+ 1 = α10 +

α7 + α8

α+ 1 = α10 +

α4

α+ 1 = α10 + α3 + 1 = α12.

• Para encontrar las raíces de la ecuación dada, debemos resolver:

α7x2 + (α2 + α9)x +1 + α

α4= 0,

o sea: α7x2 + x + α8 = 0.

Por búsqueda exhaustiva, encontramos las raíces α3 y α13.

11) En primer lugar, el inverso de 43 en Z101 será un x tal que 43 · x = 1 (mod 101). Por lo

tanto, 43x = 1 + 101y.

Aplicamos el algoritmo extendido de Euclides con a0 = a = 101,a1 = b = 43.

Los valores encontrados son:

a0 = a = 101,a1 = b = 43,a2 = 15,a3 = 13,a2 = 2,a3 = 0,

q1 = 2,q2 = 2,q3 = 1,q4 = 6,

x0 = 1,x1 = 0,x2 = 1,x3 = –2,x4 = 3,x5 = –20,

y0 = 0,y1 = 1,y2 = 2,y3 = –5,y4 = 7,y5 = –47.

Finalmente, 1 = –101·20 + 43·47 y 1 = 43·47 (mod 101).

Por tanto, 43–1 = 47 (mod 101).

En segundo lugar vamos a calcular el inverso de (1,2) en F32 , donde F32 se ha generado a

partir de f (X) = X2 + 1.

El vector (1,2), en forma polinómica, está representado por 1+2α, donde α = [X] ∈ Z3[X]/X2+

1.

Utilizando el algoritmo extendido de Euclides entre X2 + 1 y 2X + 1 obtenemos:

a0 = a = X2 + 1,a1 = b = 2X + 1,a2 = 2,

q1 = 2X – 1,

x0 = 1,x1 = 0,x2 = 1,

y0 = 0,y1 = 1,y2 = 2X – 1.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 37: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 37 Cuerpos finitos

Finalmente, 2 = 1 · (X2 + 1) – (2X – 1) · (2X + 1), o sea:

(2X – 1) · (2X + 1) = 1 (mod X2 + 1).

Por lo tanto, (1,2)–1 = (–1,2).

12) Sea α ∈ F8, raíz del polinomio irreducible X3 +X+1. El conjunto B = {α,α2,α4 = 1+α+α2}forma una base normal. Por el teorema 2.11 cualquier otra base B′ es de la forma B′ = BC,

con C = [c0,c1,c2] matriz circulante no singular, es decir, con determinante no nulo (y por

tanto, en este caso determinante igual a 1).

El problema se reduce pues a encontrar tales matrices. Puesto que los coeficientes ci ∈ {0,1}existen 8 matrices circulantes. Veamos cuáles son no singulares:

a) Sean c0 = c1 = c2 = 0: la matriz es obviamente singular (todos sus coeficientes son nulos).

b) Sean c0 = c1 = c2 = 1: la matriz es singular (pues tiene sus tres filas iguales).

c) Sean c0 = 1 y c1 = c2 = 0: la matriz obtenida es la identidad, no singular, y se tiene B′ = B.

d) Sean c0 = 0, c1 = 1, c2 = 0: la matriz obtenida es

0

B

B

B

@

0 1 0

0 0 1

1 0 0

1

C

C

C

A

,

matriz no singular que proporciona la base normal B′ = {α4,α,α2} (Nótese que (α4)2 =

α8 = α.

e) Sean c0 = 0, c1 = 0, c2 = 1: la matriz obtenida es

0

B

B

B

@

0 0 1

1 0 0

0 1 0

1

C

C

C

A

,

matriz no singular que proporciona la base normal B′ = {α2,α4,α}.

f) Sean c0 = 1, c1 = 1, c2 = 0: la matriz obtenida es

0

B

B

B

@

1 1 0

0 1 1

1 0 1

1

C

C

C

A

,

matriz que es singular.

g) Sean c0 = 1, c1 = 0, c2 = 1: Se obtiene también una matriz singular.

h) Sean c0 = 0, c1 = 1, c2 = 1: De nuevo la matriz obtenida es singular.

Como conclusión: existen tres bases normales, las {α,α2,α4}, {α4,α,α2}, y {α2,α4,α}. Ob-

sérvese, sin embargo, que las dos últimas son simplemente permutaciones de la primera.

13) Si A,B son las matrices asociadas con las aplicaciones ϕx,ϕy; x,y ∈ Fq se tiene que la

matriz asociada con ϕx+y es A + B de donde se deduce i). La matriz asociada con ϕλx es (λaij),

de donde se deduce ii). La matriz asociada con ϕ(λ ) es la matriz diagonal con λ en todos los

elementos de la diagonal principal, de donde se deduce iii).

Las propiedades i’), ii’) y iii’) se deducen de la misma forma, teniendo en cuenta que la matriz

asociada a ϕxy es AB.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 38: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 38 Cuerpos finitos

14)

a) La expresión binaria de ambos números es a = 1100111, b = 1000001. Con la regla

habitual de multiplicación se obtiene

a = 0 0 0 0 0 0 1 1 0 0 1 1 1

a′ = 1 1 0 0 1 1 1 0 0 0 0 0 0

a + a′ = a · b = 1 1 0 1 0 0 0 1 0 0 1 1 1

Se han realizado un total de 13 operaciones bits (suma de dos números binarios de lon-

gitud 13). El resultado obtenido ha sido: 212 + 211 + 29 + 25 + 22 + 2 + 1 = 6695.

b) Ambos números tienen longitud binaria k y expresión binaria a = 1ak–1 · · · a1a0, b =

10 · · · 01. Dado que b tiene solo dos coeficientes no nulos (el primero y el último), habría

que realizar la suma de dos números binarios de longitud 2k–1, obteniéndose un número

con longitud, según los casos, 2k – 1 o 2k, por lo que el número de operaciones bits será

a lo sumo 2k.

c) La complejidad para el producto anterior es pues O(k), lineal en la longitud de los datos.

La complejidad en el caso general, Proposición 3.8, era sin embargo O(k2). Recuérdese,

sin embargo, que el símbolo O daba una expresión “en el caso peor”.

15)

a) El algoritmo debe calcular una expresión de la forma an, a ∈ Fq, n ∈ N. La reducción

módulo m en el algoritmo 3.2 debe sustituirse ahora por “operaciones” (multiplicaciones

y cuadrados) en el cuerpo finito. Con este cambio se obtiene al algoritmo deseado.

b) El algoritmo exige realizar, a lo sumo, O(log(n)) multiplicaciones y O(log(n)) cuadrados

(a diferencia del Algoritmo 3.2 no son necesarias divisiones). Como la complejidad de

una multiplicación y un cuadrado en Fq es O(log2(q)) el coste total será:

O(log(n))O(log2(q)) + O(log(n))O(log2(q)) = O(log(n) log2(q))

c) En este caso la expresión binaria de n es 5 = 101. Habría pues que realizar tres etapas:

• Etapa 1: s2 = 1, luego b := 1 + α y b := (1 + α)2 = 1 + α2.

• Etapa 2: s1 = 0, luego b := (1 + α2)2 = 1 + α + α2.

• Etapa 3: s0 = 1, luego b := (1 + α)(1 + α + α2) = α.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 39: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200953 39 Cuerpos finitos

Bibliografía .

Koblitz, N. (1994). “A Course in Number Theory and Cryptography, Second Edition”. Nue-

va York: Springer (Graduate Texts in Mathematics, núm. 114).

Lidl, R.; Niederreiter, H. (1997). “Finite Fields”. Encyclopedia of Mathematics and its Appli-cations (vol. 20, núm. 20, pág. 2). Cambridge: Cambridge U. Press.

Menezes, A. (1993) (ed.). Applications of Finite Fields. Massachusetts: Kluwer Academic Pu-

blishers.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 40: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 41: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

Elementos decriptografíaLlorenç Huguet Rotger

Josep Rifà Coma

Juan Gabriel Tena Ayuso

PID_00200951

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 42: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 43: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 Elementos de criptografía

Índice

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

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1. Criptosistemas simétricos o de clave privada . . . . . . . . . . . . . . . . . 9

1.1. Criptosistema DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2. Criptosistema IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3. Criptosistema AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.4. Modos de operación de los criptosistemas de clave privada . . . 14

2. Criptosistemas de clave pública . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1. Funciones unidireccionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2. Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2.1. Descripción del criptosistema . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2.2. Firma digital, basada en el RSA . . . . . . . . . . . . . . . . . . . . . . . 19

2.3. Criptosistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.1. Descripción del criptosistema ElGamal . . . . . . . . . . . . . . . 21

2.3.2. Firma digital, basada en el ElGamal . . . . . . . . . . . . . . . . . . 22

2.4. Algoritmo DSA como alternativa a la firma digital RSA . . . . . . . 23

2.5. Funciones hash: MD5 y SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.5.1. El algoritmo MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5.2. El algoritmo SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.6. Infraestructura de clave pública: PKI . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.6.1. Sistemas gestores de certificados electrónicos:

la recomendación X.509. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.6.2. Listas de certificados revocados: CRL . . . . . . . . . . . . . . . . . 32

3. Criptografía cuántica y post-cuántica . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.1. Criptografía cuántica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.2. Los códigos correctores de errores en la criptografía

post-cuántica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.1. Nociones básicas de códigos correctores de errores . . . 37

3.2.2. Códigos lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.2.3. Los códigos lineales cíclicos: BCH y RS . . . . . . . . . . . . . . . 43

3.2.4. Los códigos cíclicos BCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2.5. Los códigos cíclicos RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.3. Los criptosistemas de McEliece y de Niederreiter . . . . . . . . . . . . . . 47

3.3.1. Criptosistema de McEliece . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.3.2. Criptosistema de Niederreiter. . . . . . . . . . . . . . . . . . . . . . . . . 49

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 44: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 Elementos de criptografía

Ejercicios de autoevaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Solucionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 45: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 5 Elementos de criptografía

Introducción

Lectura recomendada

Para hacer más

comprensible este módulo

didáctico se puede

acompañar del libro de

Criptografía de J. Domingo,

J. Herrera y H. Rifà-Pous de

los estudios de Informática

y Multimedia, de la UOC.

Tradicionalmente, la criptografía tiene como objetivo la transmisión o alma-

cenamiento de mensajes indescifrables para todo receptor que no disponga de

la clave del algoritmo de descifrado.

Hoy, la criptografía se presenta como la solución al problema de la vulnera-

bilidad de los sistemas de transmisión, o de almacenamiento, con respecto al

secreto y a la autenticidad de la información transmitida, o almacenada. El

objetivo concerniente a la privacidad y autenticidad asociados a una red de

sistemas es evitar que un espía pueda violar o eliminar la protección del sis-

tema en referencia a las líneas de comunicación, a la conexión de acceso a la

red (contraseñas) y a la utilización de los recursos de un determinado sistema.

En tiempos pasados, la criptografía ha sido una actividad casi exclusivamente

utilizada en la diplomacia y en la guerra, pero, a partir de la Segunda Guerra

Mundial, la aparición de los ordenadores ha hecho que todos los sistemas crip-

tográficos utilizados antes, excepto el método de Vernam (basado en claves de

un solo uso y del cual se puede demostrar matemáticamente su inviolabili-

dad), formen parte de la historia puesto que la velocidad en el tratamiento de

la información hace que sea un juego de niños el problema de encontrar sus

correspondientes claves (criptoanálisis).

De esta simplicidad de los métodos clásicos es un ejemplo el sistema cripto-

gráfico, llamado de Julio César, por ser él su primer usuario, utilizado todavía

durante la segunda guerra mundial, que consistía en numerar los caracteres

alfabéticos y cifrar el mensaje m como el criptograma c, mediante una trasla-

ción cíclica que hoy enunciaríamos como c = (m + k) (mod 25), donde m es el

valor numérico asignado a cada letra del alfabeto {A = 0,B = 1,...,Z = 24}, por

ejemplo, y para un cierto valor de k previamente elegido (Cesar escogía k = 3).

El texto AMOR quedaría, en valores numéricos, 0,12,14,17 que se cifrarían en

3,15,17,20; es decir, se transmitiría el mensaje cifrado (criptograma): DPRU.

Desde siempre, toda técnica criptográfica que opera sobre un mensaje, sin

tener en cuenta su estructura lingüística, está basada en una operación ejecu-

tada por el emisor, transformando el mensaje original en un mensaje cifrado,

mediante un algoritmo que implementa esta operación, ligado a una clave k.

Al mismo tiempo, esta operación posee la operación inversa, ejecutada por el

receptor, que permite encontrar el mensaje original.

Todo sistema criptográfico, también denominado criptosistema, consta de cin-

co componentes: {M,C,K,E y D}, donde M es el conjunto de todos los mensa-

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 46: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 6 Elementos de criptografía

jes a transmitir, C el de todos los mensajes cifrados, K el de las claves a utilizar,

E el de todos los métodos de cifrado: E = {Ek|Ek(m) ∈ C,∀m ∈ M,∀k ∈ K} y D el

de todos los métodos de descifrado: D = {Dk|Dk(c) ∈ M,∀c ∈ C,∀k ∈ K}.

Cada método de cifrado de E, y cada método de descifrado de D, está definido

mediante un algoritmo, que es común a todos los métodos, y donde cada

clave k ∈ K, distinguirá la instancia correspondiente a cada transformación Ek,

y Dk, respectivamente.

Para toda clave k ∈ K, la transformación Dk es la inversa de Ek; es decir:

Dk(Ek(m)) = m,∀m ∈ M

Observar sin embargo, que esto no quiere decir que Ek sea el inverso de Dk, en

sentido matemático.

Fuentem Cifrado

Ek(m) = cDescifradoDk(c) = m

Criptoanálisis

Receptor

Métodosde cifrado

Métodosde descifrado

ClavesCanal seguro

c

Ek Dk

k k

m

Todo criptosistema, tal y como muestra la figura anterior, debe cumplir al

menos estos tres requisitos:

Principios de Kerchoff

En criptografía, laspropiedades deseables de uncriptosistema constituyen losprincipios de Kerckhoff; deentre ellos, los másimportantes: Si elcriptosistema no esteóricamente irrompible, almenos lo debe ser en lapráctica. La efectividad delcriptosistema no debedepender de que su diseñopermanezca en secreto. Elcriptosistema debe ser fácilde usar. La clave debe serfácilmente memorizable, paraevitar recurrir a notas escritas.Los criptogramas deberíanser alfanuméricos.

1) Todos los algoritmos de cifrado y descifrado Ek y Dk deben ser computacio-

nalmente eficientes.

2) Los algoritmos Ek y Dk deben ser fácilmente implementables.

3) La seguridad del sistema solo debe depender del secreto de las claves k ∈ K,

y no de los algoritmos correspondientes de E y D.

Además, siempre se deberá tener en cuenta los objetivos de privacidad y au-

tenticidad, donde se considera:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 47: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 7 Elementos de criptografía

• Privacidad: como la incapacidad, para un criptoanalista, de determinar un

mensaje original a partir del criptograma que haya podido interceptar.

• Autenticidad: como la incapacidad, para un criptoanalista, de sustituir un

criptograma falso c′, en lugar del criptograma real c, sin que sea detectado.

Consideraciones a los criptosistemas

Actualmente, se consideran dos tipos de criptosistemas, según la utilización

y administración de los algoritmos de cifrado y descifrado. El criptosistema

clásico o convencional, en el cual la clave correspondiente a ambos algoritmos

es la misma o, en su defecto, una fácilmente deducible de la otra. En este caso,

cada usuario dispone de su pareja de algoritmos Ek y Dk particulares y ningún

otro usuario puede disponer de ellos sin conocer la clave k. Son los llamados

criptosistemas de clave privada o simétricos.

Lectura recomendada

W. Diffie; M. Hellman.

“New Directions in

Criptography”. IEEETransactions on InformationTheory (vol. IT-22).

En el año 1976 entra en juego un nuevo concepto de criptosistema, propues-

to por W. Diffie y M. Hellman, llamados criptosistemas de clave pública o

asimétricos, caracterizados por el hecho de que conocer el algoritmo Ek no

revela ninguna información sobre Dk o viceversa. Es decir, una de las claves

puede ser revelada públicamente sin peligro de que la otra pueda ser deducida.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 48: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 8 Elementos de criptografía

Objetivos

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

tenidos necesarios para alcanzar los objetivos siguientes:

1. Conocer los sistemas criptográficos de clave simétrica más comunes (DES,

IDEA, AES).

2. Conocer los sistemas criptográficos de clave asimétrica más comunes (RSA,

ElGamal).

3. Conocer los principales algoritmos usados en las funciones hash (MD5,

SHA).

4. Conocer los fundamentos y algún ejemplo de sistema criptográfico cuán-

tico.

5. Conocer los fundamentos de la teoría de la codificación para la corrección

de errores y los sistemas criptográficos postcuánticos basados en esta (McE-

liece, Niederreiter).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 49: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 9 Elementos de criptografía

1. Criptosistemas simétricos o de clave privada.

Nos referiremos a los criptosistemas como simétricos o de clave privada cuan-

do el emisor y el receptor comparten una única clave k. Por esto, establecemos

como característica principal la existencia de un canal seguro a través del cual

el emisor transmite al legítimo receptor su clave privada k de forma que queda

protegida ante un criptoanalista.

Fuentem Cifrado

Ek(m) = cDescifradoDk(c) = m

Criptoanálisis

Receptor

ClavesCanal seguro

c

k k

m

El emisor quiere enviar cifrado el mensaje m, por lo cual, mediante el algorit-

mo de cifrado calcula el criptograma c a partir de m y de la clave k:

Ek(m) = c

El receptor debe ser capaz de descifrar el criptograma c, a partir del conoci-

miento de la clave k, es decir, reencontrar el mensaje m mediante:

Dk(c) = m

1.1. Criptosistema DES

En el año 1977 el NBS (National Bureau of Standards), de los EE. UU., anun-

ció un algoritmo de cifrado estándar, el DES (Data Encryption Standard, FIPS

pub. 46, National Bureau of Standards, (enero 1977)), para que fuera utilizado

por todas las agencias federales, con el propósito de hacer compatibles todos

los sistemas de protección de la información utilizados en los diferentes esta-

dos, bajo un sistema criptográfico común admitido como estándar. La nueva

agencia que sustituyó a la NBS, el NIST (National Institute of Standards and

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 50: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 10 Elementos de criptografía

Technology), certificó el DES en el año 1987 y otra vez en 1993, hasta que en

1997 ya no lo certificó. Durante estos años fue considerado estándar a nivel

mundial y hoy todavía es utilizado en el intercambio de información entre los

cajeros automáticos y los bancos respectivos. Aunque sea por motivos históri-

cos nos parece interesante hacerle referencia.

El DES consiste en un algoritmo de cifrado-descifrado en bloques de 64 bits,

mediante una clave k, también de 64 bits (de los cuales solo 56 bits son efec-

tivos).

Enlace de interés

Se puede encontrar un

aplicativo de simulación del

DES, de uso libre, en la

dirección:

www.criptored.upm.es.

Los 64 bits de entrada (mensaje original) se transforman a través de una per-

mutación inicial PI, cuya salida se divide en dos sub-bloques L0 y R0 de 32 bits

cada uno, los cuales están sujetos a un conjunto de 16 transformaciones, de

acuerdo con una cierta función f y 16 sub-claves ki (i = 1, . . . ,16). Tras realizar

las 16 transformaciones se reunifican los sub-bloques R16 y L16 y se le aplica la

inversa de la permutación inicial: PI–1.

Si Ti es el resultado de la i-ésima iteración, entonces Ti está formada por dos

partes la Li, que denota los 32 bits más a la izquierda de Ti, y Ri, que denota

los 32 bits más a la derecha de Ti; o sea, Ti es la concatenación de Li con Ri. El

cálculo se hace de este modo:

Li = Ri–1,

Ri = L–1 ⊕ f (Ri–1,ki)

donde ⊕ es la operación or-exclusiva y ki es una sub-clave de 48 bits obtenida

a partir de la clave original k.

La función f transforma los 32 bits del bloque Ri–1, mediante la sub-clave ki en

los 32 bits del bloque Ri. Para hacer esto, primero se expanden los 32 bits de

Ri–1 en un bloque de 48 bits, utilizando una tabla de expansión E para calcular

la or-exclusiva de E(Ri–1) y ki, el resultado de la cual se divide en ocho bloques

Bi de 6 bits de entrada y cuatro de salida. Estos bits de salida son concatenados

por dar un nuevo bloque de 32 bits. Finalmente, la salida de la función f es el

resultado de aplicar una cierta permutación P al bloque de 32 bits anterior. Es

decir:

f (Ri–1,ki) = P(S1(B1),S2(B2)...S8(B8))

Cada una de las 16 iteraciones del algoritmo DES utiliza una clave diferente

de 48 bits, ki, calculada a partir de la clave k de 64 bits, la cual posee 8 bits de

control en las posiciones 8,16,24,32,40,48,56,63, mediante una permutación

P1 de 56 bits. El resultado P1(k) se divide en dos partes de 28 bits cada uno,

a los que se aplica un desplazamiento a la izquierda diferente para cada sub-

clave ki.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 51: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 11 Elementos de criptografía

La siguiente figura detalla los pasos del algoritmo de cifrado DES:

Nota

El hecho de que no seanintercambiados R16 y L16

antes de aplicarles lapermutación PI–1 obedece aque el algoritmo quedescribimos también seutilizará para el descifrado.

m = texto original de 64 bits

Permutación inicial PI

L0

L1

L2

L14

L15

L16

R0

R1

R2

R14

R15

Inversa de PI

c = texto cifrado

R16

k1

k2

k15

k16

f(R0,k1)

f(R1,R2)

f(R14,k15)

f(R15,k16)

Para aumentar la fortaleza del DES ante posibles criptoanálisis se propuso la

reiteración de los procesos de cifrado/descifrado operando, sucesivamente, so-

bre el mismo bloque con varias claves independientes. Este es el caso del doble

o triple cifrado.

1) Doble cifrado. Dadas las claves independientes k1 y k2, los algoritmos de

cifrado y descifrado vienen dados por:

c = Ek2(Ek1

(m))

m = Dk1(Dk2

(c))

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 52: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 12 Elementos de criptografía

2) Triple cifrado. Dadas las claves independientes k1, k2 y k3, los algoritmos

de cifrado y descifrado vienen dados por:

c = Ek3(Dk2

(Ek1(m))

m = Dk1(Ek2

(Dk3(c))

El método de triple cifrado puede ser utilizado para evitar el ataque criptoana-

lítico del meet in the middle.

1.2. Criptosistema IDEA

El International Data Encryption Algorithm es un criptosistema de clave si-

métrica, que fue diseñado para corregir las debilidades detectadas en el DES.

Hoy en día es utilizado en correo electrónico seguro (PGP)

El algoritmo IDEA opera en bloques de 64 bits como texto original, dando un

texto cifrado de 64 bits, mediante una clave de 128 bits. Es decir, opera sobre

la misma longitud de bloques de bits que el DES, pero con una longitud de

clave doble, lo cual añade complejidad al criptoanálisis.

Enlace de interés

Se puede encontrar un

aplicativo para la

simulación del IDEA, de uso

libre, en la dirección:

www.criptred.upm.es.

Las operaciones se realizan sobre sub-bloques de 16 bits, cosa que permite su

adaptación a arquitecturas de 16 bits. En el algoritmo encontramos tres tipos

de operaciones: la or-exclusiva ⊕, la suma módulo 216 y el producto módulo

216 + 1 (este valor, 216 + 1 es un número primo, por lo cual podemos calcular

inversos dentro del cuerpo finito correspondiente).

Sea m un bloque de 64 bits que queremos cifrar; éste se dividirá en 4 sub-

bloques de 16 bits: m1, m2, m3, m4, que serán la entrada al algoritmo de cifra-

do. El algoritmo consta de ocho pasos con las mismas características. En cada

paso, intervienen los cuatro sub-bloques de texto y seis sub-claves, también

de 16 bits, de forma que en cada paso los bloques segundo y tercero se inter-

cambian. Para acabar, hay un noveno paso, en el cual intervienen los cuatro

sub-bloques de texto y solo cuatro sub-claves.

La clave de 128 bits se subdivide en ocho sub-bloques de 16 bits cada uno,

los cuales constituyen las primeras ocho sub-claves utilizadas por el algorit-

mo: seis de estas en el primer paso y las dos restantes son las dos primeras del

segundo paso. Para poder continuar, se le aplica a la clave inicial una rota-

ción de 25 bits a la izquierda y la nueva clave resultante se subdivide en ocho

sub-bloques de 16 bits. Ahora el algoritmo utilizará las dos sub-claves anterio-

res seguidas de las cuatro primeras sub-claves provenientes de la subdivisión

actual. Las cuatro restantes se utilizarán en el tercer paso, y así sucesivamente

El diagrama de bloques del criptosistema IDEA se muestra en la figura si-

guiente.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 53: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 13 Elementos de criptografía

mi = sub-bloque texto original

kij= subclave j-ésima del paso i

ci= sub-bloque texto cifrado

m1 m2 m3 m4

k11 k12 k13 k14

k15

k16

k91 k92 k93 k94

7 pasosmás

c1 c2c3 c4

Sumador módulo 216

Multiplicador módulo 216 + 1

XOR= sumador bit a bit, módulo 2

+ +

+

+

+ +

+

1.3. Criptosistema AES

Enlace de interés

Se puede encontrar un

aplicativo de simulación del

AES, de uso libre,

denominado AES Inspectoren la dirección:

www.formaestudio.como

/rijndaelinspector.

Durante el periodo que el DES estuvo en vigor (1977-2001) se propusieron

decenas de cifrados alternativos, muchos de ellos de dominio público. La NSA

(National Security Agency) también dio a conocer en 1994 un nuevo cifrado

para ser usado en telefonía y comercio electrónico: Skipjack.

El Skipjack es un algoritmo de cifrado en bloques de 64 bits, fue declarado

secreto, y los chips que se han implementado impiden acceder a su código

fuente. Quizás proceda así la agencia NSA porque no desea que uno de sus

criptosistemas circule abiertamente por todo el mundo, o para poder escuchar

conversaciones telefónicas cifradas, o ambas cosas.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 54: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 14 Elementos de criptografía

En enero de 1997, el NIST (National Institute of Standards and Technology),

viendo que la seguridad del DES estaba ya comprometida (por motivos es-

trictamente computacionales, porque el DES nunca ha sido roto), convocó a

concurso público la adjudicación del nuevo estándar de cifrado. Se denomi-

naría AES, acrónimo de Advanced Encryption Standard. En la convocatoria

se especificaba una serie de requisitos mínimos: un cifrado en bloque de 128

bits; con claves de 128, 192 y 256 bits; la posibilidad de ser implementado

tanto en hardware como en software y estar disponible gratuitamente. Pero lo

más destacado de la convocatoria era que el concurso estaba abierto a todo el

mundo y que el proceso de selección iba a ser totalmente transparente.

Con esta idea se inició una etapa larga de selección que culminó, el año 2000,

en la elección del criptosistema Rijndael de los investigadores belgas Vincent

Rijmen y Joan Daemen.

Desde este momento, DES ya tiene sustituto: AES. Naturalmente, la decisión

del NIST de adoptar el nuevo criptosistema solo obliga a la administración

federal americana, y en lo concerniente a la información no clasificada; pero

con toda seguridad, AES va a ser el cifrado más usado en los próximos años.

La recomendación del cifrado por parte del NIST es todo un certificado de

garantía para empresas y organizaciones. Prueba de ello es que la misma NSA

ha aprobado el uso de AES para cifrar información clasificada: la secreta con

claves de 128 bits y la de alto secreto con claves de 192 y 256 bits.

Criptoanálisis

El disponer de un estándar decifrado de uso generalizadotiene un gran inconveniente:que todo el mundo quiereromperlo. Al exigir claves conuna longitud mínima de 128bits, el NIST dotaba a sucifrado de una seguridad másque suficiente contra unataque de fuerza bruta; elúnico método que venció alanterior estándar, el DES.Descubrir una clave de 128bits comprobando una a unatodas las posibles es unatarea prácticamente eternapara cualquier ordenador dehoy en día. Incluso paratodos ellos trabajando juntos.Y 256 bits son garantía desobra contra todos losordenadores electrónicos quese construyan en las próximasdécadas. Será necesario algomás que fuerza bruta paraderrotar al AES. Durante elconcurso, el vencedorRijndael (igual que el resto delos finalistas) probó serinmune a todos los métodosde criptoanálisis conocidoshasta aquel momento.

El proceso de cifrado de cada bloque de 128 bits de texto original consta de

tres transformaciones, o capas distintas donde se tratan los bits, que cons-

tan de:

• Capa de Mezcla Lineal: difusión de los bits: ShiftRow y MixColumns.

• Capa No Lineal: ByteSub (similar a las S-boxes del DES).

• Capa de Adición de Clave: operaciones con la función or-exclusiva entre

el estado intermedio y la sub-clave de cada ronda.

Las operaciones implicadas en AES se expresan en términos algebraicos em-

pleando cierta aritmética de bytes. En esta aritmética, la suma y el producto

de bytes son justamente la suma y el producto en el cuerpo finito F28 , cons-

truido a partir del polinomio primitivo: p(X) = X8 + X4 + X3 + X + 1.

1.4. Modos de operación de los criptosistemas de clave privada

Por aumentar la seguridad del algoritmo de cifrado y el de descifrado se utili-

zan de diferentes modos:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 55: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 15 Elementos de criptografía

• Cifrado en bloque: donde el texto original se procesa en bloques disjun-

tos de 64 bits, los bloques de salida de los cuales, también de 64 bits, se

concatenan para formar el texto cifrado. Este modo suele llamarse ECB

(Electronic Code-Book). Esta manera de cifrar/descifrar impide, por un lado,

la supresión y/o inserción de bloques de texto cifrado, porque en cualquier

caso el receptor sería incapaz de descifrar el criptograma recibido y, por lo

tanto, quedaría alertado de las posibles intrusiones. Por otro lado, los ata-

ques estadísticos también se complican, debido a la interdependencia del

texto cifrado a lo largo de todo el proceso. Una alternativa es el denomi-

nado cifrado en bloques encadenados, consistente en dividir el texto que

hay que cifrar en bloques y hacer depender el bloque n-ésimo de texto ci-

frado/descifrado del bloque (n – 1)-ésimo. Es decir:

cn = Ek(mn ⊕ cn–1)

mn = Dk(cn)⊕ cn–1

El primer bloque de entrada al proceso de cifrado está formado por la or

exclusiva entre el primer bloque del mensaje y los 64 bits del vector inicial

c0 = VI, el cual es compartido por los algoritmos de cifrado y de descifrado.

Este modo suele denotarse CBC (Cipher Block Chaining).

• Cifrado en flujo: operando sobre uno o más bits, desplazando previamente

un conjunto de bits de la operación anterior en número suficiente para

guardar los nuevos (stream cipher).

Secreto perfecto deShannon

El hecho de que los registrosde desplazamiento quegeneran la secuencia binariak1,k2...kn tengan un periodofinito está en contraposicióncon los requerimiento delsecreto perfecto de Shannon,porque, si el texto a cifrar esmuy largo, se repetirá la clavede forma determinista.

Dentro de este modo de cifrado, se considera el modo CFB Cipher Feedback,

que consiste en una or-exclusiva entre los n bits más a la izquierda de la

información de salida del proceso de cifrado y los n bits de la información

de entrada produciendo n bits de texto cifrado (n es el número bits a cifrar).

El criptograma se obtiene a partir de un valor inicial VI y del criptograma

anterior. Para cargar estos n bits en el dispositivo de cifrado, desplazaremos

el contenido del valor inicial VI n bits a la izquierda.

Esta modalidad permite el tratamiento de bloques de menos de 64 bits.

Normalmente se utiliza para la seguridad de mensajes muy repetitivos y

para cifrar/descifrar ficheros donde no conviene almacenar información

inútil.

Existen otros métodos, implementados con registros de desplazamiento;

LFSR (Linear Feedback Shift Register), en los cuales la clave k se usa para con-

trolar un generador de claves variables (running key genarator), que produce

una secuencia binaria k1,k2...kn (n debe ser mucho más grande que la lon-

gitud de la clave). Así, los dígitos del texto cifrado se forman a partir del

texto original, en binario:

ci = mi ⊕ ki

Evidentemente, el descifrado se hará de forma simétrica: mi = ci ⊕ ki

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 56: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 16 Elementos de criptografía

2. Criptosistemas de clave pública.

En el año 1976 entra en juego el nuevo concepto de criptosistema propuesto

por Diffie y Hellman, con dos claves, una de las cuales puede ser revelada

públicamente sin peligro de que se pueda deducir la otra.

Separabilidadescritura/lectura

Este tipo de criptosistemasson muy indicados para laprotección de ficherospúblicos, puesto que elhecho de poder escribirinformación sobre el ficherono implica poderla leer yviceversa, porque las clavesde escritura y lectura sonindependientes, pese a queestán relacionadas.

En un criptosistema con claves públicas cada usuario tiene un algoritmo de

cifrado Ek, registrado en un directorio público, y un algoritmo de descifrado

Dk que solo conoce el usuario. Mientras Dk se define en función de la clave

privada, Ek se define mediante un algoritmo o función que no permita, desde

el punto de vista computacional, la revelación de Dk. Estos tipos de algoritmos

o funciones reciben el nombre de unidireccionales.

En este caso, dos algoritmos diferentes proporcionan el secreto y la autentici-

dad. Por ejemplo, si el usuario A quiere transmitir el mensaje m al usuario B,

ambos conectados al mismo directorio público, solo debe buscar el algoritmo

de cifrado EkBde B en el directorio público y transmitir el mensaje cifrado c =

EkB(m). Cuando el usuario B recibe c tiene que aplicar DkB

, que solo él conoce,

y encuentra el mensaje original DkB(c) = m, (ya que DkB

(c) = DkB(EkB

(m)) = m).

Con la utilización de la criptografía de clave pública queda asegurado el se-

creto, pero no queda protegida la autenticidad, puesto que todos los usuarios

pueden conocer EkB. Firma digital

En general, se envía la firmapor una parte y el mensaje,cifrado o no, por otra parte;según la necesidad deprivacidad del mensaje. Así, siA quiere enviar un mensajefirmado a B, enviará m, oEkB

(m) y la firmacorrespondiente:s = DkA

(h(m)). Entonces, Brecupera m con su claveprivada que compara con elresultado de aplicar el cifradocon la clave pública de A a s.Si ambos resultadoscoinciden se acepta laautenticación y de locontrario se rechaza. Incluso,como veremos más adelante,lo que se enviará es elmensaje m, cifrado o no, y lafirma de un resumen delmensaje: h(m) (función dehash). En tal caso la firmaserá: s = DkA

h(m) (ver elalgoritmo de firma DSA).

Para conseguir la autenticidad tendremos que exigir a las transformaciones

Ek y Dk, de cada usuario, que verifiquen que Ek sea la transformación inversa

de Dk; es decir, que para todo mensaje m y para todo usuario con clave k,

tengamos: Ek(Dk(m)) = m,

En este caso el usuario A podrá firmar sus mensajes mediante su transforma-

ción secreta DkA. En efecto, si A quiere enviar el mensaje m a B, autenticando

su procedencia, podrá firmar digitalmente este mensaje haciendo s = DkA(m),

donde s será la firma y DkAla transformación de descifrado del usuario A; que

solo él conoce y, por lo tanto, solo él podrá hacer esta operación.

Ahora, una vez firmado el mensaje, A enviará el mensaje cifrado c=EkB(s).

Cuando B reciba c; puede encontrar s, puesto que s = DkB(c), que será inin-

teligible para él. Ya que ha sido prevenido por A que le enviaba un mensaje,

para descifrar el contenido de s, solo debe buscar en el directorio público el

algoritmo EkAde A. Y en efecto, EkA

(s) = m era el mensaje que pretendía trans-

mitirle A.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 57: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 17 Elementos de criptografía

2.1. Funciones unidireccionales

La idea fundamental de Diffie y Hellman para la definición de criptosistema

con clave pública se basa en la existencia de las funciones unidireccionales

(One way functions).

.

Definición 2.1 (Función unidireccional).

Una función f sobre un dominio U se llama unidireccional si ∀x ∈ U,

f (x) es fácilmente calculable, mientras que para casi todo y ∈ f (U), no

es computacionalmente factible encontrar x ∈ U, tal que f (x) = y.

Observar que la definición no es muy precisa: los términos fácilmente calcula-

ble, para casi todo y computacionalmente factible son muy imprecisos, aunque se

pueden definir matemáticamente para que tengan un sentido perfectamente

preciso.

.

Definición 2.2 (Función unidireccional con trampilla).

Una familia de funciones invertibles fk con dominio Uk, con índice k,

se llama función unidireccional con trampilla si, dado k, se pueden en-

contrar algoritmos Ek y Dk que calculen fácilmente fk(x) y f –1k (y) ∀x ∈ Uk

y ∀y ∈ f (Uk); y, sin embargo, para casi todo k y ∀y ∈ f (Uk), no es compu-

tacionalmente eficiente encontrar f –1k (y), con el único conocimiento

de Ek.

Una de las primeras candidatas a función unidireccional fue la del logaritmo

discreto, propuesta por los mismos Diffie y Hellman. En efecto, dados un nú-

mero primo grande, p, y α un elemento primitivo del cuerpo Fp, la función

exponencial discreta: f (x) = αx (mod p), donde 1 < x < p es computacional-

mente eficiente calcularla.

Algoritmo de multiplicary elevar

Para valores de x grandes,podemos usar el métodobinario de exponenciación(D. E. Knuth (1981). The Art

of Computer Programming.

vol. 2 Semi-Numerical

Algorithms. Addisson Wesley).Por ejemplo (véase elalgoritmo 3.2 del módulo“Cuerpos finitos” de estaasignatura), para calcular α25

se puede realizar de estaforma: α25 = α16+8+1 =

(((α2)2)2)2 · ((α2)2)2 · α.

En cambio, la inversa de la exponencial discreta; el logaritmo discreto x =

logα(y) no es computacionalmente eficiente calcularlo si p–1 tiene un factor

primo grande.

2.2. Criptosistema RSA

A partir del concepto de función unidireccional, Diffie y Hellman definen la

estructura de un criptosistema de clave pública. Sin embargo, no proporcio-

nan ninguna implementación concreta de tal estructura, excepto para el caso

del protocolo de distribución de claves privadas que veremos más adelante.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 58: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 18 Elementos de criptografía

R. L. Rivest, A. Shamir y L. Adleman, del MIT, en su artículo “A Method for

Obtaining Digital Signatures and Public-Key Cryptosystems”, Comm. of ACM

21(2); 120-126, February 1978, presentaron un criptosistema de clave pública

que cumplía todas las condiciones enumeradas anteriormente (el criptosiste-

ma RSA), basado en el teorema de Euler y en la dificultad de factorizar un valor

n = p · q, donde p y q son primos.

Cálculo de ϕ(n)

Para valores grandes de p y q,no es computacionalmenteeficiente el cálculo de ϕ(n),para quien no conoce losvalores de p y q.

Teorema de Euler

El teorema de Euler aseguraque la función f –1

kes la

inversa de fk, es decir:f –1k

(fk(x)) = x (mod n), si xes relativamente primo con n.

La función unidireccional del RSA es la exponencial discreta: fk(x) = xe (mod n);

donde 0 < x < n = p · q y donde k = (e,n); p y q son dos números primos muy

grandes y e cumple 0 < e < ϕ(n) y mcd(e,ϕ(n)) = 1. El algoritmo Ek para calcular

fk(x) es relativamente fácil; es la exponenciación por el método de multipli-

car y elevar mencionado anteriormente. Hacer público este algoritmo requiere

divulgar n y e.

Trampilla

Dado ϕ(n) es fácil generar elpar de números e y d quesatisfacen la condición deinversos (mod ϕ(n)),cuando e o d sonrelativamente primos conϕ(n). Es decir, dado e, es fácilcalcular d (o viceversa) siconocemos ϕ(n). Sinembargo, si e y n sonconocidos, sin revelar ϕ(n),no es computacionalmenteeficiente calcular d.

La función inversa es:

f –1k (y) = yd (mod n)

donde d es el único 0 < d < n tal que e · d = 1 (mod ϕ(n)). El algoritmo f –1k es

fácil de calcular para quien conoce la clave (d,n). Pero solo conocerá d, quien

conozca ϕ(n), difícilmente calculable para quien no conoce la factorización de

n en p y q (esta es la trampilla de la función unidireccional utilizada).

2.2.1. Descripción del criptosistema

El criptosistema RSA consiste en asociar a cada carácter del alfabeto, en qué

están escritos los mensajes originales, un valor numérico y entonces cifrar el

mensaje por bloques de la misma longitud y con un valor numérico compren-

dido en un cierto rango.

Supongamos m ∈ [2,n – 1] correspondiente a un cierto bloque a cifrar. El algo-

ritmo de cifrado se reduce al cálculo de una exponencial donde la clave es el

par de números (e,n):

c = E(e,n)(m) = me (mod n)

La algoritmo de descifrado, para poder obtener m a partir de c, consiste

también en una exponenciación, donde la clave es ahora otro par de núme-

ros (d,n):

m = D(d,n)(c) = cd (mod n)

La manera de obtener un buen esquema de cifrado y descifrado recae en la po-

sibilidad de obtener ϕ(n). Rivest, Shamir y Adleman sugieren este tratamiento:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 59: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 19 Elementos de criptografía

1) Encontrar el valor n = p · q, donde p y q son dos números primos grandes

(en los inicios del RSA ya se sugerían de un centenar de dígitos cada uno).

2) Conociendo p y q, calcular: ϕ(n) = (p – 1) · (q – 1).

3) Tomar e relativamente primo con ϕ(n).

4) Calcular d = e–1 (mod ϕ(n)).

Veamos un ejemplo aunque los valores empleados no son los que se podrían

usar en la realidad.

* Por ejemplo, usando el

algoritmo de Euclides

extendido, según el

algoritmo 1.4 del módulo

“Cuerpos finitos”.

Ejemplo 2.1. Supongamos p = 13 y q = 17. Entonces n = 13 · 17 = 221 y ϕ(n) = 12 · 16 =

192. Escogiendo e = 11 ((e, ϕ(n))=(11, 192)=1), calculamos el valor de d, tal que d · e = 1

(mod ϕ(n)) y encontramos d = 35.* La clave pública será (11,221) y la clave privada será

(35,221).

Entonces el cifrado será: c = E(11,221)(m) = m11 (mod 221) y el descifrado: m =

D(35,221)(c) = c35 (mod 221).

Si suponemos que el conjunto de mensajes originales es M = {A,B,...,Y,Z} y la correspon-

diente asignación numérica es Mn = {2,3,...,26,27}, y queremos cifrar el mensaje m = EDIo, numéricamente, 060510, haremos sucesivamente:

• 611 (mod 221) = 141

• 511 (mod 221) = 164

• 1011 (mod 221) = 173

y nos dará el criptograma c = 141164173.

Para el descifrado iremos cogiendo sucesivamente bloques de tres dígitos y haremos:

• 14135 (mod 221) = 6

• 16435 (mod 221) = 5

• 17335 (mod 221) = 10

que nos dará el mensaje original m = 060510 o, en caracteres: m = EDI.

2.2.2. Firma digital, basada en el RSA

Los algoritmos de cifrado y descifrado del algoritmo RSA son conmutativos; es

decir: Dk(Ek(m) = Ek(Dk(m)), y por lo tanto, el esquema RSA puede ser utilizado

para ambos objetivos de privacidad y autenticidad. En base a esta conmutati-

vidad se puede utilizar el RSA para construir firmas digitales.

En este caso, si suponemos dos usuarios A y B, con claves públicas (eA,nA) y

(eB,nB) y claves privadas (dA,nA) y (dB,nB), respectivamente, podremos arbitrar

un sistema de firma digital como se ha mencionado anteriormente.

Si el usuario A quiere enviar el mensaje m, firmado digitalmente, al usuario B,

procederá de la forma siguiente:

Firma digital, basada enel RSA

En general, dado que losvalores de m serán muygrandes, se firmará unresumen de m y la firma será:s = D(dA,nA)(h(m)), dondeh(m) es la función resumen(hash) de m.En este caso, en lugar deproceder cómo indica elsegundo paso del cifrado, elmensaje m se enviará aparte,cifrado o no.La función resumen deberáser conocida, también por elusuario B, para poderproceder a hacer laverificación del segundo pasodel descifrado.

Por parte del usuario A:

1) Firmar m con su clave privada: s = D(dA,nA)(m)

2) Cifrar la firma con la clave pública de B: c = E(eB,nB)(s)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 60: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 20 Elementos de criptografía

Por parte de B, una vez recibido el criptograma c:

1) Descifrar el criptograma c con su clave privada: D(dB,nB)(c) = s

2) Verificar, a partir de la firma s, si el criptograma c ha sido enviado realmente

por A: E(eA,nA)(s) = m

Ejemplo 2.2.

Usuario A:

Sean p = 29 y q = 7 los valores escogidos por A. Entonces nA = 29 · 7 = 203 y ϕ(nA) =

28 · 6 = 168.

Supongamos que A escoge: (eA = 19,nA = 203) como clave pública, entonces (dA =

115,nA = 203) será su clave privada.

Usuario B:

Sean p = 13 y q = 17 los valores escogido por B. Entonces nB = 13 · 17 = 221 y ϕ(nB) =

12 · 16 = 192.

Supongamos que B escoge: (eB = 11,nB = 221) como clave pública, entonces (dB = 35,nB =

221) será su clave privada.

Si suponemos que el conjunto de mensajes originales es M = {A,B,...,Y,Z} y la corres-

pondiente asignación numérica es Mn = {2,3,...,26,27}, y queremos firmar digitalmente

el texto original EDI o, numéricamente, 060510, haremos sucesivamente:

• 6115 (mod 203) = 13

• 5115 (mod 203) = 96

• 10115 (mod 203) = 101

y nos dará la firma s = 013096101.

Para el cifrado, iremos cogiendo sucesivamente bloques de tres dígitos de la firma s y

haremos:

• 01311 (mod 221) = 208

• 09611 (mod 221) = 216

• 10111 (mod 221) = 186

que nos dará el criptograma c = 208216186.

Cuando el usuario B ha recibido c, lo divide en bloques de tres dígitos y los descifra con

su clave privada:

• 20835 (mod 221) = 013

• 21635 (mod 221) = 096

• 18635 (mod 221) = 101

el mensaje s que recupera es ininteligible (13 equivale al carácter L, 96 y 101 no tienen

equivalencia dentro del conjunto de mensajes originales). Ahora, el usuario B debe com-

probar que 013096101 es la firma digital del usuario A, para esto debe cifrar el resultado

obtenido de la anterior operación con la clave pública de A.

• 01319 (mod 203) = 6

• 09619 (mod 203) = 5

• 10119 (mod 203) = 10

que nos dará el texto original 060510 o, en caracteres, EDI.

Nota

El usuario B acepta EDI comoel mensaje que le ha enviadoA, sencillamente porque paraél es inteligible; pero esto enmuchos casos no seríasuficiente. Tal y comoveremos, en otros casos, laestrategia de firma serádiferente.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 61: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 21 Elementos de criptografía

2.3. Criptosistema ElGamal

Ver también

El algoritmo DSA se estudiaen el subapartado 2.4 de estemódulo.

El criptosistema de clave pública ElGamal se basa en la función unidireccional

exponencial discreta. Este criptosistema ha servido de base para la definición

de un algoritmo de firma alternativo al RSA, el DSA.

2.3.1. Descripción del criptosistema ElGamal

Si fijamos un cuerpo finito Fp y un elemento primitivo α, supondremos que el

mensaje que queremos cifrar se corresponde con un elemento m ∈ Fp. A partir

de aquí, cada usuario U escoge al azar un entero rU ∈ [2,p – 1] que será su clave

privada. Su clave pública será yU = αrU (mod p) ∈ Fp.

Entonces, si un usuario A quiere transmitir al usuario B el criptograma corres-

pondiente al mensaje original m ∈ Fp, deberá hacer las siguientes operaciones

dentro de Fp:

Fortaleza

Cualquier enemigo quequiera calcular KrB , a partirdel conocimiento de K y yB,pero sin conocer rB, deberácalcular previamente ellogaritmo discreto logα(yB).En la dificultad de estecálculo se basa la fortalezadel criptosistema ElGamal.

.

Algoritmo 2.3 (Algoritmo ElGamal):

1) Escoger al azar un entero k y calcular K = αk (mod p)

2) Cifrar m como: c = EyB(m) = m · (yB)k (mod p)

3) Transmitir el par de números (K,c)

Entonces, el usuario B podrá recuperar m a partir del par de números recibidos,

haciendo las siguientes operaciones dentro de Fp:

1) Calcular β = KrB (mod p)

2) Calcular c/β (mod p) = mNota

El resultado de esta operaciónha de ser, efectivamente,igual a m, ya que KrB

(mod p) = (αrB )k

(mod p) = (yB)k (mod p).

A continuación veremos un ejemplo de utilización del algoritmo, para poder

seguirlo mejor, aunque los valores del ejemplo son pequeños comparados con

los que se tendrían que usar en la realidad.

* Tal como se ha visto en el

módulo “Cuerpos finitos”.

Ejemplo 2.3.

Supongamos el cuerpo finito F23 y sea α = 5 el elemento primitivo elegido*. Si rA = 13,

la clave pública del usuario A será yA = 513 (mod 23) = 21. Si rB = 17, la clave pública del

usuario B será yB = 517 (mod 23) = 15.

Si el usuario A quiere transmitir al usuario B el mensaje m = 18 efectuará los siguientes

cálculos:

1) Tomará al azar un entero, por ejemplo k = 7, y calculará K = 57 (mod 23) = 17

2) Cifrará m = 18, sabiendo que yB = 15, como: c = E15(18) = 18 · 157 (mod 23) = 14.

3) Transmitirá el par de números (17,14).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 62: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 22 Elementos de criptografía

Entonces el usuario B podrá recuperar m a partir del par de números recibidos, (K,c),

haciendo las siguientes operaciones dentro de F23:

1) Calculará β = 1717 (mod 23) = 11

2) Calculará c/β = 14/11 (mod 23) = 18; (11–1 (mod 23) = 21).

Este resultado coincide con el valor del mensaje original, m = 18.

2.3.2. Firma digital, basada en el ElGamal

El criptosistema ElGamal no cumple la condición de conmutatividad que he-

mos visto en el subapartado de firma digital basada en el RSA. O sea, no se

cumple Ek(Dk(m)) = m. Sin embargo, se puede adaptar el sistema para la au-

tenticación mediante otro tipo de firma digital.

Supongamos que el mensaje a firmar por un usuario A, para ser trasmitido a

un usuario B, sea m ∈ Fp. Para la firma, el usuario A debe realizar las siguientes

operaciones en Fp:

1) Elegir un entero k tal que mcd(k,p – 1) = 1 y calcular K = αk (mod p).

Firma ElGamal

Se puede calcular, de formadirecta, haciendos = (m – rA · K) · k–1

(mod q – 1).

2) Encontrar un entero s tal que: m = rA ·K + k · s (mod p – 1), donde rA y k son

valores que solo conoce el usuario A; por lo tanto solo él será capaz de calcular

la firma s.

3) La firma digital es el par de números (K,s). Entonces transmitirá (K,s,m),

aunque, opcionalmente, quizá pueda querer también cifrar el mensaje m, c =

EyB(m), y enviar (K,s,c).

Para la validación de la firma del mensaje m, el usuario B debe comprobar que

se cumple la siguiente igualdad:

αm = (yA)K · Ks (mod p)

donde yA es la clave pública del usuario A y, por lo tanto, disponible por el

usuario B.

Verificación

Efectivamente: (yA)K = (αK)rA

Ks = (αk)s = α(m–rA·K) =

αm · (αK)–rA

El producto de ambasigualdades resulta ser, αm.

En caso de que la igualdad se cumpla, el usuario B aceptará como auténtico el

mensaje m que le ha enviado el usuario A. De lo contrario, el mensaje m no

será validado.

Ejemplo 2.4. Suponemos que continuamos con las mismas hipótesis del ejemplo an-

terior: F23, α = 5, rA = 13 y rB = 17 La clave pública del usuario A es yA = 21 y la clave

pública del usuario B es yB = 15.

Si A quiere transmitir el mensaje m = 18 al usuario B de forma secreta y autenticada, hará

los siguientes cálculos:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 63: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 23 Elementos de criptografía

1) Escogerá al azar un entero, por ejemplo k = 7 (mcd(7,22) = 1), y calculará K = 57

(mod 23) = 17.

2) Calculará s tal que m = rA · K + k · s (mod 22). Es decir:

s = (m – rA ·K) · k–1 (mod 22) = (18 – 13 ·17) ·7–1 (mod 22) = 15; (7–1 (mod 22) = 19).

3) Para transmitir el mensaje cifrado (en el ejemplo anterior c = 14) y firmado, el usuario

A envía: (K,s,c) = (17,15,14).

Entonces, el usuario B puede validar la transmisión a partir de m (en el ejemplo anterior,

a partir de c, había reencontrado m = 18) y el par de números (K,s).

Efectuando el cálculo (yA)K ·Ks (mod p) = 2117 ·1715 (mod 23) = 6, que coincide con αm

(mod p) = 518 (mod 23) = 6.

Por lo tanto, el usuario B daría por válida la firma s del mensaje m.

2.4. Algoritmo DSA como alternativa a la firma digital RSA

En 1991, el NIST (National Institute of Standards and Technology) hizo la

propuesta del algoritmo DSA (Digital Signature Algorithm) como un estándar

de firma digital DSS (Digital Signature Standard).

Este algoritmo DSA fue desarrollado por la NSA (National Security Agency), a

partir de la firma digital de ElGamal, pero con el propósito añadido de reducir

la longitud. Este algoritmo contiene los parámetros siguientes:

• p, un número primo de 2 · L bits, donde L es un múltiplo de 64 y está

comprendido entre 512 y 1024 bits.

• q, un factor primo de p – 1 de unos 160 bits. Sea n = (p – 1)/q

• α, tal que α = gn (mod p), donde g es un número menor que p – 1 y de

forma que α (mod p) > 1.

• x, un número cualquiera menor que q.

• y, tal que y = αx (mod p).

Función unidireccionalhash

Una función hash, h, vienedefinida por una serie deoperaciones que transformanun mensaje m, de longitudvariable, en una secuencia depocos bits, h(m), de longitudfija, como veremos en elpróximo subapartado.

• h(.), una función unidireccional hash.

Los números p, q y α son públicos para todos los usuarios de la red, mientras

que x es la clave privada e y es la clave pública.

Sea m el mensaje que A quiere enviar a B, firmado para que B pueda autenti-

carlo.

El usuario A, del cual se suponen conocidos los parámetros anteriores, excepto

x, deberá realizar las siguientes operaciones:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 64: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 24 Elementos de criptografía

1) Escoger un número aleatorio k, menor que q.

2) Generar dos valores r y s, tales que:

r =`

αk (mod p)) (mod q)

s = ((h(m) + x · r) · k–1) (mod q)

3) Enviar el mensaje m y su firma digital (r,s).

El usuario B, al recibir el mensaje m, y su firma digital correspondiente (r,s),

podrá hacer el siguiente proceso de autenticación:

1) Seleccionar, en el directorio público, los parámetros de A: p,q,α y h(.)

2) Calcular: w = s–1 (mod q)

u1 = (h(m) ·w) (mod q)

u2 = (r ·w) (mod q)

Verificación de firma

Por simplicidad, y sin perderrigor en la prueba,obviaremos los cálculosmodulares.v = αu1 · yu2 = (αh(m)·s–1

) ·(αx)r·s–1

= α(h(m)+x·r)·s–1,

y según la definición de s,este resultado es,efectivamente, αk = r.

3) Calcular: v = ((αu1 · yu2 ) (mod p)) (mod q)

4) Autenticar: Si v = r entonces la firma digital (r,s) de A, es aceptada por B.

El siguiente diagrama representa el proceso de esta firma digital:

mSHA h(m) DSA

x k

Signatura p,q,g

Ficheropúblico

Verificación

Signaturarechazada

Signaturaaceptada

No

v v = r

SHAp,q,g

DSA

rs

h(m)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 65: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 25 Elementos de criptografía

Función hash ficticia

Por simplicidad, en elejemplo hemos escogidocomo función hash, ficticia, elproducto de los valoresnuméricos de los caracteresimpares (mod 29). Estapropuesta no tiene nada quever con una función de hash

real, como las quedetallaremos en el próximoapartado.

Ejemplo 2.5.

Suponemos que el conjunto de mensajes originales es M = {A,B,...,Y,Z} y la correspon-

diente asignación numérica Mn = {2,3,...,26,27}. Si el usuario A quiere firmar digitalmen-

te el texto original EDI o, numéricamente, 060510, teniendo en cuenta los parámetros

del criptosistema, hará las siguientes operaciones:

Parámetros públicos:

p = 29,q = 7 (n = (p – 1)/q = 28/7 = 4)

α = 54 (mod 29)=16; (g = 5)

Clave privada: x = 3

Clave pública y = 163 (mod 29) = 7

Parámetro aleatorio secreto: k = 6

Entonces, el usuario A calcula (suponiendo la función ficticia de hash anterior):

h(m) = h(06,05,10) = 60 (mod 29) = 2

r = (166 (mod 29)) (mod 7) = 20 (mod 7) = 6

s = (2 + 3 · 6) · 1/6 (mod 7) = 6 · 1/6 (mod 7) = 1

Por lo tanto, DSA(EDI) = DSA(060510) = (6,1) y enviará al usuario B: (EDI,6,1).

El usuario B, a la recepción de esta tripla, realiza la verificación, tras seleccionar los pará-

metros p,q,g y h(.):

Calcula:

h(EDI) = 2, puesto que (h(06,05,10) = 6 · 10 (mod 29))

w = 1–1 (mod 7) = 1

u1 = 2 · 1 (mod 7) = 2

u2 = 6 · 1 (mod 7) = 6

Verifica que v = (162 · 76 (mod 29)) (mod 7) = 20 (mod 7) = 6(= r) y por lo tanto, valida

la firma.

Criticidad de la funciónde hash

Si suponemos que enviamosun texto diferente con lamisma firma (EDJ, 6, 1), elusuario B haría los siguientescálculos:h(EDJ) = 8;(h(06,05,11) = 6 · 11

(mod 29) = 8)w = 1–1 (mod 7) = 1

u1 = 8 · 1 (mod 7) = 1

u2 = 6 · 1 (mod 7) = 6

v = (161 · 76 (mod 29))

(mod 7) = 23

(mod 7) = 2(6= r = 6), con locual no se autenticaría lafirma.Sin embargo, hay queobservar que si el mensajefirmado hubiera sido BUS,como queh(BUS) = h(03,22,20) = 3 · 20

(mod 29) = 2, derivaría lamisma firma. Con lo cual, sepuede ver que la elección dela función de hash es críticarespecto a este algoritmo.

2.5. Funciones hash: MD5 y SHA-1

Enlace de interés

Se puede encontrar un

aplicativo de simulación de

las funciones hash MD5 y

SHA-1, de uso libre, en la

dirección:

www.criptored.upm.es.

El propósito de las funciones hash es el de proporcionar una huella, una im-

pronta, de pocos bits, de un fichero, mensaje o cualquier otro bloque de datos,

por grande que sea, el cual se quiere autenticar.

Una función hash, h, debe tener las siguientes propiedades:

1) Se debe poder aplicar la función h a un bloque de datos de cualquier lon-

gitud.

2) El resultado de la función h debe ser de longitud fija, de pocos bits.

3) Debe ser computacionalmente eficiente calcular h(m) para cualquier m,

tanto en implementaciones de hardware como de software.

4) Para un bloque determinado x, no debe ser computacionalmente eficiente

encontrar un mensaje m tal que h(m) = x.

5) Para un mensaje determinado m, no debe ser computacionalmente eficien-

te encontrar otro mensaje m′ 6= m tal que h(m) = h(m′).

6) No debe ser computacionalmente eficiente encontrar un par (m,m′) tal que

h(m) = h(m′).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 66: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 26 Elementos de criptografía

Utilidad de las propiedades

Las primeras tres propiedades son tres requisitos para llevar a la práctica las funciones

hash y la autenticación de mensajes.

La cuarta propiedad sirve para asegurar que no debe ser computacionalmente eficiente

encontrar la inversa de las funciones hash (funciones unidireccionales, one-way functions).

La quinta y sexta propiedad garantizan que no debe ser posible encontrar un mensaje

alternativo con la misma secuencia hash que el original.

A continuación, pasaremos a examinar los dos algoritmos que implementan

las funciones hash más utilizadas actualmente: el algoritmo message-digest,

MD5, y el algoritmo secure hash, SHA.

2.5.1. El algoritmo MD5

Eficiencia del MD5

Rivest muestra que, con elMD5, la dificultad deencontrar dos mensajes conla misma secuencia hash esdel orden de 264

operaciones, y, por otraparte, que la dificultad deencontrar un mensaje conuna secuencia hash

determinada es del orden de2128 operaciones.

El message-digest MD5 lo desarrolló Ron Rivest y consiste en un algoritmo

que tiene como entrada un mensaje de una longitud arbitraria y produce una

salida de 128 bits (el message digest).

El mensaje de entrada se procesa en bloques de 512 bits, siguiendo los pasos:

• Paso 1: Añadir bits de padding. Se insertan bits en el mensaje para que su

longitud final sea congruente con 448 (mod 512). Esta secuencia de bits

de padding consiste en un 1 seguido de la cantidad necesaria de 0’s.

Efecto del padding

Los bits de padding se añadensiempre, incluso si el mensajeya tiene la longitud deseada.Por ejemplo, si el mensajetiene 448 bits de longitud,entonces se añaden 512 bitsde padding para llegar a unalongitud de 960 bits. Estoquiere decir que añadimosuna cantidad de bits depadding que oscilará entre 1y 512.

• Paso 2: Añadir la longitud. Al resultado del paso anterior le añadimos la

representación en 64 bits de la longitud del mensaje antes de añadir los

bits de padding. Por lo tanto, este campo contiene la longitud del mensaje

original (mod 264). Tras los dos primeros pasos tenemos un mensaje con

una longitud en bits igual a un múltiplo de 512. El mensaje se divide en

bloques de 512 bits, denominados Y0,Y1 · · ·YL–1; por lo tanto, podemos

expresar la longitud del mensaje como L·512 bits, o también ver el mensaje

como un múltiplo de 16 palabras de 32 bits.

• Paso 3: Iniciar el buffer MD. Para guardar tanto los resultados intermedios

como el resultado final, se utiliza un buffer de 128 bits, el cual se representa

por cuatro palabras de 32 bits, A,B,C,D, que se inician con los siguientes

valores hexadecimales:

A = 01234567

B = 89ABCDEF

C = FEDCBA98

D = 76543210

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 67: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 27 Elementos de criptografía

• Paso 4: Procesamiento del mensaje en bloques de 512 bits (16 palabras

de 32 bits). La parte central del algoritmo es un módulo que tiene cuatro

etapas de funcionamiento.

Las cuatro etapas tienen una estructura similar, pero utilizan funciones

lógicas primitivas diferentes.

En la figura, se ha etiquetado cada etapa con fF, fG, fH , fY para indicar

que todas tienen la misma estructura, f , pero con una función primitiva

diferente: F,G,H,I.

Yq

512

512 512 512 512

512 512 512 512

MDq

3232 32

128128

MDq + 1

ABCD

ABCD

ABCD

ABCD

fF fG fF fI

T[1_16] T[17_32] T[33_48] T[49_64]

128

+

+

+

+

Cada etapa tiene como entrada el respectivo bloque de 512 bits (Yq) y el

valor del buffer A,B,C,D de 128 bits y actualiza el contenido del buffer. En

cada etapa también se utiliza una cuarta parte de los 64 elementos de una

tabla T[1..,64] que proporciona un conjunto seudo-aleatorio de secuencias

de 32 bits, que sirven para eliminar cualquier regularidad en los datos de

entrada. Por lo tanto, el proceso del bloque Yq consiste en coger como

entrada el mismo Yq y el resultado (message digest) intermedio correspon-

diente MDq para producir el MDq+1. Las sumas que se hacen al final de las

cuatro etapas son sumas (mod 232).

• Paso 5: Salida. Tras procesar los L bloques de 512 bits, la salida MDL–1 del

L-ésimo bloque de proceso es la secuencia hash de 128 bits.

2.5.2. El algoritmo SHA-1

El algoritmo SHA-1 fue desarrollado por el NIST y publicado como estándar

de procesamiento de información federal FIPS (federal information process stan-

dard, PUB 180) en el año 1993.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 68: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 28 Elementos de criptografía

El algoritmo tiene como entrada un mensaje de longitud menor que 264 bits

y produce una salida de 160 bits (el message digest). El mensaje de entrada se

procesa en bloques de 512 bits, siguiendo los pasos:

Comparación entre SHA yMD5

Los algoritmos MD5 y SHAson bastante similares, ya queambos derivan del mismoalgoritmo MD3.La diferencia más obvia, y lamás importante, es que lasecuencia resultante deaplicar el SHA es 32 bits máslarga que la del MD5.Entonces el SHA es unalgoritmo más fuerte, desdeel punto de vista delcriptoanálisis, que el MD5. Encambio, el SHA consta de 80pasos y el MD5 solo de 64,cosa que hace que el SHA seejecute del orden de un 25 %más lento. Debemos notarque los dos algoritmos tienenuna gran cantidad de sumasmódulo 232, por lo tantoambos funcionan muy bienen arquitecturas de 32 bits.

• Paso 1: Añadir bits de Padding y Paso 2: Añadir la longitud. Igual que

en el algoritmo MD5.

• Paso 3: Iniciar el buffer SHA. Para guardar tanto los resultados interme-

dios como el resultado final, se utiliza un buffer de 160 bits. Podemos re-

presentar el buffer como cinco palabras de 32 bits, A,B,C,D,E, que se inician

con los siguientes valores hexadecimales:

A = 67452301

B = EFCDAB89

C = 98BADCFE

D = 10325476

E = C3D2E1F0

SHA-2 y SHA-3

Actualmente, se utiliza lavariante SHA-2, desarrolladaen el 2005 a partir del laSHA-1, donde la salida puedeser de 224, 256, 384 o 512bits, para aumentar ladificultad de ser roto.Además, está en marcha unconcurso público paradiseñar el nuevo estándarSHA-3, que seguramente sehará público durante 2012.

• Paso 4: Procesamiento del mensaje en bloques de 512 bits (16 palabras

de 32 bits). La parte central del algoritmo es un módulo que tiene 80 etapas

de procesamiento. La lógica de este módulo es la siguiente:

Cada etapa tiene como entrada el actual bloque de 512 bits, Yq, y los 160

bits del buffer ABCDE y, como resultado, actualiza el contenido del buffer.

En cada etapa se hace uso de la suma por una constante Kt . De hecho, solo

se utilizan cuatro constantes diferentes. Los valores hexadecimales son los

siguientes:

0 ≤ t ≤ 19, entonces Kt = 5A827999

20 ≤ t ≤ 39, entonces Kt = 6ED9EBA1

40 ≤ t ≤ 59, entonces Kt = 8F1BBCDC

60 ≤ t ≤ 79, entonces Kt = CAN62C1D6

Es decir, el algoritmo SHA para procesar un bloque Yq de 512 bits, toma

como entrada el bloque Yq y el valor intermedio en aquel momento de la

secuencia hash SHAq que se toma del buffer ABCDE. Después, el resultado

de las 80 etapas se suma a SHAq, dando SHAq+1 que se coloca en el buffer

ABCDE. Esta última suma se hace con dos sumandos de 160 bits cada uno,

la operación se hace de forma independiente para cada una de las cinco

palabras de 32 bits que tiene cada sumando (suma módulo 232).

• Paso 5: Salida. Tras procesar los L bloques de 512 bits, la salida SHAL–1 del

L-ésimo bloque de proceso es la secuencia hash de 160 bits.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 69: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 29 Elementos de criptografía

Yq

512

512 512 512

32 32 32

SHAq

3232 32

160 160SHAq + 1

ABCDE

ABCDE

ABCDE

PASO0 PASO1 PASO79

K0 K1K79

160

+

+

+

+

+

...

2.6. Infraestructura de clave pública: PKI

En el ámbito de las comunicaciones abiertas es imprescindible garantizar la

identidad de los usuarios, además de los servicios de seguridad: confidenciali-

dad, integridad, autenticación y no repudio.

Para que estas operaciones se puedan realizar de forma fiable, se deben cumplir

dos condiciones:

Lectura recomendada

Para hacer más

comprensible este

subapartado es

recomendable el módulo 7

del libro de Criptografía de

J. Domingo, J. Herrera y H.

Rifà-Pous de los estudios de

Informática y Multimedia

de la UOC.

• Que la clave privada se guarde de forma segura y no se desvele a nadie.

Para conseguir esto, la clave privada se almacena en un soporte físico im-

posible de duplicar, como una tarjeta inteligente. Además, para acceder al

contenido de la tarjeta se necesita un número personal que solamente el

propietario legítimo conoce.

• Que se pueda determinar a qué persona pertenece una clave pública. De

esta forma se puede saber, por ejemplo, quién ha llevado a cabo la firma

electrónica de un documento.

Para dar cumplimiento a estas dos condiciones, se utiliza el certificado elec-

trónico, emitido por una autoridad de certificación (CA). El apoyo tecnológico

del certificado electrónico es la criptografía de clave pública. Así, puede ver-

se un certificado electrónico como un documento electrónico que asocia una

clave pública con su propietario.

Por esto, el certificado digital contendrá la clave pública junto con datos de

carácter personal del poseedor de la clave (nombre, DNI...). Normalmente con-

tiene más información (fechas de validez y otras), así como también se refiere

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 70: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 30 Elementos de criptografía

al ámbito de utilización del certificado, lo que se conoce como política de cer-

tificación. Por ejemplo, si es un certificado de uso personal o nos acredita para

actuar en una empresa.

Al realizar una firma electrónica se suele adjuntar el certificado electrónico del

firmante de forma que se puede extraer su clave pública para verificar la firma

y a la vez comprobar la identidad del firmante.

Una infraestructura de clave pública (PKI, public key infrastructure) es una es-

tructura de sistemas informáticos, procedimientos de operación, protocolos,

políticas de certificación, repositorios de información, estándares, declaracio-

nes de prácticas y recursos humanos, la finalidad de los cuales es ofrecer a los

usuarios una plataforma para la gestión de la identidad digital.

Una PKI dispone de los elementos y de la arquitectura necesarios para integrar

todos los procedimientos de solicitud de certificados, verificación de identida-

des, generación de claves, almacenamiento y publicación de certificados elec-

trónicos, renovación, revocación, etc.

Las infraestructuras de clave pública se fundamentan en la interacción de di-

versos subsistemas, de los cuales destacan los siguientes:

• Autoridad de certificación, CA. Una autoridad de certificación (CA: cer-

tificate authority), es una entidad de confianza, cuya finalidad es emitir,

renovar y revocar certificados electrónicos. Las autoridades de certificación

constituyen el núcleo de las infraestructuras de clave pública, que permiten

utilizar los certificados electrónicos con total seguridad.

Ejemplos de autoridad de certificación

En la actualidad, un usuario puede escoger entre múltiples CA para conseguir un

certificado electrónico, pero las más utilizadas son; a nivel internacional Verisign, a

nivel estatal FNMT y en el ámbito catalán CATCert.

* http://www.verisign.com

Verisign* es una de las empresas de mayor reputación internacional y prestigio en el

mundo de la certificación digital y la seguridad de la información. Aunque su aba-

nico de servicios es muy amplio (soluciones comerciales para comercio electrónico,

servidores seguros, tarjetas inteligentes, servidores de nombres de dominio, consul-

toría,...), el más conocido es el de CA para la expedición de certificados electrónicos,

ampliamente utilizados en Internet.

** http://www.fnmt.es

Fábrica Nacional de Moneda y Timbre (FNMT)**, es un organismo público na-

cional español que depende del Ministerio de Economía que tiene establecida una

arquitectura de certificación, CERES, para autenticar y garantizar la confidencialidad

de las comunicaciones entre ciudadanos, empresas u otras instituciones y adminis-

traciones públicas a través de redes abiertas de comunicación.

*** http://www.catcert.cat

CATCert*** es la Agencia Catalana de Certificación que emite y gestiona la idCAT que

es un certificado electrónico que garantiza la identidad de las personas en Internet y

permite operar con diferentes administraciones.

• Autoridades de registro, RA. Una autoridad de registro (RA, registration

authority) es una entidad encargada de llevar a cabo los procesos de veri-

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 71: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 31 Elementos de criptografía

ficación de identidad, solicitud y distribución de certificados electrónicos.

Normalmente, en una PKI, los usuarios finales no interactúan directamen-

te sobre la CA, sino que canalizan sus operaciones a través de una o va-

rias RA.

Sin embargo, estos subsistemas no pueden expedir certificados electrónicos

por sí mismos.

• Certificados electrónicos. Un certificado electrónico es un archivo o do-

cumento electrónico expedido y firmado por una CA en el cual se vincula

una identidad a una clave pública, ligado, a su vez, a la correspondiente

clave privada.

Para obtener un certificado electrónico, el usuario se dirige a una RA (auto-

ridad de registro); ésta verifica la identidad del usuario y pide a la CA que

expida el certificado.

• Directorio lightweight directory access protocol, LDAP. Su finalidad, den-

tro de una PKI, es la de mantener un registro de usuarios y actuar como

almacén para los certificados electrónicos y la lista de certificados revoca-

dos (CRL), que veremos más adelante. El protocolo LDAP es una versión

simplificada del protocolo X.500 que especifica tanto el modelo de infor-

mación como los mecanismos de acceso a la misma.

2.6.1. Sistemas gestores de certificados electrónicos:

la recomendación X.509

El auge de la certificación electrónica nace de la consolidación internacional

del protocolo estándar X.509. A partir de este momento, no solo aparecen en

el mercado multitud de aplicaciones que aprovechan los servicios de la iden-

tidad digital, sino también un gran número de paquetes de software que im-

plementan las funciones básicas de una PKI. Estos paquetes reciben el nombre

de sistemas gestores de certificados electrónicos.

Las soluciones de implementación para los sistemas gestores de certificados

electrónicos pueden clasificarse en tres categorías: Las integradas en el sistema

operativo, las libres (de código abierto) y las comerciales.

La recomendación X.509 de la ITU-T forma parte de la serie de recomenda-

ciones X.500, la finalidad de las cuales es definir un servicio de directorio. Por

directorio se entiende un servidor o conjunto distribuido de servidores que

gestionan una base de datos de información sobre usuarios. En la actualidad,

hablar de X.509 y certificados electrónicos es hablar del mismo concepto. Ac-

tualmente, este estándar de certificación electrónica se utiliza en protocolos de

Internet de uso tan extendido como SSL, SMIME (Secure Multipurpose Internet

Mail Extensiones) y IPSec (IP Security).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 72: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 32 Elementos de criptografía

2.6.2. Listas de certificados revocados: CRL

Una lista de certificados revocados (CRL, Certificate revocation list), es un docu-

mento electrónico expedido y firmado por una CA, en el cual se incluyen los

números de serie de todos aquellos certificados que, sin haber expirado, han

sido revocados por algún motivo.

Al recibir un certificado electrónico, el usuario debe consultar la CRL de la CA

que firma el certificado para verificar la validez del mismo. El protocolo OCSP

(online certificate status protocol) permite realizar consultas en tiempo real sobre

la base de datos de certificados revocados de una CA. Algunos navegadores

web ya incluyen apoyo para OCSP.

La validación de certificados en tiempo real es imprescindible para el desarro-

llo del comercio electrónico.

La recomendación X.509 define un formato estándar para las listas de certifi-

cados revocados, de forma análoga a la estructura sugerida para los certificados

electrónicos.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 73: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 33 Elementos de criptografía

3. Criptografía cuántica y post-cuántica.

De manera muy resumida podríamos decir que, hoy en día, la criptografía de

clave pública se utiliza para la distribución de claves privadas, para la firma

digital y otros protocolos de autenticación y, en cambio, la criptografía de cla-

ve privada se utiliza para conseguir la privacidad de los datos. Los algoritmos

de clave pública más utilizados son RSA, DSA y ECDSA (el algoritmo DSA uti-

lizando curvas elípticas). ¿Qué pasaría si en pocos años alguien anunciara la

construcción de un gran ordenador cuántico?

Algoritmo de Shor

En 1994, Shor descubrió unalgoritmo capaz de factorizarun número producto de dosprimos con una complejidadpolinomial sobre unhipotético ordenadorcuántico. La base delalgoritmo es unatransformada discreta deFourier que en un ordenadorcuántico, y de maneraprobabilística, da el resultado.Se han hecho pruebas realesde este algoritmo conprototipos de ordenadorcuántico y han funcionado.En el 2001, en IBM’s Almaden

Research Center, usando unprototipo de ordenadorcuántico que funcionaba conregistros de 7 qubits basadosen NMR (nuclear magnetic

resonance) se consiguófactorizar el número 15 = 3·5.

Dado que la criptografía de clave pública se basa en la factorización o en el

problema del logaritmo discreto o del logaritmo elíptico y que no existe el

algoritmo de Shor para los ordenadores clásicos, parece ser que con el adveni-

miento de la computación cuántica la seguridad basada en RSA, DSA y ECDSA

se verá comprometida. Aún así, no podemos decir que la criptografía está bajo

sospecha de desaparición con el advenimiento de la computación cuántica.

Hay todo un campo criptográfico post-cuántico que podrá resistir los grandes

ordenadores clásicos y a los ordenadores cuánticos.

Algunos de estos sistemas de cifrado que se cree que son, y serán, resistentes a

la computación clásica y cuántica son:

• Criptografía basada en funciones hash

• Criptografía basada en la teoría de códigos

• Criptografía basada en la combinatoria

• Criptografía de clave privada como AES. Hay un algoritmo que puede

simplificar los cálculos para romper el AES en un ordenador cuántico. Es el

algoritmo de Grove, pero no es tan dramático como el algoritmo de Shor.

En el caso de Grove se pasa de una complejidad O(n) en el caso clásico a

una complejidad O(√

n) en el caso cuántico.

Tanto el sistema RSA como el de McEliece (basado en la teoría de códigos, que

veremos más adelante) han sido propuestos el mismo año 1978. Los dos han

conseguido resistir durante más de 30 años el esfuerzo del criptoanálisis para

romperlos.

RSA se basa en la dificultad de la factorización. En el año 1978, el mejor algo-

ritmo conocido para factorizar tenía una complejidad exponencial del orden

O(exp(log(n)1/2 log log(n)1/2)).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 74: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 34 Elementos de criptografía

Con el tiempo, esta complejidad ha sido mejorada, básicamente utilizando

nuevos conceptos matemáticos y, actualmente, parece ser que ya no puede

conseguirse ninguna mejoría, manteniéndose una complejidad del orden

O(exp(log(n)1/3 log log(n)1/3)).

Complejidad

La complejidad del RSA sellama subexponecial y la delsistema Mc.Eliece se llamaexponencial.

La complejidad del sistema McEliece era del orden O(exp(n/(2· log(n)))), en

1978. Ha habido mejoras y parece ser que la mejor complejidad posible seguirá

siendo más o menos la misma, salvo que quizás en lugar del factor 2 habrá una

constante algo menor.

La pregunta, ahora, es obvia. ¿Por qué actualmente no usamos el sistema de

McEliece en lugar de RSA? La respuesta rápida es que el tamaño de la clave

hace que optemos por RSA en lugar de McEliece. Para el mismo nivel de se-

guridad, RSA utiliza claves de algunos miles de bits, mientras que en McEliece

habría que utilizar del orden del millón de bits.

Todavía falta tiempo para que la computación cuántica sea una realidad. En

el camino, podemos pensar en ordenadores clásicos cada vez más potentes

(no hace falta que sean potentes trabajando aislados, pero podemos pensar en

grandes sistemas de computación distribuida).

Algunos sistemas de cifrado, como el RSA, con cuatro mil bits de clave se cree

que serán resistentes a los ataques con grandes ordenadores clásicos, pero no

lo serán a los ataques con grandes computadoras cuánticas. Algunas alternati-

vas, como por ejemplo McEliece con una clave de cuatro millones de bits, se

cree que será capaz de resistir los ataques de los grandes ordenadores clásicos

y cuánticos.

Nos hemos centrado en la criptografía de clave pública, puesto que los orde-

nadores cuánticos parece que tienen muy poco efecto sobre la criptografía de

clave privada y la criptografía basada en funciones hash.

Ver también

El algoritmo de Bennet yBrassard se estudia en elsubapartado 3.1 de estemódulo.

Aunque los ordenadores cuánticos no son todavía una realidad, sí que hay

ciertos fenómenos físicos basados en la mecánica cuántica que pueden usarse

en criptografía. Un ejemplo claro es el sistema de distribución de claves basado

en el algoritmo de Bennet y Brassard. Aparte de este algoritmo criptográfico

basado en la mecánica cuántica, si ahora nos situásemos en la época en que

ya funcionen los ordenadores cuánticos tendríamos algunos planteamientos

que deberíamos empezar a estudiar:

• Eficiencia: El software de criptografía post-cuántica es más lento que el

software criptográfico de hoy en día.

• Confianza: A día de hoy, estamos utilizando sistemas criptográficos clási-

cos que han sobrevivido a muchos años de esfuerzos criptoanalíticos para

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 75: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 35 Elementos de criptografía

romperlos. Al considerar nuevos sistemas cuánticos, que son recientes y no

del todo probados, es necesario que también los criptoanalistas dispongan

de tiempo para buscar los ataques a estos sistemas y depurarlos.

• Usabilidad: Es importante desarrollar software y hardware adaptando las

implementaciones a los nuevos conceptos con mucho cuidado, para evitar

pérdidas de tiempo o efectos colaterales. Implementaciones de conceptos

como los de aleatoriedad o relleno (padding) se deben mejorar en las nue-

vas tecnologías y seguramente habrá sistemas híbridos, compartiendo las

nuevas tecnologías con las actuales que necesitarán estandarizaciones.

3.1. Criptografía cuántica

A diferencia de los sistemas criptográficos convencionales, ya sean de clave

pública o privada (que basan su seguridad en el hecho de mantener una cla-

ve de manera privada) los sistemas criptográficos cuánticos basan su fortaleza

en un fenómeno físico. En 1984, Bennet y Brassard diseñaron (a nivel teó-

rico) un protocolo criptográfico basado en un hecho de la física cuántica: la

imposibilidad de medir simultáneamente un par de observables (principio de

incertidumbre de Heisenberg, 1927).

La seguridad tradicional de un método de distribución de claves se ha basado

en problemas intratables debido a su complejidad computacional. El método

de Benet y Brassart se basa en un hecho físico inviolable.

Podemos imaginar una nube de fotones que vibran en todas las direcciones

perpendiculares a su línea de propagación. Si los hacemos pasar por un filtro

polarizado en vertical, los fotones que vibran verticalmente pasarán por el

filtro y, los otros, lo harán con una probabilidad cos2(ϕ), donde ϕ es el ángulo

que separa su dirección de vibración de la vertical. Sólo los fotones que vibran

horizontalmente (cos(ϕ) = 0) no pasarán por el filtro.

Protocolo de Ekert

En 1991 Artur Ekert presentóotro protocolo diferente al deBennet y Brasard. En estecaso, A y B reciben losfotones de una pareja“entrelazada”. En este caso,la seguridad se basa en elefectoEinstein-Podolsky-Rosen.

El protocolo que describimos aquí permite a dos usuarios A y B compartir una

clave secreta sobre un canal no seguro. Al final del protocolo, A y B tendrán

la seguridad que ningún enemigo criptoanalista ha interceptado su comuni-

cación y podrán usar la clave compartida para cifrar los siguientes mensajes

(normalmente con un sistema como el AES).

• A envía a B una secuencia de pulsos de fotones. Cada pulso está polarizado

aleatoriamente en una de las cuatro direcciones: vertical (↑), horizontal

(←), según la diagonal primaria (տ) y según la diagonal secundaria (ր).

• B utiliza, aleatoriamente, un detector polarizado para detectar polarizacio-

nes vertical-horizontal o polarizaciones en diagonal, pero no las dos al mis-

mo tiempo.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 76: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 36 Elementos de criptografía

Por ejemplo:

A envía a B: տ տ ↑ ↑ ← ր ← ր ↑ ←

B utiliza:N N L N L L L N L N

B obté: տ տ ↑ ր ← ↑ ← ր ↑ տ

Los pulsos 4, 6 y 10 también podían haber sidoտ,← yր, respectivamente.

• A y B se comunican a través de un canal no seguro para ver qué detectores

ha usado B que no haya usado A. Los dos, A y B se guardan solo los bits

que corresponden a los detectores correctos.

En nuestro caso, los dos usuarios están de acuerdo en que el bit 1 se re-

presentara por ← y տ, mientras que el bit 0 sería ↑ y ր. O sea que A y B

habrán generado, entre ellos, la secuencia:

1101100

Esta secuencia no es conocida por el espía que intenta interferir en la comu-

nicación entre A y B, puesto que la conversación (sobre un canal inseguro)

entre A y B solo decía qué detectores se habían usado correctamente. Y,

cada detector puede dar, indistintamente, ambos resultados 1 o 0.

Cualquier espía que intercepte los fotones que envía A los deberá re-enviar a

B y, básicamente, tiene dos grandes problemas:

• Cuando escucha la transmisión entre A y B, el espía solo puede deducir con

seguridad los bits que corresponden a detectores que él mismo está usando

y que, a la vez, coincidan con los detectores que están utilizando A y B.

• En una de cada cuatro veces, el detector que está usando el espía no coin-

cide ni con el de A ni con el de B (que, a su vez, coincide con el de A).

En estos casos, A y B están de acuerdo en el detector que han usado, pero

el bit que obtendrán uno y otro será distinto. Si A y B descubren (por un

canal que no hace falta que sea secreto) algunos de los bits obtenidos en el

protocolo podrán deducir la presencia del espía y abortar el proceso.

Hay algunos prototipos de este protocolo que están funcionando sobre fibra

óptica entre distancias del orden de los 200 km (Toshiba Research-2003).

Aun cuando la física cuántica nos asegura la validez del protocolo anterior,

desde los primeros intentos de construcción de prototipos que lo implemen-

tarán ha habido varios problemas que han aplazado su comercialización. No

es tan sencilla la construcción “segura” de todos los dispositivos implicados

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 77: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 37 Elementos de criptografía

en el protocolo. Los países asiáticos están al frente de la investigación en esta

área. Japón ha anunciado planes para tener satélites con comunicaciones de

tipo cuántico para el 2013 y China para el 2016.

3.2. Los códigos correctores de errores en la criptografía

post-cuántica

En este subapartado presentaremos dos sistemas criptográficos, basados en la

teoría de códigos correctores de errores. En particular nos centraremos en los

criptosistemas de McEliece y de Niederreiter, definidos a partir de códigos para

los cuales se conoce un sistema de descodificación computacionalmente efi-

ciente. En ambos casos, la función unidireccional utilizada para el cifrado se

basa en una transformación de la matriz generadora del código, en el caso de

McEliece, o de la matriz de control, en el caso de Niederreiter. Esta función

unidireccional hará que el criptoanalista deba trabajar con un código equi-

valente para el que el algoritmo de descodificación es computacionalmente

ineficiente.

Por comprender mejor estos dos criptosistemas, veamos unas nociones básicas

de códigos correctores de errores.

3.2.1. Nociones básicas de códigos correctores de errores

Los códigos detectores y correctores de errores tienen como objetivo principal

reducir la probabilidad de error en la descodificación, mediante la incorpora-

ción de redundancia en la transmisión.

Consideremos ahora el sistema de transmisión de información, representado

por el diagrama:

Emisor Codificador

Ruido

Decodificador Receptor

El principio general de la detección de errores es el siguiente: el codificador

añade, según una regla C, una cierta cantidad de información suplementaria

a la información útil, y el descodificador, en primer lugar, verifica si esta ley

es respetada. Si no lo es, estamos seguros de que, al menos, se ha producido

un error. Esta ley C que caracteriza el código consiste en una correspondencia

biunívoca entre la información a enviar y el mensaje enviado.

En lo que sigue, consideramos el cuerpo finito F = Fq, donde q = pm y p un

número primo.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 78: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 38 Elementos de criptografía

.

Definición 3.1 (Código-bloque).

Dada una fuente de información S = {A1,A2, · · · ,Ak} y un alfabeto F, se

considera el producto cartesiano Fn.

Llamaremos código-bloque, de longitud n, a cualquier subconjunto C ⊂F

n de manera que a cada elemento Ai ∈ S, le hacemos corresponder, de

manera única, un vector vi ∈ Fn, al que llamaremos palabra-código.

Si el cardinal de S es M nos referiremos al código C como:

C(M,n) = {vi = (vi1 ,vi2 , · · · ,vin), tal que vij ∈ F}.

Podemos considerar un código-bloque como un conjunto de secuencias de

elementos de un cuerpo finito F (palabras-código) de la misma longitud. Un

código-bloque es binario cuando q = 2.

Los parámetros a considerar en un código-bloque C(M,n), además de su lon-

gitud, n, y su número de palabras-código M, son: la tasa de transmisión:

(1/n)logq(M) y la distancia mínima entre todas las palabras-código, d.

Ejemplo 3.1.

Supongamos el caso en el que tenemos que transmitir dos posibles mensajes, S = {A1,A2}donde A1= “Hace sol” y A2 = “Llueve”. El canal por el cual debe circular la transmisión

es binario, es decir, el alfabeto será F2 = {0,1}.

Un código-bloque para S puede ser C(2,3) = {A1 → (0,0,0); A2 → (1,1,1)}.

Distancia y métrica

La distancia de Hammingsatisface las propiedades de ladefinición matemática dedistancia y define unamétrica.

∀x,y,z ∈ Fn:

1) dH (x,x) = 0

2) dH (x,y) = dH (y,x)

3) dH (x,y)+dH (y,z)≤dH (x,z)

.

Definición 3.2 (Distancia de Hamming).

Dados dos elementos x,y ∈ Fn, definimos su distancia de Hamming

como:

dH(x,y) = #{i : 1 ≤ y ≤ n,xi 6= yi},

es decir, la distancia entre dos vectores x e y es la cantidad de compo-

nentes diferentes que tienen entre uno u otro.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 79: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 39 Elementos de criptografía

.

Definición 3.3 (Distancia mínima).

Dado un código C(M,n), definiremos la distancia mínima d, del código,

como:

d = min{dH(x,y) : x 6= y,x,y ∈ C}.

.

Definición 3.4 (Regla de descodificación a distancia mínima).

Dado un código C(M,n), definiremos la regla de descodificación a dis-

tancia mínima como la que descodifica un vector recibido u ∈ Fn por la

palabra-código que está a mínima distancia de él. Es decir establece una

aplicación Fn –→ C, tal que si u –→ v, resulta que v es la palabra-código

para la cual dH(v,u) = min{dH(v′,u),∀v′ ∈ C}.

.

Definición 3.5 (Capacidad correctora).

Podemos considerar en Fn las bolas centradas en las palabras-código de

radio el máximo valor posible de forma que las bolas sean disjuntas.

El radio de estas bolas se puede calcular como c = ⌊ d–12 ⌋ y este valor se

denomina capacidad correctora del código.

Diremos que el código es c-corrector.

3.2.2. Códigos lineales

Los códigos lineales permiten una buena solución al problema de la codifi-

cación/descodificación, considerando la regla de descodificación a distancia

mínima.

Consideramos la estructura de espacio vectorial de Fn = {u = (u1, · · · ,un) : ui ∈

F}, de dimensión n, sobre F, con las operaciones suma y producto por escalares

habituales en un espacio vectorial:

u + v = (u1 + v1, · · · ,un + vn), u,v ∈ Fn

k · (u1, · · · ,un) = (k · u1,...,k · un);

.

Definición 3.6 (Código lineal).

Un código-bloque se llama lineal si es subespacio vectorial de Fn. Si la

dimensión de este subespacio es k, el código tendrá M = qk palabras-

código, de longitud n, y será denotado por C(n,k).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 80: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 40 Elementos de criptografía

Coincidencia en losvalores del peso mínimoy de distancia mínima

Un código lineal tiene lapropiedad que la suma dedos palabras-código es unapalabra-código, por lo tanto:dH (u,v) =

#{i : ui 6= vi} =

#{i : ui – vi 6= 0} =

wt(u – v)

Así, en un código lineal, ladistancia entre dospalabras-código es igual alpeso de otra palabra-códigoy, en consecuencia, ladistancia mínima, no nula,coincide con el peso mínimodel conjunto depalabras-código no nulas.

.

Definición 3.7 (Peso de un vector).

El peso wt(v) de un vector v ∈ Fn es el número de coordenadas no nulas

de este vector. Es decir:

wt(v) = #{vi 6= 0 : vi ∈ F}.

.

Definición 3.8 (Error de transmisión).

Un error en la transmisión se corresponde con un cambio de coordena-

da entre la palabra-código de entrada y el vector de salida.

Estas características nos dan la capacidad detectora y correctora de errores.

.

Lema 3.9.

Un código lineal, con distancia mínima d ≥ 2c +1, puede detectar hasta

d – 1 errores y corregir hasta c si se utiliza el esquema de descodificación

a distancia mínima.

.

Definición 3.10 (Matriz generadora).

De la definición de código lineal resulta que todo conjunto de k vectores

de Fn, linealmente independientes, constituye una base de un código

lineal C(n,k). Así, todo código lineal puede ser definido por la matriz

k×n, donde las k filas son k vectores independientes, de una cierta base

de C.

A tal matriz, denotada Gk×n, se la llama matriz generadora del código,

ya que toda palabra-código v es una combinación lineal de las k filas de

esta matriz.

Podemos escribir, matricialmente:

v = a ·G

y dando a a = (a1,a2, · · · ,ak) todos los valores posibles (qk en total),

obtendremos todas las palabras-código de C.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 81: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 41 Elementos de criptografía

Ortogonalidad

Ortogonal, o perpendicular,va a significar que elproducto escalar sea cero.

.

Definición 3.11 (Matriz de control).

Un código lineal C(n,k) puede ser descrito, además, por otra matriz. En

efecto, el subespacio ortogonal al código, que es de dimensión n – k,

puede ser descrito por una matriz, H, donde las n – k filas son los n – k

vectores linealmente independientes de este subespacio, ortogonales a

todos los vectores de C. O sea, HT(n–k)×n ·Gk×n = 0(n–k)×k.

Entonces, todo vector v del código tiene la propiedad de ser ortogonal

a esta matriz, es decir, verifica:

H · vT = 0⇐⇒ v ∈ C(n,k)

Esta matriz H permite controlar si un vector determinado pertenece o

no al código y, por esto, se llama matriz de control.

Ejemplo 3.2.

Para construir un código lineal binario C(6,3) podemos tomar la siguiente matriz gene-

radora:

G3×6 =

0

B

B

B

@

1 1 1 0 0 0

0 1 1 1 0 1

0 0 1 1 1 0

1

C

C

C

A

.

que nos va a permitir codificar de la siguiente manera:

a v = a · G wt(v)

(0,0,0) (0,0,0,0,0,0) 0

(1,0,0) (1,1,1,0,0,0) 3

(0,1,0) (0,1,0,0,1,1) 4

(0,1,1) (0,1,0,0,1,1) 3

(0,0,1) (0,0,1,1,1,0) 3

(1,1,0) (1,0,0,1,0,1) 3

(1,0,1) (1,1,0,1,1,0) 4

(1,1,1) (1,0,1,0,1,1) 4

El peso mínimo del código, que coincide con la distancia mínima, es 3 y, por lo tanto,

podrá detectar hasta 2 errores en la transmisión, pero solo podrá corregir 1.

Por otra parte, se puede verificar que la matriz H3×6 es una matriz de control para el có-

digo C(6,3) anterior, puesto que las tres filas de H son una base del subespacio ortogonal

a C.

H3×6 =

0

B

B

B

@

1 1 0 0 0 1

1 0 1 0 1 1

0 0 0 1 1 1

1

C

C

C

A

.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 82: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 42 Elementos de criptografía

Dado un código lineal C(n,k) y un vector e ∈ Fn–C tomemos el conjunto C+e =

{v + e : v ∈ C}, llamado coset (o trasladado) de C, con líder (o representante) e,

que contiene qk vectores distintos de Fn.

.

Teorema 3.12.

Un código lineal C(n,k) admite qn–k cosets diferentes, que constituyen

una partición de todo el espacio Fn.

Demostración: Consideremos la relación de equivalencia sobre Fn, inducida

por el código C, definida como:

e,u ∈ Fn; u ∽ e⇐⇒ u – e ∈ C

que nos induce la partición de Fn en clases de equivalencia, donde dos vectores

de Fn son equivalentes si y solo si pertenecen a la misma clase. De hecho

tenemos:

u – e ∈ C⇐⇒ u ∈ C + e

de donde deducimos que las clases de equivalencia coinciden con los cosets.

Obviamente, cada coset contiene qk elementos (tantos como palabras-código).

.

Definición 3.13 (La aplicación síndrome).

Dado un código lineal C(n,k), consideremos su matriz de control H. Esta

(n – k) × n matriz nos permite definir una aplicación lineal, del espacio

Fn en el subespacio de las (n – k)-uplas de F, o sea F

n–k:

S : Fn –→ F

n–k,

tal que cada vector u ∈ Fn se transforma en S(u) = H · uT . Este valor S(u)

recibe el nombre de síndrome del vector u.

.

Lema 3.14.

Existe una correspondencia biunívoca entre los qn–k cosets posibles y los

qn–k síndromes posibles.

A causa de esta correspondencia biunívoca entre cosets y síndromes, y habien-

do hecho la elección de los líderes de los cosets tomando un vector de peso

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 83: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 43 Elementos de criptografía

mínimo en cada coset, el síndrome de un vector cualquiera caracteriza el líder

del coset de manera única, y por lo tanto podemos considerar la re-definición

de la regla de descodificación a distancia mínima:

.

Definición 3.15 (Regla de descodificación vía síndrome).

Si u ∈ Fn es el vector recibido:

1) Calcular S(u) = H · uT

2) Determinar el líder e tal que S(e) = H · eT = S(u)

3) Descodificar u por la palabra-código v∗ = u – e.

(Efectivamente, v∗ ∈ C, ya que H · (v∗)T = H · (u – e)T = H · uT – H · eT =

S(u) – S(e) = 0).

Corrección del error

Si solo se ha producido unerror, entonces estamosseguros de que v∗ = v esrealmente la palabra-códigoque se había enviado. De locontrario, si se ha producidomás de un error, entonces ladescodificación, aun cuandov∗ ∈ C, sería incorrecta.

Ejemplo 3.3.

Descodificar el vector u = (1,1,0,1,0,1), usando la descodificación vía síndrome, por el

código C(6,3) del ejercicio anterior (este código es 1-corrector).

S(u) = H · uT = H · (1,1,0,1,0,1)T = (1,0,0)

El vector e = (0,1,0,0,0,0) ∈ Fn – C, cumple que S(e) = S(u):

S(e) = H · eT = H · (0,1,0,0,0,0)T = (1,0,0)

Así, la estimación que hacemos de la palabra-código enviada es:

v∗ = u – e = (1,1,0,1,0,1) – (,0,1,0,0,0,0) = (1,0,0,1,0,1) ∈ C

3.2.3. Los códigos lineales cíclicos: BCH y RS

Para hacer el estudio de estas familias de códigos asociaremos a los vectores

del espacio Fn un polinomio, de grado inferior o igual a n – 1, tal que sus

coeficientes coincidan con las coordenadas del vector. Entonces un código

lineal cíclico podrá ser considerado como un ideal del anillo de polinomios

de grado inferior o igual a n–1 y coeficientes en F (notaremos a este anillo por

Fn[X] ≈ F[X]/Xn – 1).

.

Definición 3.16 (Códigos cíclicos).

Un código C de longitud n se llama cíclico si toda permutación cíclica

de una palabra-código es también una palabra-código. Es decir:

∀v = (v0,v1, · · · ,vn–1) ∈ C =⇒ vπ = (vn–1,v0, · · · ,vn–2) ∈ C

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 84: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 44 Elementos de criptografía

Para estudiar las propiedades algebraicas de estos códigos, es cómodo utilizar

una descripción polinómica. A toda palabra-código le asociamos un polino-

mio de la siguiente manera:

v = (v0,v1...,vn–1) ∈ C =⇒ v(X) = v0 + v1X + ... + vn–1Xn–1

Si llamamos C(X) al conjunto de los polinomios asociados a las palabras-

código de C, observaremos que: vπ(X) = X · v(X) – vn–1Xn; es decir, que: vπ(X) =

X · v(X) (mod Xn – 1).

.

Lema 3.17.

Fn[X], con la suma habitual de polinomios y el producto a(X)∗b(X) =

a(X) · b(X) (mod Xn – 1) tiene estructura de anillo conmutativo.

.

Lema 3.18.

Un código lineal C(n,k) es cíclico⇐⇒ C(X) es un ideal de Fn[X]/(Xn – 1).

Los dos lemas anteriores nos permiten escribir el siguiente resultado, que es la

base de la construcción de los códigos lineales y cíclicos.

.

Teorema 3.19.

Sea C un código lineal y cíclico de longitud n (ideal de Fn[X]/(Xn – 1)).

Sea g(X) un polinomio mónico (el coeficiente del término de mayor

grado es 1) de grado más pequeño dentro de C(X). Sea r el grado de

g(X). Entonces se cumple:

1) g(X) es el único polinomio mónico de grado r en C(X).

2) g(X) es el generador de C(X) como ideal principal de Fn[X]/(Xn – 1)

(es decir, ∀v(X) ∈ C(X) existe h(X) tal que v(X) = g(X) ∗ h(X)).

3) g(X) divide Xn – 1 (con n longitud del código).

4) {Xi · g(X),0 ≤ i ≤ (n – r – 1)}, genera C(X) como subespacio vectorial.

Es decir, ∀v(X) ∈ C(X), existen ciertos coeficientes ai para los que

v(X) =Pn–r–1

i=0 aiXi · g(X) (mod Xn – 1).

Este teorema nos permite asegurar que todo polinomio g(X) ∈ Fn[X], de grado

r, divisor de Xn –1 genera un código lineal y cíclico C(n,k) que tiene por matriz

generadora:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 85: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 45 Elementos de criptografía

Gk×n =

0

B

B

B

B

B

B

B

B

B

B

B

B

B

B

@

g0 g1 · · · gn–1 · · · 0 0 0

0 g0 g1 · · · gn–1 · · · 0 0

· · · · · · · · · · · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · · · · · · · · · · ·

0 0 · · · · · · g0 g1 · · · gn–1

1

C

C

C

C

C

C

C

C

C

C

C

C

C

C

A

.

Es decir, las filas de Gk×n, donde k = n – r, son los coeficientes de Xi · g(X)

(mod Xn – 1).

Observar que multiplicar g(X) por Xi (mod Xn – 1) equivale a desplazar a la

derecha (con retroalimentación) i posiciones los coeficientes de g(X), i = 1, · · · ,n – r – 1, visto como un vector de F

n.

3.2.4. Los códigos cíclicos BCH

Los códigos BCH fueron introducidos por Hocquenghem (1959) y Chaudhuri,

Bose (1960), donde la estructura algebraica se basa en los cuerpos finitos, Fpm .

En nuestro caso tomaremos p = 2.

Este tipo de códigos vienen definidos por dos parámetros m y c y verifican:

Polinomio mínimo de αi

Sea α un elemento primitivode F2m , Sea t tal que (αi)t = 1

y sea s el más pequeñoentero tal que t divide 2s – 1.Entonces, el polinomiomínimo de αi se puedecalcular como:

mi(X) = Πs–1j=0(X – (αi)2j

)

.

Teorema 3.20.

Para todo entero n de la forma n = 2m – 1, m ≥ 3, y todo entero c tal

que n – c · m > 0, existe un código cíclico c-corrector, de longitud n,

dimensión k ≥ n – c ·m y distancia mínima d ≥ 2 · c + 1, que tiene por

polinomio generador:

g(X) = mcm(m1(X),m3(X),...,m2·c–1(X))

siendo mi(X) el polinomio mínimo de αi y α un elemento primitivo de

F2m .

.

Definición 3.21 (Los códigos cíclicos BCH).

Un código con las características del teorema anterior se llama código

BCH primitivo.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 86: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 46 Elementos de criptografía

La matriz de control de los códigos BCH es:

H =

0

B

B

B

B

B

B

B

B

B

B

B

B

B

B

@

1 α α2 · · · αn–1

1 α3 α6. . . α3(n–1)

· · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · ·

1 α2c–1 α(2c–1)·2. . . α(2c–1)·(n–1)

1

C

C

C

C

C

C

C

C

C

C

C

C

C

C

A

,

ya que que v(X) = v0+v1X+...+vn–1Xn–1, vi ∈ F, será el polinomio asociado a una

palabra-código v, si y solo si, v(αi) = 0,∀i = 1,3, · · · ,2c – 1. Es decir, las palabras

código son múltiplos del polinomio g(X) que tiene, por construcción, como

ceros los elementos α,α3, · · · ,α2c–1 (y, también, α2,α6, · · · ,α2c).

En la tabla siguiente podemos ver los parámetros de algunos códigos BCH.

n t k g(X)

7 1 4 X3 + X + 1

– 2 1 X6 + X5 + X4 + X3 + X2 + X + 1

15 1 11 X4 + X + 1

– 2 7 X8 + X7 + X6 + X4 + 1

– 3 5 X10 + X8 + X5 + X4 + X2 + X + 1

31 1 26 X5 + X4 + X2 + 1

– 2 21 X10 + X9 + X8 + X6 + X5 + X3 + 1

– 3 16 X15 + X11 + X10 + X9 + X8 + X7 + X5 + X3 + X2 + X + 1

– 5 11 X20 + X18 + X17 + X13 + X10 + X9 + X7 + X6 + X4 + X2 + 1

– 7 6 X25 + X24 + X21 + X19 + X18 + X16 + X15 + X14 + X13 + X11 + X9 + X5 + X2 + X + 1

3.2.5. Los códigos cíclicos RSCorrección de paquetesde errores

Los símbolos de laspalabras-código sonelementos αi ∈ F2m , lo cualquiere decir que cadasímbolo que se transmite porel canal es un elemento de mcoordenadas binarias. Por lotanto, un código deReed-Solomon (n,k), enrealidad transmite m · k bitsde información mediante unapalabra-código de n · m bits.En consecuencia, esimportante señalar que, conestos códigos, los errores noson bits aleatorios sino quepueden ser paquetes de mbits, que será consideradocomo un solo error. Estacaracterística mejora lacapacidad correctora global,puesto que en realidad puedecorregir hasta c paquetes dem errores (cada error es uncambio de un αi por un αj).

Reed y Solomon introdujeron en 1960, una clase particular de códigos BCH

que mejoraba, todavía más, las prestaciones de corrección y la facilidad de

descodificación. En particular, los códigos de esta familia tienen la mejor ca-

pacidad detectora y correctora, dado el par de parámetros n y k.

.

Definición 3.22 (Los códigos cíclicos RS).

Un código de Reed-Solomon (RS), primitivo, es un código cíclico sobre

F2m , de longitud n = 2m – 1 y dimensión k, con distancia mínima d =

n – k + 1, y que tiene por polinomio generador:

g(X) = (X – α) · (X – α2) · · · (X – αd–1)

donde α es un elemento primitivo de F2m .

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 87: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 47 Elementos de criptografía

Nota

Un código lineal siempre satisface que d ≤ n – k + 1 (cota de Singleton). Un código que

satisface la igualdad se llama MDS (máxima distancia separable). Evidentemente, los

códigos RS son de máxima distancia separable.

La matriz de control de los códigos RS es:

H(n–k)×n =

0

B

B

B

B

B

B

B

B

B

B

B

B

B

B

B

B

B

B

@

1 α α2 · · · αn–1

1 α2 α4. . . α2(n–1)

1 α3 α6. . . α3(n–1)

· · · · · · · · · · · · · · ·

· · · · · · · · · · · · · · ·

1 αd–1 α2(d–1). . . α(d–1)·(n–1)

1

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

C

A

,

ya que v(X) = v0+v1X+...+vn–1Xn–1, vi ∈ Fm. En este caso, v(X) será el polinomio

asociado a la palabra-código v, si y solo si, v(αi) = 0,∀i = 1,2, · · · ,d – 1. Es decir,

las palabras código son múltiplos del polinomio g(X) que, por construcción,

tiene por ceros los elementos α,α2, · · · ,αd–1.

En 1969, Berlekamp y Massey dieron un algoritmo muy eficiente de descodi-

ficación, basado en el teorema de Dirichlet. Estos códigos han sido amplia-

mente utilizados en sistemas de almacenamiento de datos (CDs, DVDs,...), en

módems de alta velocidad (ADSL, DSL,...), en televisión digital (TDT, MPEG2,

MPEG4, . . . ) y también propuestos para ser usados en criptografía.

3.3. Los criptosistemas de McEliece y de Niederreiter

En este subapartado veremos los dos criptosistemas de McEliece y de Nie-

derreiter, donde la función unidireccional se basa en códigos correctores de

errores.

3.3.1. Criptosistema de McEliece

Robert McEliece propuso en 1978 un criptosistema de clave pública funda-

mentado en que el algoritmo de descodificación de un código lineal, en gene-

ral, no es computacionalmente eficiente (R. J. McEliece (1978). “A public-key

cryptosystem based on algebraic coding theory”. DSN Progress Report, 42-44

(1978)).

En su propuesta utilizó los códigos de Goppa (de la misma familia de códigos

que los BCH y RS, los llamados códigos alternantes), de los cuales se conoce

un algoritmo de descodificación computacionalmente eficiente. En particular,

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 88: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 48 Elementos de criptografía

el algoritmo de descodificación de Patterson que tiene un funcionamiento

muy parecido al de Berlekamp-Massey.

La idea principal del criptosistema consiste en transformar la matriz genera-

dora, Gk×n, del código alternante escogido, C(n,k), c-corrector, y transformarla

en una matriz generadora de un nuevo código lineal C′(n,k), que notaremos

por G′

k×n (que también será c-corrector).

Para llevar a término esta transformación, se utilizan dos matrices; una matriz

binaria, no singular, Sk×k, por lo tanto invertible, y una matriz de permutación

Pn×n.

Así, la clave privada será Gk×n y las matrices Sk×k y Pn×n, mientras que la clave

pública será: G′

k×n = Sk×k ·Gk×n ·Pn×n y el parámetro c (la capacidad correctora

del código C(n,k)).

Supongamos un usuario B que quiere enviar un mensaje cifrado al usuario A,

que tiene G′, como hemos descrito antes, como clave pública:

• Algoritmo de cifrado. Si m es el mensaje a cifrar por B, éste lo dividirá en

bloques de k símbolos. Sea mi un de estos bloques; entonces el criptograma

correspondiente será:

ci = EG′(mi) = mi ·G′ + e,

siendo e ∈ Fn un vector de error arbitrario, escogido por B, tal que wt(e) ≤ c.

• Algoritmo de descifrado. Este algoritmo hace uso del conocimiento, por

parte del usuario A, de S–1 y P–1. Así, recibido ci, el usuario A hará:

1) Calcular c′i = ci ·P–1 = (mi ·G′ + e) ·P–1 = mi ·S ·G+ e ·P–1, donde e ·P–1 es un

error que se puede corregir por G, puesto que evidentemente wt(e·P–1) =

wt(e), ya que la permutación no cambiará el número de coordenadas no

nulas.

2) Aplicar a c′i el algoritmo de descodificación del código C(n,k). Este co-

rregirá el error e · P–1 y nos devolverá el vector mi · S ∈ Fk.

3) Multiplicando, ahora, el vector recibido por S–1 reencontraremos mi.

Efectivamente, mi = mi · S · S–1.

Pese a tratarse de un criptosistema en el cual los procesos de cifrado y desci-

frado son relativamente rápidos, en la actualidad se utiliza escasamente. Esto

es debido, principalmente, a los tamaños de clave (219 bits para la clave pú-

blica) y al factor de expansión del mensaje que hace que el criptograma tenga

un tamaño un 60 % mayor que el mensaje original. Sin embargo, dado que el

algoritmo de Shor no afecta a este criptosistema, parece ofrecer resistencia al

criptoanálisis basado en computación cuántica.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 89: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 49 Elementos de criptografía

3.3.2. Criptosistema de Niederreiter

H. Niederreiter, en 1986, propone un criptosistema, dual al de McEliece, basa-

do en el uso de códigos GRS (generalized Reed-Solomon), estrechamente ligados

a los códigos de Goppa, y definidos por su matriz de control. La propuesta

de utilización de estos códigos se basa en la posibilidad de reducir el tamaño

de los parámetros respecto a los de Goppa (H. Niederreiter (1986). Knapsack-

type cryptosystem and algebraic coding theory, Problems of Control and Information

Theory).

En su propuesta, Niederreiter, utilizó los códigos GRS para los cuales, se co-

noce un algoritmo de descodificación computacionalmente eficiente. La idea

principal consiste en transformar la matriz de control, H(n–k)×n, del código es-

cogido, sobre F2m , c-corrector (c = ⌊(d–1)/2⌋), y transformarla en una matriz de

control de un nuevo código código lineal, que denotaremos por H′

(n–k)×n (que

también será c-corrector).

Para llevar a término esta transformación, se utilizan dos matrices; una ma-

triz binaria, no singular, S(n–k)×(n–k), por lo tanto invertible, y una matriz de

permutación Pn×n.

Así, la clave privada será H(n–k)×n y las matrices S(n–k)×(n–k) y Pn×n, mientras

la clave pública será: H′

(n–k)×n = S(n–k)×(n–k) · H(n–k)×n · Pn×n y el parámetro c (la

capacidad correctora del código C(n,k)).

Supongamos que el un usuario B quiere enviar un mensaje cifrado a otro usua-

rio A, que tiene H′, como hemos descrito antes, como clave pública:

• Algoritmo de cifrado. Si m es el mensaje a cifrar por B, éste lo dividirá en

bloques mi de n símbolos, tales que wt(mi) ≤ c. Entonces el criptograma

correspondiente será:

ci = (H′) · (mi)T ∈ F2m ,

que da el síndrome de mi.

Equivalencia de los doscriptosistemas

Yuan Xing Le y otrosdemuestran que loscriptosistemas de McEliece yNiederreiter son equivalentes,en términos de seguridad (Y.Xing Le; R. H. Deng; X. MeiWang (1994). “On theequivalence of McEliece’s andNiederreiter public-keycryptosystems”. IEEE

Transaction on Information

Theory).

• Algoritmo de descifrado. Este algoritmo hace uso del conocimiento, por

parte del usuario A, de S–1 y P–1. Así, recibido ci, el usuario A hará:

1) Calcular c′i = S–1 · ci = S–1 ·H′ · (mi)T = H · P · (mi)

T = H · (m′

i)T , donde c′i es

el síndrome de m′

i = mi · PT , calculado a partir de H.

2) Aplicar el algoritmo de descodificación a c′i , para encontrar mi · PT .

3) mi = mi · PT · (P–1)T

La siguiente tabla muestra algunos resultados interesantes sobra la eficiencia

de los criptosistemas de McEliece y Niederreiter.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 90: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 50 Elementos de criptografía

Lectura recomendada

R. Overbeack; N. Sendrier.

(2009). “Code-based

cryptography”. A: D.

Bernstein; J. Buchmann; J.

Ding (eds.). Post-QuantumCryptography (págs. 95-145).

Springer.

(n,c) (2048,32) (2048,40) (4096,22) (4096,45)

McEliece texto original 1928 1888 4024 3904

criptograma 2048 2048 4096 4096

tamaño clave pública 73 kb 86 kb 123 kb 234 kb

Niederreiter texto original 232 280 192 352

criptograma 352 4408 264 540

tamaño clave pública 73 kb 86 kb 123 kb 234 kb

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 91: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 51 Elementos de criptografía

Ejercicios de autoevaluación

1. Un usuario de una red ha recibido el criptograma: 1611,3556,4744,3504 resultado de cifrar

caracteres, individualmente, de M = {A,B, · · · ,Y,Z} ≈ {A = 02,B = 03, · · · ,Y = 26,Z = 27};

empleando el criptosistema RSA con la clave pública n = 7597 y e = 4947. Encontrar el

mensaje original.

2. Utilizar un criptosistema RSA para dos usuarios A y B, con el mismo valor de

n = 151953280470109

y claves públicas, respectivamente eA = 17 y eB = 19. Suponer que el usuario A quiere cifrar,

para enviar a B, el texto:

m = Los ordenadores cuánticos pueden dejar obsoletos los métodos actuales de cifrado

a) ¿Cuál será el resultado del cifrado?

b) ¿Cuál sería la firma RSA del mensaje?

c) Simular la verificación de la firma por parte de B.

3. A partir de un cuerpo finito F71 de 71 elementos y un elemento primitivo α = 7, conside-

ramos un criptosistema ElGamal.

a) Tomando k = 2, si el criptograma correspondiente a m = 30 es c = (57,49), encontrar el

valor de la clave pública utilizada.b) Si se toma otro valor de k, y resulta que para el mismo valor de m obtenemos c = (b,59),

¿cuál es el valor de b?

4. Construir un criptosistema ElGamal para dos usuarios A y B, en un cuerpo Fp, con p =

1231451311 y α = 21. Suponer que el usuario A tiene por clave privada xA = 113 y que

el usuario B tiene por clave privada xB = 97. Suponer el texto: m =HOLA, empleando los

símbolos de M = {A,B, · · · ,Y,Z} ≈ {A = 02,B = 03, · · · ,Y = 26,Z = 27}a) ¿Cuál será el resultado del cifrado de m, tomando el valor de k = 247, que A enviará a

B? Hacer el correspondiente descifrado para reencontrar m.b) ¿Cuál sería la firma del mensaje, por parte de A?

c) Simular la verificación de la firma por parte de B.

5. Sobre la firma DSA:

a) Supongamos p = 124540019, q = 17389,g = 10083255, x = 12496 y k = 9557. Tomando

como función de hash ficticia, h(m) = m, comprobar que la firma de m = 5246 es (r,s) =

(13752,9137).b) Simular su verificación.

6. Ana y Bernardo deciden utilizar el protocolo cuántico de Bennett-Brassard para intercam-

biarse una clave de sesión. Al comienzo deciden que las polarizaciones \ y | indicarán un 1 y

las polarizaciones / y — indicarán un 0.

Ana envía 20 fotones a Bernardo. Ernesto, que es un espía que está observando la comuni-

cación entre A y B, los intercepta todos y los reenvía a B con la misma polarización con que

los ha detectado.

Posteriormente A y B se comunican públicamente entre ellos y deciden que los bits 1, 2, 3,

4, 5, 7, 8, 9, 10, 20 serán desestimados puesto que, en ellos, no han usado la misma polari-

zación. La polarización de los bits restantes, como ha deducido B, es: / / / / / | | | | |.

Sabiendo que los bits 13, 14, 15, 16, que inicialmente había enviado A son, respectivamente,

1, 0, 0, 1, ¿sabríais decir con qué polaridad A ha enviado los fotones que representan estos

bits? y, ¿qué polarizador ha utilizado Ernesto en estos bits? ¿por qué?

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 92: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 52 Elementos de criptografía

Solucionario

1. Para resolver el problema nos ayudaremos del software SAGE. En primer lugar hace falta

factorizar n:

sage: n = 7597sage: factor(n)71 * 107

A continuación encontraremos el inverso e = 4947 módulo ϕ(n) = 70 ∗ 106 = 7420:

sage: e = 4947sage: phi = 7420sage: d = inverse_mod(e,phi)sage: print d3

Con la función power_mod(C,d,n) encontraremos el mensaje original descifrando el mensaje

recibido:

sage: power_mod(1611,d,n)2sage: power_mod(3556,d,n)3sage: power_mod(4744,d,n)4sage: power_mod(3504,d,n)5

Finalmente, m = ABCD.

2. Utilizaremos el software SAGE para simplificar los cálculos. Para empezar, necesitamos pa-

sar del texto alfabético a mensajes numéricos que nos permitan efectuar las operaciones RSA.

Para hacerlo necesitamos definir algunas operaciones previas, las de codificar/descodificar

letras, codificar/descodificar cadenas, cifrar/descifrar números, cifrar/descifrar mensajes. Da-

mos por hecho que la programación elemental utilizada es conocida por el estudiante:

alphabet = ’ abcdefghijklmnopqrstuvwxyz’L = len(alphabet)def codifica_char(lletra):

return alphabet.index(lletra)

def descodifica_char(n):return alphabet[n]

def codifica_text(missatge):return [codifica_char(c) for c in text]

def descodifica_chain(llista):return ’’.join([descodifica_char(v) for v in llista])

def chiper_RSA(llista,n,e):return [power_mod(valor,e,n) for valor in llista]

def unchiper_RSA(llista,n,d):return [power_mod(valor,d,n) for valor in llista]

a) Con estas definiciones previas podemos cifrar el mensaje que nos dan:

sage: m = ’Los ordenadores cuánticos pueden dejar obsoletos los métodos actuales de cifrado’sage: n = 151953280470109sage: e = 17sage: chiper_RSA(codifica_text(m),n,e)

[762939453125, 93211876845592, 32590367823381, 0, 74138716094102, 103704942061406, 17179869184,114274128424688, 97563638183746, 1, 17179869184, 74138716094102, 103704942061406, 32590367823381,

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 93: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 53 Elementos de criptografía

0, 69016003153490, 33625452816007, 1, 97563638183746, 105460815098081, 114274128424688, 129140163,32590367823381, 0, 83278712378725, 74138716094102, 17179869184, 762939453125, 97563638183746, 0,17179869184, 762939453125, 114274128424688, 119465547730806, 1, 103704942061406, 0, 74138716094102,131072, 32590367823381, 74138716094102, 93211876845592, 762939453125, 105460815098081, 32590367823381,0, 762939453125, 93211876845592, 32590367823381, 0, 19568778972781, 762939453125, 105460815098081,74138716094102, 17179869184, 762939453125, 32590367823381, 0, 1, 129140163, 105460815098081,33625452816007, 1, 93211876845592, 32590367823381, 0, 17179869184, 762939453125, 0, 119465547730806,114274128424688, 16926659444736, 103704942061406, 1, 105460815098081]

b) Para firmar el mensaje debemos tener calculado el valor d que forma parte de la clave

privada y que el enunciado del problema no nos da. Como el número n no es muy largo,

lo podemos factorizar:

sage: factor(151953280470109)1738934123 * 87383

Ahora podemos calcular ϕ(n) = 1738934122 ∗ 87382 y el inverso de e módulo phi(n).

sage: e = 17sage: phi = 1738934122 * 87382sage: d = inverse_mod(e,phi)print d8938325967565

Entonces la firma la podemos encontrar con la misma función que el cifrado, pero susti-

tuyendo el parámetro e por d:

sage: missatge_signat = chiper_RSA(codifica_text(m),n,d)

[42782583250323, 30308012709953, 132858054847474, 0, 94150478556282,30541430930646, 108907931565622, 76520780070238, 18215677713314, 1,108907931565622, 94150478556282, 30541430930646, 132858054847474, 0,44035504519670, 121144087766341, 1, 18215677713314, 16213728552100,76520780070238, 84208423477578, 132858054847474, 0, 26232893409272,94150478556282, 108907931565622, 42782583250323, 18215677713314, 0,108907931565622, 42782583250323, 76520780070238, 54058519904057, 1,30541430930646, 0, 94150478556282, 77779196084924, 132858054847474,94150478556282, 30308012709953, 42782583250323, 16213728552100,132858054847474, 0, 42782583250323, 30308012709953, 132858054847474, 0,21980253538582, 42782583250323, 16213728552100, 94150478556282,108907931565622, 42782583250323, 132858054847474, 0, 1, 84208423477578,16213728552100, 121144087766341, 1, 30308012709953, 132858054847474, 0,108907931565622, 42782583250323, 0, 54058519904057, 76520780070238,96067072003657, 30541430930646, 1, 16213728552100]

c) El usuario B puede comprobar la firma del mensaje que le ha enviado el usuario A utili-

zando la clave pública de aquel y observando que el resultado da el mensaje inicial:

sage: descodifica_chain(unchiper_RSA(missatge_signat,n,e))

’Los ordenadores cuánticos pueden dejar obsoletos los métodos actuales de cifrado’

3. a) Escribamos la clave pública de A como a = αU , entonces el mensaje cifrado es c = m·(a)k

(mod p), o sea 57 = 30·(a)2 (mod 71) y, por lo tanto a =√

57·30–1 (mod 71) =√

9

(mod 71).

sage: mod((57 * 30^(-1))^(1/2), 71)9

O sea, la clave pública puede ser αU = ±3 (mod 71).

b) Si tomamos otro valor de k tenemos que αk = b y 30·ak = 59, donde a es la clave pública.

Entonces b = 30·(59)–1 (mod 71) = 33.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 94: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 54 Elementos de criptografía

4. Utilizaremos el software SAGE. Entramos los datos del ejercicio:

sage: p=1231451311sage: alfa=21sage: xA=113sage: xB=97sage: k=247sage: m=9161302sage: R=IntegerModRing(p)

Con la última instrucción indicamos que trabajaremos en el anillo Zp. Ahora ya podemos

calcular:

a) sage: YB=R(alfa^xB)print YB4198807sage: YA=R(alfa^xA)print YA120638760sage: K= R(alfa^k)print K840316018

El criptograma c, correspondiente a m, se encuentra haciendo:

sage:c=R(m * YB^k)print c399347538

Entonces, A envía c = 399347538 a B. Ahora, para reencontrar el mensaje enviado, Bhará:

sage: beta= R(K^xB)sage: mr=R(c/beta)print mr9161302

Efectivamente, el mensaje recibido mr coincide con el enviado m.

b) Para poder hacer la firma A, debe calcular en el anillo Zp–1, y para esto devolvemos el valor

entero a K:

sage: R1=IntegerModRing(p-1)sage: kinv=R1(1/k)sage: K1=Integer(K)sage: s=R1((m-xA * K1) * kinv)print s14451644

Por lo tanto, el valor de la firma de m es s = 144516444

c) Para poder hacer la verificación de la firma anterior, realizamos los siguientes cálculos

sage: M=YA^k * K^sprint M542102987sage:N=R(alfa^m)print N542102987

Dado que los valores de M y N coinciden, la firma se daría por válida.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 95: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 55 Elementos de criptografía

5. Utilizaremos el software SAGE. Entramos los datos del ejercicio:

sage: p=124540019sage: q=17389sage: q=10083255sage: x=12496sage: k=9557sage: m=5246

Ahora ya podemos calcular:

a) sage: n=(p-1)/qprint n7162sage: alfa=mod(g^n,p)print alfa57574454sage: y= alfa^xprint y33942608

Para la firma de m calculamos:

sage: r=mod(alfa^k,q)print r13752sage: s=mod((m+x * r)/k,q)print s9137

Por lo tanto, la firma (r,s) = 13752,9137) coincide con la dada.

b) Para simular la verificación de la firma procedemos:

sage: w=mod(1/s,q)sage: uno1=mod(m * w,q)sage: uno2=mod(r * w,q)sage: v=mod(alfa^uno1 * y^uno2,q)print v13752

Dado que el valor de v = 13752 coincide con el valor de r, la firma se daría por válida.

6. La polarización en que A ha enviado los mencionados bits debe ser coherente con la que

ha recibido B, puesto que estos bits no han sido desestimados. Por lo tanto A ha enviado:

\ / — |

La polarización que ha utilizado Ernesto en el bit 13 esL

y en el bit 15N

. En los bits 14 y

16 puede haber utilizadoL

oN

indistintamente.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 96: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200951 56 Elementos de criptografía

Bibliografía .

Domingo, J.; Herrera, J.; Rifà-Pous, H. (2006). Criptografía. Barcelona: UOC.

Rifà, J.; Huguet, L. (1991). Comunicación digital: Teoría matemática de la información. Codi-ficación algebraica. Criptología. Barcelona: Ed. Masson.

Simmons, G. J. (1992). Contemporary cryptology: the science of information integrity. New

York: IEEE Press Inc.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 97: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

ProtocoloscriptográficosLlorenç Huguet Rotger

Josep Rifà Coma

Juan Gabriel Tena Ayuso

PID_00200954

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 98: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 99: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 Protocolos criptográficos

Índice

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

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1. Protocolos de gestión y distribución de claves . . . . . . . . . . . . . . . 9

1.1. Protocolo de transporte de una clave privada . . . . . . . . . . . . . . . . . 10

1.2. Protocolo de intercambio de dos claves de Needham-Schroeder 11

1.3. Protocolo de distribución de claves centralizado . . . . . . . . . . . . . . 11

1.4. Protocolo de acuerdo de claves de Diffie-Hellman . . . . . . . . . . . . 12

2. Protocolos de autenticación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1. Protocolo de tres pasos de Shamir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2. Protocolo de Omura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3. Protocolo de Needham-Schroeder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.4. Protocolo de Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.5. Protocolo STS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.6. Otros protocolos: ISO, CCITT X.509, SSL . . . . . . . . . . . . . . . . . . . . . 24

2.7. Protocolos de identificación de conocimiento nulo . . . . . . . . . . . 26

3. Transacciones electrónicas seguras: dinero electrónico . . . . . 30

3.1. Protocolo de Chaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.2. Transacciones sin rastro. Firmas digitales ciegas de Chaum . . . 33

3.3. Sistemas de pago electrónicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4. Protocolos de transferencia inconsciente . . . . . . . . . . . . . . . . . . . . . 38

4.1. Protocolo de Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2. Protocolos de compromiso de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.3. Firma electrónica de contratos: Protocolo de Even . . . . . . . . . . . . 43

4.4. Protocolo de correo electrónico certificado. . . . . . . . . . . . . . . . . . . . 46

5. Esquemas umbral y reparto de secretos . . . . . . . . . . . . . . . . . . . . . . . 49

5.1. Esquema de Shamir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6. Votaciones electrónicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

6.1. Garantizar la privacidad y la corrección de los resultados . . . . . 53

6.2. Garantizar la auditoría de la votación . . . . . . . . . . . . . . . . . . . . . . . . . 55

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 100: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 Protocolos criptográficos

Ejercicios de autoevaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Solucionario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 101: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 5 Protocolos criptográficos

Introducción

Las comunicaciones electrónicas ofrecen nuevas posibilidades en los inter-

cambios de información, sobre todo en el campo de las transacciones comer-

ciales y en la administración electrónica.

En el mundo no electrónico los intercambios de información, llevados a cabo

con medios más convencionales, presentan problemas de seguridad y descon-

fianza que se resuelven a través de un arbitraje con terceras partes de confian-

za, como, por ejemplo, jueces, notarios y agentes postales, entre otros, que

tradicionalmente son los que han dado seguridad a estos intercambios.

En las transacciones electrónicas, llevadas a cabo mediante protocolos de co-

municación, la seguridad tiene un papel incluso más relevante, ya que ne-

cesita dar, además, una protección contra posibles amenazas, como son las

manipulaciones desautorizadas de los datos o las falsificaciones.

Al conjunto de acciones bien definidas y coordinadas descritas por un cierto

algoritmo, que permiten una interacción entre dos, o más, usuarios para llevar

a cabo un intercambio de datos o de información, se le llama protocolo.

Los protocolos criptográficos son aquellos que, para llevar a cabo esta in-

teracción, usan funciones criptográficas para poder asegurar los requisitos de

seguridad en las comunicaciones entre los usuarios que intervienen en el in-

tercambio: la confidencialidad, la integridad, la autenticidad y el no repudio.

Vamos a encontrar ejemplos de uso de los protocolos criptográficos en ámbi-

tos tan diversos cómo: en comercio electrónico, donde tienen que utilizarse

firmas compartidas; en correo electrónico seguro, donde se necesitará algo

más que un acuse de recibo; en la implementación de sistemas electrónicos de

pagos con la utilización de firmas ciegas o en sistemas de votación electrónica.

En muchos casos se necesitará, también, el arbitraje de una tercera parte de

confianza para garantizar todos los requisitos de seguridad en estas transac-

ciones electrónicas.

La diversidad de ámbitos hace que exista también una amplia variedad de

protocolos criptográficos para dar respuesta a los diferentes objetivos, pero

todos ellos se usan, generalmente, para eliminar desconfianzas.

Podemos dar la siguiente clasificación, según los objetivos que se quieran

lograr:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 102: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 6 Protocolos criptográficos

• Gestión y distribución de claves. Permiten y garantizan la generación,

almacenamiento, mantenimiento y distribución de claves de un sistema

criptográfico de clave privada. En algunos casos, esta distribución se hará

utilizando criptosistemas de clave pública.

• Autenticación de usuario. Permiten garantizar que el remitente de un

mensaje, con quien se establece comunicación, es realmente quien preten-

de ser.

• Transacciones electrónicas seguras. Permiten realizar las operaciones ban-

carias habituales, en particular, implementar sistemas de pago electrónicos

sustitutivos de las tarjetas de crédito y de débito en las transacciones eco-

nómicas en el comercio electrónico, con una utilización muy especial en

el caso de micropagos (menos de 10 e).

• Transferencias inconscientes o transcordadas. Permiten a un usuario en-

viar un mensaje o un secreto, entre dos posibles, a otro usuario. El usuario

emisor no conoce cuál de los dos ha recibido el receptor. Estos protocolos

permiten la firma electrónica de contratos.

• Compromiso de bit. Permiten a un usuario de una red comprometerse

con la elección de un bit (o más, generalmente con una serie de bits) sin

revelar tal elección hasta un momento posterior. El protocolo garantiza a

la otra parte que el usuario no cambia su elección.

• Compartición de secretos. Permiten distribuir un cierto secreto entre un

conjunto de participantes de manera que ciertos subconjuntos prefijados

entre los participantes puedan, uniendo sus participaciones, recuperar el

secreto.

• Pruebas de conocimiento nulo. Permiten a un usuario de una red con-

vencer a otro que el primero posee una cierta información, sin revelar nada

sobre el contenido de la misma.

• Votaciones electrónicas. Permiten realizar un proceso electoral electróni-

camente, garantizando la privacidad de cada votante y la imposibilidad de

fraude.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 103: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 7 Protocolos criptográficos

Objetivos

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

tenidos necesarios para alcanzar los objetivos siguientes:

1. Conocer los protocolos más importantes de gestión y distribución de claves.

2. Conocer los protocolos más importantes de autenticación.

3. Conocer los protocolos más importantes de transacciones electrónicas se-

guras y sistemas de pago electrónico.

4. Conocer los protocolos más importantes para implementar la firma de con-

tratos y el correo electrónico certificado.

5. Conocer los fundamentos de los esquemas de umbral.

6. Conocer los fundamentos de las votaciones electrónicas.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 104: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 105: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 9 Protocolos criptográficos

1. Protocolos de gestión y distribución de claves.

Uno de los problemas de la criptografía de clave privada está en la distribución

de las claves entre los usuarios de una red de comunicaciones, en la que cada

pareja de usuarios A, B necesita compartir una clave KAB, para crear un canal

privado virtual entre ambos.

Esta clave no puede ser enviada por la propia red de comunicaciones (que

consideraremos insegura) y que, además, por motivos de seguridad, debe ser

cambiada periódicamente. Muchas veces, KAB es desechable y se la llama clave

de sesión.

Por lo que hace a la gestión de claves, ésta comporta interrogantes, como ase-

gurar quiénes asumen la responsabilidad de la creación de las claves (con di-

ferentes alternativas: autoridad central o sistema totalmente descentralizado),

construir diferentes tipos de claves (de comunicaciones, maestras, de sesión),

definir los requisitos de seguridad en el almacenamiento de las mismas, etc.

En este apartado pondremos énfasis en los protocolos de distribución:

Notación

A lo largo de este módulo,cuando nos referimos a unsistema criptográfico de clavepública, la notación queusaremos, asociada a unusuario U, será:

• IdU : Identidad usuario.• EU (m): Proceso de cifrar

un mensaje m, con laclave pública de U.

• DU (c): Proceso de descifrar un criptograma c,con la clave privada de U.

1) Gestión de claves en los sistemas criptográficos de clave pública. En un

sistema criptográfico de clave pública, donde cada usuario U dispone de su pa-

reja de claves: EU para cifrar y DU para descifrar, no es necesaria la distribución

de las clave para cifrar; al contrario, han de estar accesibles para cualquiera que

desee utilizarlas y poder comunicarse con el propietario de las mismas. Existe,

sin embargo, el riesgo de la impersonación, es decir, un adversario C puede

hacer creer que su clave pública EC es la clave pública de otro usuario.

Consideramos cuatro esquemas posibles de gestión de claves públicas:

• Anuncio público: cada participante difunde su clave pública al resto de

usuarios. El riesgo de impersonación es grande.

• Directorio público: mantenido por una cierta autoridad, una tercera parte

de confianza, con acceso directo y libre (para lectura) por parte de cual-

quier usuario al directorio de claves TPD (trusted public directory). Cualquier

usuario U registra en el TPD su identidad; IdU ; y su clave pública, EU , en

persona o mediante comunicación autorizada, lo cual, en principio, elimi-

na el riesgo de la impersonación.

• Autoridad pública: similar al anterior, pero los usuarios no tienen acceso

directo al directorio de claves, sino que interaccionan con un centro de

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 106: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 10 Protocolos criptográficos

distribución de claves KDC (key directory centre). Si el usuario A desea cono-

cer la clave pública del usuario B, debe formular una petición expresa a la

autoridad que mantiene el directorio.

*Ver el subapartado 2.6 del

módulo “Elementos de

criptografía”.

• Autoridad certificadora: es una tercera parte de confianza, T, que expide

a cada usuario U un certificado de su clave pública, ligada a su identidad

IdU , junto con otros datos. Este certificado va firmado con la clave privada

de T. Así, un usuario A puede enviar a otro usuario B este certificado y éste

puede comprobar, utilizando la clave pública de la autoridad ET , la validez

de la clave, la identidad del emisor, así como los otros datos incluidas, entre

ellos el periodo de vigencia del certificado, etc.*

2) Distribución de claves en los sistemas criptográficos de clave privada.

En los sistemas criptográficos de clave privada, las claves se deben distribuir de

forma centralizada puesto que en otro caso, el administrador de una red ten-

dría que proporcionar claves a cada pareja de usuarios que quieran intercam-

biarse información secreta. Esto querría decir que el administrador necesitaría

tener almacenadas`n

2

´

=n(n – 1)

2= O(n2) claves, y cada usuario (n – 1) claves.

En un sistema criptográfico de clave privada, dos usuarios A y B pueden esta-

blecer una clave KAB, compartida por ambos, por dos métodos:

• Transporte de claves: un usuario crea una clave y la transfiere, con segu-

ridad, al otro usuario (alternativamente, puede ser una tercera parte quien

la crea y transfiere a ambos).

• Acuerdo de claves (key agreement): la clave es calculada por los usuarios

como una cierta función de la información suministrada por ambos usua-

rios. En principio ningún usuario, por sí mismo, puede predeterminar el

valor de esta clave.

Un problema adicional que puede plantearse es el de la autenticación de las

claves y de los usuarios que las acuerdan o envían. Tal autenticación será re-

suelta con los protocolos de distribución, en la mayoría de casos utilizando

sistemas criptográficos de clave pública para distribuir una clave privada.

1.1. Protocolo de transporte de una clave privada

Este protocolo permite transferir una clave KA, elegida por el usuario A, a otro

usuario B, mediante un algoritmo de un solo paso.

Supondremos que el usuario A tiene acceso a una copia autenticada de EB y

que usa un parámetro temporal, TP.

Protocolo

• A→ B. El usuario A envía a B: EB(IdA,KA,TP)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 107: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 11 Protocolos criptográficos

Ahora, el usuario B puede descifrar lo que ha recibido, con su clave privada DB

y, de este modo, verificar la identidad del emisor, el parámetro temporal TP y

asociar la clave KA al usuario A.

Resumen de las transacciones del protocolo:

A B

→ EB(IdA,KA,TP)) →

1.2. Protocolo de intercambio de dos claves de Needham-Schroeder

Este protocolo permite intercambiar dos claves secretas entre dos usuarios A

y B, respectivamente, KA y KB, con solo 3 pasos, al mismo tiempo que los

usuarios se autentican mutuamente.

Autenticaciones

• Autenticación de B porparte de A: el usuario Acomprueba que RA escorrecto, con lo cualautentica a B y confirmaque ha recibido KB.

• Autenticación de A porparte de B: el usuario Bcomprueba que RB escorrecto, con lo cualautentica a A y confirmaque ha recibido KA.

Protocolo

• A→ B. El usuario A elige un número aleatorio RA y envía a B: EB(IdA,KA,RA).

• B → A. El usuario B descifra lo que ha recibido, con su clave privada DB,

y obtiene RA, además de la clave pública y la identidad de A. Ahora B elige

otro número aleatorio RB y envía a A: EA(KB,RA,RB).

• A → B. El usuario A descifra lo que ha recibido, con su clave privada DA,

y obtiene RB, además de la clave pública y la identidad de B, y envía a B:

EB(RB).

Resumen de las transacciones del protocolo:

A B

→ EB(IdA,KA,RA) →

← EA(KB,RA,RB) ←

→ EB(RB) →

1.3. Protocolo de distribución de claves centralizado

Este protocolo permite la distribución de una clave de sesión a dos usuarios A

y B, para utilizar en un sistema criptográfico de clave privada.

Caso práctico

Se puede pensar en unprotocolo donde se quierausar una clave de sesión parautilizar con el sistema AES,mientras que la distribuciónse hace con un sistemaElGamal.

Supongamos que A y B disponen de un sistema criptográfico de clave pública y

que, en este caso, interviene una autoridad pública, T, que gestiona un centro

de distribución de claves KDC.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 108: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 12 Protocolos criptográficos

Para iniciar el protocolo, el usuario A comunica a la autoridad pública T, que

se quiere comunicar con B y, para ello, solicita la identidad de B y una clave

de sesión KAB para compartir. Además, se utilizará un parámetro temporal TP,

para controlar el plazo de vigencia.

Protocolo

• T → A. La autoridad pública T envía a A: EA(IdB,KAB,TP,EB(IdA,KAB,TP)).

El usuario A descifra lo que ha recibido, con su clave privada DA, y obtiene:

IdB, KAB, el parámetro TP y EB(IdA,KAB,TP).

• A→ B. El usuario A envía a B: EB(IdA,KAB,TP).

El usuario B descifra lo que ha recibido, con su clave privada DB, y obtiene:

IdA, KAB y TP.

Finalmente, para iniciar la transmisión con total garantía, haría falta un acuse

de recibo por parte de B a A, contrastando la validez del valor TP.

Resumen de las transacciones del protocolo:

T A

→ EA(IdB,KAB,TP,EB(IdA,KAB,TP)) →

A B

→ EB(IdA,KAB,TP) →

1.4. Protocolo de acuerdo de claves de Diffie-Hellman

Este protocolo se basa en la función exponencial y el logaritmo discreto, en

un cuerpo finito Zp, y no necesita ninguna otra intervención más que la de

los propios usuarios. La seguridad del protocolo se basa, precisamente, en la

intractabiliddad del cálculo del logaritmo discreto.

Todos los usuarios conocen el valor del primo p y el de un elemento primitivo

α ∈ Zp.

Cada usuario U busca al azar xU ∈ Z∗p , que guarda secreto, y hace público el

valor de yU = αxU (mod p). Así, cada usuario U coloca (IdU ,yU) en el directorio

público TPD.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 109: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 13 Protocolos criptográficos

Para compartir una clave de sesión, KAB, entre dos usuarios A y B, éstos harán

lo siguiente.

Protocolo

• El usuario A obtiene yB del TDP, calcula KA = yxA

B (mod p) = αxB·xA (mod p).

• El usuario B obtiene yA del TDP, calcula KB = yxB

A (mod p) = αxA·xB (mod p).

Ahora A y B ya pueden compartir una misma clave KAB = KA = KB (efectiva-

mente: αxA·xB (mod p) = αxB·xA (mod p)) para intercambiarse mensajes, en un

sistema criptográfico de clave privada, sin que A necesite del valor secreto xB,

ni B necesite del valor secreto xA.

Resumen del protocolo:

A B

KA = yxA

B (mod p) KB = yxB

A (mod p)

Simulador de cálculosen Zp

Para comprobar los cálculos

de este ejemplo, podéis usar

aplicativos de uso libre,

como SAGE

(http://www.sagemath.org).

Ejemplo 1.1.

A y B quieren intercambiar una clave de sesión KAB, usando el cuerpo Zp, con p = 1999 y

el elemento primitivo α = 33. En realidad, este valor de p debería ser muy grande.

Supongamos que A escoge xA = 47 y B escoge xB = 117. Entonces, ambos usuarios harán

los siguientes cálculos:

El usuario A calcula yA = αxA (mod p) = 3347 (mod 1999) = 1343;

El usuario B calcula yB = αxB (mod p) = 33117 (mod 1999) = 1991;

Así, (IdA,yA = 1343), (IdB,yB = 1991) figurarán en el TPD.

Protocolo

• El usuario A calcula KAB = yxAB (mod p) = 199147 (mod 1999) = 1506.

• El usuario B calcula KBA = yxBA (mod p) = 1343117 (mod 1999) = 1506.

La clave secreta compartida por A y B será KAB = KBA = 1506.

Nota

El protocolo de acuerdo de claves de Diffie-Hellman es vulnerable, frente a ataques de

impersonación.

Puede haber un espía activo-pasivo, C, que envíe mensajes a B, a partir de los que recibe

de A. Los usuarios A y B creen que están interconectados cuando en realidad sus mensajes

son filtrados y/o manipulados por C, puesto que es C quien realmente está conectado con

A y con B.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 110: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 14 Protocolos criptográficos

Protocolo para impedir la impersonación

Este problema de autenticación de A por parte de B, o de B por parte de A, se

puede resolver con la intervención de una autoridad pública T.

El usuario A envía a T la petición que quiere conectarse con B.

• T → A. La autoridad pública T envía a A los siguientes certificados:

CA = DT(IdA,EA,TP) i CB = DT(IdB,EB,TP)

donde TP es un parámetro temporal.

• A→ B. El usuario A calcula una clave de sesión KAB y la envía a B, debida-

mente firmada y cifrada EB(CA,CB,X = DA(KAB)).

El usuario B comprueba, aplicando su clave privada, DB, a lo que acaba de

recibir; el certificado de A, CA, su certificado, CB, y la clave pública de A, EA,

con la cual puede calcular la clave de sesión: KAB = EA(X).

A partir de ahora, los usuarios A y B, ya pueden empezar la transmisión segura

con la clave de sesión KAB.

Resumen de las transacciones para evitar el ataque de impersonación:

T A

→ CA = DT(IdA,EA,TP); CB = DT(IdB,EB,TP) →

A B

→ EB(CA,CB,X = DA(KAB)) →

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 111: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 15 Protocolos criptográficos

2. Protocolos de autenticación.

Los protocolos de autenticación permiten verificar la identidad de un usuario

A, ante un usuario B, de forma que B pueda confirmar que es el usuario A

quien le ha envíado un cierto mensaje.

Son protocolos que demuestran la identidad de A a B (en este apartado, lla-

maremos a verificador al usuario B). A veces, la identificación consiste en

demostrar la posesión de un cierto secreto (que puede ser una clave), sin ne-

cesidad de revelarlo.

En general, el usuario A deberá proporcionar una respuesta a un cierto desafío

planteado por el verificador (normalmente, dentro de un plazo de tiempo

determinado). Por esto, a veces, a estos protocolos se los denomina de desafío-

respuesta.

Para la implementación, un protocolo de autenticación debería satisfacer los

requisitos siguientes:

• Tendría que implementar conjuntamente con un protocolo de intercambio

de claves. Es este último el que demuestra que no solo todos los participan-

tes son quienes dicen ser, sino que, además, puede haber un intercambio

de información.

• Tendrían que encadenarse los mensajes que se van cruzando dentro de una

ejecución concreta de forma que no pudieran ser sacados de contexto.

• Tendría que evitarse la utilización de sellados de tiempo, lo que se conoce

como timestamps, como herramienta de seguridad, aun cuando son útiles

desde un punto de vista administrativo y documental.

• Tendría que evitarse que la revelación de las claves intercambiadas en una

sesión comprometiera el secreto de las claves intercambiadas previamente.

• Tendría que poderse añadir a los datos a cifrar, en cada paso, algún otro

dato seleccionado aleatoriamente por los participantes lo que se conoce

como add your own salt, de manera que se impedirá que la otra parte dis-

ponga de cálculos que de otra manera no podría efectuar.

.

Definición 2.1 (Protocolo de autenticación seguro).

Diremos que un protocolo de autenticación es seguro si, en el momento

en que un usuario acepta la identidad del otro, los registros que ambos

han guardado de la sesión de autenticación coinciden. Y, además, no

debe ser computacionalmente eficiente que un tercer usuario pueda re-

cuperar el desafío aceptado.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 112: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 16 Protocolos criptográficos

.

Definición 2.2 (Protocolo de autenticación directo).

Diremos que el protocolo es de autenticación directa si acaba inter-

cambiando mensajes entre los participantes usando las claves generadas

previamente.

Ejemplo 2.1.

Veremos dos protocolos de desafío-respuesta y, en ambos casos, usaremos un sistema

criptográfico de clave pública.

Protocolo 1:

Supongamos que A, para identificarse, quiere demostrar a B que posee la clave de desci-

frado DA, de un sistema criptográfico de clave pública.

• B → A. El verificador B, envía a A: (IdB,d = (EA(RB)), donde d es el desafío y RB un

número aleatorio escogido por B.

• A→ B. El usuario A, dentro del plazo establecido, con su clave privada DA, recupera

RB = DA(d), y lo envía a B.

El verificador B, aceptará la identificación de A si el valor recibido coincide con RB que él

mismo había enviado.

Resumen de las transacciones del protocolo:

A B

← IdB,d = (EA(RB) ←

→ RB = DA(d) →

Protocolo 2:

• B→ A. El verificador B, envía a A: (IdB,RB), donde RB es un número escogido por B.

• A→ B. El usuario A, dentro del plazo establecido, usando su clave privada DA envía:

(RA,IdB,DA(RA,RB,IdB)), donde RA es un número escogido por A, y lo envía a B.

El verificador B, aplicará, con la clave pública de A, EA a la última componente del vector

recibido y comprobará la coincidencia de IdB y RA con las dos primeras componentes del

vector recibido y, además, que RB coincide con el que él mismo le había enviado.

Resumen de las transacciones del protocolo:

A B

← IdB,RB ←

→ RA,IdB,DA(RA,RB,IdB) →

2.1. Protocolo de tres pasos de Shamir

Este protocolo permite el envío de información secreta de A a B, sin intercam-

bio previo de claves, a la vez que B tendrá la certeza de que el emisor es A.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 113: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 17 Protocolos criptográficos

Para llevar a cabo este protocolo necesitamos una función criptográfica que

sea conmutativa para cada pareja de usuarios, EA · EB = EB · EA.

Protocolo

• A → B. El usuario A cifra con su clave pública el mensaje m: EA(m), y lo

envía a B.

El usuario B no puede calcular m, puesto que no conoce DA.

• B → A. El usuario B cifra con su clave pública lo que acaba de recibir:

EB(EA(m)), y lo envía a A.

• A→ B. El usuario A, debido a la propiedad conmutativa presupuesta, pue-

de descifrar con su clave privada lo que ha recibido y recuperar EB(m), que

envía a B. Efectivamente: DA(EB(EA(m)) = DA(EA(EB(m)) = EB(m)

Ahora B puede conocer m, descifrando con su clave privada lo que ha obteni-

do: m = DB(EB(m))) y, al mismo tiempo, estará seguro de que este mensaje lo

ha enviado A.

Resumen de las transacciones del protocolo:

A B

→ EA(m) →

← EB(EA(m)) ←

→ EB(m) →

Nota

Este esquema no asegura la autenticación ni, en general, el secreto como se puede ver en

el siguiente ejemplo.

Ejemplo 2.2.

Usaremos el sistema criptográfico de clave pública, de Pohlig-Hellman que, basando su

seguridad en el problema del logaritmo discreto, consiste en:

• Escoger un grupo multiplicativo Z∗p , donde p es un número primo grande.

• Cada usuario elige un valor eU , relativamente primo con φ(p) = p–1 y calcula dU = e–1U

(mod φ(p)). La clave secreta de cada usuario será el valor dU .

• Para un mensaje m y un criptograma c:

Cifrado: EA(m) = meA (mod p) y

Descifrado: DA(c) = cdA (mod p)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 114: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 18 Protocolos criptográficos

Evidentemente, este sistema criptográfico de clave pública cumple la condición mencio-

nada EA · EB = EB · EA.

Por lo tanto, es seguro respecto al secreto, pero no desde el punto de vista de la autenti-

cación, como veremos en el ataque de impersonación de Massey-Omura.

Empecemos con un ejemplo numérico de este protocolo:

Tomando p = 103; si el usuario A escoge eA = 19 (dA = e–1A (mod φ(p)) = 19–1 (mod 102) =

43) y el usuario B escoge eB = 23 (dB = e–1B (mod φ(p)) = 23–1 (mod 102) = 71);

suponiendo que el mensaje que A quiere enviar a B es m = 10, el protocolo de tres pasos

de Shamir sería el siguiente:

• A→ B. El usuario A envía a B: EA(m) = 1019 (mod 103) = 3.

El usuario B no puede calcular m = 10, puesto que no conoce DA.

• B→ A. El usuario B calcula EB(EA(m)) = EB(3) = 323 (mod 103) = 95.

• A→ B. El usuario A puede calcular el valor de EB(m), mediante su clave privada DA:

EB(m) = DA(EB(EA(m) = DA(95) = 9543 (mod 103) = 27. El usuario A envía el valor 27

a B.

Este valor coincide, efectivamente, con EB(10) = 1023 (mod 103) = 27.

Ataque de impersonación de Massey-Omura

Veamos ahora, como en el ejemplo anterior, que un espía C se puede interpo-

ner entre los dos usuarios A y B violando el secreto de la transmisión.

Este tipo de ataques, también son conocidos como man-in-the-middle.

Protocolo

Si el usuario A quiere enviar un mensaje m, cifrado, al usuario B, calcula

EA(m) = meA (mod p).

• A→ B. El usuario A envía EA(m) a B

Si un espía C intercepta este mensaje cifrado puede retornar a A:

EC(EA(m)) = (meA)eC (mod p)

• A← C. el espía C envía EC(EA(m)) a A.

El usuario A no té ningún mecanismo para comprobar que lo que recibe sea

de B.

Si A no desconfía, sigue con el tercer paso del protocolo de tres pasos de Sha-

mir:

DA((meA)eC) (mod p) = ((meA)eC)dA (mod p) = meC (mod p).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 115: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 19 Protocolos criptográficos

• A → B. El usuario A piensa que envía EB(m) y, en cambio, está enviando

EC(m) = meC (mod p).

El espía C al recibir este valor, y dado que él conoce DC, puede calcular: (meC)dC

(mod p) = m.

De este modo el espía C ha podido conocer el mensaje m que A quería enviar

a B.

Resumen de las transacciones del ataque de impersonación

A C

← EC(EA(m))) ←

→ EC(m) →

Ejemplo 2.3.

Usaremos el mismo sistema criptográfico de clave pública, de Pohlig-Hellman que en el

ejemplo anterior.

Tomemos p = 103; ya conocemos las claves públicas y privadas de A y B, respectivamente:

{eA = 19,dA = 43} y {eB = 23,dB = 71}.

Suponiendo que los parámetros del espía C sean {eC = 5, dC = 41} el ataque de autenticación

seguiría los siguientes pasos. Supongamos que el mensaje que se quiere enviar es m = 10:

• A→ B. El usuario A calcula EA(m) = 1019 (mod 103) = 3 y lo envía a B.

El espía C intercepta este mensaje y calcula:

EC(EA(m)) = (meA )eC (mod p) = 35 (mod 103) = 37.

• A← C. El espía C envía a A: EC(EA(m)) = 37.

El usuario A no tiene ningún mecanismo para comprobar que lo que recibe es de B y, al no

desconfiar, descifra el mensaje recibido, mediante su clave privada dA:

DA(EC(EA(m)) = DA(37) = 3743 (mod 103) = 90

• A → B. El usuario A piensa que envía a B el valor 90 = DA(EB(EA(m)) = meB (mod p),

pero en realidad está enviando DA(EC(EA(m)) = EC(m).

El espía C recibe este valor y dado que él posee dC puede calcular: (meC )dC (mod p) = m. Para

ello calcula: DC(90) = 9041 (mod 103) = 10; y, por tanto, C conoce el mensaje m = 10 que Aenviaba a B.

2.2. Protocolo de Omura

Este es un protocolo semejante al de Diffie-Hellman de acuerdo de claves,

que permite la autenticación de dos usuarios, sin que nadie más que ellos

intervenga.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 116: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 20 Protocolos criptográficos

Sea α ∈ Zp un elemento primitivo y supongamos que cada usuario U tiene una

clave secreta xU y una clave pública yU = αxU (mod p).

Protocolo

Una vez que A ha informado a B que él es A y que lo quiere probar, el protocolo

consiste en los dos pasos siguientes:

• B→ A. El usuario B escoge al azar un valor x, calcula y = αx (mod p) y envía

y a A.

• A→ B. El usuario A calcula yxA (mod p) y envía el resultado a B.

El usuario B verifica la igualdad entre lo que acaba de recibir (yxA (mod p) y

el cálculo a partir de la clave pública de A y el valor x por él escogido ((yA)x

(mod p)). En caso de igualdad, acepta la autenticación de A y, de lo contrario,

la rechaza.

Resumen de las transacciones del protocolo

A B

← y = αx (mod p) ←

→ yxA (mod p) →

Ejemplo 2.4.

Utilizamos los parámetros del ejemplo 1.1.

Sea el cuerpo Zp, con p = 1999 y el elemento primitivo α = 33.

Supongamos las claves públicas y privadas de A y B, respectivamente:

{xA = 47, yA = αxA (mod p) = 1343, xB = 117, yB = αxB (mod p) = 1991}

Los pasos del protocolo son (suponiendo que el usuario B ha sido avisado de que el

usuario A quería autenticarse):

• B→ A. B escoge el valor x = 13, calcula y = α13 (mod 1999) = 319 y lo envía a A.

• A→ B. A calcula yxA (mod p) = 31947 (mod 1999) = 1465 y envía el resultado a B.

El usuario B verifica si el valor recibido coincide con = (yA)x (mod p). Efectivamente:

134313 (mod 1999) = 1465 y el usuario B da por autenticado al usuario A.

2.3. Protocolo de Needham-Schroeder

Este es un protocolo de autenticación e intercambio de claves, usando un

sistema criptográfico de clave pública y mediante un centro de distribución de

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 117: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 21 Protocolos criptográficos

claves, KDC, gestionado por la autoridad pública T, que sigue los siguientes

pasos.

Protocolo

• A → T. El usuario A envía a T: DA(IdA,IdB,RA), donde RA es un número

aleatorio escogido por A.

• T → A. La autoridad T devuelve a A: EA(RA,IdB,KAB,EB(KAB,IdA)), donde KAB

es la clave de sesión, generada por el KDC, que han de utilizar A y B en su

intercambio.

• A→ B. El usuario A envía EB(KAB,IdA) a B.

• B → A. El usuario B envía, cifrando con la clave de sesión: EKAB(RB) a A,

donde RB es un número aleatorio escogido por B.

• A→ B. El usuario A devuelve EKAB(RB – 1) a B.

Cuando el usuario B, descifrando con la clave de sesión, KAB, recibe el valor de

RB – 1, da por autenticado al usuario A.

Resumen de las transacciones del protocolo:

A T

→ DA(IdA,IdB,RA) →

← EA(RA,IdB,KAB,EB(KAB,IdA)) ←

A B

→ EB(KAB,IdA) →

← EKAB(RB) ←

→ EKAB(RB – 1) →

2.4. Protocolo de Kerberos

Este es un protocolo de distribución de claves de sesión, mediante un centro

de distribución de claves, KDC, que proporciona autenticación del usuario

y establece la clave de sesión entre dos usuarios A y B, usando un sistema

criptográfico de clave privada y terceras partes de confianza.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 118: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 22 Protocolos criptográficos

Hay otras versiones del protocolo para poder utilizar sistemas criptográficos

de clave pública.

Consideramos T, el servidor de autenticación Kerberos, como tercera parte de

confianza.

El protocolo de Kerberos se basa en el protocolo que acabamos de ver de

Needham-Schroeder. Se usan vales y sellado de tiempo para asegurar la iden-

tidad de los usuarios.

La utilización de los vales y del periodo de validez de la clave KAB evita que

pueda haber ataques usando claves de sesión utilizadas previamente.

Autenticación Kerberos

Kerberos permite laautenticación de A ante B.Incluye sellado de tiempo yuna autoridad decertificación on-line, quecomparte una clave privadacon cada usuario para hacerlas operaciones de cifradoEAT ,EBT . El valeB vaacompañado delautenticador.

Protocolo

• A→ T. El usuario A envía T: (IdA,IdB,RA,TSA), donde RA es un valor aleato-

rio escogido por A y TSA es un sellado de tiempo de A.

• T → A. El servidor de autenticación envía a A: (valeB,EAT(KAB,RA,L,IdB),

donde EAT es la operación de cifrar con la clave privada que comparten A y

T, L indica el periodo de validez de la clave KAB y el valeB = EBT(KAB,IdA,L).

• A → B. El usuario A envía a B: (valeB,autenticador), donde autenticador =

EKAB(IdA,TSA), creado por A y que contiene el sellado de tiempo, TSA cifrado

con la clave de sesión KAB.

• B→ A. El usuario B envía a A: EKAB(IdA,TSA)

A partir de aquí, los usuarios A y B comparten una clave de sesión KAB y están

mutuamente autenticados.

Resumen de las transacciones del protocolo:

A T

→ IdA,IdB,RA,TSA →

← valeB,EAT(k,NA,L,IdB) ←

A B

→ valeB,autenticador →

← EKAB(TSA) ←

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 119: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 23 Protocolos criptográficos

2.5. Protocolo STS

Este protocolo responde al acrónimo (station-to-station) y fue creado por Diffie,

Oorschot, Wiener como una propuesta de protocolo seguro para la autentica-

ción y el intercambio de claves, basado en un sistema criptográfico de clave

pública.

Consideraciones dediseño

Los valores p y α los escogecada usuario y mejor si sondiferentes, puesto que losataques más eficientes allogaritmo discreto se basanen la construcción de tablas apartir del conocimiento de p.En el segundo paso B envía aA su certificadoCertB = (IdB,EB,DT (B,EB)). Deeste modo A podrá calcularEB y comprobar que yB secorresponde con el hashfirmado DB{yB,yA}. Esto daautenticidad a B.El usuario B tiene que utilizarlos parámetros pasados por Aen el primer paso, en lugarde buscarlos en un directoriopúblico. En el tercer paso elcertificado de A asegura a Bque estos parámetros soncorrectos.

Supondremos que, al igual que en el protocolo de Diffie-Hellman, todos los

usuarios conocen el valor del número primo p y del elemento primitivo α ∈ Zp

y que cada usuario U sube (IdU ,yU) al directorio público TPD (recordar que cada

usuario había escogido un valor xU ∈ Z∗p , que guardaba secreto, y calculaba el

valor público yU = αxU (mod).

Protocolo

• A → B. El usuario A escoge un valor xA y calcula yA = αxA (mod p). Enton-

ces, envía a B: (α,p,yA).

• B→ A. El usuario B escoge un valor xB y calcula yB = αxB (mod p) así como

también calcula la clave de sesión KAB = yxB

A (mod p).

Entonces, envía a A: (yB,CertB,EKAB(DB{yB,yA}),

donde {yB,yA} significa el resultado de aplicar una función de hash a los

parámetros yB,yA.

• A → B. El usuario A también puede calcular la clave de sesión KAB = yxA

B

(mod p) y envía a A: (CertA,EKAB(DA{yA,yB})

En este protocolo, CertA = (IdA,EA,α,p,DT(IdA,EA,α,p)), donde DT(IdA,EA,α,p) es

la firma de una autoridad de certificación T sobre estos parámetros.

En el último paso del protocolo, el usuario A queda autenticado ante el usua-

rio B.

Resumen de las transacciones del protocolo:

A B

→ (α,p,yA) →

← yB,CertB,EKAB(DB{yB,yA}) ←

→ CertA,EKAB(DA{yA,yB}) →

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 120: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 24 Protocolos criptográficos

2.6. Otros protocolos: ISO, CCITT X.509, SSL

Para acabar este apartado, veamos otros protocolos que se pueden considerar

estándares:

1) ISO (CD 9798-3. 1991). Es equivalente al protocolo STS en el cual susti-

tuimos las exponenciales αx,αy por valores aleatorios RA,RB. Sin embargo, de

este modo obtenemos un protocolo de autenticación pero sin intercambio de

claves.

Protocolo

• A→ B. El usuario A envía RA a B.

• B→ A. El usuario B envía RA, junto con (CertB,DB({RB,RA})), a A.

• A→ B. El usuario A envía B: CertA,DA({RB,RA})

Resumen de las transacciones del protocolo:

A B

→ RA →

← RA,CertB,DB({RB,RA}) ←

→ CertA,DA{RB,RA} →

2) CCITT X.509. Es un algoritmo de intercambio de claves, con autenticación,

de tres pasos y se basa en un sistema criptográfico de clave pública.

El usuario A que quiere intercambiar una clave KAB, con B, tiene una copia

autenticada de EB.

Protocolo

• A→ B. El usuario A envía a B: (SA,CertA,DA(SA)), donde

SA = (RA,IdA,EB(KAB)), y RA es un número aleatorio escogido por A.

• B→ A. El usuario B envía a A: (SB,CertB,DB(SB)), donde

SB = (RB,IdB,EA(KAB)), y RB es un número aleatorio escogido por B.

• A→ B. El usuario A envía a B: (RB,IdB,DA(SB,IdB)).

Evidentemente, B ha podido autenticar A y descifrando: DB(EB(KAB) = KAB,

obtiene la clave de sesión KAB que empleará para comunicarse con A.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 121: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 25 Protocolos criptográficos

Resumen de las transacciones del protocolo:

A B

→ SA,CertA,DA(SA) →

← SB,CertB,DB(SB) ←

→ RB,IdB,DA(SB,IdB) →

3) SSL (Secure Socket Layer). Es un protocolo abierto creado por Netscape y

ha llegado a ser un estándar para Internet. Se implementa entre la capa de

aplicación (HTTP, Telnet, FTP,...) y la capa de transporte (TCP).

El SSL es transparente para la aplicación que lo utiliza y añade los siguientes

servicios seguros a una conexión TCP/IP:

• Cifrado de datos usando los sistemas criptográficos de clave privada: DES,

RC4.

• Autenticación, usando los sistemas criptográficos de clave pública: RSA,

DSA. Implementa tanto la autenticación mutua emisor/receptor como la

de servidor/cliente.

• Integridad de los datos mediante funciones hash MAC (message authentica-

tion code): SHA, MD5.

Fases del SSL

• Fragmentación delmensaje en bloques demedida menor que 214bytes. TCP añadefiabilidad.

• Posibilidad decompresión (opcional).

• Cálculo de un MAC.• Cifrado de los datos y del

MAC (messageauthentication code).

• Transmisión por TCP.

El protocolo SSL sigue los siguientes pasos:

1) A→ B. El usuario A envía un valor aleatorio RA a B.

2) B→ A. El usuario B envía a A: (RB,CertB,DB(RB,RA)).

3) A→ B. El usuario A envía, opcionalmente, a B: (CertA,DA(RA,RB)).

4) B→ A. El usuario B escoge una clave de sesión KAB y envía a A: (EA(KAB),R′A).

5) A→ B. El usuario A envía a B: EKAB(R′

A).

En este último paso, el usuario B cifra con la clave KAB, el valor aleatorio R′A

que le había enviado A en el paso anterior.

Resumen de las transacciones del protocolo:

Observaciones

• El paso tercero esopcional.

• En el cuarto paso, B haescogido la clave desesión, KAB.

• En el quinto paso, A, cifracon la clave KAB, el valoraleatorio RA que le habíaenviado B, en el pasoanterior.

A B

→ RA →

← RB,CertB,DB(RB,RA) ←

→ CertA,DA(RA,RB) →

← EA(KAB),R′A ←

→ EKAB(R′

A) →

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 122: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 26 Protocolos criptográficos

2.7. Protocolos de identificación de conocimiento nulo

En los protocolos de desafío-respuesta, vistos anteriormente, aunque el usua-

rio A no revele el secreto, el usuario B puede conseguir alguna información

durante el proceso.

Condiciones de unaprueba de conocimientonulo

1) Si A posee el secreto,siempre podrá convencer a Bque acepte su demostración.

2) Si A no posee el secreto,la probabilidad que engañe aB puede hacerse tan pequeñacomo se quiera, repitiendo elprocedimiento el suficientenúmero de veces.

.

Definición 2.3 (Prueba de conocimiento nulo).

Una prueba de conocimiento nulo es un proceso interactivo donde el

candidato convence al verificador, hasta un nivel aceptable, que cono-

ce, o tiene algún secreto, sin que el verificador pueda extraer ninguna

información de la prueba que no pudiera haber extraído por cualquier

otro procedimiento, con o sin la participación del candidato o, incluso,

si este miente en la prueba.

Las pruebas de conocimiento nulo adoptan la forma de una demostración

interactiva, implicando un cierto número de etapas y, en cada una de ellas, se

seguirá el siguiente protocolo:

Protocolo básico

• A → B. El usuario A quiere probar algo al verificador B y le envía algún

elemento para su identificación.

• B→ A. El verificador B presenta un desafío a A.

• A→ B. El usuario A tiene que efectuar unos cálculos privadamente y enviar

al verificador B una respuesta al desafío planteado.

Si alguna de las respuestas es incorrecta, B deduce que A no dispone del secreto

y rechaza su identidad. Por el contrario, si en todas las etapas la respuesta es

correcta, entonces B acepta que A conoce (o tiene) el secreto.

Protocolo de Fiat-Shamir

Sea n = p1 · p2, que todo el mundo puede conocer, generado por una terce-

ra parte de confianza T y que mantiene secretos los valores de los números

primos p1 y p2.

Cada usuario U elige un elemento xU ∈ Z∗n y calcula yU = x2

U (mod n). Así, la

clave secreta de A será xA y la clave pública yA, que se registra en el directorio

público de T.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 123: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 27 Protocolos criptográficos

Protocolo

• A→ B. El usuario A genera al azar un valor r ∈ Z∗n, calcula y1 = r2 (mod n)

y lo envía a B, junto con un mensaje diciendo que quiere probar su iden-

tidad.

• B→ A. El verificador B envía a A un bit, al azar: y2 ∈ {0,1}.

• A→ B El usuario A calcula y3 de la siguiente manera:

si y2 = 0, entonces y3 = r (mod n)

si y2 = 1, entonces y3 = r · xA (mod n)

y envía a B el valor y3.

Finalmente, la verificación la lleva a cabo el usuario B que comprueba que

si y2 = 0, entonces y23 = r2 (mod n) = y1

si y2 = 1, entonces y23 = r2 · yA (mod n) = y1 · yA (mod n)

Si no se cumple la verificación, B rechaza la identidad de A.

Impersonación

Un usuario C impersonando a

A puede enviar a B y1 = r2

yA

(mod n). Entonces, podríaresponder correctamentey3 = r, solo en el supuesto deque y2 = 1. Si y2 = 0 nopodrá efectuar los cálculos.Por lo tanto, solo tiene unaprobabilidad de acierto de0,5 en cada ronda.

Este protocolo tiene que llevarse a cabo unas cuantas veces. Si se repite k veces,

la probabilidad que alguien impersone a A es 2–k, y puede ser tan pequeña

como queramos, dependiente del valor de k.

Resumen de las transacciones del protocolo:

A B

→ y1 = r2 (mod n) →

← y2 ∈ {0,1} ←

→ y3 →

Ejemplo 2.5. Supongamos los valores, n = p1 · p2 = 5 · 11 = 55; la clave secreta de A,

xA = 13, y la clave pública de A, yA = x2A (mod n) = 132 (mod 55) = 4

Con estas premisas, el protocolo sigue los siguientes pasos:

• A→ B. El usuario A toma el valor r = 30 y calcula y1 = r2 (mod n) = 302 (mod 55) =

20 y lo envía a B, junto con un mensaje diciendo que quiere probar su identidad.

• B→ A. El verificador B envía a A un bit, al azar: y2 ∈ {0,1}. Supongamos y2 = 1.

• A→ B. El usuario A calcula y3.

Como que y2 = 1, entonces y3 = r · xA (mod n) = 30 · 13 (mod 55) = 5 y lo envía a B.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 124: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 28 Protocolos criptográficos

Finalmente, la verificación la lleva a cabo el usuario B, que comprueba: puesto que y2 = 1,

si y23 = r2 · yA (mod n) = y1 · yA (mod n).

Efectivamente: 20 · 4 (mod 55) = 25 = 52, y da por buena la identidad de A.

Protocolo de Schnorr

Este protocolo de identificación se basa en el problema del logaritmo discreto

y hace intervenir a una tercera parte de confianza que desempeña las siguien-

tes acciones:

Escoge dos primos p y q, de unos 1024 bits y 160 bits respectivamente, tales

que q | p – 1. También escoge un valor β, tal que 1 ≤ β ≤ p – 1, de orden q, y un

parámetro de seguridad t, tal que: t ≥ 40 y 2t ≤ q.

La autoridad T envía a cada participante, firmada mediante su clave privada,

DT(p,q,β).

Por otra parte, el usuario que se quiere identificar, A, dispone de su identifica-

ción IdA, su clave privada, que consiste en un número a tal que 0 ≤ a ≤ q – 1

y la correspondiente clave pública es v = β–a (mod p); así como también del

certificado emitido por T: CertA = (IdA,v,DT(IdA,v)).

Protocolo

A→ B. El usuario A escoge aleatoriamente un valor r, tal que 1 ≤ r ≤ (p – 1) y

envía a B el CertA y x = βr (mod p)

B→ A. Después de que B ha verificado la clave pública de A, le envía el valor

e tal que 1 ≤ e ≤ 2t .

A→ B. El usuario A envía al verificador B: y = (a · e + r) (mod q).

El verificador B acepta la identidad de A si βy · ve (mod p) = x.

Efectivamente, como β es de orden q, entonces:

βy · ve (mod p) = βa·e+r · ve (mod p) = βa·e · βr · β–a·e (mod p) = βr (mod p) = x

Resumen de las transacciones del protocolo:

A B

→ CertA,x = βr (mod p) →

← e : 1 ≤ e ≤ 2t ←

→ y = (a · e + r) (mod q) →

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 125: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 29 Protocolos criptográficos

Ejemplo 2.6.

Supongamos que una tercera parte de confianza T ha escogido:

• Los valores de los primos p = 103 y q = 17. Obsérvese que 10217

= 6.

• Para encontrar el valor de β busca un elemento primitivo en Zp; por ejemplo α = 6

y toma β = α6 (mod 103) = 100. Efectivamente, de la construcción se deriva que el

orden de β es 17.

• Para simplificar el ejemplo, omitiremos sin perder rigor el parámetro de seguridad t,t ≥ 40 y 2t ≤ q.

La autoridad T envía a cada participante copia autenticada de (p = 103,q = 17,β = 100).

Los parámetros de A, aparte del identificador IdA, son su clave privada que suponemos

a = 11 y su correspondiente clave pública v = 100–11 (mod 103) = 8. Así, el certificado

emitido por T es: CertA = (IdA,8,DT (IdA,8)).

Protocolo

A→ B. El usuario A escoge aleatoriamente un valor r = 5 y envía a B el CertA y x = 1005

(mod 103) = 66.

B → A. Después de que B ha verificado la clave pública de A, le envía el valor que ha

escogido: e = 13.

A→ B. El usuario A envía al verificador B: y = 11 · 13 + 5 (mod 17) = 12.

El verificador B acepta la identidad de A puesto que βy · ve (mod p) = 10012 · 813

(mod 103) = 64 · 30 (mod 103) = 66 que coincide con el valor de x = 66 previamen-

te calculado.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 126: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 30 Protocolos criptográficos

3. Transacciones electrónicas seguras:dinero electrónico

.

Un problema usual en el mundo de las transacciones es que un usuario A

quiera hacer una transacción con un banco, B, de forma que, de una parte, B

debe poder autenticar a A y, por otra parte, A debe tener un certificado de B

que le asegure que este no negará la transacción ya realizada.

El problema es fácil de resolver si utilizamos las firmas electrónicas como sus-

titutos del dinero, como propone David Chaum (a finales de los ochenta).

3.1. Protocolo de Chaum

Supongamos un comprador, A, que quiere interactuar con B, que ahora consi-

deraremos que es el banco, para pedirle poner disponer de una cierta cantidad

de dinero que, posiblemente más tarde, querrá utilizar para poder pagar algu-

na compra.

Protocolo

• A → B. El usuario A genera, al azar, un número m grande y crea un docu-

mento personalizado, docAB, en el cual explica al banco que quiere dispo-

ner de X e. Firma el número escogido, calculando DA(m) y usando la clave

pública de B le envía: (IdA,EB(DA(m)),docAB)

• B → A. El banco recibe los mensajes, identifica A y lee docAB. Con la clave

pública de A, y con su clave privada, puede recuperar el número m. Ahora

ya puede descontar los X e de la cuenta de A. El banco firmará el número

m, añadiendo un documento docBA firmado, DB(docBA). Enviará a A estas

dos firmas, cifradas con la clave pública de A: (EA(DB(m)),EA(DB(docBA))).

Al usuario A le interesa tener (DB(docBA), y no solo docBA, para poder demostrar

ante terceros, en caso necesario, que el banco le ha descontado X e de su

cuenta y que estos corresponden a su número m.

Si ahora hacemos intervenir a un vendedor V, cuando A va a comprar a V, el

correspondiente protocolo seguirá los siguientes pasos:

• A → V. El comprador A envía a V: (IdA,DB(m),DB(docBA)). El vendedor

podrá autenticar los mensajes firmados por B y conocer la identidad del

comprador A y el hecho de que dispone de un valor de X e.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 127: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 31 Protocolos criptográficos

Nota

El comprador A podría enviar estos valores cifrados, con EV , y firmados con DA:

DA(EV (DB(m))) y DA(EV (DB(docBA))).

• V → B. El vendedor V envía al banco: DV(DB(m)). El banco comprueba que

el mensaje es correcto (correspondiente a un número firmado previamente

por el propio banco); deposita en la cuenta de V los X e y escribe en una

lista de números caducados el número m, para evitar que le vuelva a ser

presentado otra vez.

• B→ V. El banco envía firmado un docBV de la transacción hecha al vende-

dor V: DB(docBV).

A partir de este momento, V ya puede dar la mercancía a A, junto con un

documento firmado, DV(docVA) de haber cobrado del banco.

Resumen de las transacciones del protocolo:

A B

→ IdA,EB(DA(m)),docAB →

← EA(DB(m)),EA(DB(docBA)) ←

A V

→ IdA,DB(m),DB(docBA) →

B V

← DV(DB(m)),DV(DB(docBA)) ←

→ DB(docBV) →

Ejemplo 3.1.

Utilizemos como parámetros de los criptosistemas RSA del usuario A, del banco B y del

vendedor V, respectivamente:

• nA = 7 · 17 = 119 y eA = 5; entonces φ(nA) = 6 · 16 = 96 y dA= 5–1 (mod 96) = 77.

Por lo tanto: clave pública (eA,nA) = (5,119) y clave secreta(dA,nA) = (77,119).

• nB = 5 · 11 = 55 y eB = 3; entonces φ(nB) = 4 · 10 = 40 y dB= 3–1 (mod 40) = 27.

Por lo tanto: clave pública (eB,nB) = (3,55) y clave secreta (dB,nB) = (27,55).

• nV = 3 · 19 = 57 y eV = 7; entonces φ(nV ) = 2 · 18 = 36 y dV= 7–1 (mod 36) = 31.

Por lo tanto: clave pública (eV ,nV ) = (7,57) y clave secreta (dV ,nV ) = (31,57).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 128: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 32 Protocolos criptográficos

El protocolo de Chaum seguirá los siguientes pasos:

Protocolo

El usuario A hará:

Generar al azar m = 8.

Calcular DA(m) = mdA (mod nA) = 877 (mod 119) = 43.

Generar un documento personalizado, docAB en el que explica al banco que quiere dis-

poner de 300 e.

• A→ B. El comprador A enviará al banco: (IdA,EB(DA(m)),docAB).

Es decir: su identidad, EB(DA(m)) = EB(43) = 433 (mod 55) = 32 y el documento

docAB.

El banco, B, una vez recibido EB(DA(m)) = 32, hará:

Aplicar DB(EB(DA(m))) = DB(32) = 3227 (mod 55) = 43(= DA(m)).

Aplicar EA(DA(m)) = EA(43) = 435 (mod 119) = 8(= m).

Descontar 300 e de la cuenta de A y firmar el número m:

DB(m) = DB(8) = 827 (mod 55) = 2.

Además, el banco redacta un documento, docBA y lo envía firmado a A: DB(docBA).

• B→ A. El banco envía a A:

EA(DB(m)) = EA(2) = 25 (mod 119) = 32.

EA(DB(docBA)).

Supongamos ahora la intervención del vendedor V, con cuentas en el mismo ban-

co B.

Si A hace un pedido al vendedor por el valor de 300 e, le entrega DB(m) = 2 y

DB(docBA).

• V → B. El vendedor entrega al banco:

DV (DB(m)) = DV (2) = 231 (mod 57) = 41 y DV (DB(docBA)).

El banco hará:

Comprobar que el mensaje es correcto EV (DV (DB(m))) = DB(m) y que también lo es

el documento docVB.

Depositar en la cuenta del vendedor 300 e.

Escribir en una lista de números caducados el número m para evitar que se pueda

volver a usar.

• B → V. El banco envía firmado un docBV de la transacción hecha al vendedor V:

DB(docBV )

A partir de este momento, V ya puede dar la mercancía a A, junto con un documento

firmado, DV (docVA) de haber cobrado del banco.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 129: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 33 Protocolos criptográficos

3.2. Transacciones sin rastro. Firmas digitales ciegas de Chaum

En el protocolo que acabamos de describir hay autenticidad pero no privacidad.

El banco sabe (por el número m del billete) que A ha comprado a V y, en

general, podrá seguir el rastro de las operaciones comerciales de A.

Para obviar este problema, D. Chaum (1992) propone una variante del proto-

colo usando firmas digitales ciegas, que consiste en hacer firmar al banco un

documento que contiene un número escondido.

De este modo, el usuario A sacará a la luz el número y lo hará servir junto

con el documento firmado por el banco, cuando le convenga. Por otra parte,

el banco no sabrá a quién corresponden los números de los billetes que se

utilizan.

Nivel de seguridad de lasfirmas ciegas

Las firmas ciegas garantizanla integridad,confidencialidad yautenticidad de los datos, almismo tiempo que segarantiza el anonimato delcomprador.El comprador está protegidoante posibles actuacionesfraudulentas de falta deentrega de mercancías oservicios por parte devendedores, puesto que encualquier momento elcomprador puede revelar suidentidad y, en este caso,seguir la traza del flujo deldinero.

El método de Chaum es válido para cualquier sistema criptográfico de clave

pública (como RSA) que cumpla: EU(xy) = EU(x)EU(y) y DU(xy) = DU(x)DU (y)

para cualquier usuario U.

Vamos a desarrollar este protocolo suponiendo que estamos usando el cripto-

sistema RSA.

Protocolo

• A → B. El usuario A, antes de dar el número m al banco, selecciona otro

número grande, k, escogido al azar y del cual puede calcular k–1 (mod nB).

El usuario A calcula EB(k) y envía: m · EB(k) (mod nB), firmado y secreto a

B. Es decir, envía a B: EB(DA(m · EB(k)).

• B→ A. El banco descifra y autentica el mensaje recibido y obtiene m ·EB(k)

(mod nB). A continuación firma este mensaje calculando DB(m · EB(k)) =

k · DB(m) (mod nB). (Observar que el banco no conoce el número m que

acaba de firmar, solo conoce k ·DB(m) (mod nB)).

Ahora el banco devuelve, como en el caso general, un documento a A,

docBA, y también el número firmado k ·DB(m) (mod n).

El usuario A calcula k · DB(m) · k–1 (mod nB) = DB(m) y obtiene un número

firmado por el banco que, cuando el vendedor lo presente al banco, será hecho

efectivo y, además, el banco desconocerá al propietario del número del billete.

Resumen de las transacciones del protocolo:

A B

→ EB(DA(m · EB(k))) →

← k ·DB(m) (mod nB),docBA ←

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 130: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 34 Protocolos criptográficos

Simplificación

Para más claridad en lospasos del protocolo, noshemos ahorrado firmarlo ycifrarlo.

El banco no conoce elnúmero que firma

Con esta operación, el bancoha firmado el mensajeoriginal m = 65, sin conocersu valor. Observar que 21 esel mismo valor que obtendríael banco si hubiera firmadocon su clave privada elmensaje m = 65: Es decir:6561 (mod 851) = 21.

Ejemplo 3.2. (Firma ciega de Chaum)

A desea que el Banco, B, le firme el mensaje m = 65.

Supongamos que las claves pública y privada de B son: nB = 851, eB = 13, dB = 61.

(Los parámetros de B son: pB = 23, qB = 37, φ(nB)= 792, todos ellos guardados en un lugar

seguro, junto con dB).

Supongamos que A escoge k = 51, y calcula 51–1 (mod 851) = 267.

• A→ B. El usuario A calcula:

M = m · keB (mod nB) = 65 · 5113 (mod 851) = 65 · 458 (mod 851) = 836 y envía M al

Banco.

• B→ A. El Banco hace:

firma este mensaje recibido, M, con su clave privada:

MdB (mod n)B = 83661 (mod 851) = 220,

y lo envía a A, junto con un documento docBA.

El usuario A, como conoce k–1 (mod nB) = 267, puede calcular: 276·220 (mod 851) = 21,

que es la firma del banco de m, sin que el banco conozca m.

3.3. Sistemas de pago electrónicos

Con la aparición y generalización del comercio electrónico se ha hecho nece-

saria la creación de sistemas electrónicos de pago adaptados a la situación no

presencial de los usuarios involucrados.

Los sistemas de pago electrónico todavía utilizan, mayoritariamente, dinero

asociado a una tarjeta emitida por una entidad financiera, pero hoy ya pode-

mos hablar de dinero electrónico, en el sentido que acabamos de ver, que lo

hace un sistema de pago más adecuado, y más seguro, en las transacciones

electrónicas.

Los sistemas de pago electrónico en la actualidad son, básicamente:

• Cheques electrónicos. Sustitutos de los cheques de papel, consisten en un

mensaje con una firma digital, representando un valor monetario, que se

hace efectivo a través de una tercera parte de confianza y hace uso de las

redes interbancarias existentes.

• Moneda electrónica. Sustituta de la moneda física que debe preservar el

anonimato del comprador, permitiendo realizar pagos que no queden re-

gistrados y no vinculen a los usuarios con sus compras. Cuando la transfe-

rencia se hace off-line, se deberá garantizar la que sea posible la transferen-

cia y la seguridad frente a la falsificación o del uso de la misma moneda en

más de un pago.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 131: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 35 Protocolos criptográficos

• Tarjeta de crédito. Aun cuando todavía es el sistema de pago más utiliza-

do, los receptores se pueden poner en contacto con el banco para verificar

la disponibilidad de fondo, aunque, normalmente, no se realiza la verifi-

cación de la identidad del usuario. A diferencia de la moneda electrónica,

las tarjetas de crédito identifican a su propietario y, además, los pagos se

pueden vincular entre ellos.

• Micropagagos. Diseñados especialmente para reducir los costes de comu-

nicación, almacenamiento y procesamiento relacionados con el pago cuan-

do las cantidades a transferir son pequeñas. De este modo se permite un

cierto relajamiento de las medidas de seguridad, puesto que los riesgos es-

tán más controlados, y en la mayoría de casos el anonimato del usuario

que realiza el pago se sacrifica para reducir costes.

Los sistemas de pago vienen definidos por las reglas mediante las cuales los

participantes en una operación de compra/venta (comprador, bancos emisor

y adquirente, comercio, pasarela de pago y autoridad certificadora) intercam-

bian dinero y productos o servicios.

Los procedimientos, o pasos, en los sistemas de pago con moneda electrónica

son, básicamente:

1) Establecimiento de la cuenta. Es una operación que se realiza una sola

vez, en la cual se vincula la identidad o el seudónimo del comprador a la

nueva cuenta. El comprador dispondrá de un par de claves correspondientes a

un sistema criptográfico de clave pública y de un certificado autenticando su

clave pública.

2) Retirada de fondo: obtención de la moneda electrónica. La entidad fi-

nanciera emisora carga en la cuenta del comprador el valor solicitado pre-

viamente para llevar a cabo una compra o el valor de la moneda electrónica

solicitada. La moneda electrónica puede ser de débito si se extrae su valor de

la cuenta del usuario antes del pago (este procedimiento requiere la autenti-

cación del usuario), o de crédito si el pago se hace posteriormente y, en este

caso, la identificación de la cuenta del pagador se realiza durante el depósito.

3) Pago. El comprador entrega la información necesaria y suficiente al comer-

cio para hacer el pago de los bienes que quiere comprar. También puede dar

esta información a la pasarela de pago.

4) Depósito. La entidad financiera adquirente recibe la información y cobra

de la entidad emisora, a través de la red financiera una vez ha comprobado

que no se ha depositado dos veces la misma moneda. Finalmente, ingresa el

valor de la compra, o de las monedas electrónicas implicadas, en la cuenta del

comercio. En sistemas que permiten la transferencia de las monedas electró-

nicas también puede optar por transferir la moneda a un tercero.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 132: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 36 Protocolos criptográficos

Una primera clasificación de los sistemas de pago puede venir marcada por

el importe a transferir. Así hablaremos de micropagos, cuando el importe de

la operación es inferior a los 10 e. Por encima de esta cantidad se hablará

de macropagos. Aunque todo sistema de pago debe satisfacer una serie de

requisitos de seguridad, es obvio que en el caso de micropagos estos serán

más laxos para que el coste de la seguridad sea proporcionado al valor que

se transfiere. No es lo mismo proteger un pago de 10 e, que proteger uno de

100.000 e.

Una segunda clasificación es la de sistemas on-line y sistemas off-line. Los pro-

tocolos on-line exigen el acceso a un servidor para cada transacción.

Para los sistemas de pago on-line, el concepto de dinero electrónico, propuesto

por D. Chaum, permite conjugar las prestaciones que ofrecen las redes tele-

máticas con las propiedades intrínsecas de los sistemas de pago tradicional:

anonimato, privacidad y dificultad de falsificación. La diferencia entre el di-

nero electrónico y el de curso legal actual es su soporte, que pasa de ser físico

a una cadena de bits.

La no falsificación, o evitar el doble uso, del dinero electrónico exige una

verificación, contra una cierta base de datos, para asegurarse de que no haya

sido utilizado previamente. Si la verificación se hace off-line necesita mayor

protección del anonimato, es decir, que no se pueda establecer ningún vínculo

entre el dinero electrónico y la identidad del propietario, que si se hace on-line.

Tal como hemos visto antes, estos sistemas se basan en firmas ciegas.

En general, el dinero electrónico está pensado para ser utilizado en Internet

o, actualmente, en sistemas basados en terminales móviles. Se trata de reem-

plazar las monedas y billetes de curso legal por un sistema informacional,

manteniendo las prestaciones de anonimato y no trazabilidad utilizando crip-

tografía de clave pública. Los billetes y monedas electrónicas se almacenan

localmente, pero se requiere que el usuario tenga una cuenta bancaria asocia-

da, a partir de la que se descontará la cantidad que corresponda al billete o

moneda electrónica.

El funcionamiento general de este sistema es parecido al que se ha descrito en

el protocolo de Chaum:

1) El comprador solicita monedas electrónicas. Estas se identifican con un nú-

mero de serie. Este número permite garantizar la unicidad puesto que permite

detectar duplicidades. El anonimato del propietario de las monedas electróni-

cas se protege mediante firmas ciegas.

2) Una vez el banco ha descontado el valor correspondiente de las monedas

electrónicas entregadas al comprador, estas se almacenan en el terminal del

comprador.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 133: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 37 Protocolos criptográficos

3) Cuando el comprador hace el pedido de bienes o servicios al vendedor, le

entrega las monedas electrónicas correspondientes al valor de la compra.

4) El vendedor, antes de servir el pedido, entrega las monedas electrónicas al

banco y le solicita su validación.

5) El servidor del banco accede a una base de datos donde consta el número

de serie de todas las monedas que han sido utilizadas. Con esta operación se

detecta si ha habido doble uso. Si no hay duplicidad, se responde al vendedor

sobre la autenticidad de las monedas electrónicas y, si se realiza la operación

de compra, automáticamente se ingresa el importe en su cuenta y se añade el

número de serie correspondiente a la base de datos correspondiente.

6) El vendedor entrega los productos al comprador.

A nivel de seguridad, se garantiza la integridad, confidencialidad y autenti-

cidad, al mismo tiempo que se facilita el anonimato del comprador. El com-

prador está protegido ante posibles actuaciones deshonestas de vendedores en

cuanto a no entregas de productos se refiere, puesto que en un momento da-

do el comprador puede desvelar su identidad y en este caso se podría trazar el

flujo del dinero.

Resumen de las transacciones del protocolo:

Comprador Banco

→ solicita monedas electrónicas →

← descuento del valor de las monedas ←

Comprador Comercio

→ pedido de bienes o servicios →

Comercio Banco

→ validación de las monedas electrónicas →

← valída o rechaza ←

Comercio Comprador

→ si el banco valída, sirve bienes o servicios →

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 134: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 38 Protocolos criptográficos

4. Protocolos de transferencia inconsciente.

La transferencia inconsciente o transcordada (oblivius transfer) consiste en la

transferencia de un secreto entre dos usuarios A y B de forma que la proba-

bilidad de que B lo obtenga es de un 50 %, sin que A pueda saber si B lo ha

obtenido, o no.

Estos tipos de protocolos dan lugar a otros protocolos más complejos, como

los de compromiso de bits o los de prueba de conocimiento nulo y, en

general, a los protocolos que permiten la firma electrónica de contratos.

4.1. Protocolo de Rabin

El secreto consiste en la factorizació del valor nA de la clave pública del sistema

RSA de A.

Protocolo

• B → A. El usuario B escoge un valor x, 1 ≤ x ≤ nA – 1, y envía a A: z = x2

(mod nA)

• A→ B. El usuario A calcula las cuatro raíces cuadradas de:

z (mod nA) = {x,nA – x,y,nA – y}

y envía una de ellas a B (esto solo lo puede hacer A, porque conoce los

valores pA y qA, con los cuales ha calculado nA).

Sea v la raíz enviada a B.

El usuario B comprueba si v coincide con y, o con nA – y. Si coincide, se podrá

factorizar nA; de lo contrario no se podrá.

Resumen de las transacciones del protocolo

A B

← z = x2 (mod nA) ←

→ v = z–1/2 (mod nA) →

Nota

Hay una equivalencia computacional entre factorizar nA = pA · qA y calcular raíces cua-

dradas en ZnA , como queda justificado en el cuadro y en el teorema siguientes.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 135: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 39 Protocolos criptográficos

.

Cuadrados y raíces cuadradas en Zp, donde p es un número primo

Si β ∈ Zp puede pasar que exista, o no, x ∈ Zp tal que x2 = β.

En el primer caso se dice que β es un residuo cuadrático En el segundo,

se dice que β es un residuo no-cuadrático.

A excepción de 0 ∈ Zp, hay exactamente p–12 residuos cuadráticos (QR)

y p–12 residuos no cuadráticos (QNR) en Zp.

Si β ∈ Zp, es βp–12 =

8

>

>

<

>

>

:

1 si β es QR

–1 si β es QNR

• Es computacionalmente eficiente (hay un algoritmo determinista-

polinomial) saber si β ∈ Zp es QR o QNR.

• No es computacionalmente eficiente encontrar un elemento QNR.

De todos modos, sí hay algoritmos no deterministas de complejidad

polinómica que resuelven el problema de manera sencilla.

• Es computacionalmente eficiente calcular la raíz cuadrada de un ele-

mento QR.

Cuadrados y raícescuadradas en Zn, donden = p1 · p2

Hay exactamente n–14

elementos QR en Zn y cadauno de ellos tiene,exactamente, cuatro raícescuadradas.Ejemplo: En Z15, el elemento4 ∈ Z15 es un QR y tienecuatro raíces, que son:{2,13,7,8}.Los QR en Zn, son aquelloselementos en los que elmódulo p1 y, también, elmódulo p2, son QR.

.

Teorema 4.1. Si n = p1 · p2, donde p1 y p2 son números primos diferen-

tes e impares, y si α y γ son raíces cuadradas, esencialmente diferentes,

(es decir α 6= ±γ), de un cierto QR, entonces:

mcd(α + γ,n) = p1, o mcd(α + γ,n) = p2

Probabilidad de que B

conozca nA es 1/2

Del teorema también sededuce que la probabilidadde que B conozca nA = p1 · p2

es 1/2 puesto que el espaciode muestras tiene 4

resultados posibles (las 4

raíces cuadradas de z), de lascuales solo 2 sirven parafactorizar nA (y y nA – y). Así,si cada bit de un secreto setransmite mediantetransferencia inconsciente, laprobabilidad de que B puedaconocer el secreto es de 2–t ,si t es el número de bits delsecreto.

Ejemplo 4.1.

Supongamos nA = 5 · 11 = 55.

• B→ A. El usuario B escoge un valor x = 13 y envía a A: z = 132 (mod 55) = 4.

• A → B. El usuario A calcula las cuatro raíces cuadradas de 4 (mod 55) = {13,55 –

13,2,55 – 2} = {13,42,2,53} y envía una de ellas a B.

Sea v = 2 la raíz enviada.

El usuario B comprueba si v = 2 coincide con y, o con 55 – y. Como coincide, se podrá

factorizar nA = 55 puesto que mcd(13 + 2,55) = mcd(15,55) = 5.

Igual hubiera pasado si v = 53, puesto que mcd(13 + 53,55) = mcd(66,55) = 11, que es un

factor de nA = 55.

Si se hubiera enviado v = 42 no se hubiera podido factorizar nA, puesto que mcd(13 +

42,55) = mcd(55,55) = 55.

Igualmente para v = 13, puesto que mcd(13 + 13,55) = mcd(26,55) = 1.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 136: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 40 Protocolos criptográficos

4.2. Protocolos de compromiso de bits

En este protocolo, un usuario A se compromete frente a otro usuario B con

un valor, de tal manera que A no lo pueda cambiar y B no lo pueda descubrir

hasta que el propio A no haya abierto el compromiso.

Es un protocolo útil en otros protocolos, como el de lanzamiento de monedas

o el de pruebas de conocimiento nulo, y debe cumplir las siguientes propie-

dades:

• Se debe poder comprometer cualquiera de los dos valores posibles para

cada bit.

• De la apertura del compromiso, B solo obtendrá el valor del bit compro-

metido.

• No se debe poder modificar el valor comprometido, aunque se cambie la

manera de abrir el compromiso.

• El usuario B no debe poder conocer nada sobre la manera de abrir los com-

promisos aunque haya visto abrir algunos.

Otros protocolos decompromiso de bits

En la literatura hay otrasimplementaciones deprotocolos de compromisode bits, usando sistemascriptográficos de clavesecreta, logaritmos discretos,funciones de hash, residuoscuadráticos o, incluso, grafosno isomorfos.

1) Protocolo: Usando transferencia inconsciente

Para comprometer un bit b, el usuario A escoge n bits aleatorios bi, tales que

b1 ⊕ b2 ⊕ · · · ⊕ bn = b, y se siguen los tres pasos siguientes, donde ⊕ es la

operación XOR.

Protocolo

1) Compromiso: El usuario A envía a B cada bit bi por orden, mediante trans-

ferencia inconsciente.

2) Apertura: El usuario A envía a B todos los bits bi.

3) Verificación: El usuario B compara los bits bi, recibidos dentro del plazo

del compromiso, con los correspondientes de la apertura.

Nota

La probabilidad de fraude, por parte de A, es menor que 12

. Si se ejecuta el protocolo k

veces, la probabilidad de fraude será menor que 2–k.

2) Protocolo: Lanzamiento de moneda por teléfono

El protocolo de Rabin puede ser utilizado para el problema de tirar una mone-

da al aire, y resolver una apuesta entre dos usuarios A y B de manera telemá-

tica.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 137: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 41 Protocolos criptográficos

Apuesta

Cara ⇐⇒ B puede factorizar n

Cruz ⇐⇒ B no puede factorizar n

Protocolo

A→ B: El usuario A construye, al azar, dos números primos, diferentes y gran-

des: p1,p2 y calcula n = p1 · p2. Envía n al usuario B.

B → A: El usuario B escoge, al azar, un elemento primitivo, α ∈ Zn, calcula

β = α2 (mod n) y envía β al usuario A.

A → B: El usuario A calcula las cuatro raíces cuadradas de β y envía una al

usuario B. Sea γ la raíz enviada.

B→ A: El usuario B le dice a A si ha salido CARA o CRUZ.

Tal como hemos visto antes, si γ 6= ±α, el usuario B podrá factorizar n. De lo

contrario, si γ = ±α, no podrá factorizar n.

Resumen de las transacciones del protocolo:

A B

→ n →

← β = α2 (mod n) ←

→ γ = β–1/2 (mod n) →

← CARA o CRUZ ←

Este protocolo fue propuesto por Mario Blum (1982) y se trata, tal como he-

mos visto antes, de resolver una apuesta entre dos usuarios A y B, distantes

entre sí, mediante el lanzamiento de una moneda a cara o cruz. Si uno de los

dos hace trampa, sin necesidad de un tercero el otro lo puede detectar.

Puede haber dos casos posibles de trampa:

trampa de A

• El usuario A lanza la moneda y anota el resultado.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 138: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 42 Protocolos criptográficos

• El usuario B hace su apuesta y se la dice a A.

• El usuario A le dice a B, que justamente ha salido lo contrario.

trampa de B

• El usuario A lanza la moneda y anota el resultado.

• El usuario B hace su apuesta y se la dice a A.

• El usuario A le dice a B, que justamente no ha salido lo que él había dicho.

• El usuario B niega su primera apuesta y replica a A diciéndole que precisa-

mente lo que ha salido era lo que él había apostado.

¿Cómo resolver el problema de manera que si uno hace trampa el otro lo

detecte? Las soluciones pasan por el protocolo de transferencia inconsciente

de Rabin que hemos visto, o el protocolo propuesto por Blum, basado en una

función unidireccional sobre un conjunto de números tal que la mitad de

ellos son pares y la otra mitad impares.

Números de Blum

Son los números n = p1 · p2

tales que ambos primos p1 yp2 son congruentes con 3 delmódulo 4.En este caso, aparte del ceroy de p1 y p2, la mitad de losresiduos cuadráticos en Zn

son pares y la otra mitad sonimpares. Además, el valor dez identifica y, ya que de lascuatro raíces cuadradas de z,únicamente hay una que, asu vez, sea un residuocuadrático.

El esquema general del protocolo, una vez el usuario A ha escogido un número

de Blum: n = p1 · p2 es:

Protocolo

• A→ B. El usuario A escoge un valor x ∈ Zn y calcula y = x2 (mod n) y z = y2

(mod n). El usuario A envía z a B.

• B → A. El usuario B, una vez recibido z, apuesta por la paridad de y (es

decir, si es o no un número par).

• A→ B. El usuario A le informa si ha acertado o no. Además le muestra los

valores de x y y, al mismo tiempo que le demuestra que n es un número de

Blum.

El usuario B comprueba que y = x2 (mod n) y z = y2 (mod n).

Ambos usuarios A y B han actuado con un 50 % de probabilidad de engaño en

el primero y el segundo paso del protocolo.

Resumen de las transacciones del protocolo:

A B

→ z →

← paridad(y) ←

→ {Sí o No},x,y,p1,p2 →

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 139: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 43 Protocolos criptográficos

Ejemplo 4.2.

El usuario A escoge un número de Blum, por ejemplo: n = 7 · 11 = 77.

• A→ B. El usuario A escoge un valor x = 13 y calcula:

y = x2 (mod n) = 132 (mod 77) = 15 y

z = y2 (mod n) = 152 (mod 77) = 71.

A envía z a B.

• B→ A. El usuario B, una vez recibido z, apuesta por la paridad de y.

Suponemos que apuesta por y par.

• A→ B. El usuario A le informa de que no ha acertado en la apuesta.

Para demostrarlo, le envía los valores de x = 13, y = 15 y n = 7 · 11 = 77.

El usuario A le demuestra que n es un número de Blum y B puede verificar el valor de

z, a partir de los valores de x y y recibos.

En este caso, B comprueba que se había equivocado en su apuesta.

4.3. Firma electrónica de contratos: Protocolo de Even

Se trata de permitir la firma electrónica de un documento entre dos usuarios

A y B, sin intermediarios, de forma que se cumplan estas dos condiciones:

• Que ambos usuarios queden obligados a culminar la firma, solo a partir de

un punto del protocolo.

• Que la firma no pueda falsificarse y, además, pueda ser comprobada por el

otro usuario.

1) Protocolo básico

Suponemos que el usuario A dispone de dos claves secretas y las correspon-

dientes claves públicas de un sistema criptográfico de clave pública: (EA1,DA1);

(EA2,DA2).

Suponemos que el usuario B elige una clave secreta KB.

Transferenciainconsciente

Los pasos de este protocolose corresponden básicamentecon una transferenciainconsciente.

• A→ B. El usuario A envía a B sus dos claves públicas EA1 y EA2.

• B → A. El usuario B escoge una de las dos claves y cifra su clave KB, en-

viando el resultado a A.

• A→ B. El usuario A escoge una de sus dos claves privadas y descifra lo que

ha recibido de B.

• A→ B. El usuario A cifra el primer bloque del mensaje a firmar, usando la

supuesta clave encontrada en el paso anterior, y lo envía a B.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 140: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 44 Protocolos criptográficos

El usuario B descifrará con la clave KB el bloque de firma recibido.

El usuario A repetirá el tercero y cuarto paso para cada bloque de firma y B

siempre descifrará con la clave KB el bloque de firma recibido.

Cuando se hayan acabado todos los bloques de firma, el usuario A repetirá el

cuarto paso, utilizando ahora la otra clave privada, y B descifrará con la clave

KB el bloque de firma recibido.

.

Si A y B han escogido al azar la misma clave (con una probabilidad del

50 %), B descifrará un mensaje con sentido en la primera ronda. Si no,

recibirá un mensaje sin sentido y tendrá que esperar hasta recibir el

último bloque de la segunda ronda para obtener el texto en claro.

Sin embargo, A no tiene ninguna manera de saber cuándo B ha podi-

do descifrar correctamente el criptograma, lo cual le fuerza a acabar el

protocolo.

2) Protocolo de Even

Este protocolo se basa en sistemas criptográficos de clave privada y sigue los

siguientes pasos:

Inicialmente, tanto el usuario A como el usuario B escogen entre un conjunto

de 2n claves de un sistema criptográfico de clave privada:

El usuario A escoge el conjunto {K1,K2, · · · ,Kn,Kn+1, · · · ,K2n}, tomadas en pare-

jas: {(K1,Kn+1),(K2,Kn+2), · · · ,(Kn,K2n)}.

El usuario B escoge el conjunto {K∗1 ,K∗

2 , · · · ,K∗n ,K∗

n+1, · · · ,K∗2n}, tomadas en pa-

rejas {(K∗1 ,K∗

n+1),(K∗2 ,K∗

n+2), · · · ,(K∗n ,K∗

2n)}.

Protocolo

• A→ B. El usuario A cifra un mensaje MA, conocido por B, con las 2n claves:

EK1(MA),EK2

(MA),...,EK2n(MA) y envía los 2n criptogramas ordenados a B.

El usuario A se comprometerá, más adelante, a firmar el contrato si B puede

presentarle algún par de claves (Ki,Kn+i).

• B→ A. El usuario B cifra un mensaje MB, conocido por A, con las 2n claves:

E∗K1

(MB),E∗K2

(MB),...,E∗K2n

(MB) y envía los 2n criptogramas ordenados a A.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 141: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 45 Protocolos criptográficos

El usuario B se comprometerá, más adelante, a firmar el contrato si A puede

presentarle algún par de claves (K∗i,K∗n+i).

• A → B. El usuario A envía a B cada par (Ki,Kn+i) ordenados mediante una

transferencia inconsciente; es decir, enviando Ki o Kn+i con igual probabi-

lidad.

• B → A. El usuario B hará lo mismo, enviando a A, ordenadamente, los

pares (K∗i,K∗n+i)

Nota

En este punto A y B tienen la mitad de las claves uno del otro.

Si la longitud de cada clave es de L bits, entonces los usuarios A y B realizan el

siguiente bucle, 1 ≤ i ≤ 2n, para las claves Ki y K∗i que no se han usado en los

pasos anteriores:

.

Algoritmo 4.2

for 1 ≤ j ≤ L

begin

A envía a B el bit j-ésimo de todas estas claves Ki

B envía a A el bit j-ésimo de todas estas claves K∗i

end

Observar que el algoritmo es parecido al del protocolo de compromiso bit a

bit. Al realizar este bucle completo, A y B tienen las 2n claves uno del otro y

se supone que pueden firmar el contrato.

Resumen de las transacciones del protocolo:

A B

→ EK1(MA),EK2

(MA),...,EK2n(MA) →

← E∗K1

(MB),E∗K2

(MB),...,E∗K2n

(MB) ←

→ {Ki o Kn+i} →

← {K∗i o K∗

n+i} ←

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 142: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 46 Protocolos criptográficos

4.4. Protocolo de correo electrónico certificado

Pese a que los sistemas actuales de correo electrónico permiten el acuse de

recibo por parte del receptor (el emisor pide al receptor que le comunique que

ha recibido el correo que le ha enviado, sin que esto implique la aceptación

de su contenido); cuando enviamos un correo electrónico, ¿cómo podemos

estar seguros de que el mensaje enviado ha llegado al destinatario autorizado

y solo él conoce el contenido?

La propuesta de este protocolo es la implementación del correo electrónico

certificado.

Así, si un usuario A desea enviar un mensaje electrónico como correo certi-

ficado a un usuario B, le descubrirá el mensaje, es decir, le enviará la clave,

solo después de que el usuario B le haya enviado el acuse de recibo correspon-

diente.

Esto es tal como sucede con el correo regular certificado; antes de ver el men-

saje hemos firmado que hemos recibido el sobre que lo contiene.

El protocolo que sigue es muy parecido al que hemos visto de Even para la

firma de contratos.

Protocolo

El usuario A escoge aleatoriamente n + 1 claves {a0,a1, · · · ,an} de un sistema

criptográfico de clave privada. Las claves {a1, · · · ,an} serán la parte izquierda

de la clave KEAi, y la parte derecha, KDAi

será {an+1,an+2, · · · ,a2n}, donde an+i =

a0 ⊕ ai, para 1 ≤ i ≤ n.

Los usuarios A y B se ponen de acuerdo en un mensaje de validación V.

El usuario A, con la clave a0 cifra el documento M: C0 = Ea0(M) y después

cifra el mensaje de validación V con las 2n claves secretas; {KEAi, KDAi

} para

1 ≤ i ≤ n:

Cifrado de validación de la parte izquierda: VEAi= EKEAi

(V).

Cifrado de validación de la parte derecha: VDAi= EKDAi

(V).

• A→ B. El usuario A envía a B, el valor C0 y los pares ordenados (VEAi,VDAi

),

para 1 ≤ y ≤ n.

De forma similar, el usuario B genera n pares de claves KEBiy KDBi

. También

generará n pares de mensajes acuse de recibo de la parte izquierda: REi y

acuse de recibo de la parte derecha: RDi y cifra las parejas (REi,RDi) en el

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 143: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 47 Protocolos criptográficos

sistema criptográfico de clave privada, con las claves (KEBi,KDBi

) obteniendo

(EBi,DBi

).

• B→ A. El usuario B envía a A las parejas ordenadas (EBi,DBi

).

• A → B. Mediante una transferencia inconsciente, el usuario A envía a B

una de las dos claves secretas: KEAio KDAi

.

• B → A. Mediante una transferencia inconsciente, el usuario B envía a A:

KEBio KDBi

.

Este proceso se repite hasta haber enviado los n valores de las claves de cada

usuario.

Resumen de las transacciones del protocolo:

A B

→ C0,{VEAi,VDAi

} →

← {(EBi,DBi

)} ←

→ {KEAio KDAi

} →

← {KEBio KDBi

} ←

Comprobación:

• El usuario B usa las claves enviadas por A, KEA1 o KDA1, para comprobar

que al descifrar DKEAi(V) o DKDAi

(V) obtiene el mensaje de validación V.

• El usuario A usa las claves enviadas por B, KEBio KDBi

, para comprobar que

al descifrar DKEBi(EBi

) o DKDBi(DBi

) obtiene siempre REi o RDi.

Estos pasos son en realidad un protocolo de compromiso de bit entre los

usuarios A y B.

Verificación:

• El usuario A ha obtenido todas las claves de B y comprueba todas las parejas

de acuse de recibo; es decir, comprueba la parte izquierda y la parte derecha

del acuse de recibo.

• El usuario B ha obtenido todas las claves de A y comprueba que todos los

envíos de A contienen el mensaje de validación V.

Realmente, el usuario A habrá debido mostrar todas las claves a B, para que

B pueda comprobar que A ha usado el cálculo an+i = a0 ⊕ ai.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 144: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 48 Protocolos criptográficos

• Dado que el usuario B dispone de todas las claves de A, puede calcular:

a0 = KEAi⊕ KDAi

.

Observar que para el cálculo anterior cualquiera de las parejas de acuse de

recibo es válida.

• El usuario B descifra el criptograma C0, enviado en el segundo paso, recu-

perando, así el documento M: Da0(C0) = M.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 145: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 49 Protocolos criptográficos

5. Esquemas umbral y reparto de secretos.

Los protocolos para compartir secretos tratan de resolver el siguiente proble-

ma: dado un secreto, repartir unos fragmentos de información entre varias

personas, de forma que ciertas agrupaciones de estas personas puedan recupe-

rar el secreto, pero las restantes agrupaciones no sean capaces de obtenerlo.

Por ejemplo, un banco tiene una cámara acorazada que tiene que abrirse cada

mañana con una cierta clave (el secreto), que comparten 5 cajeros encargados

de tal apertura. El banco puede estar interesado en que, para abrirla, al menos

hagan falta 3 de los 5 cajeros.

Así, formalmente, un secreto se divide en n participaciones, que se reparten

entre n participantes. La finalidad es que la presencia de k de estos participan-

tes (k ≤ n) sea necesaria y suficiente para reconstruir el secreto.

.

Definición 5.1 (Esquema umbral).

Para un par de valores k y n, k < n, un (k,n)-esquema umbral consiste en

n participaciones D1,D2, . . . ,Dn ∈ Zp y un valor secreto D ∈ Zp tal que:

1) El conocimiento de k, o más, participaciones Di es suficiente para

calcular la clave secreta D.

2) El conocimiento de k – 1, o menos participaciones, deja la clave D

completamente indeterminada.

5.1. Esquema de Shamir

Este esquema trabaja con polinomios en un cuerpo finito, donde el valor secre-

to será el término independiente de un cierto polinomio. La idea del esquema

se basa en el hecho de que un polinomio de grado k – 1 se puede caracterizar

por sus k coeficientes (la clave) o bien dando valores en k puntos diferentes

(las participaciones).

Sea Zp un cuerpo finito. Supongamos que el valor que queremos guardar

secreto es D = a0 ∈ Zp y que a1,a2, . . . ,ak–1 ∈ Zp son valores escogidos al

azar, los cuales vamos a considerar que son los coeficientes del polinomio

A(x) = a0 + a1x + . . . + ak–1xk–1 ∈ Zp[x].

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 146: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 50 Protocolos criptográficos

Consideramos n elementos diferentes x1,x2, . . . ,xn ∈ Zp y calculamos, para cada

uno de ellos A(xi) = Di.

La participación que se dará al i-ésimo participante es Di.

Cualquier grupo de k o más participantes permite reconstruir, gracias al teore-

ma de interpolación de Lagrange, el polinomio A(x) y, por lo tanto, calcular la

clave D = a0.

Interpolación deLagrange

El teorema de interpolaciónde Lagrange nos permitecalcular los coeficientes ai demanera computacionalmentemás sencilla que resolviendoel sistema de ecuacionescorrespondiente.

En efecto, sean {i1, · · · ,ik} los k participantes, entonces:

A(x) =Pik

ij=i1Dij · qij(x), donde:

qij(x) =Qik

it 6=ij

(x–xit)

(xij–xit

) ,

de donde podremos encontrar el secreto D = a0.

Mentirosos en el esquemaumbral de Shamir

Supongamos que unparticipante, por ejemplo elnúmero 1, es un mentiroso yda el valor D∗

1 (D∗1 = D1 + ǫ)

como su participación.En este caso la clave que elgrupo de k participantesencontrará, es:

a0∗ = –ϕ(0)D∗

1ψ′(x1)

ϕ(0)P

i 6=1Di

ψ′(xi)= a0 –ǫ ϕ(0)

ψ′(x1).

El mentiroso conoce D1,D∗1 y,

además, ǫ y a0∗.A partir de la ecuaciónanterior puede calcular elvalor correcto a0.Los otros participantes nopueden calcular el valorcorrecto a0.Para evitar a los mentirososen un esquema umbral, J.Rifà (How to avoid the

Cheaters succeed in the Key

Sharing Scheme. Desings,

Codes and Cryptography

(1993)) propone un esquema(2k – 1,2n) en el cual se dandos participaciones a cadauno de los n participantes, demodo que para calcular laclave se necesita un mínimode k participantes.

Ejemplo 5.1.

Para más claridad en las operaciones, trabajaremos en R.

Supongamos que el secreto es D = 15 en un (3,5)-esquema umbral. Escogeremos un

polinomio A(x), de grado 2, que tenga por término independiente a0 = D = 15.

Sea, por ejemplo, A(x) = 16x2 + 2x + 15 y los cinco valores xi = {1,3,4,7,10} con los cuales

calcularemos Di = A(xi).

Así tendremos los cinco puntos {(1,33),(3,165),(4,279),(7,813),(10,1635)}.

Supongamos que los usuarios 1,2,4 se agrupan para obtener el secreto.

q1(x) = (x–x2)(x1–x2)

· (x–x4)(x1–x4)

= (x–3)–2· (x–7)

–6= 1

12(x2 – 10x + 21)

q2(x) = (x–x1)(x2–x1)

· (x–x4)(x2–x4)

= (x–1)2· (x–7)

–4= –1

8(x2 – 8x + 7)

q4(x) = (x–x1)(x4–x1)

· (x–x2)(x4–x2)

= (x–1)6· (x–3)

4= 1

24(x2 – 4x + 3), y

A(x) = 33 · q1(x) + 165 · q2(x) + 813 · q4(x) = 16x2 + 2x + 15,

con lo cual hemos recuperado el secreto D = a0 = 15.

Nota

También podemos calcular el valor a0, del esquema umbral, resolviendo el sistema de

ecuaciones, para i = j1, . . . ,jk:

a0 + a1xi + . . . + ak–1xk–1i = Di

El determinante de este sistema es de tipo Vandermonde y todos los valores xi son dife-

rentes, por lo tanto, el sistema tiene solución única.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 147: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 51 Protocolos criptográficos

Llamemos ϕ(x) = (x – x1) . . . (x – xk) y ψ(x) = xϕ(x), entonces:

a0 =Det.(Di,xi,x

2i , . . . ,xk–1

i )

Det.(1,xi,x2i , . . . ,xk–1

i )=

P

i(–1)i+1DiQ

j 6=i xjQ

s>t 6=i(xs – xt)Q

s>t(xs – xt)=

X

i

Di

Q

j 6=i –xj

ϕ′(xi)= –

X

i

Di

Q

xj

xiϕ′(xi)

= –X

i

Diϕ(0)

ψ′(xi)= –ϕ(0)

X

i

Di

ψ′(xi).

El valor de ψ′(xi) no depende de Di, pero el cálculo de la clave a0 = D necesita de estos

valores Di.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 148: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 52 Protocolos criptográficos

6. Votaciones electrónicas.

Una votación realizada electrónicamente necesita garantizar una serie de con-

diciones formalmente análogas a las de una votación tradicional:

Agradecimiento

Los autores agradecen lacolaboración en esteapartado de Jordi Puiggalí, VPResearch and Developmentde SCYTL(http://www.scytl.com).

• Democracia: Solo las personas registradas en el censo pueden emitir su

voto y solamente pueden hacerlo una vez.

• Transparencia: Ningún voto puede ser eliminado ni alterado.

• Privacidad: No se puede establecer ninguna relación entre un voto y un

votante.

• No coercibilidad: Para evitar coacciones el votante no puede demostrar

cuál ha sido el sentido de su voto.

• Verificabilidad: Cada votante, y eventualmente un auditor, puede com-

probar que el voto ha sido correctamente contabilizado.

En una votación presencial, estas condiciones quedan garantizadas por una

urna transparente, la cabina de votación y el escrutinio público. En el caso

electrónico, el proceso electoral se lleva a cabo en una dimensión lógica (por

ejemplo, mediante un conjunto de programas que se ejecutan en un ordena-

dor), y por lo tanto, no auditable por observadores o por el propio votante.

Por esto, para asegurar que los procesos electorales se llevan a cabo de for-

ma totalmente honesta y privada, existen diferentes propuestas basadas en la

utilización de protocolos criptográficos.

Los protocolos criptográficos por voto electrónico se basan sobre todo al con-

seguir dos objetivos principalmente:

• Garantizar la privacidad de los votantes y la corrección de los resulta-

dos: asegurando que todos los votos que se han utilizado para obtener los

resultados pertenecen a votantes válidos (por ejemplo, que forman parte

de la lista del censo y no han sido suplantados), verificando que un vo-

tante no emita más de un voto, y haciendo que no pueda correlacionar en

ningún momento la papeleta del voto y la identidad del votante.

• Facilitar la auditoría de la elección: permitiendo tanto a votantes como a

observadores verificar que los votos emitidos contienen la opción del voto

original seleccionado por el votante y, por lo tanto, que el resultado refleja

totalmente la intención de voto de los votantes.

Para poder lograr estos objetivos los esquemas criptográficos propuestos com-

binan otros protocolos o algoritmos criptográficos más básicos: autenticación,

firmas ciegas, pruebas de conocimiento nulo, reparto de secretos, etc.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 149: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 53 Protocolos criptográficos

6.1. Garantizar la privacidad y la corrección de los resultados

Desde el punto de vista de la privacidad de los votantes y la corrección de los

resultados, los protocolos criptográficos parten de la base del cifrado y poste-

rior firma digital de los votos. El cifrado se utiliza por evitar que la intención

de voto sea visible para cualquier administrador o persona que disponga de

privilegios sobre el sistema de voto. En este sentido, se utilizan como base al-

goritmos de clave pública (como por ejemplo RSA), dejando la clave privada

en manos del equivalente a una mesa electoral para realizar el descifrado de

los votos. De este modo, los votos se cifrarían con una clave pública de la

mesa electoral en el mismo terminal desde el que el votante ha realizado la

selección de voto, para evitar que su contenido se sepa antes de guardar el

voto en la urna (que en este caso sería electrónica). Los votos solo se podrían

descifrar cuando lo decidiera la mesa electoral, que es la que tiene acceso a la

clave privada que los descifra.

Para evitar que los votos se puedan manipular una vez emitidos, los votos

cifrados se firmarían digitalmente, preferentemente con la clave de identidad

del elector (por ejemplo, DNI electrónico). De este modo, cualquier intento de

manipulación del voto se detectaría, puesto que invalidaría la firma digital del

mismo. Además, la firma digital permite verificar si el votante que ha emitido

el voto pertenece realmente al censo electoral. De este modo se puede asegurar

que los resultados se han obtenido de votos de ciudadanos que realmente

podían participar.

Este mecanismo de cifrado y firma se conoce con el nombre de “doble sobre”,

pues es equivalente al mecanismo de dos sobres utilizados en el voto postal.

El sobre de dentro es el que protege la privacidad del voto y por lo tanto

sería el que se obtiene al cifrar el voto. El sobre de fuera es el que contiene

el sobre de dentro y la identidad del votante, para poder verificar que el voto

proviene de un votante válido antes de introducirlo en la urna. En el caso del

voto electrónico, sería la firma digital que se hace sobre el voto. Del mismo

modo que en el voto postal el sobre externo de los votantes válidos se separa

del sobre interno antes de hacer el recuento, en el voto electrónico se podría

separar la firma digital del voto cifrado antes de descifrar el voto y hacer el

recuento.

Aun cuando estas medidas podrían parecer suficientes para garantizar la in-

tegridad y privacidad, no se considera que lo sean en un entorno de voto

electrónico. Por ejemplo, si se hace un descifrado directo de los votos, sería

fácil correlacionar los votos en claro con los votantes: solo haría falta verificar

el orden en el que han votado los votantes y el que se obtiene al descifrar los

votos. Por esta razón, los protocolos criptográficos hacen propuestas de me-

canismos de descifrado de voto que rompen cualquier correlación entre los

votos descifrados y el orden en el que han sido emitidos. En este sentido se

pueden destacar dos familias de propuestas que implementan un proceso de

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 150: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 54 Protocolos criptográficos

descifrado que rompe esta correlación: la de los protocolos de recuento ho-

momórfico y la de los protocolos de mezcla.

Los protocolos de recuento homomórfico se fundamentan en la obtención de

los resultados sin descifrar los votos individuales. Parar conseguir este objeti-

vo, las operaciones de recuento se realizan directamente sobre los votos cifra-

dos y solo se descifran los resultados de estas operaciones. Para poder operar

con los votos cifrados sin tenerlos que descifrar, utilizan, para el cifrado de los

votos, algoritmos criptográficos con propiedades homomórficas (por ejemplo,

ElGamal). Estas propiedades permiten hacer operaciones directamente con la

información cifrada sin necesidad de descifrarla. Un ejemplo sería multiplicar

dos datos cifrados para obtener el cifrado del producto de los valores de estos

datos: E(x)·E(y) = E(x·y). De este modo solo haría falta descifrar el resultado de

multiplicar los datos cifrados (por ejemplo, E(x·y)) para obtener el producto de

los valores (por ejemplo, x·y). También existen algoritmos criptográficos en los

que el resultado de multiplicar los datos cifrados es el cifrado de la suma de

los contenidos: E(x)··E(y) = E(x + y). Estos son normalmente los utilizados por

los protocolos homomórficos, ya que los votos se representan como un vector

de valores binarios con tantas posiciones como opciones de voto disponibles.

Si una opción ha sido seleccionada, el valor de su posición será 1, mientras

que si no lo ha sido será 0. Por ejemplo, si hay cuatro opciones y la segunda

y la tercera han sido seleccionadas el voto se representaría formalmente de

forma simplificada como: (1,1,1,0). De este modo, al multiplicar los votos ci-

frados lo que estamos haciendo es sumar las veces que las opciones han sido

escogidas y solo haría falta descifrar el resultado de multiplicar todos los votos

cifrados para obtener los resultados. Por ejemplo:

E((1,0,0,1))·E((1,0,0,0))·E((0,1,0,0)) = E((2,1,0,1))

Por lo tanto, al descifrar, obtendríamos que la primera opción es la ganadora

con dos votos, mientras que la segunda y tercera habrían obtenido un solo

voto. Aun cuando estos protocolos son bastante eficientes, tienen algunas li-

mitaciones, como el hecho de que solo funcionan en elecciones en las que

los votos se pueden representar de forma numérica o que son poco escala-

bles en elecciones de muchos candidatos. Estas limitaciones no existen en los

protocolos basados en la mezcla.

Los protocolos de mezcla utilizan el mismo concepto que en las elecciones

tradicionales: mezclar la urna antes de abrirla para garantizar que los votos

no se encuentran en el mismo orden que se han introducido (por ejemplo,

evitar que el voto de encima sea el que ha emitido el último votante). Esta

mezcla sería equivalente a aplicar una permutación a los votos de la urna.

El problema es que aplicar solamente una permutación no garantiza que el

voto no se pueda rastrear, pues solo hace falta buscar dónde se encontraba

un voto con el mismo cifrado antes de aplicarle la permutación. Por lo tanto,

estos protocolos, además de permutar las posiciones de los votos, también

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 151: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 55 Protocolos criptográficos

deben hacer un decifrado parcial o recifrado del voto. De este modo, no se

posible correlacionar los votos una vez permutados y redescifrados con los

votos cifrados originales, ya que serán todos diferentes.

En el caso del descifrado parcial, implica que el votante, además de cifrar el

voto con la clave pública de la mesa electoral, también lo debe cifrar con la

clave pública de la entidad que hace la mezcla. La entidad que ejecuta la mez-

cla dispone de una clave privada para hacer un primer descifrado parcial del

voto una vez permutado. En algunas implementaciones, hay más de una en-

tidad realizando el proceso de mezcla y descifrado parcial, con lo cual resulta

que el votante debe hacer tantos cifrados como entidades participen.

En el caso de mezcla con recifrado, es necesario utilizar un algoritmo con

propiedades homomórficas para poder utilizar la misma clave pública para

recifrar el voto. De este modo, no hace falta descifrar el voto tantas veces

como ha sido recifrado. Por lo tanto, este proceso es totalmente transparente

al votante, que solo debe cifrar el voto una vez con la clave pública de la mesa

electoral. El proceso de mezcla y recifrado se puede hacer tantas veces como

entidades intervengan en el proceso. En cualquier caso, la última entidad es

la que acaba constituyendo la mesa electoral y descifra los votos.

6.2. Garantizar la auditoría de la votación

Los procesos descritos anteriormente garantizan principalmente la privacidad

del voto, pero ¿qué pasa si la entidad que hace el descifrado total presenta un

resultado que no se corresponde con la intención de voto?

Para detectar esta situación, se utilizan los mecanismos de auditoría de los

procesos de descifrado. Estos procesos utilizan mecanismos criptográficos co-

mo pruebas de conocimiento nulo para demostrar que el proceso de desci-

frado o recifrado no ha modificado el voto cuando estos se llevan a término.

En este sentido destacamos dos tipos de pruebas de conocimiento nulo im-

portantes: las de correcto descifrado y las de correcto recifrado. En el primer

caso, se permite demostrar matemáticamente de forma irrefutable que el tex-

to descifrado estaba contenido en el voto cifrado. En el caso de recifrado, la

prueba demuestra que el valor del recifrado se ha obtenido al recifrar el texto

previamente cifrado por el votante. En cualquier caso, no hace falta entregar

la clave privada para demostrar que el valor descifrado es correcto, sino una

prueba matemática irrefutable sobre el contenido descifrado que puede ser va-

lidada de forma universal (por ejemplo, por cualquier auditor o votante). De

este modo se puede garantizar que los resultados reflejan de forma irrefutable

los contenidos de los votos cifrados. De lo contrario, se pueden aislar los votos

conflictivos para una auditoría posterior.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 152: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 56 Protocolos criptográficos

Ejercicios de autoevaluación

1. Considerar n = 917641387, producto de dos números primos p = 12347 i q = 74323. Nos

dan r = 10000 que es un QR (residuo cuadrático) en Zn. Calcular les cuatro raíces cuadradas

de r.

2. En el protocolo de lanzamiento de una moneda el usuario A escoge el número de Blum

n = 713 = 31·23. El número n es conocido por B, pero no su descomposición en factores!

a) Haced el seguimiento de todos los pasos del protocolo, suponiendo que A escoge el valor

x = 220 y B contesta diciendo que y es par. Al final del protocolo, tras la respuesta de

A enviando x,y,31,23 a B, explicar el porqué B está convencido de que no se ha hecho

trampa.

b) Haced el seguimiento del protocolo, suponiendo ahora que A escoge x = 15 y B ha cono-

cido, antes de contestar, el valor de los primos 31,23, factores de n. Qué debe contestar

sobre la paridad de y para ganar?

3. En una red de comunicaciones cada usuario U tiene su propio algoritmo público de cifrar

EU y su algoritmo privado de descifrar DU .

En esta red todos los mensajes que van de un usuario A a un usuario B deben ser enviados

bajo el formato (EB(m),A). La identificación A se envía de forma que el receptor B sepa quién

es el emisor.

El receptor B, tras leer el mensaje m que ha recibido, automáticamente tiene que devolver

(EA(m),B) a la red para que el emisor A lo lea y sepa que su primer mensaje ha sido recibido

correctamente.

a) Demostrar que un tercer usuario C de la red puede calcular el mensaje m que A había

enviado a B.b) Demostrar que las comunicaciones tampoco son seguras si cambiamos el protocolo

inicial por el siguiente:

• A envía EB(EB(M),A) a B• B, automáticamente devuelve EA(EA(m),B) a A.

4. Un sistema público, basado en el logaritmo discreto para distribuir claves entre usuarios

de una red, podría ser el siguiente:

a) Es conocido de todos los usuarios un cuerpo finito Fps y un elemento primitivo α de

este cuerpo.b) El usuario U escoge aleatoriamente 1 < mU < qs–1 y escribe en el fichero público su

clave cU = αmU , (el valor mU lo mantiene secreto).c) Cuando el usuario A quiere contactar con el usuario B, usa como clave (cB)mA.

Demostrar que el sistema anterior es seguro y auténtico. Y, en el caso concreto Fps = F210 =

Z2[x] / x10 + x3 + 1, el usuario A, del que conocemos su clave privada mA = 2, quiere contactar

con el usuario B, del que sabemos su clave cB = α + α5 + α7, escrita en el fichero público.

¿Cuál es la clave para sus comunicaciones comunes?

5. Demostrar que la siguiente variación del protocolo de autenticación de la ISO es inseguro.

A B

→ RA →

← RB,CertB,DB{RB,RA} ←

→ R′A,CertA,DA{R

′A,RB} →

CertX = (X,EX,DS{X,EX}), S es la autoridad central de certificaciones, {x} significa un hashsobre x y R′

A es un valor aleatorio diferente de RA.

6. Demostrar que la siguiente variación del protocolo de autenticación de la ISO es inseguro.

A B

→ RA →

← RB,CertB,DB(RA) ←

→ CertA,DA(RB) →

CertX = (X,EX,DS{X,EX}), S es la autoridad central de certificaciones y {x} significa un hashsobre x.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 153: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 57 Protocolos criptográficos

Solucionario

1. Primero calcularemos las raíces cuadradas de r = 10000 a Zp i Zq, respectivamente, donde

p = 12347 i q = 74323. Es fácil ver que s1 = 100 (mod p) y s2 = –100 = 12247 (mod p) son las

raíces en Zp y r1 = 100 (mod q) i r2 = –100 = 74223 (mod q) son las raíces en Zq.

Como que p y q son primos entre sí, su máximo común divisor valdrá 1 y con el algoritmo

extendido de Euclides hallaremos dos números A,B tales que Ap + Bq = 1.

Notar que los cuatro valores mij = riAp+sjBq, donde i,j ∈ {1,2}, cumplen que m2ij ≡ r (mod n),

o sea que se trata de las raíces buscadas.

En nuestro caso: 1 = 30531·p – 5072·q, o sea A = 30531 y B = –5072.

Por lo tanto, las cuatro raíces cuadradas de r son:

A·p·100 + B·q·100 = 100

A·p·100 + B·q·12247 = 144632658

A·p·74223 + B·q·100 = 773033423

A·p·74223 + B·q·12247 = 917665981

2.

a) En el primer paso A envía z = y2 = (x2)2 = 639 (mod n). En el segundo paso B contesta

diciendo que apuesta a que y es par. El usuario B pierde la apuesta, puesto que y = x2 =

629 (mod n) es impar. Al enviarle A el valor de x y la descomposición de n en factores,

puede comprobar que n es un entero de Blum y que y es impar.

b) En el primer paso A envía z = y2 = (152)2 = 2 (mod n). En este caso, al conocer B la

descomposición de n en factores puede calcular las cuatro raíces cuadradas de z. Estas

son 225,271,442,488 y la única que es QR es 255. Con esto sabe que y = 255 es impar y,

por lo tanto, debe contestar impar si quiere ganar la apuesta.

3. Efectivamente, el usuario C puede tomar EB(m), que está en la red bajo el formato (EB(m),A),

y reenviar a la red (EB(m),C). La respuesta de B también sería automática y respondería con

(EC(m),B). Por lo tanto, el usuario C solo tiene que descifrar EC(m) con su clave privada y

encontrará m.

En el segundo supuesto, la red tampoco es segura. En este caso, el usuario C puede recu-

perar EB(EB(m),A)) y enviar a B lo siguiente (que cumple con los requisitos para ser acep-

tado para la transmisión): EB

`

EB(EB(m),A),C)´

. El usuario B contesta automáticamente con:

EC

`

EC(EB(m),A),C)´

. A partir de aquí, el usuario C puede calcular EB(m) y enviar a la red

EB(EB(m),C). Ahora, la respuesta automática de B es EC(EC(m),B) y el usuario C puede calcu-

lar m.

4. La clave que usan conjuntamente A y B es: αmA·mB , que solo puede ser calculada por A y

B. La seguridad y autenticidad se basa en que, para los otros usuarios, el problema es el de

calcular el logaritmo discreto en el cuerpo Fps .

En el caso específico de F210 tenemos que la clave común es αmA·mB = CmAB = (α + α5 + α7)2 =

α428.

El cálculo anterior lo hemos hecho utilizando SAGE:

Primero definimos el anillo de polinomios en la indeterminada X:

sage: P.<X> = GF(2)[]%

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 154: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 58 Protocolos criptográficos

Después definimos el cuerpo finito F210 a través del polinomio X10 + X3 + 1 y llamamos

alpha = [X].

sage: F.<alpha>=GF(2^10,’alpha’,modulus=X^10+X^3+1)

Finalmente, calculamos (α + α5 + α7)2.

sage: (alpha +alpha^5+alpha^7)^2.

alpha^7 + alpha^4 + alpha^3 + alpha^2 + 1.

sage: log((alpha +alpha^5+alpha^7)^2,alpha)

428

5. Es un caso claro de utilización del interleaving attack o ataque del jugador de ajedrez.

El segundo paso del protocolo autentica B ante A. Aquí no hay ningún problema. El proble-

ma está en el tercer paso del protocolo. Un usuario C podría aprovechar el segundo paso del

intercambio entre A y B para enviar RB a A y esperar su contestación, que entonces C enviaría

a B haciéndose pasar por A.

6. También es un caso claro del interleaving attack o ataque del jugador de ajedrez. El segundo

paso del protocolo tendría que autenticar B ante A, pero no lo hace puesto que un impostor

C puede tomar RA del primer paso y empezar otro protocolo con B, con el que conseguirá lo

necesario para impersonar a B.

El tercer paso del protocolo tampoco autentica a A frente a B, puesto que el mismo impostor

con el valor RB del segundo paso del protocolo anterior puede empezar otro protocolo con

A y conseguir la firma DA(RB).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 155: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200954 59 Protocolos criptográficos

Bibliografía

Menezes, A. J.; Dorschot, P. C.; Vanstone, S. A. (2001). Handbook of applied cryptography(5a. ed.). Boca Ratón: CRC Press.

Rifà, J. (1995). Seguretat computacional. Cerdanyola del Vallès: Servei de publicacions de la

UAB.

Schneier, B. (1996). Applied cryptography: protocols, algorithms and source code in C (2a. ed.).

Nueva York: John Wiley & Sons.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 156: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 157: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

Criptografía concurvas elípticasLlorenç Huguet Rotger

Josep Rifà Coma

Juan Gabriel Tena Ayuso

PID_00200952

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 158: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 159: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 Criptografía con curvas elípticas

Índice

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

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1. Curvas y puntos racionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1. Definiciones previas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2. Plano proyectivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3. Curvas afines y proyectivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.4. Puntos racionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.4.1. Puntos racionales de una curva de grado 1 . . . . . . . . . . . 17

1.4.2. Puntos racionales de una curva de grado 2 . . . . . . . . . . . 17

1.4.3. Puntos racionales de una curva de grado 3 . . . . . . . . . . . 18

1.4.4. Puntos racionales de una curva de grado 4 . . . . . . . . . . . 19

2. Geometría de las curvas elípticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1. Ecuación de Weierstrass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2. La ley de grupo de una curva elíptica . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.2.1. Ley de grupo en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2.2. Ecuación general de P + Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3. Curvas elípticas sobre cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.1. Número de puntos de una curva elíptica . . . . . . . . . . . . . . . . . . . . . . 34

3.2. Extensión de una curva sobre un cuerpo a una curva sobre un

cuerpo extendido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4. El uso de las curvas elípticas en criptografía . . . . . . . . . . . . . . . . . 40

4.1. El problema del logaritmo elíptico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2. Elección de la curva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3. Asignación de mensajes a puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.3.1. Creación de una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.3.2. Método de curvas entrelazadas . . . . . . . . . . . . . . . . . . . . . . . 44

5. Criptografía y protocolos criptográficos basados en curvas

elípticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.1. Protocolos criptográficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.1.1. Protocolo de Diffie-Helman . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.1.2. Protocolo de tres-pasos de Shamir . . . . . . . . . . . . . . . . . . . . 49

5.2. Criptosistema ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.3. Criptosistema RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.4. Firma digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.5. Comparación de los sistemas de clave pública . . . . . . . . . . . . . . . . 53

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 160: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 Criptografía con curvas elípticas

5.5.1. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.5.2. Eficiencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6. ECC estándares y aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

6.1. ECC estándares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

6.1.1. Estándares principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

6.1.2. Estándares de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.2. Aplicaciones de la ECC. Tarjetas inteligentes . . . . . . . . . . . . . . . . . . 59

6.2.1. Restricciones de las tarjetas inteligentes . . . . . . . . . . . . . . 60

6.2.2. Ventajas de la ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.2.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Ejercicios de autoevaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 161: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 5 Criptografía con curvas elípticas

Introducción

La teoría de curvas elípticas sobre cuerpos finitos encuentra aplicaciones en

diversas disciplinas, como por ejemplo la teoría de números o la criptografía.

Resultan sorprendentes sus relaciones con problemas tan diversos como la

realización de tests de primalidad, la factorización de números enteros o la

demostración del último teorema de Fermat, entre otras.

Veamos unas pinceladas de estas relaciones para centrarnos después en la apli-

cación de las curvas elípticas a la criptografía. En un principio podemos pensar

en una curva elíptica como el conjunto de soluciones de una ecuación de la

forma:

y2 = x3 + ax + b.

Relacionadas con la teoría de números podemos destacar dos aplicaciones:

El problema de losnúmeros congruentes

Fue enunciado por primeravez por el matemático persaal-Karaji (hacia el siglo X a.C.). Actualmente, la solucióndel problema depende de laconjetura deBirch-Swinnerton-Dyer sobrecurvas elípticas. El problemaes uno de los siete problemasdel milenio que el ClayMathematics Institute dotó,en el año 2000, con unpremio de un millón dedólares para quien aportara lasolución de cualquiera deellos.

• Números congruentes. Un número racional N se dice que es congruente

si existe un triángulo con aristas racionales cuya área es N. Durante mucho

tiempo el problema ha permanecido sin que se conociese ningún algorit-

mo capaz de resolverlo, es decir, de comprobar si un número dado N era

congruente o no. Actualmente, está demostrado que N es un número con-

gruente si y solo si la curva elíptica y2 = x3 – N2x = x(x – N)(x + N) tiene

algún punto racional diferente de (0,0), (±N,0) y del punto del infinito de

la curva.

• Teorema de Fermat. En 1985 Gerhard Frey observó que si An + Bn = Cn era

un contraejemplo al último teorema de Fermat, entonces la curva elíptica

y2 = x(x–An)(x+Bn) tenía por discriminante –(AnBn(An +Bn))2 = –(ABC)2n.

Discriminante

El discriminante de una curvaelíptica y2 = x3 + ax + b vienedado por ∆ = 4a3 + 27b2 y esnulo si y solo si la curva tienepuntos singulares (puntos enlos que las dos derivadasparciales se anulan).

Tal curva contradecía la denominada conjetura de Taniyama. Posterior-

mente, A. Wiles probó que ninguna curva podía contradecir esta conjetura

y, por lo tanto, quedó probado que no existe ningún contraejemplo al úl-

timo teorema de Fermat.

En el campo de la criptografía, la aplicación de estas curvas la podemos en-

contrar en la descomposición de un número en factores, en los sistemas crip-

tográficos y en los tests de primalidad, estos últimos desarrollados por Bosma,

Goldwasser-Killian, Atkin y Lenstra entre otros.

H.W. Lenstra ha obtenido un nuevo método de factorización que es, en mu-

chos aspectos, mejor que los conocidos anteriormente. La mejora y eficiencia

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 162: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 6 Criptografía con curvas elípticas

de este nuevo método todavía no es significativo en la práctica (el tiempo para

factorizar continúa siendo el mismo) pero, aún así, el hecho de haber encon-

trado un mecanismo diferente hace que los sistemas criptográficos basados en

el problema de la factorización no resulten, al fin y al cabo, tan seguros co-

mo parecían. El algoritmo de factorización con curvas elípticas de Lenstra es

análogo al método clásico denominado p – 1 de Pollard.

Los avances en estos métodos así como en las prestaciones de los ordenado-

res exigen números cada vez mayores a fin de poder garantizar la seguridad

de los sistemas criptográficos, lo que representa un grave inconveniente a la

hora de implementar los procesos de generación y distribución de las claves

secretas. Este problema se soluciona, en parte, usando sistemas de cifrado con

curvas elípticas. Estos sistemas ofrecen un nivel de seguridad equivalente al

de los métodos tradicionales (RSA, ELGamal,...) pero utilizando un número

menor de dígitos. El resultado son claves más pequeñas, característica que re-

sulta especialmente útil para la seguridad en aplicaciones basadas en circuitos

integrados y tarjetas inteligentes.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 163: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 7 Criptografía con curvas elípticas

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 curva en el espacio proyectivo y en el espacio afín.

2. Conocer el concepto de curva elíptica sobre un cuerpo finito y los paráme-

tros que la definen.

3. Conocer el uso de las curvas elípticas en criptografía y los principales pro-

blemas que hay que tener en cuenta en su utilización.

4. Conocer los principales algoritmos y protocolos basados en curvas elípticas

(Diffie-Helman, Shamir, ElGamal, firma digital).

5. Conocer los estándares y las aplicaciones más corrientes que utilizan las

curvas elípticas.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 164: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 165: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 9 Criptografía con curvas elípticas

1. Curvas y puntos racionales.

1.1. Definiciones previas

Ver también

En el módulo “Cuerposfinitos”de esta asignaturaencontraréis de formadetallada algunos de losconceptos que tambiénusaremos en este módulo.

Ya hemos estudiado de forma detallada algunos de los conceptos que también

usaremos en este módulo. Vamos a recordar solo algunos:

• La característica de un cuerpo K es el mínimo número p tal que para todo

x ∈ K se cumple que 1 + 1 + · · · + 1| {z }

p

= 0, donde 0 es el elemento neutro de la

suma y 1 es el elemento neutro del producto en el cuerpo K. Escribiremos

char(K) = p.

Si para todo n ∈ N, 1 + 1 + · · · + 1| {z }

n

6= 0 decimos que char(K) = 0.

Por ejemplo, si K = Fq donde q = pm, p primo, entonces char(K) = p. Para los cuerpos

Q de los números racionales, R de los números reales y C de los números complejos

se tiene, char(Q) = char(R) = char(C) = 0.

• Sea K un cuerpo y x ∈ K∗ = K – {0}. El orden de x es el mínimo número

r > 0 tal que xr = 1.

• Sea K un cuerpo. La clausura algebraica de K es el cuerpo más pequeño

que contiene a K y tal que cualquier polinomio con coeficientes en K tiene

todas las raíces en este cuerpo.

1.2. Plano proyectivo

.

Definición 1.1 (Plano afín y plano proyectivo).

Sea K un cuerpo. El plano afín sobre K, que denominaremos A2 (o A2(K))

es el conjunto de puntos de K2. El plano proyectivo sobre K, P2 (o P2(K)),

es el conjunto de puntos (x,y,z) ∈ K3 – {(0,0,0)} con la relación de equi-

valencia ∼ tal que:

(x,y,z) ∼ (x′,y′,z′) si, y solo si, ∃λ ∈ K∗ = K – {0} tal que x = λx′, y = λy′,

z = λz′.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 166: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 10 Criptografía con curvas elípticas

Así definimos P2 = K3 – {0}/ ∼. Cada una de las clases de equivalencia se llama

punto proyectivo y lo denotaremos por (x : y : z). Para todo λ ∈ K∗, diremos

que (x,y,z) y (λx,λy,λz) son dos representantes de la misma clase (x : y : z).

Nota

Análogamente se define elespacio proyectivo

n-dimensional

Pn = Kn+1 – {0}/ ∼, cuyasclases de equivalencia sedenominan puntos y sedenotan por(x0 : x1 : · · · : xn).

Dado un punto proyectivo (x0 : x1 : x2) sabemos que para algún i = 0,1,2 xi 6= 0.

Definimos el conjunto abierto Ui = {(x0 : x1 : x2)|xi 6= 0}

Sea (x : y : z) ∈ U3. Existe un único representante de este punto de la forma

( xz , y

z ,1). De este modo, dado que z 6= 0, podemos identificar puntos proyectivos

con puntos afines:

.

Algoritmo 1.2.

P2 ∩ U3 –→ K2

(x : y : z) –→ ( xz , y

z )

Los puntos proyectivos con z = 0 forman lo que se denomina recta del infinito.

Observación

El paso del plano proyectivoal plano afín se podría hacercon cualquiera de las trescoordenadas. En general, loharemos con la z o con la x0

si escribimos los puntos conla notación (x0 : x1 : · · · : xn).

.

Definición 1.3 (Polinomio homogéneo).

Un polinomio F(z0, . . . ,zn) ∈ K[z0, . . . ,zn] diremos que es un polinomio

homogéneo si todos sus monomios tienen el mismo grado. Denotare-

mos por F[z0, . . . ,zn] un tal polinomio.

Ejemplo 1.1.

• z0z3 – z22 es un polinomio homogéneo de grado 2.

• z1 – z3 es un polinomio homogéneo de grado 1.

• z23 es un polinomio homogéneo de grado 3.

Dado F[x,y,z], un polinomio homogéneo de grado r, no tiene sentido dar valo-

res a F en el plano proyectivo. Por ejemplo, si F[x,y,z] = x3 + 3y2z + z3, entonces

(1 : 1 : 1) = (2 : 2 : 2), pero F[1,1,1] = 5 6= 40 = F[2,2,2].

Ahora bien, sí que tiene sentido decir que F[x,y,z]=0 puesto que si λ 6= 0,

F[λx,λy,λz] = λrF[x,y,z]; en consecuencia, si F es un polinomio homogéneo de

grado r, entonces F[λx,λy,λz] = 0 si y solo si F[x,y,z] = 0.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 167: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 11 Criptografía con curvas elípticas

Relación afín-proyectivo

Consideremos como antes el conjunto Ui := {(x0 : · · · : xn) ∈ Pn|xi 6= 0} ⊂ Pn.

Relación de coordenadas entre los puntos considerados en el espacio afín y

en el espacio proyectivo.

.

Algoritmo 1.4.

An –→ Ui ⊂ Pn

(a1, . . . ,an) –→ (a1; . . . ; ai–1; 1; ai+1; . . . ; an)

( z0

zi, . . . , zi–1

zi,

zi+1

zi, . . . , zn

zi)←– (z0; . . . ; zn)

Relación de polinomios. Dado f (x1, . . . ,xn) ∈ K[x1, . . . ,xn] en el espacio afín, se

tiene F[x0, . . . ,xn] ∈ K[x0, . . . ,xn], su homogeneizado en el espacio proyectivo,

el cual se obtiene a partir de f multiplicando por potencias de x0 cada mo-

nomio hasta conseguir un polinomio homogéneo de grado gr(f ). Recíproca-

mente, para pasar de un polinomio del espacio proyectivo a uno en el espacio

afín, daremos valor 1 a la coordenada x0 (o a la coordenada que previamente

hayamos fijado).

Ejemplo 1.2.

• Coordenadas:

A2 –→ U2 ⊂ P2

(1,2) –→ (x : y : z) = (1 : 2 : 1)

(2, 12

)←– (x : y : z) = (4 : 1 : 2)

• Polinomios:

K[x,y] –→ K[x,y,z]

x2 + x3 + xy –→ x2z + x3 + xyzx + x2y + 1←– xz2 + x2y + z3

1.3. Curvas afines y proyectivas

Recordar

Un cuerpo K′ es la clausuraalgebraica de un cuerpo K siK ⊆ K′ y K′ mínimo, con lapropiedad de que cualquierpolinomio de K′[x] sedescompone en factores degrado uno.

.

Definición 1.5 (Curva afín y curva proyectiva).

Sean f (x,y) ∈ K[x,y] y F[x,y,z] ∈ K[x,y,z] no constantes. Entonces el con-

junto Cf (K) = {(x,y)|f (x,y) = 0} se denomina curva afín y CF(K) = {(x :

y : z)|F[x,y,z] = 0} curva proyectiva.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 168: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 12 Criptografía con curvas elípticas

.

Definición 1.6 (Componentes irreducibles de una curva).

Sea f ∈ K[x,y]. Podemos descomponer f en producto de factores irredu-

cibles f = f e1

1 . . . f ess . (Del mismo modo para F ∈ K[x,y,z]).

Con esta descomposición, podemos escribir la curva como unión de sus

componentes irreducibles: Cf (K) = Cf1(K) ∪ · · · ∪ Cfs

(K).

.

Definición 1.7 (Punto singular).

Sea C = Cf (K) ⊆ A2 una curva afín y p = (a,b) ∈ C. Decimos que p es un

punto múltiple o punto singular de C si satisface las ecuaciones:

8

>

>

>

>

<

>

>

>

>

:

∂f

∂x(p) = 0

∂f

∂y(p) = 0

Recordar

La notación∂f

∂x(p) significa

calcular la derivada parcial def (x) respecto a la variable x ydar valores en el punto p.

.

Definición 1.8 (Curva no singular).

Una curva es no singular si todos sus puntos son simples (o sea, no

singulares).

.

Definición 1.9 (Recta tangente).

Sea p = (a,b) ∈ C = Cf (K) un punto simple. Definimos la recta tangente

a C en el punto p como la recta dada por la ecuación:

∂f

∂x(p)(x – a) +

∂f

∂y(p)(y – b) = 0

Sea C = Cf (K), p = (a,b). Podemos escribir f como suma de componentes ho-

mogéneas:

f (x – a,y – b) = f0(x – a,y – b) + · · · + fm(x – a,y – b),

donde gr(fi(x – a,y – b)) = i.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 169: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 13 Criptografía con curvas elípticas

Observación

• mp(C) = 0 ⇐⇒ p 6∈ C.• mp(C) = 1 ⇐⇒ p es un

punto simple de C.• Si mp(C) = 2, decimos

que p es un punto doble.

.

Definición 1.10 (Multiplicidad en un punto).

Definimos la multiplicidad de C, en el punto p = (a,b), como el mínimo

k tal que fk(x–a,y–b) 6= 0 (como polinomio) y la denotaremos por mp(C).

Observación

Nótese que los factores α y βen la Definición1.11 notienen por qué tener loscoeficientes en el cuerpo K,sino que pueden tenerlos enalguna extensión cuadráticade K.En el caso de un nododistinguiremos un nodo

racional (si α y β tienencoeficientes en K), de unnodo irracional (en casocontrario).

.

Definición 1.11 (Nodos y cúspides).

Si mp(C) = 2, entonces f2(x – a,y – b) se puede descomponer en producto

de 2 factores: f2(x – a,y – b) = αβ.

• Si α 6= β, diremos que p es un nodo.

• Si α = β, diremos que p es una cúspide.

Donde la anterior igualdad o desigualdad de α y β se entiende salvo un

factor constante.

Ejemplo 1.3.

Supongamos que char(K) 6= 2,3. Consideramos la curva C : y2 = x3 + ax2. De otro modo,

sea f (x,y) = x3 + ax2 – y2, donde a es un valor constante a ∈ K.

La curva C, ¿tiene puntos singulares? Y, en caso afirmativo, ¿qué multiplicidad tienen?

• Para responder la primera cuestión, tal y como hemos dicho en la definición 1.7,

calcularemos las derivadas parciales teniendo en cuenta que, además, el valor de la

función f (x,y) debe ser cero en todos los puntos de la curva:

8

>

>

>

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

>

>

>

:

∂f

∂x= 3x2 + 2ax = 0

∂f

∂y= –2y = 0

f = x3 + ax2 – y2 = 0

Resolviendo este sistema encontramos y = 0, x(3x + 2a) = 0, x3 + ax2 – y2 = 0.

Finalmente, y = 0, x = 0. Por lo tanto, (0,0) es un punto singular.

• Para estudiar la multiplicidad del punto singular (0,0) utilizaremos la definición1.10,

pero antes descompongamos f (x,y) en suma de funciones homogéneas f0(x – 0,y – 0),

f1(x – 0,y – 0), f2(x – 0,y – 0), f3(x – 0,y – 0), de grados 0,1,2,3, respectivamente.

Vemos que f (x – 0,y – 0) = f (x,y) = 0 + 0 + (ax2 – y2) + x3.

Por lo tanto, f0(x,y) = f1(x,y) = 0, f2(x,y) = ax2 – y2 = (√

ax + y)(√

ax – y), f3(x,y) = x3.

Así, de acuerdo con la definición 1.10, vemos que mp(C) = 2 y, por lo tanto, p = (0,0)

es un punto doble. Ahora, de acuerdo con la Definición 1.11 vemos que para a = 0 el

punto p = (0,0) es una cúspide y para todos los valores a 6= 0, el punto p = (0,0) es un

nodo. Dependiendo de si√

a ∈ K o no el nodo será racional o irracional.

Las figuras siguientes corresponden a la curva y2 = x3 + ax2 para a = 1 y a = 0,

respectivamente.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 170: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 14 Criptografía con curvas elípticas

Nodo racional en el punto (0,0) de la curva y2 = x3 + x2

y

x

1

0,5

0

–0,5

–1

–1 –0,8 –0,6 –0,4 –0,2 0,2 0,4 0,6

Cúspide en el punto (0,0) de la curva y2 = x3

y

x

1

0,5

0

–0,5

1

–1

0,80,2 0,4 0,6

Una pregunta que quizás nos hayamos hecho a estas alturas es: ¿por qué nos

interesará mirar las curvas en el plano proyectivo?

Supongamos la misma curva que en el ejemplo anterior para el caso a = 2. La

podemos ver como una curva proyectiva dada por un polinomio homogéneo,

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 171: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 15 Criptografía con curvas elípticas

F[x,y,z] = x3 + 2x2z – y2z = 0. Podemos pasar la curva proyectiva al plano afín

dando el valor z = 1; así, obtenemos la curva f (x,y) = x3 + 2x2 – y2 = 0, que está

dada por la misma ecuación que ya habíamos visto en el ejemplo anterior y

de la que ya sabemos que el punto (x = 0,y = 0) es un punto singular. Para

evitar este punto singular podríamos pasar al afín usando otra coordenada;

por ejemplo, y = 1, obteniendo una “nueva curva”: g(x,z) = x3 + 2x2z – z = 0, en

la que el punto (x = 0,z = 0) pertenece a la curva y no es singular.

Observación

El uso de coordenadasproyectivas también permiterealizar cálculos en curvaselípticas sobre cuerpos finitossin necesidad de haceroperaciones de división en elcuerpo. Esto es importante,puesto que las operacionesde dividir soncomputacionalmentecostosas.

Estas dos curvas afines (las dadas por f y g) son curvas asociadas a la mis-

ma curva proyectiva. Así, aunque una de las curvas afines contenga un punto

singular podríamos encontrar otra curva afín asociada a la misma curva pro-

yectiva que no tenga ninguno.

.

Teorema 1.12 (Teorema de Bezout).

Sean C = {(x : y : z) ∈ P2|F[x,y,z] = 0} y D = {(x : y : z) ∈ P2|G[x,y,z] = 0}dos curvas proyectivas de grados m y n respectivamente (m = gr(F),

n = gr(G)). Si C y D no tienen componentes irreducibles en común,

entonces C y D tienen mn puntos en común contando sus multiplici-

dades.

Ejemplo 1.4.

• Dos rectas diferentes (curvas proyectivas de grado 1) se cortan siempre en un punto.

En efecto, si las consideramos en el plano afín, sabemos que dos rectas diferentes o

bien se cortan en un punto o bien son paralelas y, en este caso, se cortan en un punto

de la recta del infinito del plano proyectivo.

• Dos cónicas diferentes (curvas proyectivas de grado 2) se cortan exactamente en 4

puntos.

.

Corolario 1.13.

Una cónica definida por un polinomio irreducible F de grado 2, no

tiene puntos singulares.

Demostración: Una cónica es una curva proyectiva de grado 2. Suponemos

que esta cónica tiene un punto singular. Tomemos otro punto de la cónica y

consideramos la recta que pasa por estos dos puntos; esta recta es una curva

proyectiva de grado 1.

Nuestra cónica es una curva proyectiva de grado 2; por lo tanto, por el teorema

de Bezout, la recta y la cónica tienen 2 puntos en común, pero como el punto

singular tiene multiplicidad más grande o igual que 2, el número de puntos en

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 172: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 16 Criptografía con curvas elípticas

común será de 3 o más. Ello contradice el teorema de Bezout, a menos que la

recta y la cónica tengan una componente irreducible en común, componente

que debería ser la propia recta. Pero dado que F es irreducible, la cónica solo

tiene una componente irreducible

1.4. Puntos racionales

El cuerpo de los números racionales lo representaremos por Q.

.

Definición 1.14 (Sucesión fundamental).

Una sucesión de números an, con ai ∈ Q decimos que es una sucesión

fundamental si ∀ε > 0 ∃nε ∈ N tal que |an – am| < ε, ∀m,n > nε, donde la

norma es la norma euclídea.

Observación

El cuerpo R de los númerosreales se puede definir comoel conjunto de todas lassucesiones fundamentales,módulo una cierta relaciónde equivalencia.

.

Definición 1.15 (Cuerpo p-ádico).

Sea p primo. Todo número a ∈ Q se puede escribir de la forma a =

pr m

n, donde mcd(m,p) = 1 y mcd(n,p) = 1. Entonces, definimos la norma

p-ádica de a como: |a|p =1

pr.

Definimos el cuerpo p-ádico Qp como el conjunto de todas las suce-

siones fundamentales con esta norma, módulo una cierta relación de

equivalencia.

.

Definición 1.16 (Puntos racionales de una curva).

Sea K un cuerpo, y C = Cf (K) una curva. Decimos que p = (p1,p2) es un

punto racional de la curva si f (p) = 0 y p ∈ K2.

.

Teorema 1.17 (Teorema de Legendre).

Una cónica (con coeficientes en Q) tiene un punto racional si y solo

si tiene un punto racional sobre R y sobre los cuerpos Qp para todo

primo p.

Observación

El Teorema1.17 es falso paracurvas de grado mayor que2. Para curvas de grado 2, escierto para cualquier númerode variables, es decir, curvasplanas o no, definidas poruna forma cuadrática(Hasse-Minkowski).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 173: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 17 Criptografía con curvas elípticas

1.4.1. Puntos racionales de una curva de grado 1

Una curva de grado 1 es una recta. La ecuación de una tal recta se puede

escribir como Ax + By + C = 0.

Consideremos una parametrización de la recta o sea, expresaremos los puntos

de la recta en función de un parámetro. Una manera de hacerlo sería:

.

Algoritmo 1.18.

t –→ (t, C–AtB )

Ahora, dando a t valores en el cuerpo obtenemos puntos racionales de nuestra

recta. En particular si el cuerpo base es infinito, como Q, R,..., las rectas tienen

infinitos puntos racionales.

1.4.2. Puntos racionales de una curva de grado 2

Una curva de grado 2 es una cónica. En el caso K = Q,R,..., (cuerpos ordena-

dos) la ecuación de una cónica, tras cambios apropiados de coordenadas, se

puede escribir de una de las formas siguientes:

1) x2 + y2 = c < 0 =⇒ ∅.

2) x2 + y2 = 0 =⇒ un punto.

3) x2 = 0 =⇒ recta doble.

4) xy = 0 =⇒ dos rectas.

5) y = x2 =⇒ parábola.

6) xy = 1 =⇒ hipérbole.

7) x2 + y2 = c > 0 =⇒ elipse.

Los casos 2, 3 y 4 son curvas degeneradas o no irreducibles y, por lo tanto, no

las trataremos.

Los casos 5, 6, 7 son proyectivamente equivalentes; es decir, en el plano pro-

yectivo, podemos pasar de unos a otros vía un cambio de variables.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 174: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 18 Criptografía con curvas elípticas

Ejemplo 1.5. Cálculo de puntos racionales en una cónica

Consideremos, como ejemplo, la cónica afín x2 + y2 = 1 y calculemos sus puntos racio-

nales. En primer lugar, se ve fácilmente que el punto p = (0,1) es un punto racional de la

curva. Ahora, vamos a ver si podemos calcular los restantes.

Los puntos de la cónica los podemos pensar como intersecciones de la cónica con rectas

que pasan por este punto fijado p = (0,1).

Consideramos las rectas r : Ax + By + C = 0, del haz de rectas que pasan por el punto p.

Como p = (0,1) pertenece a la recta, se tiene que B + C = 0, o sea C = –B.

Podemos, por tanto, escribir la ecuación de la recta r como Ax + By – B = 0 o, también,AB

x + y – 1 = 0.

Hagamos A′ =A

By, entonces la recta será, A′x + y – 1 = 0.

Así, el haz de rectas que pasan por p = (0,1) es {A′x + y – 1 = 0}A′ (o sea, variando los

valores del parámetro A′, encontramos todas las rectas del haz).

Hagamos ahora la intersección de las rectas del haz con la cónica. O sea, resolvamos el

sistema de ecuaciones:

8

<

:

A′x + y – 1 = 0

x2 + y2 = 1

Haciendo operaciones, y = 1 – A′x

x2+(1–A′x)2 = 1→ x2+1–2A′x+A′2x2 = 1 → x2(1+A′2)–2A′x = 0 → x(x(1+A′2)–2A′) = 0.

Posibilidades:

8

>

<

>

:

x = 0→ punto (0,1)

x(1 + A′2) – 2A′ = 0, x =2A′

1 + A′2→ punto

2A′

1 + A′2,

1 – A′2

1 + A′2

«

Así, escogiendo como punto fijo p = (0,1), parametrizamos la cónica inicial de la siguiente

manera:

Algoritmo 1.19.

t –→“

2t1+t2 , 1–t2

1+t2

Para cada t del cuerpo base, el punto de la curva

2t

1 + t2,1 – t2

1 + t2

«

también lo es; en

particular si el cuerpo es infinito, la curva dada por f (x,y) = x2 + y2 – 1 tiene infinitos

puntos racionales.

1.4.3. Puntos racionales de una curva de grado 3

Observación

Hemos demostrado que, enel caso de un cuerpo infinito,si una cónica tiene un puntoracional, posee infinitos. Conesto no podemos decir quetoda cónica tiene infinitospuntos racionales porqueexisten curvas sin ningúnpunto racional; por ejemplo,x2 + y2 = –1 sobre Q.

Una curva de grado 3 es una cúbica.

.

Proposición 1.20.

Si F[x,y,z] = 0 es una curva proyectiva irreducible de grado 3 con un

punto singular, entonces este es único. Además, este único punto sin-

gular tiene multiplicidad 2.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 175: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 19 Criptografía con curvas elípticas

Demostración: Suponemos que tenemos una cúbica con dos puntos singu-

lares. Consideramos la recta que pasa por estos dos puntos. La curva y la recta

tienen, como mínimo, 4 puntos en común contando multiplicidades; pero,

teniendo en cuenta el teorema de Bezout, solo podrían tener 3, a menos que

tuviesen una componente irreducible en común, lo que como en el corolario

1.13 no puede ocurrir. Por tanto, la cúbica solo puede tener un punto singular

a lo sumo.

Supongamos ahora que este punto singular tiene multiplicidad mayor que

dos. Entonces una recta que pase por este punto y otro punto cualquiera de

la cúbica tendría, al menos, 4 puntos en común con la curva y esto, por el

teorema de Bezout, no puede ocurrir.

.

Proposición 1.21.

Un punto singular es siempre racional.

Resumiendo, una curva de grado 3 o no tiene puntos singulares o tiene exacta-

mente un punto singular que es un nodo o una cúspide y, además, es racional.

Si tenemos una curva de grado 3 no singular, sabemos que una recta que pasa

por dos de sus puntos corta a la curva en un tercer punto. Además, si dos de

estos punto son racionales, entonces el tercero también lo es. (Diofantes, siglo

III a. C.).

.

Teorema 1.22 (Teorema de la base finita de Mordell. (1923)).

Si C es una cúbica no singular sobre Q, existe un conjunto finito de

puntos racionales sobre C tal que todos los otros puntos racionales de

la curva se pueden encontrar haciendo construcciones de tangentes y

secantes a partir de estos.

1.4.4. Puntos racionales de una curva de grado 4

.

Teorema 1.23 (Teorema de Faltings (1983)).

Las curvas irreducibles de grado ≥ 4 tienen un número finito de puntos

racionales sobre el cuerpo Q.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 176: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 20 Criptografía con curvas elípticas

Resumimos lo que hemos dicho hasta ahora sobre los puntos racionales so-

bre Q:

• Curvas de grado 1: hay infinitos puntos racionales.

• Curvas de grado 2: si hay un punto racional, hay infinitos. Hilbert y Hur-

witz (1890) lo demuestran para las curvas de género cero (las de grado 1 y

2 lo son).

• Curvas de grado 3: hay un conjunto infinito de puntos racionales, conjun-

to que es finitamente generado. Mordell, 1923.

• Curvas de grado 4: hay un número finito de puntos racionales. Conjetura-

do por Mordell y demostrado por Faltings, 1983.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 177: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 21 Criptografía con curvas elípticas

2. Geometría de las curvas elípticas.

Comencemos dando una definición más formalizada de curva elíptica.

.

Definición 2.1 (Curva elíptica).

Una curva elíptica es una curva plana no singular de grado 3 junto con

un punto racional prefijado, que denominaremos punto base.

2.1. Ecuación de Weierstrass

Cualquier curva elíptica puede ser escrita en P2 como una ecuación cúbica de

la siguiente forma:

Ax3 + Bx2y + Cx2z + Dxyz + Ey2z + Fy2x + Gy3 + Hz3 + Iz2x + Jz2y = 0

Tomando un sistema de referencia adecuado, tales curvas se pueden expresar

en la forma de Weierstrass:

y2z + a1xyz + a3yz2 = x3 + a2x2z + a4xz2 + a6z3 (1)

con a1, . . . ,a6 ∈ K

O en el plano afín, curvas de grado 3 de la forma:

y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 (2)

Si char(K) 6= 2, entonces

(y +1

2a1x +

1

2a3)2 = y2 + a1xy + a3y +

1

4a1x2 +

1

4a2

3 +1

2a1a3x

(y +1

2a1x +

1

2a3)2 – (

1

4a1x2 +

1

4a2

3 +1

2a1a3x) = x3 + a2x2 + a4x + a6

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 178: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 22 Criptografía con curvas elípticas

Podemos pues simplificar la ecuación (1) haciendo el cambio

y := y +1

2a1x +

1

2a3

y nos queda:

y2 = x3 + (a2 +1

4a1)x2 + (a4 +

1

2a1a3)x + (a6 +

1

4a2

3)

Por tanto, si char(K) 6= 2, la ecuación de Weierstrass se puede escribir:

y2 = x3 +b2

4x2 +

b4

2x +

b6

4(3)

Suponemos ahora que además la característica del cuerpo es diferente de 3 ,

(x +b2

3 · 4)3 = x3 +b2

4x2 +

b22

42 · 3x +b3

2

(3 · 4)3

y2 = (x +b2

3 · 4)3 – 3xb2

2

(3 · 4)2– (

b2

3 · 4)3 + 2b4x + b6

Hagamos ahora el cambio,

x := x +b2

3 · 4

y nos queda la ecuación:

y2 = x3 + 27c4x – 54c6

Hemos simplificado más todavía la ecuación puesto que hemos eliminado el

coeficiente de x2.

Finalmente si char(K) 6= 2,3, la ecuación (1) se puede escribir de manera más

simple cómo:

y2 = x3 + Ax + B (4)

De manera similar, cuando tenemos un cuerpo de característica 2 o 3, también

se puede simplificar la ecuación (1).

Si char(K) = 2, entonces la ecuación de la curva elíptica tiene una de las dos

formas siguientes:

Si a1 6= 0 en la ecuación (1) : y2 + xy = x3 + b2x2 + b6, donde b6 6= 0

Si a1 = 0 en la ecuación (1) : y2 + b3y = x3 + b4x + b6, donde b3 6= 0(5)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 179: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 23 Criptografía con curvas elípticas

Si char(K) = 3, entonces tenemos:

y2 = x3 + a2x2 + a6 (6)

Las dos primeras curvas y2 = x3 – 10x + 9 y y2 = x3 – 2x + 3 definidas sobrelos números reales. La última, y2 = x3 + 10x + 9 sobre F1031

y

x

8

6

4

2

–2

–4

–6

–8

0

54321–3 –2 –1

y

x

0

4321–1

10

5

–10

–5

0

1.000

800

600

400

200

0 1.000800600400200

.

Proposición 2.2.

Sea K un cuerpo con char(K) 6= 2,3, sea C una curva sobre K, C : y2 =

x3+Ax+B. Sea∆ = 4A3+27B2 el discriminante de la curva. Entonces:

• ∆ 6= 0 ⇔ C no tiene puntos singulares.

• ∆ = 0 y A = 0 =⇒ C tiene una cúspide.

• ∆ = 0 y A 6= 0 =⇒ C tiene un nodo.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 180: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 24 Criptografía con curvas elípticas

Demostración: Sea C : y2 = x3 + Ax + B, f (x,y) = x3 + Ax + B – y2. C tiene puntos

singulares si, y solo si,∂f

∂x(p) = 0,

∂f

∂y(p) = 0.

8

>

>

>

>

<

>

>

>

>

:

∂f

∂x= 3x2 + A

∂f

∂y= –2y

Puntos singulares:

8

>

>

>

>

<

>

>

>

>

:

∂f

∂x= 0 ⇐⇒ x = ±

r

–A

3,

∂f

∂y= 0 ⇐⇒ y = 0

x3 + Ax + B – y2 = 0→ –A

3x + Ax + B = 0→ x =

3B

2A

entonces

x2 =9B2

4A2=

–A

3→ 4A3 + 27B2 = 0

1) C no tiene puntos singulares si, y solo si, 4A3 + 27B2 6= 0.

2) Sea 4A3 + 27B2 = 0 y A = 0, entonces B = 0 y f (x,y) = x3 – y2. El punto (0,0)

es un punto singular, además, según la definición1.11, sabemos que es una

cúspide.

3) Sea 4A3 + 27B2 = 0 y A 6= 0. El punto“3B

2A,0”

es un punto singular. f (x,y) =

x3 +Ax+B–y2 se puede escribir como f (x,y) =“

x–3B

2A

”3+

9B

2A

x–3B

2A

”2–(y–0)2,

entonces f2

x –3B

2A,y – 0

=9B

2Ax2 – y2 =

r

9B

2Ax – y

”“

r

9B

2Ax + y

. Así, el punto“3B

2A,0”

es un punto doble y, según la definición1.11, sabemos que es un nodo.

2.2. La ley de grupo de una curva elíptica

Sea C ⊂ P2 una curva elíptica dada por la ecuación de Weierstrass. Denotemos

O al punto base de la curva. Sea L ⊂ P2 una recta. Como la ecuación de la curva

tiene grado 3, L y C se intersecan en, exactamente, 3 puntos, digamos L ∩ C =

{P,Q,R}. Observemos, sin embargo, que si L es tangente a C, entonces P,Q,R

no serán tres puntos diferentes; habrá uno doble (el punto de tangencia). El

hecho de que L ∩ C, contando multiplicidades, dé tres puntos se deduce del

teorema de Bezout (teorema 1.12).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 181: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 25 Criptografía con curvas elípticas

2.2.1. Ley de grupo en C

Sean P,Q ∈ C y L la recta que pasa por estos dos puntos (la tangente en el caso

P = Q), y R el tercer punto de intersección de L y C. Sea L′ la recta que une R y

O. Entonces L′∩C = {R,O,P+Q}; es decir P+Q es el tercer punto de intersección

de la curva y la recta que pasa por R y O.

Definimos así una operación sobre los puntos de la curva elíptica de forma

que P + Q sea el punto calculado a partir de P y Q tal y como acabamos de

describir en el párrafo anterior. La operación que hemos definido dota a C de

estructura de grupo abeliano.

.

Proposición 2.3.

La ley de grupo en C tiene las siguientes propiedades:

• Si L ∩ C = {P,Q,R} (puntos no necesariamente diferentes), entonces

(P + Q) + R = O.

• P + O = P, ∀P ∈ C.

• P + Q = Q + P, ∀P,Q ∈ C.

• ∀P ∈ C ∃(–P) ∈ C tal que P + (–P) = O.

• (P + Q) + R = P + (Q + R), ∀P,Q,R ∈ C

Notación

Para n ∈ Z, P ∈ Cescribiremos:• nP = P + · · · + P n veces, si

n > 0.• nP = (–P) + · · · + (–P) |n|

veces, si n < 0

• 0P = O

Para facilitar los cálculos, tomaremos como punto base el punto del infinito

de la curva, O = (0 : 1 : 0). Dados dos puntos de la curva, P y Q calculemos

R (en la figura siguiente, R es el tercer punto donde la recta que pasa por P y

Q corta a la curva). Si ahora queremos calcular la intersección de la recta que

pasa por R y O con la curva elíptica, basta encontrar el simétrico de R respecto

al eje de las x.

Suma de dos puntos

P + Q

P

Q

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 182: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 26 Criptografía con curvas elípticas

Finalmente, detallamos un algoritmo, análogo al algoritmo de multiplicar y

elevar al cuadrado, para calcular nP con el mínimo número posible de opera-

ciones.

Antes que nada calcularemos la expansión binaria de n: n ↔ b1b2 . . . br, bi ∈{0,1} (br es el bit menos significativo, o sea, las unidades).

.

Algoritmo 2.4.

function Suma(n)

begin

for j← 1 to n

if bj = 1 then parcial← parcial + P endif

if j < r then parcial← 2·parcial endif

endfor

return(parcial)

end

Ejemplo 2.1.

Calcular 19P.

El número 19 escrito en binario es 10011. Entonces, de acuerdo con el algoritmo anterior

19P = 2

2“

2`

2(0 + P)´

+ P

«

+ P.

Ejemplo 2.2.

Sea K = F23, C : y2 = x3 + x + 1, P1 = (3,10), P2 = (9,7).

• Calcular P1 + P2.

• Calcular 10·P1

Empezaremos calculando la recta que pasa por P1 y P2, que denominaremos L : y = αx+β

α =7 – 10

9 – 3= –

1

2= –12 = 11

10 = 11 · 3 + β =⇒ β = 10 – 10 = 0

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 183: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 27 Criptografía con curvas elípticas

Por lo tanto L : y = 11x.

Ahora calcularemos la intersección de esta recta con la curva, o sea L ∩ C:

8

>

<

>

:

y = 11x

y2 = x3 + x + 1

Sustituyendo la y en la ecuación de la curva obtenemos

6x2 = x3 + x + 1

luego

0 = x3 + 17x2 + x + 1 = (x – 3)(x – 9)(x – x3)

puesto que sabemos que pasa por los puntos P1 y P2.

Recordar

De acuerdo con el teoremade Bezout, una recta corta auna curva elíptica en trespuntos P,Q,R. Si dos de estospuntos son iguales, digamosP = Q, entonces la recta estangente a la curva en elpunto P.

Igualamos los coeficientes de grado 2:

17 = –3 – 9 – x3 =⇒ x3 = –12 – 17 = 17

y3 = 11 · 17 = 3

El tercer punto de intersección es pues (17,3).

Finalmente, calcularemos el punto simétrico, sobre F23, respecto al eje de abscisas: P1 +

P2 = (17,20)

Para calcular 10P1 empezaremos escribiendo en binario 10↔ 1010. Aplicando el algorit-

mo análogo al de multiplicar y elevar, tenemos: 10P1 = 2(2(2P1) + P1)

Cálculo de la tangente que pasa por P1:

La ecuación de la tangente por un punto P es:

∂f

∂x(P)(x – x1) +

∂f

∂y(P)(y – y1) = 0

Tenemos f (x,y) = y2 – x3 – x – 1

8

>

>

>

>

<

>

>

>

>

:

∂f

∂x(P1) = –4 – 1 = 18

∂f

∂y(P1) = 20

Por lo tanto 18(x – 3) + 20(y – 10) = 18x + 20y + 22 = 0→ 10y = 14x + 12→ 5y = 7x + 6→y = 6x + 15, (5–1 = 14).

LP1: y = 6x + 15 recta tangente por P1.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 184: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 28 Criptografía con curvas elípticas

Ahora calcularemos la intersección LP1∩ C

8

>

<

>

:

y = 6x + 15

y2 = x3 + x + 1

Sustituyendo y en la ecuación de la curva tenemos

(6x + 15)2 = x3 + x + 1

entonces

0 = x3 – 13x2 + 5x + 6 = (x – 3)2(x – x3)

ya que el punto de tangencia P1 = (3,10) es una solución doble del sistema de ecuaciones.

Miramos el coeficiente de grado 2:

–13 = –3 – 3 – x3 =⇒ x3 = –6 + 13 = 7

y3 = 6 · 7 + 15 = 11

El punto de intersección es pues (7,11) y su simétrico sobre F23 es (7,12).

Por lo tanto: Q = 2P1 = (7,12)

Seguimos..., calculamos ahora la tangente a la curva que pasa por Q:

8

>

>

>

>

<

>

>

>

>

:

∂f

∂x(Q) = 13

∂f

∂y(Q) = 1

Por lo tanto 13(x – 7) + (y – 12) = 13x + y + 11 = 0→ y = 10x + 11.

LQ : y = 10x + 11 recta tangente por Q.

La intersección de esta tangente con la curva LQ ∩ C

8

>

<

>

:

y = 10x + 11

y2 = x3 + x + 1

0 = x3 – 8x2 – 12x – 5 = (x – 7)2(x – x3)

Miramos el coeficiente de grado 2:

–8 = –7 – 7 – x3 =⇒ x3 = 17

y3 = 10 · 17 + 11 = 20

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 185: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 29 Criptografía con curvas elípticas

El punto de intersección es (17,20) y, el simétrico sobre F23, es (17,3).

O sea: R = 2Q = (17,3)

Ahora, la recta que pasa por P1 y R, LP1,R : y = αx + β

α =3 – 10

17 – 3= –

8

7= 8 · 10 = 11

10 = 11 · 3 + β =⇒ β = 10 – 10 = 0

Por lo tanto LP1,R : y = 11x.

Calculemos ahora la intersección con la curva: LP1,R ∩ C:

8

>

<

>

:

y = 11x

y2 = x3 + x + 1

El punto de intersección es (9,7) y el simétrico sobre F23, es S = R + P1 = (9,16).

Calcularemos la tangente que pasa por S:

8

>

>

>

>

<

>

>

>

>

:

∂f

∂x(Q) = 9

∂f

∂y(Q) = 9

Por lo tanto 9(x – 9) + 9(y – 16) = 0→ x – 9 + y – 16 = 0→ y = 22x + 2.

LS : y = 22x + 2 recta tangente por S.

Ahora corresponde calcular la intersección de esta recta LS con la curva: LS ∩ C

8

>

<

>

:

y = 22x + 2

y2 = x3 + x + 1

0 = x3 – x2 + 3x – 3 = (x – 9)2(x – x3)

Miramos el coeficiente de grado 2:

–1 = –9 – 9 – x3 =⇒ x3 = 6

y3 = –6 · +2 = 19

El punto de intersección es (6,19) y el simétrico a F23, es 2S = (6,4). Esta es la solución

que buscábamos:

10P1 = (6,4)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 186: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 30 Criptografía con curvas elípticas

Ejemplo 2.3.

Sea K = F16, C : y2 + xy = x3 + α4x2 + 1, P1 = (α6,α8), P2 = (α3,α13).

• Construir el cuerpo F16 (utilizando el polinomio primitivo x4 + x + 1)

• Calcular P1 + P2

• Calcular 2·P1

En primer lugar construiremos el cuerpo finito F16 = Z2[x]‹

x4 + x + 1 .

Sea α = [x], la lista de los elementos en forma exponencial y su equivalente forma poli-

nomial es entonces:

α = [x]

α2 = [x]2 = [x2]

α3 = [x]3 = [x3]

α4 = [x]4 = [x4] = [x + 1] = [x] + 1 = α + 1

α5 = α · α4 = α2 + α

α6 = α3 + α2

α7 = α4 + α3 = α3 + α + 1

α8 = α2 + 1

α9 = α3 + α

α10 = α2 + α + 1

α11 = α3 + α2 + α

α12 = α3 + α2 + α + 1

α13 = α3 + α2 + 1

α14 = α3 + 1

α15 = 1

Ahora calcularemos P1 + P2 =

• Recta que pasa por P1 y P2, LP1,P2: y = ax + b

a =α13 – α8

α3 – α6=α3 + α2 + 1 + α2 + 1

α3 + α3 + α2=α3

α2= α

Por lo tanto, y = αx + b. El punto P1 pertenece a LP1,P2:

α8 = α · α6 + b =⇒ b = α8 + α7 = α11

LP1,P2: y = αx + α11

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 187: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 31 Criptografía con curvas elípticas

• LP1,P2∩ C

8

>

<

>

:

y = αx + α11

y2 + xy = x3 + α4x2 + 1

Sustituyendo el valor de y en la segunda ecuación, tenemos:

α2x2 + α10 + αx2 + α11x = x3 + α4x2 + 1

0 = x3 + α8x2 + α12x + α10 + 1 = (x – α6)(x – α3)(x – x3)

Miramos el coeficiente de grado 2:

α8 = α6 + α3 + x3 =⇒ x3 = α8 + α6 + α3 = α2 + 1 + α3 + α2 + α3 = 1

y3 = α + α11 = α6

Sobre F4, el simétrico de un punto es él mismo.

Solución:

P1 + P2 = (1,α6)

En segundo lugar, vamos a calcular 2P1

– Tangente que pasa por P1:

8

>

>

>

>

<

>

>

>

>

:

∂f

∂x(P1) = α9

∂f

∂y(P1) = α6

α9(x – α6) + α6(y – α8) = 0→ α3x + α9 + y + α8 = 0

LP1: y = α3x + α12

– LP1∩ C

8

>

<

>

:

y = α3x + α12

y2 + xy = x3 + α4x2 + 1

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 188: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 32 Criptografía con curvas elípticas

Sustituyendo el valor de y en la segunda ecuación, tenemos:

α6x2 + α9 + α3x2 + α12x = x3 + α4x2 + 1

0 = x3 + α10x2 + α12x + α7 = (x – α6)2(x – x3)

Miramos el coeficiente de grado 2:

α10 = α6 + α6 + x3 = x3

y3 = α13 + α12 = α

Solución:

2P1 = (α10,α)

2.2.2. Ecuación general de P + Q

Dada una curva elíptica, para calcular el resultado de hacer operaciones de

acuerdo con la ley de grupo definida en el subapartado 2.2.1, podemos usar

una fórmula que resume los cálculos que acabamos de hacer en los ejercicios

anteriores.

Observación

Verificar, si se desea, que elpunto base O = (0,1,0)

pertenece a la curvaC : y2 = x3 + Ax + B.

Consideramos la curva elíptica C sobre K con char(K) 6= 2,3, con ecuación

C : y2 = x3 + Ax + B. El punto base (en la recta del infinito) es O = (0 : 1 : 0)

de forma que el simétrico –P de un punto P = (x,y) se puede tomar como –P =

(x, – y). Sean P = (x1,y1), Q = (x2,y2), P + Q = (x3,y3), con P,Q ∈ C, –P = (x1, – y1).

Suponemos que Q 6= –P. Entonces:

a)P 6= Q

8

>

>

>

>

>

<

>

>

>

>

>

:

x3 =

y2 – y1

x2 – x1

«2

– x1 – x2

y3 =

y2 – y1

x2 – x1

«

(x1 – x3) – y1

b)P = Q

8

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

:

x3 =

3x21 + A

2y1

!2

– x1 – x1

y3 =

3x21 + A

2y1

!

(x1 – x3) – y1

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 189: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 33 Criptografía con curvas elípticas

Si Q = –P, P + Q = O (punto base de C).

Si char(K) = 2, tenemos dos casos (ver ecuación 5):

• E : y2 + cy = x3 + ax + b, c 6= 0

–P = (x1,y1 + c)

a) P 6= Q

8

>

>

>

>

>

<

>

>

>

>

>

:

x3 =

y1 + y2

x1 + x2

«2

+ x1 + x2

y3 =

y1 + y2

x1 + x2

«

(x1 + x3) + y1 + c

b) P = Q

8

>

>

>

>

>

<

>

>

>

>

>

:

x3 =x4

1 + a2

c2

y3 =

x21 + a

c

!

(x1 + x3) + y1 + c

• E : y2 + xy = x3 + ax + b, b 6= 0

–P = (x1,y1 + x1)

a) P 6= Q

8

>

>

>

>

>

<

>

>

>

>

>

:

x3 =

y1 + y2

x1 + x2

«2

+y1 + y2

x1 + x2+ x1 + x2 + a

y3 =

y1 + y2

x1 + x2

«

(x1 + x3) + x3 + y1

b) P = Q

8

>

>

>

>

>

<

>

>

>

>

>

:

x3 = x21 +

b

x21

y3 = x21 +

x1 +y1

x1

«

x3 + x3

Ejemplo 2.4.

Dada la curva y2 = x3 + 10x + 13 sobre F23 y los puntos de la misma P = (7,9), Q = (17,6),

calcular P + Q.

Usando las fórmulas anteriores, si hacemos P + Q = (x3,y3), resulta:

x3 =` 6 – 9

17 – 7

´2– 7 – 17 =

9

8– 1 = 3,

y3 =6 – 9

17 – 7(7 – 3) – 9 =

–3

44 – 9 = 22.

Fijémonos en que hemos hecho sumas y multiplicaciones en el cuerpo finito F23 pero,

también, divisiones. O, de otro modo, hemos tenido que calcular inversos en F23.

El cálculo de inversos en un cuerpo finito es una operación costosa que se puede obviar

usando coordenadas proyectivas en lugar de coordenadas afines.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 190: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 34 Criptografía con curvas elípticas

3. Curvas elípticas sobre cuerpos finitos.

3.1. Número de puntos de una curva elíptica

En todo este apartado K = Fq representará un cuerpo finito, con q = pm ele-

mentos, para un cierto m ∈ N y p primo. Si E es una curva elíptica sobre K

escribiremos E o E(q) para designarla.

Recordar

Zn representa el anillo de losenteros módulo n.

Notación

Escribiremos N = #E(q) paraindicar el número de puntosracionales de E.

.

Teorema 3.1.

`

E(q), +´

, donde + representa la ley de grupo definida en el subapartado

2.2.1, es un grupo cíclico, que puede ser generado por un solo elemen-

to, o bien se puede descomponer como suma directa de dos subgrupos

cíclicos con órdenes n1 y n2, respectivamente, de forma que

E(q) ∼= Zn1 ⊕ Zn2

donde n2 divide n1 y N = n1n2.

.

Definición 3.2 (Residuos cuadráticos).

Sea x ∈ Fq. Si existe z ∈ Fq tal que x = z2, diremos que x es un resi-

duo cuadrático (QR). En caso contrario, diremos que x es un no-residuo

cuadrático (QNR).

.

Definición 3.3 (Símbolo de Legendre).

Sea p un número primo y sea n ∈ Fp. Definimos el símbolo de Legendre

de n respecto p, y lo denotaremos por

n

p

«

, cómo:

n

p

«

=

8

>

>

<

>

>

:

1 si n es QR (mod p)

–1 si n es QNR (mod p)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 191: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 35 Criptografía con curvas elípticas

Suponemos que char(K) 6= 2,3, E : y2 = x3 + Ax + B. La curva E contiene el punto

del infinito (0 : 1 : 0), por lo tanto, el número de puntos de la curva es N ≥ 1.

Tomemos ahora x ∈ Fq (x puede tomar q valores diferentes), si ∃y ∈ Fq tal

que y2 = x3 + Ax + B, entonces –y también cumple esta ecuación. Por lo tanto,

podemos decir que N ≤ 1 + 2q.

Definimos ahora el carácter cuadrático χ:

.

Algoritmo 3.4.

F∗q –→ {1, – 1}

x –→ 1, si x es QR

x –→ –1, si x es QNR

Recordar

Un carácter cuadrático χ esun homomorfismo del grupomultiplicativo del cuerpofinito Fq (que escribiremosF∗

q ) en el grupo multiplicativo{1, – 1}.

Si q es un número primo,

entonces χ(x) =

x

q

«

.

Sea f (x) = x3 + Ax + B. Fijado x ∈ Fq, si f (x) es QR, entonces tenemos 2 puntos

de la curva; en cambio, si es QNR no tenemos ninguno. Así, podemos escribir

N en función de f (x):

N = 1 +X

x∈Fq

(χ(f (x)) + 1) = 1 + q +X

x∈Fq

χ(f (x))

Vemos el caso particular q = p , Fq = Z/p.

∀x ∈ Z/p, xp–1 = 1 (mod p) =⇒ xp–12 =

8

>

>

<

>

>

:

+1, si x es QR

–1, si x es QNR

.

Lema 3.5.

Sea p un número primo.

X

x∈(Z/p)∗

xi =

8

>

>

<

>

>

:

p – 1, si i = 0 o i = p – 1

0, si i 6= 0,p – 1

Demostración: Si i = 0, es claro queX

x∈(Z/p)∗

x = p – 1. Con i = p – 1 nos

encontramos en la misma situación puesto que xp–1 = 1 (mod p).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 192: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 36 Criptografía con curvas elípticas

Consideramos el caso i 6= 0,p – 1:

∀x ∈ (Z/p)∗ tenemos que xp – x = 0. Por lo tanto, podemos escribir xp – x =

(x – x1) · · · (x – xp), donde Z/p = {x1, . . . ,xp}.

Mirando el coeficiente de xp–1 en la ecuación xp –x = 0, tenemos 0 = x1 + · · ·+xp.

También, mirando el coeficiente de xp–2 tenemosX

i,j

xixj = 0. PeroP

x2i =

(P

xi)2 – 2

P

xixj = 0. Haciendo lo mismo para cada exponente i encontraría-

mos:X

x∈(Z/p)∗

xi = 0, ∀i /∈ {0,p – 1}.

Usaremos este lema para encontrar el valor de N:

N =1 + p +X

x∈Fp

χ(f (x)) = 1 + p +X

x∈Fp

(f (x))p–12

= 1 + p +X

x∈Fp

(x3 + Ax + B)p–12 = 1 + p +

X

x∈Fp

3·p–12

X

i=0

fixi

= 1 + p +

3·p–12

X

i=0

fi

X

x∈Fp

xi = 1 + p +

3·p–12

X

i=0

fi

X

x∈F∗

p

xi + f0

= 1 + p + (p – 1)f0 + (p – 1)fp–1 + f0.

Por lo tanto, N = 1 – fp–1 (mod p).

Casos especiales:

• Si fp–1 = 0 (mod p) y, más concretamente, si N = 1 + p, E se denomina

curva supersingular. Este tipo de curvas es importante, puesto que existe

un algoritmo para romper el logaritmo elíptico definido sobre ellas.

• Si fp–1 = 1 (mod p) y, concretamente, si N = p, E se denomina curva anóma-

la. En este caso también es sencillo romper el logaritmo elíptico (Semaev-

Smart-Satoh-Araki).

.

Definición 3.6 (Curvas supersingulares y anómalas).

Dado el cuerpo K = Fq, con q = pm, p primo, entonces:

• Si N = 1+q± t, donde p | t, diremos que E es una curva supersingular.

• Si N = 0 (mod p), diremos que E es una curva anómala.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 193: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 37 Criptografía con curvas elípticas

Observación

El teorema de Hasse nos daun intervalo bastanteajustado para el valor N:1+q–2

√q ≤ N ≤ 1+q+2

√q.

.

Teorema 3.7 (Teorema de Hasse, 1930).

Consideramos la curva elíptica E(q) y sea N el número de puntos racio-

nales de E(q). Se cumple:

|N – (1 + q)| ≤ 2√

q

Para la demostración de este teorema, se necesita la hipótesis de Riemann.

Hipótesis de Riemann

Es uno de los problemasabiertos más importantes yfamosos de la matemáticacontemporánea. Es el cuartoproblema del milenio que elClay Mathematics Institutedotó con un premio de unmillón de dólares para laprimera persona que aporteuna demostración correctade la conjetura.

.

Definición 3.8 (La función de Riemann).

La función de Riemann viene dada por:

ζ(s) =Y

p primo

1

1 –1

ps

!

=X

n∈N

1

ns

Para valores reales de s tenemos:

ζ(s) =

8

>

>

>

>

>

>

<

>

>

>

>

>

>

:

1 + 12 + 1

3 + 14 + · · · =∞, si s = 1

tiene solución, si s > 1

diverge, si s < 1.

La hipótesis de Riemann dice que, sobre el cuerpo de los números com-

plejos, los ceros no triviales de ζ(s) se encuentran todos sobre la recta

Re(s) = 12 .

Ahora nos planteamos el problema inverso. Dado un valor N, ¿existe una

curva elíptica que tenga este número de puntos?

.

Teorema 3.9.

Sobre el cuerpo finito Fq, donde q = pm y p primo, si t es cualquier valor

tal que:

8

>

>

<

>

>

:

|t| ≤ 2√

q

si p|t → pn|t, donde n =jm + 1

2

k

entonces, podemos encontrar una curva elíptica con N = 1+q+t puntos.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 194: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 38 Criptografía con curvas elípticas

Ejemplo 3.1.

Las curvas elípticas sobre Z2 se pueden escribir cómo:

y2 + xy = x3 + b2x2 + b6, si ∆ = b6 6= 0

y2 + b3y = x3 + b4x + b6, si ∆ = b43 6= 0

Por el teorema de Hasse, 3 – 2√

2 ≤ N ≤ 3 + 2√

2→ 1 ≤ N ≤ 5.

• E : y2 + y = x3 + x + 1, N = 1 (solo tiene el punto del infinito).

• E : y2 + y = x3 + x, N = 5.

• E : y2 + xy = x3 + x2 + 1, N = 2.

• E : y2 + xy = x2 + 1, N = 4.

• E : y2 + y = x3 + 1, N = 3.

• E : y2 + y = x3, N = 3.

Las dos últimas curvas son curvas supersingulares, puesto que N = 1 + p y la tercera es

una curva anómala.

¿Cómo podemos calcular el número de puntos N de una curva elíptica? Hay

diferentes métodos:

1) Por fuerza bruta, probando toda pareja de puntos (x,y) ∈ F2q .

2) A partir de P = (x,y) ∈ E, y 6= 0, calculamos 2P, 3P, · · · hasta obtener el

subgrupo 〈P〉 ⊂ E. Si E fuera cíclico (n1 = N,n2 = 1) y P fuera un generador

de E, obtendríamos 〈P〉 = E. En el supuesto de que N fuese un número primo,

tendríamos que todos los P 6= O son generadores.

3) Algoritmo de Schoof (1985). Calcula el número de puntos de una curva

con una complejidad O(log82(q)).

Hay casos particulares algo más sencillos; por ejemplo, curvas del tipo y2 =

x3 +Ax o y2 = x3 +B. En estos casos se usa el algoritmo de Munuera-Tena (1993)

con complejidad del orden de O(log32(p)).

3.2. Extensión de una curva sobre un cuerpo a una curva sobre un

cuerpo extendido

Una curva elíptica definida sobre Fp puede considerarse también definida so-

bre Fq donde q = pm. Denotemos N = #E(p) = p + 1 – t y Nm = #E(q).

Conjetura de Weil: (de hecho, es un teorema de Schmidt de 1925, previo a

Weil). Sean α,β ∈ C las raíces conjugadas de la ecuación x2+tx+p = 0. Entonces:

Nm = 1 + pm – αm – βm

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 195: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 39 Criptografía con curvas elípticas

Ejemplo 3.2.

Consideramos la curva E : y2 + y = x3. Sabemos que E tiene 3 puntos sobre Z/2. Vamos a

calcular cuántos puntos tiene la curva definida por la misma función, sobre F2m .

Calculamos α y β, haciendo t =`

N – (p + 1)´

en la ecuación anterior:

x2 + (3 – 3)x + 2 = 0→

8

<

:

α =√

2y

β = –√

2y

• Si m = 0 (mod 4), entonces Nm = 1 + 2m – 2√

2m

• Si m = 2 (mod 4), entonces Nm = 1 + 2m + 2√

2m

• Si m = 1,3 (mod 4), entonces Nm = 1 + 2m

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 196: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 40 Criptografía con curvas elípticas

4. El uso de las curvas elípticas en criptografía.

En 1985, Koblitz y Miller propusieron, de manera independiente, la utiliza-

ción del grupo de puntos de una curva elíptica definida sobre un cuerpo finito

como base para criptosistemas basados en la dificultad de romper el logaritmo

discreto.

4.1. El problema del logaritmo elíptico

Como hemos visto en el apartado anterior, los puntos de una curva elíptica

forman un grupo respecto de la suma. Dado un punto P de una curva elíptica

E, podemos calcular Q = sP, s ∈ Z, donde Q vuelve a ser un punto de la curva E.

.

Definición 4.1 (Problema del logaritmo elíptico).

Sea E una curva elíptica sobre el cuerpo finito Fq, con q = pm, p primo,

m ∈ N, y sea P ∈ E de orden n. El problema del logaritmo elíptico en E

(respecto de la base P) dado Q ∈ E, se basa en encontrar s ∈ Z tal que

Q = sP, en caso de que exista.

En este subapartado veremos algunos métodos y algoritmos conocidos para

romper el logaritmo elíptico.

El algoritmo de Silver -Pohlig-Hellman para romper el logaritmo discreto en

el cuerpo Fp tiene una complejidad de O(p

N1), donde p – 1 = N1 · . . . ·Nr es la

factorización de (p – 1) en primos y N1 es el más grande de estos primos. En

el caso del logaritmo elíptico tenemos que N = N1 · . . . · Nr, es la factorización

de N en primos y N1 es el primo más grande y, del mismo modo,romper este

logaritmo tiene una complejidad de O(p

N1). Observación

Si K = Z/p, p primo grande yN = p, entonces tenemos queN = N1(= p) es un primogrande y además, cualquierpunto diferente del neutro esgenerador con orden N. Porotro lado, hemos visto que siN = p, entonces E es unacurva anómala y el logaritmoes fácil de romper en estoscasos. También es fácil deromper en el caso N = p + 1,que corresponde a las curvassupersingulares.

Supongamos que K = Fq, donde q = pm y p primo pequeño. Sea N = #E(q) y

N1 = #E(p). Sabemos que los puntos que pertenecen a la curva sobre el cuerpo

base, también son puntos de la curva en un cuerpo mayor y el grupo de puntos

de la curva sobre el cuerpo base es un subgrupo del grupo de puntos de la

curva sobre el cuerpo mayor. Así, N1|N y existe un entero d tal que N = N1 · d.

Querríamos N = N1 · . . . · Nr, con algún Ni primo grande; así, si N1 es primo

grande, ya hemos acabado. Si N1 es pequeño, entonces d es grande, si además

d es primo ya tenemos una buena descomposición. En el supuesto de que

N = N1 · d con d primo, se dice que que E es quasiprima.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 197: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 41 Criptografía con curvas elípticas

.

Teorema 4.2 (Tena, 1994).

Sea K = Fq, donde q = pm y p primo pequeño, E curva elíptica sobre K.

Una condición necesaria para que E sea cuasiprima es que m sea primo.

El mejor algoritmo conocido para romper el logaritmo elíptico es el método ρ

de Pollard, que necesita

√πn

2pasos (sumas de puntos en curvas elípticas). Este

método se puede paralelizar con r procesadores y conseguir rebajar el número

de pasos necesarios a

√πn

2r.

.

Teorema 4.3 (MOV -Menezes, Okamoto y Vanstone-, 1993).

El cálculo del logaritmo elíptico sobre Z/p es equivalente al cálculo del

logaritmo discreto sobre Fpk para algún entero k.

Para k = 6 cuando p ≃ O(160)

bits, entonces pk≃ O(2000)

bits.

Esta equivalencia se obtiene haciendo la inmersión del grupo de puntos de

la curva definida sobre el cuerpo base dentro del grupo multiplicativo F∗

pk , lo

que solo es posible si N divide pk – 1. En F∗

pk se puede usar el algoritmo index-

calculus o el algoritmo NFS (number field sieve) para romper el logaritmo, lo

que proporciona un algoritmo subexponancial del orden de

exph“

c + o(s)”

·“

log(pk)”

13 ·“

log`

log(pk)´

23i

Observación

En la equivalencia dada por elalgoritmo MOV,normalmente, el valor delparámetro k será muy grandey, por lo tanto, no ganaremosnada haciendo la conversióndel logaritmo elíptico enlogaritmo discreto clásico.Pero, en algunos casos, sí quepodremos romper ellogaritmo elíptico a través delos algoritmos para romper ellogaritmo discreto (esto es elque pasa para las curvassupersingulares donde esconocido que k ≤ 6).

El método xedni-calculus (Silverman) es la idea inversa del index-calculus. Da-

da E(Z/p) se proyectan r combinaciones lineales en el plano sobre el cuerpo Q

y se considera la curva E(Q) que contiene estos r puntos. En el supuesto de que

estos r puntos obtenidos sean linealmente dependientes, se soluciona el pro-

blema elíptico. Actualmente se usa este método con r ≤ 9 y la probabilidad de

que los puntos obtenidos sean linealmente dependientes es muy pequeña. La

importancia del xedni-calculus es que es fácilmente adaptable tanto al proble-

ma del logaritmo discreto como a la factorización, por tanto permitiría atacar

todos los criptosistemas de clave pública en caso de que se encontrara algún

algoritmo eficiente para resolverlo.

4.2. Elección de la curva

La elección de la curva elíptica se debe hacer teniendo en cuenta los ataques

comentados en el subapartado anterior:

• Para resistir el ataque por el método ρ de Pollard, el número de puntos de

la curva debe ser divisible por un número primo lo suficientemente grande

(> 2160).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 198: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 42 Criptografía con curvas elípticas

• Para resistir el ataque de Semaev-Smart-Araki, el número de puntos de la

curva no debe ser múltiple de p.

• Para resistir la reducción MOV n (orden del punto escogido) no debe dividir

pk – 1, k pequeño.

• Para resistir los ataques contra curvas elípticas supersingulares, el número

de puntos de la curva no debe ser igual a 1 módulo p.

Veamos ahora diferentes métodos conocidos para escoger una curva adecuada.

1) El Teorema de Hasse y la Conjetura de Weil nos proporcionan una técni-

ca para elegir curvas sobre F2m , donde m es divisible por un entero l pequeño.

De hecho, como estos resultados son válidos para cualquier Fpm , podríamos

extender esta técnica a todos estos cuerpos.

Recordemos que dada una curva elíptica E, definida sobre Fp, podemos consi-

derarla también como una curva elíptica sobre cualquier extensión Fpm de Fp.

Además, sabemos calcular el número de puntos de la curva sobre el cuerpo

extendido, a partir del número de puntos de la curva sobre el cuerpo base.

Para elegir una curva adecuada sobre F2m , primero tomaremos una curva so-

bre F2l , con l dividiendo m y calcularemos el número de puntos de la curva

sobre F2l (que se puede hacer de forma exhaustiva puesto que hemos elegido

l de forma que el cuerpo F2l sea pequeño). Entonces calcularemos el número

de puntos de la curva sobre el cuerpo extendido y comprobaremos si es resis-

tente a los ataques anteriores. En caso de que no resista alguno de los ataques

anteriores repetimos el proceso hasta encontrar una curva adecuada.

El principal problema que presenta esta técnica es que el número de curvas

sobre F2l será relativamente pequeño, y por lo tanto, es posible que dados m y

l no consigamos encontrar ninguna curva adecuada usando este método.

2) Método global. Esta manera de elegir la curva está basada en tomar una

curva sobre los racionales y reducirla módulo un primo para tener la curva

sobre un cuerpo finito y comprobar si resiste los ataques anteriores.

Por ejemplo, si empezamos con E : y2 = x3 + Ax + B, donde A,B son números

racionales podemos considerar la misma ecuación módulo un primo p. En-

tonces, tendremos la curva sobre Fp con Np puntos. Hay resultados teóricos

que aseguran que para p lo suficientemente grande Np es múltiplo del número

de puntos de orden finito de la curva original sobre los racionales. Así, cono-

ciendo el número de puntos de orden finito sobre el cuerpo inicial tendremos

una cota inferior para el número de puntos de la curva sobre Fp.

3) Método de la multiplicación compleja. Este método permite la elección

del orden de la curva antes de construirla. Se debe comprobar que el orden que

queremos supere los ataques mencionados. Este método es eficiente cuando

el cardinal q del cuerpo y el valor t tal que #E = 1+q– t son escogidos de forma

que el cuerpo Q(p

t2 – 4q) tiene un número pequeño de clases de ideales. Para

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 199: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 43 Criptografía con curvas elípticas

curvas elípticas sobre Fp este método se denomina método de Atkin-Morain y,

sobre F2m , método de Lay-Zimmerman.

4) Método de elección aleatoria. Como su nombre indica, en este método se

elige la curva de manera aleatoria. Fijado un cuerpo finito Fq, suponemos que

char(K) 6= 2,3 y la curva E : y2 = x3 + Ax + B. Seleccionamos A,B ∈ Fq de forma

aleatoria, pero satisfaciendo 4A3 + 27B2 6= 0. Calculamos entonces el número

de puntos de la curva sobre Fq y lo factorizamos. Este proceso se repetirá hasta

encontrar una curva que pueda resistir los ataques anteriores.

Este método es especialmente usado en el caso de trabajar con curvas elípticas

sobre Fp, puesto que resultados de Lenstra demuestran su funcionalidad. Para

curvas elípticas sobre F2m hay resultados similares en los trabajos de Water-

house y Schoof.

4.3. Asignación de mensajes a puntos

Uno de los problemas prácticos que se plantean a la hora de usar este tipo

de criptografía es el de definir una correspondencia entre los mensajes que se

quieren transmitir y los puntos de la curva. Existen diferentes procedimientos

para hacerlo; veamos dos de ellos. Suponemos que char(K) 6= 2,3. E : y2 = f (x) =

x3 + Ax + B.

4.3.1. Creación de una tabla

Sea m el mensaje que queremos transmitir, 0 < m < C, donde C es una cota

superior del número de mensajes diferentes. Tomamos k arbitrario (que llama-

remos grado de fiabilidad), escogemos p primo tal que p > Ck, p con al menos

160 bits para asegurar la fortaleza del sistema. Podemos suponer los elementos

1, . . . ,Ck contenidos en Z/p usando la siguiente tabla:

2

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

4

1 2 . . . k – 1

k k + 1 k + 2 . . . 2k – 1

......

... . . ....

mk mk + 1 mk + 2 . . . (m + 1)k – 1

......

... . . ....

(C – 1)k · · · · · · . . . Ck – 1

3

7

7

7

7

7

7

7

7

7

7

7

7

7

7

7

7

7

7

5

donde cada fila representa una clase.

Dado m, tomamos x = mk y calculamos y2 = f (x). Si f (x) no tiene raíz cuadrada,

entonces necesitamos otro valor de x, tomamos x = mk + 1 y repetimos el

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 200: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 44 Criptografía con curvas elípticas

mismo proceso hasta encontrar x tal que f (x) tiene raíz cuadrada, tomando

entonces y =p

f (x).

Ahora nos podríamos preguntar: ¿este valor x se encuentra en la clase de m?

Sabemos que la mitad de los elementos de Z/p tienen raíz cuadrada y están

repartidos aleatoriamente. La probabilidad que en una fila no haya un cua-

drado es pues 12k . Por lo tanto, la probabilidad de que en una fila no haya una

x válida se puede hacer tan pequeña como queramos, aumentando el valor

de k.

Así pues, dado m, existe un valor j ∈ {1, . . . ,k – 1} tal que el punto P = (mk + j,y)

pertenece a la curva. Tenemos entonces la correspondencia:

.

Algoritmo 4.4.

Curva –→ Z/p

m –→ (mk + j,y)jα

k

k

←– (α,β)

4.3.2. Método de curvas entrelazadas

.

Definición 4.5 (Curvas entrelazadas).

Sea E : y2 = x3 + Ax + B una curva elíptica sobre Z/p, p primo. Sea E′ :

y2 = x3 + Aβ2x + Bβ3, con β ∈ Z/p, β NQR. Diremos que E y E′ son curvas

entrelazadas.

Observación

Fijada una curva E, existe unagran cantidad de parejas(E,E′) de curvas entrelazadas.

.

Teorema 4.6.

Sean E y E′ curvas entrelazadas. Entonces

#E + #E′ = 2(p + 1)

El concepto de par de curvas entrelazadas permite definir una aplicación bi-

yectiva entre el conjunto de valores {0,1, . . . ,2p + 1} y el conjunto de puntos

de las dos curvas. Así, a cada punto P = (x,y) que puede pertenecer bien a E

o bien a E′, le asignamos un valor de m ∈ {0,1, . . . ,2(p + 1)} de la siguiente

manera:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 201: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 45 Criptografía con curvas elípticas

m =

8

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

:

2x, sí P ∈ E, 0 ≤ y ≤ p – 1

2

2x + 1, sí P ∈ E,p – 1

2< y ≤ p

2p, sí P = (∞,∞) ∈ E

2x

β, sí P ∈ E′, 0 ≤ y ≤ p – 1

2

2x

β+ 1, sí P ∈ E′,

p – 1

2< y ≤ p

2x

β+ 1, sí P = (x,0) ∈ E′

2p + 1, sí P = (∞,∞) ∈ E′

donde2x

βse ha de reducir módulo 2p.

Supongamos ahora que tenemos el mensaje m. El punto asociado es:

P =

8

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

:

(m

2,√ω) ∈ E, si m es par y ω 6= 0 es QR (mod p)

(βm

2,q

β3ω) ∈ E′, si m es par y ω 6= 0 es NQR (mod p)

(m

2,0) ∈ E, si m es par,

m

26= p y ω = 0

(∞,∞) ∈ E, si m es par,m

2= p

(m – 1

2, –√ω) ∈ E, si m es impar y ω 6= 0 es QR (mod p)

(βm – 1

2, –q

β3ω) ∈ E′, si m es impar y ω 6= 0 es NQR (mod p)

(βm – 1

2,0) ∈ E′, si m es impar,

(m – 1)

26= p y ω = 0

(∞,∞) ∈ E′, si m es impar,(m – 1)

2= p

donde ω ≡ x3 + Ax + B (mod p) y√α, –

√α son las raíces cuadradas de un

elemento α.

Ejemplo 4.1.

Sea p = 31 y la pareja de curvas entrelazadas (hemos escogido β = 13):

E : y2 = x3 + 3x + 1

E′ : y2 = x3 + 3 · 132 + 1 · 133 = x3 + 11x + 27

E tiene 39 puntos y E′ tiene 25:

Puntos de E:

8

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

>

:

(0,1) (0,30) (1,6) (1,25) (6,7) (6,24)

(8,14) (8,17) (10,15) (10,16) (11,1) (11,30)

(13,6) (13,25) (14,11) (14,20) (17,6) (17,25)

(18,11) (18,20) (19,2) (19,29) (20,1) (20,30)

(21,5) (21,26) (22,12) (22,19) (24,3) (24,28)

(26,4) (26,27) (27,7) (27,24) (29,7) (29,24)

(30,11) (30,20) (∞,∞)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 202: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 46 Criptografía con curvas elípticas

Puntos de E′:

8

>

>

>

>

>

>

>

>

>

<

>

>

>

>

>

>

>

>

>

:

(1,15) (1,16) (3,5) (3,26) (8,10) (8,21)

(9,7) (9,24) (15,8) (15,23) (20,1) (20,30)

(21,8) (21,23) (22,6) (22,25) (23,4) (23,27)

(24,14) (24,17) (26,8) (26,23) (29,11) (29,20)

(∞,∞)

Entre las dos curvas tenemos pues 64 puntos. La correspondencia entre mensajes y pun-

tos viene dada por la tabla siguiente.

punto de E mensaje punto de E’ mensaje

(0,1) 0 (1,15) 24

(0,30) 1 (1,16) 25

(1,6) 2 (3,5) 10

(1,25) 3 (3,26) 11

(6,7) 12 (8,10) 6

(6,24) 13 (8,21) 7

(8,14) 16 (9,7) 30

(8,17) 17 (9,24) 31

(10,15) 20 (15,8) 50

(10,16) 21 (15,23) 51

(11,1) 22 (20,1) 46

(11,30) 23 (20,30) 47

(13,6) 26 (21,8) 8

(13,25) 27 (21,23) 9

(14,11) 28 (22,6) 32

(14,20) 29 (22,25) 33

(17,6) 34 (23,4) 56

(15,25) 35 (23,27) 57

(18,11) 36 (24,14) 18

(18,20) 37 (24,17) 19

(19,2) 38 (26,8) 4

(19,29) 39 (26,23) 5

(20,1) 40 (29,11) 14

(20,30) 41 (29,30) 15

(21,5) 42 (∞,∞) 63

(21,26) 43 - -

(22,12) 44 - -

(22,19) 45 - -

(24,3) 48 - -

(24,28) 49 - -

(26,4) 52 - -

(26,27) 53 - -

(27,7) 54 - -

(27,24) 55 - -

(29,7) 58 - -

(29,24) 59 - -

(30,10) 60 - -

(30,20) 61 - -

(∞,∞) 62 - -

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 203: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 47 Criptografía con curvas elípticas

5. Criptografía y protocolos criptográficos basadosen curvas elípticas

.

5.1. Protocolos criptográficos

Escribiremos EU(m) cuando hablamos de cifrar el mensaje m usando la clave

pública del usuario U y DU(c) cuando hablamos de descifrar el mensaje c.

5.1.1. Protocolo de Diffie-Helman

Versión clásica. Sea p un número primo, α ∈ Zp un elemento primitivo. Cada

usuario U elige al azar un número secreto nU ∈ Z∗p y hace público el valor αnU .

Los usuarios A y B desean compartir una clave secreta:

.

Algoritmo 5.1.

AαnA

–→ B

AαnB←– B

La clave secreta será K = αnA·nB , que solo es conocida por A y B.

Versión con curvas elípticas. Sea E una curva elíptica sobre Fp y P ∈ E punto

públicamente conocido. Cada usuario U elige al azar un número secreto nU ∈Fp y hace público el valor nUP. Para compartir una clave secreta, A y B deben

hacer:

.

Algoritmo 5.2.

AnAP–→ B

AnBP←– B

La clave secreta será K = (nA · nB)P que solo es conocida por A y B.

Ejemplo 5.1. Acuerdo de claves de Diffie-Helman usando curvas elípticas

En primer lugar, los usuarios A y B eligen una curva elíptica E sobre un cuerpo finito Zp.

También eligen un punto P de la curva de forma que su orden sea un número primo

grande.

Suponemos que la curva elíptica es E : y2 = x3 + 5x + 7 sobre Z113. El número de puntos

racionales de esta curva es 127 que es un número primo y, por lo tanto, los puntos de la

curva elíptica constituyen un grupo isomorfo a Z127.

Tomemos P = (16,51) que tiene orden ord(P) = 127, o sea P es un generador de la curva E.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 204: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 48 Criptografía con curvas elípticas

Protocolo

• A→ B. El usuario A elige un entero grande nA, calcula KA = nA · P y envía KA a B.

Si A toma, por ejemplo, nA = 98, entonces, KA = nA · P = (24,74).

• B→ A. El usuario B elige un entero grande nB, calcula KB = nB · P y envía KB a A.

Si B toma, por ejemplo, nB = 101; entonces, KB = nB · P = (3,7).

• A→ B. El usuario A calcula K = nA · KB = nA · nB · P = 98·(3,7) = (5,48).

• B→ A. El usuario B calcula K = nB · KA = nB · nA · P = 101·(24,74) = (5,48).

Al finalizar el algoritmo, tanto A como B disponen del mismo punto que tomarán como

clave de sesión: K = (5,48).

Simulador de cálculosen curvas elípticas

Para comprobar los cálculos

de este ejemplo podéis usar

el programa SAGE, que

encontraréis en la dirección

http:www.sagemath.org/.

Utilización del software SAGE

En este ejemplo podemos seguir los cálculos numéricos haciendo uso del software SAGE.

Se puede utilizar instrucción a instrucción, pero también se puede utilizar un script que

nos calcule directamente el resultado que queremos.

Antes que nada definiremos el cuerpo finito F113, que denominaremos F, con la orden:

sage: F = FiniteField(113)

A continuación definiremos la curva elíptica y2 = x3 + 5 ∗ x + 7. En general, la curva

definida por los parámetros [a,b,c,d,e] es y2 + axy + cy = x3 + bx2 + dx + e.

sage: E = EllipticCurve(F,[0,0,0,5,7])Elliptic Curve defined by y^2 = x^3 + 5*x + 7 over Finite Field of size 113

Si queremos conocer el orden de la curva elíptica:

sage: print(E.cardinality())127

A continuación, para indicarle el punto P = (16,51) escribiremos lo siguientes (y calcula-

remos, también, su orden):

sage: P = E.point((16,51))sage: P.order()

donde estamos explicando que se toma el punto P = (16,51) dentro del dominio de

puntos de la curva E.

El usuario A calcula KA := 98P y el usuario B KB := 101 ∗ P:

sage: K_A = 98*Psage: K_B = 101*P

Finalmente, podemos comprobar que los dos usuarios pueden utilizar la misma clave

común: K = nA ∗ KB = nB ∗ KA:

print 101*K_A,98*K_B

Tras esta última instrucción SAGE contesta con los dos valores que le hemos pedido

imprimir:

(5 : 48 : 1) (5 : 48 : 1)

Observar que SAGE está realizando las operaciones en coordenadas proyectivas.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 205: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 49 Criptografía con curvas elípticas

5.1.2. Protocolo de tres-pasos de Shamir

Versión clásica. Este protocolo pretende enviar el mensaje m de A a B.

.

Algoritmo 5.3.

AEA(m)–→ B

AEB(EA(m))←– B

AEB(m)–→ B

Es fundamental suponer que la función criptográfica utilizada cumple, para

cada pareja de usuarios, EA · EB = EB · EA. Un ejemplo de función criptográfica

con esta característica es EA(x) = xnA en Z/p, con p primo y nA clave privada

del usuario A. En este caso concreto, el protocolo se denomina protocolo de

Massey-Omura:

.

Algoritmo 5.4.

AmnA

–→ B

A(mnA )nB

←– B

AmnB

–→ B

Versión con curvas elípticas. Veamos la traducción del protocolo de Massey-

Omura. Sea E una curva elíptica sobre Fq, N = #E(q). Sea P ∈ E el mensaje que

el usuario A quiere enviar a B. Cada usuario U tiene una clave privada nU tal

que mcd(nU ,N) = 1.

.

Algoritmo 5.5.

AnAP–→ B

AnB(nAP)←– B

AnBP–→ B

5.2. Criptosistema ElGamal

Versión clásica. Se basa en el problema del logaritmo discreto sobre un cuerpo

finito Z/p, con p primo. Sea α ∈ Z/p un elemento primitivo el cual se hace

público. Cada usuario U tiene una clave privada nU ∈ Z/p – {0,1,p – 1} y hace

pública la clave pública αU = αnU . Suponemos que el usuario A quiere enviar

el mensaje m al usuario B. A debe seguir los siguientes pasos:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 206: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 50 Criptografía con curvas elípticas

• A escoge un número k ∈ Z/p – {0,1,p – 1} al azar y calcula αk,

• cifra m como c = EB(m) = m · (αB)k,

• envía a B el par (c,αk).

B para descifrar el mensaje deberá hacer:

• calcula β = (αk)nB ,

• m = c · β–1.

Versión con curvas elípticas. Sea E una curva elíptica sobre Z/p, sea P un

punto de la curva de orden grande N (sería deseable que 〈P〉 = E), N|#E(p).

Para cada usuario U, sea nU su clave privada, 1 < nU < N; (bastaría tomar

nU < p + 1 – 2√

p). La clave pública de U será PU = nUP. Suponemos que el

usuario A quiere enviar el mensaje m cifrado al usuario B:

• A escoge al azar un número k ∈ Z/p,

• calcula Pm el punto de la curva asociado al mensaje m,

• cifra Pm como C = EB(Pm) = Pm + k · PB,

• envía a B (C,kP).

B para descifrar el mensaje deberá hacer:

• Pm = C – nB(kP),

• encuentra el mensaje m asociado con el punto Pm.

5.3. Criptosistema RSA

Recordar

La función de Euler ϕ(n)

proporciona el cardinal de losnúmeros entre 1 y n que sonprimos con n. En el supuestode que n sea un númeroprimo n = p, tenemosϕ(p) = p – 1. En el supuestode que n = p·q es el productode dos primos tenemosϕ(n) = (p – 1)·(q – 1).

Versión clásica. Se basa en la función de una vía o unidireccional de la po-

tenciación: E(e,n)(x) = xe (mod n) donde 1 < x < n = pq, 1 < e < ϕ(n) con

mcd(e,ϕ(n)) = 1 y d = e–1 (mod ϕ(n)). La fortaleza del criptosistema se basa

en que p y q sean números primos grandes y, por lo tanto, n sea difícilmente

factorizable, lo que imposibilita calcular ϕ(n).

Observación

Actualmente no se conoceningún algoritmo defactorización de complejidadmenor que lasub-exponencial.

Supongamos que un usuario A quiere enviar un mensaje m a B. Los paráme-

tros públicos de B son (e,n), y los privados (p,q,ϕ(n),d). A deberá seguir los

siguientes pasos:

• El usuario A cifra m calculando c = E(e,n)(x) = xe (mod n) (con el método de

multiplicar y elevar al cuadrado, por ejemplo),

• El usuario A envía c a B.

El usuario B para descifrar el mensaje c deberá hacer:

• m = D(d,n)(c) = cd (mod n)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 207: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 51 Criptografía con curvas elípticas

Versión con curvas elípticas (esquema de KMOV. 1991). En este esquema se

representan los puntos de una curva elíptica de la forma y2 = x3 + b sobre Zn

como En(b). Para generar la clave pública el usuario B escogerá dos números

primos grandes (p,q) tales que p = q = 2 (mod 3) y, como en el esquema clásico,

calculará y publicará (e,n), donde n = p·q y mantendrá en secreto las claves

privadas (p,q,ϕ(n),d).

Observación

El esquema de KMOV(Koyama, Maurer, Okamoto,Vanstone) usa curvas elípticasdefinidas sobre Zn, donden = p·q es el producto de dosnúmeros primos que semantienen en secreto. Laseguridad de KMOV es lamisma que la del esquemaRSA. No obstante, el cifradoen el esquema KMOV es másflexible que en el RSA, porejemplo, la curva elíptica nose fija, sino que se construyepara cada nuevo mensaje.Para solucionar esteinconveniente hay otrosesquemas como el deDemytko (1993), Meyer yMüller ( 1996), Paillier(1999), etc.

Cada vez que A quiere enviar un mensaje m a B deberá seguir los siguientes

pasos:

• El usuario A divide su mensaje m en dos partes m = (m1,m2) donde m1,m2 ∈Zn.

• El usuario A determina el valor b de la curva de forma que m ∈ En(b).

Específicamente, calcula b = m22 – m3

1 (mod n).

• cifra el punto m calculando c = E(m) = e·m sobre En(b),

• envía el texto cifrado c = (c1,c2) a B.

El usuario B para descifrar el mensaje c deberá hacer:

• a partir del mensaje cifrado c = (c1,c2) el usuario B puede determinar el valor

de b puesto que este no cambia en el proceso de cifrado. Específicamente,

calcula b = c22 – c3

1 (mod n) y construye la curva y2 = x3 + b.

• a partir de la clave privada calcula m = D(c) = d·c sobre En(0,b).

5.4. Firma digital

En 1991 el NIST (National Institute of Standards and Technology) propuso el

DSS (digital signature standard), basado en el DSA (digital signature algorithm),

como estándar de firma digital. El DSS se basa en el criptosistema ElGamal.

Aun cuando podemos hacer la traducción de este sistema de firma a las curvas

elípticas, el que veremos es la versión análoga al DSA denominada ECDSA

(elliptic curve digital signature algorithm) puesto que este se ha convertido en el

estándar de firma digital con curvas elípticas.

Ver también

El criptosistema ElGamal seestudia en el módulo“Elementos de criptografía”de esta asignatura.

Versión clásica: DSS. Usaremos la misma nomenclatura que en el criptosiste-

ma ElGamal que ya hemos visto anteriormente.

El usuario A quiere firmar un mensaje m:

• A escoge un número k ∈ Z/p – {0,1,p – 1} al azar, tal que mcd(k,p – 1) = 1 y

calcula αk,

• calcula h(m), donde h(.) es una función hash,

• calcula s ∈ Z/(p – 1) verificando,

h(m) = nA · αk + k · s (mod (p – 1)).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 208: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 52 Criptografía con curvas elípticas

• La firma de m es la pareja (αk,s).

Un usuario que quiera verificar la firma del mensaje m deberá hacer:

• calcular el hash de m, h(m),

• obtener del directorio público la clave pública de A: αnA ,

• validar la firma comprobando la siguiente igualdad:

αh(m) = (αnA)αk

· (αk)s (mod p).

Versión clásica: DSA. Sea q un número primo de unos 160 bits y p otro nú-

mero primo de unos 500 bits tal que p = 1 (mod q). Sea α un generador del

subgrupo cíclico de orden q de (Z/p)∗. Para cada usuario U, su clave privada es

nU , un número escogido al azar, 0 < nU < q y la clave pública es αU = αnU .

El usuario A quiere firmar un mensaje m:

• A escoge un número 0 < k < q al azar y calcula r = (αk (mod p)) (mod q)

• calcula el hash de m, 0 < h(m) < q,

• calcula s que verifica

h(m) + nA · r = k · s (mod q),

• La firma de m es la pareja (r,s).

Un usuario que quiera verificar la firma del mensaje m deberá hacer:

• calcular el hash de m, h(m),

• obtener del directorio público la clave pública de A: αA = αnA ,

• calcular u1 = s–1h(m), u2 = s–1r (mod q),

• validar la firma si, y solo si, r = αu1 · αu2

A (mod p).

Versión con curvas elípticas: ECDSA. Sea E una curva elíptica sobre Z/p, sea

P un punto de la curva de orden primo n. Cada usuario U toma al azar un

número nU ∈ [1,n – 1] que será su clave privada, la clave pública de U será

PU = nUP. El usuario A quiere firmar un mensaje m:

• A escoge un número k ∈ [1,n – 1] al azar,

• calcula h(m), donde h(.) es el algoritmo SHA-1 (secure hash algorithm),

• calcula kP = (x1,y1) y r = x1 (mod n). Si r = 0, entonces volvemos a escoger

otro k y repetimos el mismo proceso.

• calcula k–1 (mod n)

• calcula s = k–1{h(m) + nAr} (mod n). Si s = 0, volvemos a escoger otro k y

repetimos el mismo proceso.

• La firma de m es la pareja (r,s).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 209: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 53 Criptografía con curvas elípticas

Un usuario que quiera verificar la firma del mensaje m deberá hacer:

• obtener del directorio público la clave pública de A: PA = nAP,

• verificar que r,s ∈ [1,n – 1],

• calcular w = s–1 (mod n) y el hash de m: h(m),

• calcular u1 = h(m) ·w (mod n) y u2 = r ·w (mod n),

• calcular (x0,y0) = u1P + u2PA y v = x0 (mod n),

• validar la firma si, y solo si, v = r.

Siguiendo las recomendaciones del NIST (National Institute of Standards and

Technology, Digital Signature Standard, FIPS, PUB 186-2. 2000) se debería ve-

rificar que el orden de la curva elíptica sobre Fp sea de la forma a·q donde

q es primo y a es un entero pequeño, de esta forma la curva no es vulnera-

ble al ataque de Pohlig-Hellman. También es conveniente que la curva no sea

supersingular ni anómala.

Dada una curva elíptica, deberemos calcular su cardinal y ver si satisface las

condiciones anteriores. Aunque hay un algoritmo polinomial (Schoof 1985)

para hacer este cálculo, su complejidad es del orden de log8(p), que para valo-

res demasiado grandes de p no es práctico.

5.5. Comparación de los sistemas de clave pública

5.5.1. Seguridad

Para llegar a un grado aceptable de seguridad el RSA y el DSA deberían usar

claves de 1024 bits, mientras que para la ECC sería suficiente con 160.

A medida que la clave crece, aumenta la distancia entre la seguridad de cada

propuesta. Por ejemplo, el ECC con 380 bits es mucho más seguro que el

RSA o el DSA con 2000 bits (de hecho, para esta longitud de clave, el ECC es

comparable al RSA de 7600 bits).

5.5.2. Eficiencia

Para comparar los niveles de eficiencia, deberemos tener en cuenta:

1) Costes computacionales, o sea la cantidad de computación requerida para

cifrar y descifrar.

Cada uno de los tres sistemas, ECC, RSA, DSA, exige un gran esfuerzo compu-

tacional. En el RSA se puede usar un exponente público pequeño (aun cuando

se deberían discutir los riesgos en los que se puede incurrir) para mejorar la

rapidez en la verificación de firmas y en el cifrado, pero no en la generación

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 210: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 54 Criptografía con curvas elípticas

de la firma y el descifrado. Tanto en el DSA como en el ECC se pueden pre-

calcular varias tablas para mejorar el rendimiento. También se pueden utilizar

bases normales y óptimas para trabajar en cuerpos finitos de la forma F2m .

Ver también

Las bases normales seestudian en el módulo“Cuerpos finitos”.Teniendo en cuenta el estado actual del arte en las implementaciones resulta

que la ECC es un orden de magnitud más rápido que el RSA y, también, que

el DSA.

2) Tamaño de la clave, o sea, la cantidad de bits necesarios para guardar la

pareja de claves y los otros parámetros del sistema.

La tabla siguiente compara la medida de los parámetros del sistema y de las

claves (pública y privada) para los diferentes sistemas.

Medida de los parámetros y claves

Sistema de parámetros (bits) Clave pública (bits) Clave privada (bits)

RSA 2208 1088 2048

DSA 2208 1024 160

ECC 481 161 160

3) Anchura de banda, o sea, la cantidad de bits que se deben transmitir para

comunicar un mensaje cifrado o una firma digital.

Los tres tipos de criptosistemas requieren la misma anchura de banda cuando

se usan para cifrar o firmar mensajes largos. De todos modos cuando los men-

sajes no son largos se ha de observar con más atención (y, de hecho, este tipo

de mensajes son los que usualmente son utilizados en la criptografía de clave

pública).

Por poder hacer comparaciones, suponemos que queremos firmar un mensaje

de 2000 bits o cifrar un mensaje de 100 bits. Las dos siguientes tablas compa-

ran las longitudes de las firmas y de los mensajes cifrados, respectivamente.

Medida de las firmas en mensajes de 2000 bits

Tamaño de la firma (bits)

RSA 1024

DSA 320

ECC 320

Medida de los mensajes de 100 bits, cifrados

Mensaje cifrado (bits)

RSA 1024

ElGamal 2048

ECC 321

En resumen, el sistema ECC tiene una gran eficiencia y, en las implementacio-

nes, esto significa rapidez, bajo consumo y reducción de la medida del código

transmitido.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 211: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 55 Criptografía con curvas elípticas

6. ECC estándares y aplicaciones.

6.1. ECC estándares

Los progresos realizados en la criptografía con curvas elípticas desde su apa-

rición en la década de los ochenta, hasta la actualidad, lo han transformado

en algo más práctico que los esquemas propuestos inicialmente. Las mejoras

introducidas han permitido la creación de implementaciones que ofrecen la

posibilidad de comenzar a extender el uso de este tipo de criptografía.

* http://www.certicom.com

Para promover la difusión de las mejores técnicas conocidas así como la in-

teroperatibidad entre aplicaciones, han ido surgiendo esfuerzos por estanda-

rizar la criptografía elíptica. Este esfuerzo ha sido liderado por la corporación

Certicom*, haciendo las mayores aportaciones en materia de criptografía con

curvas elípticas a los principales estándares de clave pública existentes.

A continuación detallamos algunos de los estándares más importantes, así

como otros más específicos, basados en aquellos.

6.1.1. Estándares principales

Los primeros frutos importantes del esfuerzo por estandarizar la criptografía

elíptica se traducen en la adopción de sus principales algoritmos dentro de

algunos de los estándares más importantes de criptografía de clave pública.

ANSI X9.62, X9.63

El American National Standards Institute’s ha sido una de las organizaciones

de más peso al adoptar las curvas elípticas dentro de sus estándares de cripto-

grafía. Los estándares de esta organización son referencia directa para servicios

financieros y la industria en general.

La primera aparición de la criptografía con curvas elípticas fue en el estándar

X9.62, con la adopción del esquema de firma digital ECDSA (elliptic curve digi-

tal signature algorithm) en enero de 1999 Algunas de las características iniciales

que se adoptaron fueron una longitud mínima para las claves de 80 bits, y el

uso de bases normales y polinomiales sobre F2m .

Posteriormente (2000) se amplió este estándar con el X9.63. El núcleo de

este estándar está basado en el anterior, pero se adoptan algunos esquemas

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 212: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 56 Criptografía con curvas elípticas

para el intercambio de claves como la ECDH (elliptic curve Diffie-Hellman),

ECMQV (elliptic curve Menezes-Qu-Vastone) o ECUM (elliptic curve unified model

Key Agreement). Aparte de estos también se introduce el esquema de cifrado

ECAES (Bellare-Rogaway).

IEEE P1363 y P1363A

La IEEE incluyó la criptografía con curvas elípticas en su estándar de cripto-

grafía de clave pública P1363 en febrero del 2000. El estándar es muy general

y fue desarrollado principalmente por investigadores de Certicom (Vanstone

y Menezes). En él se describen algoritmos típicos de criptografía de clave pú-

blica sobre curvas elípticas. Algunas de las características de este estándar son

las siguientes:

• Soporta curvas elípticas sobre Fp y F2m

• Apoyo para esquemas de firmado ECDSA (elliptic curve digital signature al-

gorithm) y ECNR (Elliptic Curve Nyberg-Rueppel) signature scheme.

• Apoyo para algoritmos de intercambio de claves ECDH (elliptic curve Diffie-

Hellman) key agreement y ECMQV (elliptic curve Menezes-Qu-Vastone) key

agreement.

Ver también

Los pairings se estudian en elmódulo “Pairings y susaplicaciones” .

Posteriormente, en un draft que complementa este estándar llamado P1363A

(standard specifications for public key cryptography: additional techniques) se in-

troduce la posibilidad de utilizar el esquema de cifrado ECIES. También, en

el draft P1363.3, se introducen los esquemas basados en la identidad usando

pairings.

ISO 14888, 9796-4, 15946

La International Organization for Standarizatcion (ISO) fue otra de las prin-

cipales organizaciones para la estandarización que apuesta por añadir la crip-

tografía con curvas elípticas en sus estándares criptograficos. La descripción

principal del uso de estas técnicas se hace en el estándar 15946 (cryptographic

techniques based on elliptic curves). Mientras que la primera parte del estándar

hace una descripción general de los métodos basados en curvas elípticas, la se-

gunda y tercera parte ya introducen el uso del esquema ECDSA para las firmas

digitales, y algunos algoritmos de intercambio de claves (ECDH, ECMQV).

Esta no es la única repercusión de la criptografía de curva elíptica sobre los es-

tándares de la ISO. También podemos encontrar modificaciones a otros están-

dares de firma digital, concretamente al 14888 (digital signature with appendix

part 3: certificate-based mechanisms) y al 9796-4 (digital signature with message

recovery, discrete logarithm-based mechanisms).

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 213: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 57 Criptografía con curvas elípticas

FIPS 186-2

Uno de los primeros éxitos de la estandarización de los algoritmos cripto-

gráficos basados en curvas elípticas fue la adopción de esta tecnología por el

National Institute of Standards and Technology (NIST). El estándar FIPS (fe-

deral information processing standard) 186-2 fue extendido en febrero del 2000

ampliando el apartado dedicado al DSS (digital signature standard) para incluir

la versión del ECDSA especificada en el estándar de ANSI X9.62.

Este estándar es un punto de referencia para la comercialización de productos

que contengan criptografía de curva elíptica, puesto que desde su creación,

las agencias gubernamentales americanas pueden comprar productos basados

en este tipo de criptografía sin pedir permisos especiales. El NIST ha incluido

también especificaciones para algoritmos de criptografía de curva elíptica en

su documento MISPC (minimum interoperability specification).

SEC 1, SEC 2, SEC 3 y SEC 4

El SECG (standards for efficient cryptography group) fue creado por la empresa

Certicom, para promover estándares de curva elíptica así como la difusión de

los mejores métodos para implementar este tipo de criptografía. Su principal

objetivo es crear un estándar, basado en los principales que existen, pero ha-

ciendo restricciones sobre los parámetros que estos exigen sobre cada uno de

los esquemas de firmado, cifrado o intercambio de claves que usan. El objetivo

de estas restricciones es hacer posible la interoperatividad de las aplicaciones

basadas en este estándar, con las basadas en cualquiera de los otros estándares

principales.

Los frutos de esta organización quedan reflejados en dos estándares. El pri-

mero de ellos, recogido en el 2009 en el documento SET 1 (elliptic curve cry-

ptography) hace una descripción de los esquemas permitidos (ECDSA, ECDH,

ECMQV y ECIES). Además, se describen todas las primitivas criptográficas que

se usan en estos esquemas y la notación ASN1 (abstract syntax notation one)

para representar las estructuras necesarias (claves, certificados, contenidos ci-

frados, etc) que se utilizan.

El esquema de cifrado ECIES tiene una larga historia en su nomenclatura y

ha ido sufriendo a la vez pequeñas modificaciones. Lo podemos encontrar en

la literatura como ECAES (elliptic curve augmented encryption scheme) o simple-

mente como ECES (elliptic curve encryption scheme). La versión definida en el

documento SET 1 es la más extensa y actualizada. Este esquema se basa en

utilizar criptografía simétrica para cifrar el mensaje deseado a partir de una

clave generada en el proceso de inicialización del método. Una vez se ha ci-

frado el mensaje se transmite el contenido cifrado y se envia la clave generada

utilizando el esquema ECDH.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 214: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 58 Criptografía con curvas elípticas

El segundo documento, SET 2 (recommended elliptic curve domain parameters),

hace una propuesta sobre los parámetros a utilizar sobre los esquemas defi-

nidos en SET 1, así como en otros estándares como el ANSI X9.63 o el IEEE

P1363. El uso de estas recomendaciones aumentan en gran medida la inter-

operatividad de las aplicaciones que los usen.

SET 3 trata sobre esquemas de firma basados en curvas elípticas con recons-

trucción parcial del mensaje (ECPVS y ECAOS).

SET 4 incorpora el esquema de certificación de Qu-Vanstone.

RSA

Laboratorios RSA publica dos documentos PKCS11 y PKCS13 para la estanda-

rización del uso de las curvas elípticas (generación de claves, firmas digitales,

cifrado con clave pública, etc.). El objetivo de ambos documentos era crear

un nuevo estándar criptográfico al estilo de otras PKCS (public key cryptography

standard) desarrollados por los Laboratorios RSA. La línea de la propuesta ini-

cial realizada en enero de 1998 tenía los mismos objetivos que los del grupo

SECG creado por Certicom. Hasta hoy no se ha adelantado más allá de la

propuesta inicial de 1998 y aparentemente el desarrollo de este estándar está

congelado.

NSA

NSA (National Security Agency) de USA anuncia, en el 2005, la suite B Crypto-

graphy la cual incluye la criptografía basada en curvas elípticas en la seguridad

de los sistemas de datos USA. Esta suite B incorpora la colección de algoritmos:

SHA256 y SHA384 (FIPS 180-3); AES128 y AES256 (FIPS 197); ECDH (ANSI

X9.63) y ECDSA (ANSI X9.62, SET 1).

Posteriormente se ha propuesto la suite E para sistemas restringidos (con códi-

gos de tamaño pequeño y requerimientos particulares de hardware, potencia

y ancho de banda).

6.1.2. Estándares de aplicación

Los estándares descritos en el subapartado anterior han sido los principales

promotores del esfuerzo por estandarizar la criptografía con curvas elípticas.

Aun así existen otros más específicos que se basan en el trabajo aportado por

los anteriores. La mayoría de estas iniciativas suelen definir protocolos crip-

tográficos basados en la criptografía de clave pública, pero están expresados

de forma que el algoritmo de cifrado a utilizar pueda ser cambiado siempre

que cumpla ciertas propiedades. Muchos de estos trabajos han incluido los

esquemas de criptografía con curvas elípticas propuestos en el apartado ante-

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 215: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 59 Criptografía con curvas elípticas

rior como nuevas soluciones para optimizar estos protocolos, sobre todo en

entornos donde el tamaño de la clave no puede ser demasiado grande. A con-

tinuación enumeraremos algunos.

IETF (IPSec, TLS, S/MIME, SSH, DNSSEC)

El Working Group de la IETF (Internet Engineering Task Force) ha adoptado

también la criptografía con curvas elípticas en sus estándares. Las especifica-

ciones más importantes hacen referencia a los protocolos IPSec, TLS, S/MIME,

SSH, DNSSEC.

El protocolo de intercambio de claves OAKLEY (RFC 2412), basado en el algo-

ritmo de Diffie-Hellman, ha sido modificado para soportar la variante ECDH

sobre curvas elípticas. Las curvas por defecto que se utilizan en este protocolo

están definidas sobre F2155 y F2185 .

WAP WTLS

WTLS (wireless transporte security layer) es la capa de seguridad para WAP (wi-

reless application protocol). Esta especificación se ha convertido en el estándar

de facto para proveer seguridad, integridad y autenticidad para aplicaciones de

teléfonos móviles y otros dispositivos pequeños. Los esquemas de firma (DSA)

y de intercambio de claves (DH) descritos en esta especificación han sido am-

pliados para soportar ECDSA para las firmas y ECDH para el intercambio de

claves. Los parámetros utilizados para estos dos algoritmos siguen los del es-

tándar del IEEE P1363 descrito en el apartado anterior. Esta especificación,

junto con el estándar FIPS del NIST demuestran la voluntad por parte de la

industria de adoptar este tipo de criptografía

ATM

El Security specification draft para redes ATM (asyncronous transfer Mode) es

el documento que especifica los mecanismos de seguridad que pueden ser

aplicados sobre este tipo de redes. Entre estos mecanismos hay sistemas para

garantizar la confidencialidad, la autenticidad, la integridad o el control de

acceso. Algunos de los mecanismos se basan en criptografía de clave pública

y, en ellos, se ha incluido la criptografía con curvas elípticas como posible

candidata a utilizar.

6.2. Aplicaciones de la ECC. Tarjetas inteligentes

Actualmente donde más se utilizan las nuevas tecnologías basadas en curvas

elípticas es en:

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 216: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 60 Criptografía con curvas elípticas

1) Aplicaciones que requieren operaciones de clave pública de tipo intensivo.

Por ejemplo, el comercio electrónico basado en Internet, etc.

2) Aplicaciones que requieren la utilización de canales con restricciones. Por

ejemplo, redes wireless, etc.

3) Aplicaciones que requieren el uso de tarjetas inteligentes.

Todas estas aplicaciones comparten un escenario implicando unas restriccio-

nes más severas en el uso del procesador. Comentaremos, básicamente, las

aplicaciones basadas en tarjetas inteligentes, aun cuando son fácilmente ex-

trapolables a las otras aplicaciones mencionadas.

En el 2001, Europay, Mastercard y VISA dan a conocer un informe técnico

sobre curvas elípticas, el EMV40. En él se introduce el uso de curvas elípticas

como sustituto del RSA para la autentificación y el cifrado.

La implementación de aplicaciones seguras para tarjetas inteligentes presen-

ta una serie de inconvenientes debido a las restricciones existentes en estos

dispositivos. Estas limitaciones son debidas principalmente a sus disponibili-

dades de memoria, de ancho de banda y de potencia de cálculo.

Las tarjetas inteligentes son pequeños dispositivos portátiles, que ofrecen al

usuario integridad de la información almacenada en su interior y capacidad

de procesamiento. Esta capacidad de procesamiento hace que las tarjetas in-

teligentes sean de gran utilidad para la implementación de un gran número

de aplicaciones relacionadas con el comercio electrónico, la identificación de

personas...

Para la mayor parte de estas aplicaciones, es necesario el uso de servicios crip-

tográficos que no encarezcan el producto final. Tales servicios criptográficos

son necesarios por varias razones. En primer lugar, la tarjeta requiere una serie

de características de seguridad que permitan la protección de la información

sensible almacenada a su interior. En segundo lugar, deben proporcionar un

entorno de procesamiento.

La generación de una clave pública y privada en el interior de una tarjeta

inteligente, así como la protección de la clave privada en su interior, es crí-

tica. Para poder proporcionar servicios criptográficos, la clave almacenada en

la tarjeta nunca ha de ser revelada. Por este motivo, la propia tarjeta deberá

autoprotegerse haciendo uso de sus servicios criptográficos.

6.2.1. Restricciones de las tarjetas inteligentes

Implementar criptografía de clave pública en aplicaciones basadas en tarjetas

inteligentes representa un gran reto, en parte por las restricciones de imple-

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 217: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 61 Criptografía con curvas elípticas

mentación que estos dispositivos requieren (memoria muy reducida y capaci-

dad de cálculo muy limitada).

La mayor parte de tarjetas inteligentes disponibles hoy en día en el merca-

do disponen de una memoria RAM de alrededor de 1.024 bytes, de unos 16

kilobytes de memoria EPROM y de unos 24 kilobytes de memoria ROM. Su

capacidad de procesamiento es también muy reducida. Normalmente, tienen

CPU de 32 bits a una frecuencia de unos 5 megaherzios.

Por último, la velocidad de transmisión de estas tarjetas es también muy li-

mitada. Para conseguir velocidades de aplicación aceptables, la información

transmitida por la tarjeta habría de ser la mínima necesaria.

6.2.2. Ventajas de la ECC

Las ventajas de la utilización de la ECC para la construcción de los servi-

cios criptográficos necesarios para tarjetas inteligentes son básicamente los

siguientes:

• Mínimos requerimientos de memoria y de tasa de transmisión. La utili-

zación de la ECC permite reducir el tamaño de las claves y los certificados.

Esto se traduce en una reducción de la memoria necesaria por parte de la

tarjeta inteligentes. Por otro parte, también permite una reducción de los

datos a transmitir entre tarjeta y aplicación. Por este motivo, la tasa de

transmisión necesaria se reduce considerablemente.

• Escalabilidad. Las aplicaciones basadas en tarjetas inteligentes requieren

un nivel de seguridad bastante elevado (con lo cual, la longitud de las cla-

ves aumenta considerablemente). La criptografía de curvas elípticas puede

proporcionar el nivel de seguridad parecido destinando menos recursos pa-

ra conseguirlo. Esto significa que con el uso de la ECC, las tarjetas inteligen-

tes pueden proporcionar un nivel de seguridad muy elevado sin necesidad

de incrementar su coste de producción.

• No requiere coprocesador. La mayor parte de dispositivos que ofrecen

criptografía de clave pública requieren un componente hardware conocido

como cripto coprocesador para apoyar los intensos cálculos que el sistema

debe realizar. Este componente hardware adicional no solo reduce el espa-

cio disponible en la tarjeta sino que incrementará su coste de un 20 a un

30 por ciento.

La naturaleza de los cálculos necesarios para implementar la ECC, con unos

tiempos de procesamiento bastante reducidos, no requieren este coproce-

sador. Por lo tanto, los algoritmos necesarios pueden ser implementados

en la ROM de la tarjeta, sin necesidad de hardware adicional.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 218: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 62 Criptografía con curvas elípticas

• Generación interna de claves. La clave privada asociada a una clave públi-

ca debe permanecer almacenada de forma secreta. Además, para garantizar

el no repudio, la clave privada habría de ser completamente inaccesible

por terceras partes.

Con la utilización de otros algoritmos, la introducción de claves dentro

de la tarjeta se debe hacer de forma personalizada en un entorno seguro.

Debido a la complejidad de los cálculos necesarios, la generación de claves

dentro de la propia tarjeta es ineficiente y generalmente impracticable.

Utilizando ECC se consigue que el tiempo necesario para generar una pare-

ja de claves sea tan reducido que incluso dispositivos de características de

cálculo tan modestas como las tarjetas inteligentes pueden generar tal pa-

reja. Esto significa que el proceso de personalización puede ser evitado en

aquellas aplicaciones donde la no repudiación sea realmente importante.

6.2.3. Conclusiones

Las tarjetas inteligentes tienen unas restricciones de implementación muy rí-

gidas debido a sus limitaciones de cálculo, parámetros de almacenamiento y

tasas de transferencia. Como resultado de estas restricciones, implementar un

sistema de clave pública con tarjetas inteligentes requiere el uso de tarjetas de

más alto nivel, con mayor capacidad de almacenamiento y con coprocesador

criptográfico.

La reducción del tamaño de las clave y los certificados que permite la ECC

para construir sistemas de clave pública, ofrece unas ventajas incuestionables

para la implementación de aplicaciones seguras en tarjetas inteligentes.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 219: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 63 Criptografía con curvas elípticas

Ejercicios de autoevaluación

1. Dada la cónica x2 + xy + y2 sobre F2, calcular sus puntos racionales.

2. Dada la cónica x2 + xy + y2 sobre F8, calcular sus puntos racionales.

3. Dada la curva y2 = x3 +3x+2 sobre F23 y los dos puntos de la misma P = (16,11),Q = (8,20),

calcular P + Q, 2P, 4P.

4. Dada la curva y2 + xy = x3 + αx2 + 1 sobre F4.

a) Comprobar que no tiene puntos singulares.

b) Dar un punto P de la curva. Por ejemplo, fijar un valor de x (por ejemplo x = 0) y resolver

la ecuación cuadrática resultante para ver si encontramos un valor válido para y (en

nuestro ejemplo, y2 = 1).

5. Dada la curva y2 + xy = x3 + αx2 + α sobre F4.

a) Comprobar que no tiene puntos singulares.

b) Dar un punto P de la curva.

c) Calcular el orden del punto P. Es decir, calcular el mínimo a, tal que aP = 0, donde 0 es el

punto del infinito.

d) ¿Podemos saber cuántos puntos tiene la curva, utilizando los teoremas conocidos?

6. Implementar usando SAGE el sistema criptográfico ElGamal sobre curvas elípticas. Usar

un número primo de más de 10 cifras y cifrar el texto

’Cifrar con ElGamal elíptico hace difícil el descifrado.’

Mostrar el texto en claro y el texto cifrado.

El método de codificación será una variante, debida a Menezes y Vanstone conocida como

MV-ElGamal. Un punto P de orden grande y la curva E son información pública. La clave

privada es un entero nU más pequeño que el orden de P y la clave pública es PU = nUP. El

mensaje m lo dividiremos en dos bloques módulo p, o sea (m1,m2) ∈ Fp × Fp. La función de

cifrado viene dada por

EU (m) = (rP,c1,c2) ∈ E× P × P

donde r es un número aleatorio, (x,y) = rPU y c1 = xm1 (mod p), c2 = ym2 (mod p). Supon-

dremos que x,y 6= 0, de lo contrario buscaremos otro valor de r.La correspondiente función de descifrado es:

DU (C,c1,c2) = (c1x–1,c2y–1), donde (x,y) = nUC.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 220: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 64 Criptografía con curvas elípticas

Soluciones

1. Los únicos puntos posible de la curva son (0,0),(0,1),(1,0),(1,1). Solo hace falta probar qué

valores satisfacen la ecuación y ver que los puntos racionales son (0,1),(1,0),(1,1).

2. El problema, ahora, no es tan sencillo como el anterior. Si en el cuerpo hay muchos ele-

mentos no podemos irlos probando todos de uno en uno. Podemos hacer como en el ejem-

plo 1.5.

Supongamos que el cuerpo finito lo hemos construido utilizando el polinomio primitivo

x3 + x + 1. Ya sabemos por el ejercicio anterior que (0,1) es un punto de la curva. El haz de

rectas que pasan por este punto es Ax+By+C = 0. Dando valores en el punto (0,1) obtenemos

B+C = 0, o sea B = C 6= 0 (si B y C fueran cero la recta sería x = 0 y no pasaría por otros puntos

que ya conocemos (los (1,0) y (1,1)). Si cortamos esta recta con la curva inicial obtenemos

los puntos que buscamos, o sea, las soluciones del sistema de ecuaciones:

8

<

:

Dx + y + 1 = 0

x2 + xy + y2 + 1 = 0

Resolviendo este sistema obtenemos: x = 1D2+D+1

; y = D2+1D2+D+1

y, al ir dando valores a D ∈ F8

obtenemos las ocho soluciones (1,0); (1,1); (α2,α); (α,α2); (α4,α); (α,α4); (α2,α4); (α4,α2) que,

junto con la solución inicial (0,1), da los nueve puntos racionales que buscábamos.

3. 2P = (20,14), 4P = (19,15), P + Q = (15,8).

4.

a) Efectivamente, el único punto singular sería (0,0) que no pertenece a la curva.

b) Fijamos x = α. Entonces obtenemos y2 +αy + 1 = 0 que no tiene solución. Esto quiere decir

que no hay ningún punto de la curva del tipo P = (α,?).

Si vamos buscando otros posibles puntos, llegaremos a la conclusión de que solo hay

soluciones cuando x = 0, valor que tiene dos soluciones. En el plano proyectivo escribi-

ríamos las soluciones como (0,1,0) y (0,1,1).

5.

a) Efectivamente, el único punto singular sería (0,0) el cual no pertenece a la curva.

b) Fijamos x = α2 y obtenemos y2 +α2y = 0, que proporciona dos soluciones (α2,0) y (α2,α2).

c) Empezamos con el punto P = (α2,0) y calculamos 2P = (α2,α2), 3P = 0. El orden del punto

P es 3 .

d) Según el teorema de Hasse el número de puntos de la curva es 1 ≤ N ≤ 9. Por el teorema

3.1, como el orden del punto P es 3, 3|N. O sea que N puede ser 3, 6 o 9. Pero conocemos

más puntos aparte de P, 2P, 3P (por ejemplo (α2,α2)). Es decir que N ∈ {6,9}. Para

terminar de precisar el valor de N necesitariamos calcular algún otro punto.

6. Empezaremos por buscar un número primo de más de 10 dígitos y definir una curva

elíptica sobre el cuerpo finito Fp. También escogeremos un punto P (fácil de calcular) sobre

esta curva.

sage: p= nextprime(10^10+10^8+10^5+1)sage: E = EllipticCurve(GF(p),[1975,4])sage: P = E([0,2])sage: print psage: print(E.cardinality())sage: print P.additiveorder()10100100007101001378081262517226

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 221: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 65 Criptografía con curvas elípticas

La curva es E : y2 = x3 + 1975x + 4 y el orden del punto P es lo suficientemente grande.

Las funciones de cifrado y descifrado las podríamos definir cómo:

def cipher(PU ,m1 ,m2):x=0,y=0while ((x==0) oro (y==0)):

r = floor(p*random())x = (r* Kpub)[0]y = (r* Kpub)[1]

return r*P, m1*x, m2*y

def uncipher(NU ,ciph):x = (NU*ciph[0])[0]y = (NU*ciph[0])[1]return ciph[1]*x^(-1), ciph[2]*y^(-1)

Para ver su funcionamiento tomemos por ejemplo, como clave privada nU = 10000:

sage: privatekey = 10000sage: publickey = privatekey*Psage: cipher(publickey,999,1999)((5871087149 : 8478284639 : 1), 571107865, 7072444218)

sage: uncipher(privatekey,cipher(publickey,999,1999))(999,1999)

Podemos convertir un texto de caracteres en enteros:

def codificar(texto):valornumerico = 0for c in texto:

valornumerico = 256*valornumerico + ord(c)return valornumerico

Y, a la inversa, para convertir un número en un texto alfabético:

def descodificar(numero):numero = Integer(numero)texto = ’’for y in numero.digits(256):

texto = chr(y) + textoreturn texto

Finalmente, como estamos codificando/descodificando utilizando el código ASCII, para la

tabla que nos piden, debemos hacer bloques en el texto que no superen log256p caracteres.

texto = ’Cifrar con ElGamal eliptico hace dificil el descifrado’L=len(texto)k = floor(log(p,256))NU = 10000for y in range(0,L,2*k):

t1 = texto[y:y+k]m1 = codificar(t1)t2 = texto[y+k:y+2*k]m2 = codificar(t2)textciph = cipher(NU*P,m1,m2)d1 = descodificar(uncipher(NU,textciph)[0])d2 = descodificar(uncipher(NU,textciph)[1])print d1+d2 , m1 ,m2, textciph, t1+t2

Este es el resultado. La primera columna es el texto a cifrar. La segunda y tercera columnas

el texto codificado (m1,m2). La cuarta columna los valores cifrados. Y la quinta columna el

resultado de descifrar.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 222: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 66 Criptografía con curvas elípticas

Cifrar c 1130980978 1634869347 ((3670548167 : 8041465163 : 1),6186249921, 6388942806) Cifrar c

on ElGam 1869488197 1816617325 ((9491602649 : 7910460644 : 1),8350385062, 7689324084) on ElGam

al elipt 1634476133 1818849396 ((1257214778 : 421866546 : 1), 524846611,5065905920) al elipt

ico hace 1768124192 1751212901 ((2068088083 : 6284606394 : 1),4999183562, 850702920) ico hace

dificil 543451494 1768122732 ((6466692567 : 5666762513 : 1),3325032242, 7746857338) dificil

el desc 543517728 1684370275 ((5844556383 : 4258913833 : 1),6783579288, 8248646216) el desc

ifrado 1768321633 25711 ((3083653805 : 3609902653 : 1), 4465267786,7374582335) ifrado

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 223: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

CC-BY-NC-ND • PID_00200952 67 Criptografía con curvas elípticas

Bibliografía

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

Fulton, W. (1969). Algebraic Curves. An Introduction to Algebraic Geometry. Nueva York: Ben-

jamin Inc. (Versión en castellano: Curvas algebraicas (1972). Barcelona: Ed. Reverte.)

Hankerson, D.; Menezes, A.; Vanstone, S. (2004). Guide to Elliptic Curve Cryptography.

Nueva York: Springer-Verlag.

Koblitz, N. (2004). “Algebraic Aspects of Cryptography”. Algorithms and computations inMathematics (vol. 3). Berlín, Heidelberg, Nueva York: Springer-Verlag.

Menezes, A. (1993). Elliptic Curve Public Key Cryptosystems. Massachusetts: Kluwer Academic

Publishers, Norwell.

Silverman, J. H. (1986). “The Arithmetic of Elliptic Curves”. Graduate Texts in Mathematics(núm. 106). Nueva York: Springer-Verlag.

Washington, L. C. (2008). “Elliptic Curves: Number Theory and Cryptography”. DiscreteMathematics and its Applications. Nueva York: Chapman & Hall/CRC.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 224: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 225: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

Pairings y susaplicacionesLlorenç Huguet Rotger

Josep Rifà Coma

Juan Gabriel Tena Ayuso

PID_00200950

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 226: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 227: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 228: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 229: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 230: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 231: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 232: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 233: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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′)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 234: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 235: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 236: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 237: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 238: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 239: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 240: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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 .

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 241: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 242: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 243: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 244: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 245: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 246: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 247: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 248: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 249: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 250: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 251: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 252: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 253: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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[]

?

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 254: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 255: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 256: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 257: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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)

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 258: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 259: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

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.

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf

Page 260: Criptografia avanzada (Modulo 1).pdf Cuerpos finitosgalois.azc.uam.mx/mate/LIBROS/criptografiaavanzada.pdf · Cuerpos finitos Llorenç Huguet Rotger Josep Rifà Coma Juan Gabriel

https://www.exabyteinformatica.com/uoc/Informatica/Criptografia_avanzada/Criptografia_avanzada_(Modulo_1).pdf