Está en la página 1de 40

Cuerpos finitos

Llorenç Huguet Rotger


Josep Rifà Coma
Juan Gabriel Tena Ayuso

PID_00200953
Los textos e imágenes publicados en esta obra están sujetos –excepto que se indique lo contrario– a
una licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 España de
Creative Commons. Podéis copiarlos, distribuirlos y transmitirlos públicamente siempre que citéis
el autor y la fuente (FUOC. Fundació per a la Universitat Oberta de Catalunya), no hagáis un uso
comercial y no hagáis una obra derivada. La licencia completa se puede consultar en
http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
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
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.
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.
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
Teorema 1.1 (Teorema de Wedderburn). Todo cuerpo finito es
Sobre el teorema de
conmutativo (es decir, su multiplicación es conmutativa).
Wedderburn podéis
consultar la obra de Lidl y
Niederreiter (1997).
.

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

cuerpo K se define como el mínimo p de los enteros positivos n tales Existen cuerpos infinitos que
que n · 1 = 1 + 1 + · · · + 1 = 0 (suma de n copias de 1), donde 0 es el no son conmutativos, como
el cuerpo de los cuaterniones.
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}.
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.

El algoritmo de Euclides (Euclides, libro VII), que permite obtener el máximo Cuerpo binario
común divisor d de dos números a,b ∈ N, es uno de los algoritmos bási-
Si p = 2, se tiene el cuerpo
cos en matemática computacional. Una modificación - algoritmo de Euclides con dos elementos
extendido- permite obtener d como combinación lineal de a y b con coefi- F2 = {0,1} base de la
computación binaria (las
cientes enteros (Identidad de Bezout): operaciones de cuerpo
coinciden con las
operaciones lógicas
O-exclusivo (XOR) y AND).
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 – qi ai (calculamos el cociente qi y el residuo ai+1

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

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

yi+1 := yi–1 – qi yi (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 puede


Ejemplo 1.2. Sea p = 7, y el cuerpo F7 = {0,1,2,3,4,5,6}. Para a = 3, b = 6 se tiene aplicarse también a dos
3 + 6 ≡ 2 (mod 7), 3 · 6 ≡ 4 (mod 7) y 3–1 ≡ 5 (mod 7) (nótese que 1 = 1 · 7 – 2 · 3). polinomios a(X),b(X) con
coeficientes en un cuerpo K.
Ver el ejemplo 1.3.
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 Fm
p , con-

junto con cardinal pm .

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


potencia de un número primo. El siguiente teorema muestra que para cual-
El cuerpo C de los números
quier potencia de un primo existe un cuerpo finito con ese cardinal y que tal complejos contiene las raíces
cuerpo es esencialmente único. de todo polinomio con
coeficientes en el cuerpo Q
de los números racionales.
. Sin embargo C no es una
clausura algebraica de Q ya
Definición 1.7 (Clausura algebraica). Sea K un cuerpo. La clausura que no se cumple la
condición de minimalidad. La
algebraica de K es un cuerpo que contiene a K, tal que todo polinomio clausura es un subcuerpo de
con coeficientes en K tiene todas sus raíces en él y que es minimal con C denominado cuerpo de los
números algebraicos.
esta propiedad. Tal clausura existe y es única salvo isomorfismo.
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–1 Xm–1 + · · · +f1 X+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 +a1 X+· · ·+am–1 Xm–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 + a1 X + · · · + am–1 Xm–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,
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
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.
CC-BY-NC-ND • PID_00200953 13 Cuerpos finitos

Demostración: Sea n = pe11 · · · pemm la descomposición de n en factores primos.


Como pei i aparece en la factorización, existe xi ∈ G de orden ki pei i para un
cierto entero natural ki . Entonces el elemento xki i tendrá orden pei i y por tanto
Qm
x= 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)
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 = pr11 . . . prss la factorización prima del número


natural n. Se tiene:

Y
ϕ (n) = n · (1 – 1/pi ) (4)
i

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
Ejemplo 1.6 . Como en el ejemplo 1.4, consideremos el polinomio irreducible X3 + X +
1 ∈ F2 [X], y sea α una raíz.
No se conoce ningún
algoritmo eficiente para el
Para saber si α es un elemento primitivo, en F8 deberíamos calcular su orden y ver si es
cálculo de un elemento
máximo. O sea, si el menor entero positivo r tal que αr = 1 es r = q – 1 = 7.
primitivo, ni siquiera en el
caso de los cuerpos Fp , p
Sabemos que α3 + α + 1 = 0, o sea α3 = α + 1. Luego, α4 = α2 + α; α5 = α3 + α2 = α2 + α + 1; primo.
α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:

Exponencial Vectorial Polinomial


Observación
0 (0,0,0) 0
α0 (1,0,0) 1 Observar que al escribir un
α1 (0,1,0) α polinomio como vector,
α2 (0,0,1) α2 utilizando los coeficientes de
su expresión aditiva, hemos
α3 (1,1,0) 1+α
empezado por el término de
α4 (0,1,1) α + α2 grado cero como primera
α5 (1,1,1) 1 + α + α2 coordenada.
α6 (1,0,1) 1 + α2
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
d d ′ ′
de Xp – X, luego g(X) divide a Xp – 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
d m d
lugar de p, muestra que Xp –1
– 1 divide a Xp –1
– 1 luego Xp – 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,

X
q= dNp (d). (5)
d|m
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
Qs
modo siguiente: si n ∈ N y n = i=1 pei i es su descomposición en factores
primos, entonces

8
>
1 si n = 1;
>
>
>
>
>
<
µ(n) = 0 si ei ≥ 2 para algún valor de i; (6)
>
>
>
>
(–1)s
>
si ei = 1 para todo valor de i.
>
:

Lema 2.5. Si n ∈ N, se verifica que

8
>
X < 1
>
si n = 1;
µ(d) = (7)
>
d|n : 0
>
si n > 1.

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 s
X X
µ(d) = µ(1) + µ(pi ) + µ(pi pj ) + · · · + µ(p1 p2 . . . ps )
d|n i=1 1≤i<j≤s

0 1 0 1 0 1
B s C B s C B s C
= 1+B C (–1) + B C (–1)2 + · · · + B C (–1)s
@ A @ A @ A
1 2 s

= (1 – 1)s = 0.
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

X
g(n) = f (d). (8)
d|n
Se verifica que

X n X n
f (n) = µ(d)g( ) = µ( )g(d). (9)
d d
d|n d|n

Demostración:

X n X X
µ(d)g( ) = µ(d) f (e)
d
d|n d|n e|(n/d)

X X
= µ(d)f (e)
e|n d|(n/e)

X X
= f (e) µ(d)
e|n d|(n/e)

= 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

1 X 1 X m d
Np (m) = µ(d)pm/d = µ( )p . (10)
m m d
d|m d|m

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


Observación
f (m) = mNp (m).
Un polinomio irreducible de
grado m puede obtenerse
Ejemplo 2.1. Para p = 2 el número de polinomios de grado m es: tomando polinomios
arbitrarios y aplicándoles un
test de irreducibilidad (Lidl y
1) 1 si m = 2. El polinomio: X2 + X + 1.
Niederreiter, 1997). El valor
2) 2 si m = 3. Los polinomios: X3 + X + 1 y X3 + X2 + 1. Np (m) dado por el teorema
3) 3 si m = 4. Los polinomios: X4 + X + 1, X4 + X3 + 1 y X4 + X3 + X2 + X + 1. 2.7 proporciona una
estimación de la probabilidad
4) etc. de éxito de tal búsqueda
aleatoria.
CC-BY-NC-ND • PID_00200953 18 Cuerpos finitos

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


m–1
una base del tipo {α,αp , · · · ,αp } 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.

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


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

Sobre el teorema de la base


. normal podéis ver la obra
de Lidl y Niederreiter (1997)
Teorema 2.9 (Teorema de la base normal). Existe una base nor- o la de Menezes (1993).

mal para todo cuerpo finito.

Evaluemos el número de bases normales. Supongamos fijada una tal base nor-
m–1
mal B = {α,αp , . . . ,αp } (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 .

Veamos qué condición debe cumplir C para que la nueva base B′ sea también Observación
normal.
Comenzar con 0 los
subíndices de los elementos
de la base B′ y de los
.
componentes de la matriz
circulante es por coherencia
Definición 2.10 (Matriz circulante). Se denomina matriz circulan-
con los exponentes de la base
te (con coeficientes en un cuerpo o anillo) a una matriz del tipo: normal B: p0 ,p1 , . . . ,pm–1

0 1
B a0 a1 ... am–1 C
B C
B C
B am–1 a0 am–2
B C
... C
B C
B C
[a0 ,a1 , . . . ,am–1 ] = B
B . . . .
C.
C (11)
B C
B C
B . . . .
B C
C
B C
@ A
a1 a2 ... a0
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,

0 1pi 0 1pi
j j–i j
pi
aj–i αp = @ aj–i αp A = @ aj α p A = β 0
X X X
βi =
j j j

lo que muestra que la base B′ es normal.

pj
Si recíprocamente suponemos B′ normal, sea β0 =
P
j c0j α . Se tendrá:

pi i+j j
c0j αp = c0,j–i αp
X X
βi = β0 = (12)
j j

P pj
pero también (por definición) βi = j cij β , lo que muestra que la matriz C es
circulante.

El número de bases normales del cuerpo Fq será pues igual al número de ma-
Lectura recomendada
trices m × m circulantes e invertibles con coeficientes en Fp .
Para la determinación del
número de bases normales
del cuerpo Fq podéis ver la
obra de Lidl y Niederreiter.
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 = a1 v1 +


a2 v2 + · · · + am vm , b = b1 v1 + b2 v2 + · · · + bm vm , (que podemos identificar con los
vectores a = (a1 ,a2 , · · · ,am ), b = (b1 ,b2 , · · · ,bm )), se tiene:

tijk vk )
X X X X X
c=a·b=( ai vi )( b j vj ) = ai bj (vi vj ) = ai bj ( (13)
i j ij ij k

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


minadas tablas de multiplicación. Si c = c1 v1 + c2 v2 + · · · + cm vm , las coordenadas
ci vienen dadas por la ecuación matricial:

Observación
ck = aTk bt . (14)
En la ecuación 14 la bt
denota el vector traspuesto
Las tablas de multiplicación determinan pues el producto. Este puede imple- del b (en este caso un vector
escrito verticalmente).
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:
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 =


m–1
αp }, las m tablas de multiplicación Tk = (tijk ) verifican la siguiente rela-
ción:

Lema 3.1. Para 0 < l ≤ m – 1 se tiene tijl = ti–l,j–l


0
. Es decir, la tabla Tl se
deduce de la T0 por desplazamiento de l posiciones en filas y columnas.

k
Demostración: Por definición de las tablas αi αj =
P
k tij αk . Elevando ambos
–l –l
–l p p P k
miembros a p se tiene que αi αj = αi–l αj–l = k tij αk–l . Pero, por definición,
P k
αi–l αj–l = k ti–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 = α.
CC-BY-NC-ND • PID_00200953 22 Cuerpos finitos

3.1.3. Exponenciación

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í * A su vez necesarios en el
sistema criptográfico RSA;
mismo n veces y posteriormente reduciendo módulo m el resultado obtenido. consultar la obra de Koblitz
(1994).
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 + s1 2 + · · · sk–1 2k–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 .
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


m–1
en la base normal {α,αp , . . . ,αp }. 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 n
p, que ai = ai y que αp = αq = α) que:

m–1 2 m m–1
(a0 α+a1 αp +· · ·+am–1 αp )p = a0 αp +a1 αp +· · ·+am–1 αp = am–1 α+a0 αp +· · ·+am–2 αp

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

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


Algoritmos eficientes
ticular las implicadas en los algoritmos criptográficos, tienen una complejidad
polinómica. Dado que las operaciones en cuerpos finitos se remiten a opera- Los algoritmos de
complejidad polinómica se
ciones con números enteros, veamos previamente la complejidad de algunos denominan
algoritmos básicos con enteros. computacionalmente
eficientes o buenos, ya que el
computador puede
ejecutarlos en un tiempo
.
razonable, por oposición a los
algoritmos cuya complejidad
Proposición 3.8. es exponencial en la longitud
de los datos.
• 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.
CC-BY-NC-ND • PID_00200953 25 Cuerpos finitos

Demostración: Observación

Debe señalarse que el


algoritmo habitual de
1) Puede siempre suponerse la misma longitud para ambos sumandos, aña- multiplicación no es el mejor
diendo eventualmente ceros a la izquierda de la representación binaria del de algoritmo conocido para
realizar esta operación. Existe
menor longitud. La suma se obtiene entonces realizando k sumas binarias, es otro, debido a Schönhage y
decir, por definición, k operaciones bit. Strassen, con complejidad
O(k log(k) log log(k))
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 < 21 ai ,
lo que implica que el número de etapas es, a lo sumo, 2⌊log(a)⌋. Ahora bien,
1 1 1
si ai+1 ≤ 2 ai , entonces ai+2 < ai+1 ≤ 2 ai . Si ai+1 > 2 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 <
1
2 ai .
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)


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

.
Observación
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- A efectos computacionales el
3 coste de las sumas o
tos de Fq es O(log q) operaciones bit. diferencias en un algoritmo
en cuerpos finitos suelen
considerarse irrelevantes, ya
que su complejidad es menor
que la de la multiplicación. A
Demostración: Los elementos a ∈ Fq se manejarán como expresiones a =
veces tal complejidad se
a0 + a1 α + · · · + am–1 αm–1 , ai ∈ {0,1, . . . ,p – 1}. Realizar la multiplicación de a expresa no en operaciones
bit sino en número de
por b implica realizar el producto de los polinomios que los representan y la operaciones elementales: en
reducción del resultado módulo f (X). este caso se entienden por tal
las multiplicaciones.

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.

Por lo que respecta a la división x/y, solo resta probar que el inverso de y ∈ F∗q Observación
3
puede computarse en O(log q) operaciones bit. Basta aplicar el algoritmo de
Puede observarse que la
Euclides a f (X) y al polinomio que representa b, lo que requiere O(m) di- complejidad de la
multiplicación (o división) en
visiones de polinomios de grado a lo sumo m, cada una de las cuales com-
un cuerpo finito es cúbica
porta O(m log3 p + m2 log2 p) operaciones bit. En definitiva, el coste total es mientras que la
multiplicación (o división) en
O(m3 log3 p) = O(log3 q) operaciones bit.
números naturales es
cuadrática. Ello obedece al
sobrecoste de la reducción
módulo p y del cálculo del
3.3. Algoritmos aritméticos en cuerpos finitos inverso módulo p.

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

1) Cuerpos primos Fp
Referencias adicionales

Si el cardinal p del cuerpo es grande, sus elementos tendrán longitud k = Para otros algoritmos de
adición y multiplicación, así
⌈log2 p⌉ mayor que la longitud P de palabra del computador (usualmente P = como de exponenciación y
16,32 o 64 bits). Si t = ⌈k/P⌉ los elementos a ∈ Fp pueden representarse en la división remitimos a la
numerosa bibliografía sobre
forma A := A[t – 1] . . . A[1]A[0], concatenación de t bloques A[i] de P bits. el tema, por ejemplo, I.
Blake; G. Seroussi; N. Smart
(2000). Elliptic Curves in
Para dos tales bloques x,y, notaremos [z,ǫ] si x + y = ǫ2P + z, ǫ = 0,1, 0 ≤ z ≤ Cryptography, London
Mathematical Society
2P – 1. Lecture Note Series 265.
Cambridge: U. Press; y D.
Hankerson; A. Menezes; S.
Algoritmo de adición: Sean a,b ∈ {0,1, . . . ,p–1}. El siguiente algoritmo calcula Vanstone (2004).Guide to
c ≡ a + b (mod p). Elliptic Curve Cryptography.
Springer.

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.
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).
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.
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 α.
α7 + α23
a) Determinar δ como potencia de α, donde δ = α10 + +1
1 + α12
b) Encontrar todas las raíces de la ecuación:

1+α
α7 x2 + (α2 + α9 )x + =0
α4

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 ). P
Se denomina Traza de x a Tr(x) = 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) = λm N(x), λ ∈ Fp , x ∈ Fq ,

iii) Tr(λ) = mλ,

iii’) N(λ) = λm , λ ∈ Fp .
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.
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,b
no 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.
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.
r
6) Si r|m se ha probado en la proposición 2.2 que el polinomio Xp – X divide al polinomio
m
Xp – 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 vi wj 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 .

m
8) El cuerpo Fpm está formado por todos los elementos que cumplen Xp – x = 0. Sean estos
m
elementos {0,a1 ,a2 , · · · ,apm –1 }. Entonces Xp –1 – 1 = (X – a1 )(X – a2 ) · · · (X – apm –1 ). Haciendo
operaciones:

m m m Y
Xp –1
– 1 = Xp –1
– (a1 + a2 + · · · + apm –1 ) Xpm – 2 + · · · + (–1)p –1
ai
| {z }
=0
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 =
m
{0,α1 ,α2 , · · · ,α2 –1 = 1}, donde α es un elemento primitivo. Vamos a ver si α tiene raíz
cuadrada:

m m √ m–1
1 = α0 = α2 –1
=⇒ α = α2 =⇒ α = α2

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 ,
m m
· · · ,αp –1 }, donde α es un elemento primitivo y αp –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:

m
{0,α0 ,α2 , · · · ,αp –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 + α
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:

α7 + α23 α7 + α8 α4
δ = α10 + + 1 = α10 + + 1 = α10 + + 1 = α10 + α3 + 1 = α12 .
1+ α12 α α

• Para encontrar las raíces de la ecuación dada, debemos resolver:

1+α
α7 x2 + (α2 + α9 )x + = 0,
α4

o sea: α7 x2 + 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.
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 1
0 1 0
B C
B C
B 0 0 1 C ,
@ A
1 0 0

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 1
0 0 1
B C
B C
B 1 0 0 C ,
@ A
0 1 0

matriz no singular que proporciona la base normal B′ = {α2 ,α4 ,α}.


f) Sean c0 = 1, c1 = 1, c2 = 0: la matriz obtenida es

0 1
1 1 0
B C
B C
B 0 1 1 C ,
@ A
1 0 1

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.
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 · · · a1 a0 , 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 ) = α.
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.

También podría gustarte