Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Ejercicios de autoevaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
CC-BY-NC-ND • PID_00200953 5 Cuerpos finitos
Introducción
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.
Objectivos
.
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).
.
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.
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)
Algoritmo 1.4.
a0 := a, a1 := b, x0 := 1, x1 := 0, y0 := 0, y1 := 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
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
Determinemos ahora para qué otros valores de q, distintos de los primos, exis-
te un cuerpo finito con q elementos.
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)).
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).
+ 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
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).
El cuerpo finito Fq contiene dos grupos abelianos, (Fq ,+) y (F∗q ,·). La estructura
de estos grupos es particularmente simple.
Nota
Y
ϕ (n) = n · (1 – 1/pi ) (4)
i
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.
X
q= dNp (d). (5)
d|m
CC-BY-NC-ND • PID_00200953 16 Cuerpos finitos
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.
>
:
8
>
X < 1
>
si n = 1;
µ(d) = (7)
>
d|n : 0
>
si n > 1.
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
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).
1 X 1 X m d
Np (m) = µ(d)pm/d = µ( )p . (10)
m m d
d|m d|m
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.
• 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.
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.
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
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
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.1. Multiplicación
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
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.
• 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:
Luego a · b = α2 .
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.
3.1.2. División
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:
Desde j = k – 1 hasta 0
Final Desde
Notas
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
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.
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
Demostración: Observación
Nota
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
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.
.
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.
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.
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.
Si ǫ = 1 tomar c := c – p.
Si c ≥ p tomar c := c – p.
4 c ≡ a + b (mod p).
Algoritmo 3.15.
1. Sean R0 := 0, R1 := 0, R2 = 0.
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.
C[1] = 01, C[2] = 00, C[3] = 00, C[4] = 11, C[5] = 01, C[6] = 01
Algoritmo 3.16.
2. Para k = 0,1, . . . P – 1,
Para j = 0,1, . . . ,t – 1.
3. C es la representación de c(X).
Ejemplo 3.6.
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.
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.
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
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:
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.
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.
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:
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.
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:
[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
α
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,
α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
α7 + α23 α7 + α8 α4
δ = α10 + + 1 = α10 + + 1 = α10 + + 1 = α10 + α3 + 1 = α12 .
1+ α12 α α
1+α
α7 x2 + (α2 + α9 )x + = 0,
α4
o sea: α7 x2 + x + α8 = 0.
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
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:
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
0 1
1 1 0
B C
B C
B 0 1 1 C ,
@ A
1 0 1
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 = 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)
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.