You are on page 1of 40

Cuerpos finitos

Lloren Huguet Rotger


Josep Rif Coma
Juan Gabriel Tena Ayuso
PID_00200953

Los textos e imgenes publicados en esta obra estn sujetos excepto que se indique lo contrario a
una licencia de Reconocimiento-NoComercial-SinObraDerivada (BY-NC-ND) v.3.0 Espaa de
Creative Commons. Podis copiarlos, distribuirlos y transmitirlos pblicamente siempre que citis
el autor y la fuente (FUOC. Fundaci per a la Universitat Oberta de Catalunya), no hagis un uso
comercial y no hagis 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

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.

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

1.1.

Existencia y construccin de cuerpos finitos . . . . . . . . . . . . . . . . . .

1.2.

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

12

1.2.1.

Representacin aditiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.2.2.

Representacin multiplicativa . . . . . . . . . . . . . . . . . . . . . . . .

14

2.

Bases de cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

3.

Computacin en cuerpos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.1.

Aritmtica en cuerpos finitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.1.1.

Multiplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

3.1.2.

Divisin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

3.1.3.

Exponenciacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.2.

Complejidad de la aritmtica en cuerpos finitos . . . . . . . . . . . . . .

23

3.3.

Algoritmos aritmticos en cuerpos finitos . . . . . . . . . . . . . . . . . . . . .

27

Ejercicios de autoevaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

Soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

CC-BY-NC-ND PID_00200953

Introduccin

Los sistemas y protocolos criptogrficos que sern objeto de estudio en mdulos 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,
multiplicacin y divisin y obviamente, como siempre en criptografa, este
tipo de alfabeto debe ser finito.
Los cuerpos finitos han sido estudiados desde hace siglos por diversos matemticos, en particular Evariste Galois (de hecho son tambin conocidos como
cuerpos de Galois), pero es en los ltimos 50 aos cuando el inters por estas
estructuras ha conocido un crecimiento espectacular, debido a sus aplicaciones en diferentes campos de indudable inters para el mundo industrial y
financiero, como son la criptografa o los cdigos correctores de errores.
La teora de cdigos correctores de errores trata de preservar la calidad de la
informacin cuando es transmitida a travs de canales susceptibles de sufrir
perturbaciones, que introducen errores en el mensaje transmitido. Un cdigo
corrector permite, dentro de ciertos lmites, detectar y corregir tales errores.
Esta teora comparte con la criptografa fines (si los cdigos correctores tratan
de defender la informacin de la degradacin natural la criptografa trata de
defenderla de los ataques humanos) y tcnicas, en particular diversos sistemas
criptogrficos (McEliece, Niederreiter), estn basados en cdigos correctores.
Denotaremos Fq a un cuerpo finito con q elementos (algunos autores utilizan
la notacin GF(q), por Galois field con q elementos). El presente mdulo estudia esta estructura matemtica, con especial nfasis en los aspectos computacionales de su aritmtica.

Cuerpos finitos

CC-BY-NC-ND PID_00200953

Objectivos

En los materiales didcticos de este mdulo el estudiante encontrar los contenidos 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 nmero primo.
2. Saber calcular la tabla de equivalencias polinomial-exponencial y saber calcular en un cuerpo finito Fq dando los resultados en cualquiera de las dos
representaciones.
3. Saber reconocer la complejidad computacional de un clculo en cuerpos
finitos.
4. Conocer y saber aplicar los principales algoritmos aritmticos en cuerpos
finitos.

Cuerpos finitos

CC-BY-NC-ND PID_00200953

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


cmo construirlo explcitamente y se estudian sus propiedades y estructura.

1.1. Existencia y construccin de cuerpos finitos


En primer lugar sealemos el siguiente resultado del teorema 1.
.
Lectura recomendada

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


conmutativo (es decir, su multiplicacin es conmutativa).

Sobre el teorema de
Wedderburn podis
consultar la obra de Lidl y
Niederreiter (1997).

.
Definicin 1.2 (Caracterstica de un cuerpo). La caracterstica de un
cuerpo K se define como el mnimo p de los enteros positivos n tales
que n 1 = 1 + 1 + + 1 = 0 (suma de n copias de 1), donde 0 es el
elemento neutro de la suma y 1 el elemento neutro del producto en el
cuerpo K. Si tal p no existe, como sucede con el cuerpo de los nmeros
reales, decimos que K tiene caracterstica 0. Caso contrario p debe ser
un nmero primo (si p = r s, 1 < r,s < p se tendra que 0 = p 1 =
(r 1)(s 1) y uno de los dos factores debera ser cero, en contradiccin
con la minimalidad de p) y el cuerpo se dice de caracterstica prima p.

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


.
Proposicin 1.3. Para todo nmero primo p el conjunto Zp de los enteros mdulo p, con la suma y producto inducidos por las de Z, constituye un cuerpo conmutativo.

Demostracin: Recordemos que el conjunto Zp de los enteros mdulo p es


el conjunto de clases de equivalencia de nmeros enteros, donde dos enteros
x,y son equivalentes si, y solamente si, son congruentes mdulo 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}.

Observacin
Existen cuerpos infinitos que
no son conmutativos, como
el cuerpo de los cuaterniones.

CC-BY-NC-ND PID_00200953

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 (Fp = Fp {0},) la multiplicacin es conmutativa, el elemento 1 acta
como unidad y dado un elemento a Fp la existencia de inverso (y un mtodo
efectivo de calcularlo) se deduce del algoritmo de Euclides (el cual se describir
a continuacin): 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 (ntese 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 mximo

Cuerpo binario

comn divisor d de dos nmeros a,b N, es uno de los algoritmos bsicos en matemtica computacional. Una modificacin - algoritmo de Euclides
extendido- permite obtener d como combinacin lineal de a y b con coeficientes enteros (Identidad de Bezout):

d = ax + by

(1)

Si p = 2, se tiene el cuerpo
con dos elementos
F2 = {0,1} base de la
computacin binaria (las
operaciones de cuerpo
coinciden con las
operaciones lgicas
O-exclusivo (XOR) y AND).

Exponemos a continuacin 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 := ai1 qi ai (calculamos el cociente qi y el residuo ai+1
de la divisin entre ai1 y ai )
xi+1 := xi1 qi xi (a partir de xi1 ,xi i qi , calculamos xi+1 )
yi+1 := yi1 qi yi (a partir de yi1 ,yi i qi , calculamos yi+1 )
hasta obtener un residuo ai = 0.

3.

Si an es el primer residuo nulo, entonces d = an1 = axn1 + byn1 .

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.
Ejemplo 1.2. Sea p = 7, y el cuerpo F7 = {0,1,2,3,4,5,6}. Para a = 3, b = 6 se tiene
3 + 6 2 (mod 7), 3 6 4 (mod 7) y 31 5 (mod 7) (ntese que 1 = 1 7 2 3).

Observacin
El Algoritmo 1.4 puede
aplicarse tambin a dos
polinomios a(X),b(X) con
coeficientes en un cuerpo K.
Ver el ejemplo 1.3.

CC-BY-NC-ND PID_00200953

Cuerpos finitos

Ejemplo 1.3. Calcular el mximo comn divisor mcd(P(X),Q(X)) y expresar el resultado como combinacin 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 aplicacin 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, adems:
(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, existe un cuerpo finito con q elementos.
.
Proposicin 1.5. Sea K = Fq un cuerpo finito con q elementos, con
elemento neutro para la adicin 0K y elemento unidad para la multiplicacin 1K . Existe un primo p tal que K contiene al cuerpo Fp de los
enteros mdulo p.

Demostracin: El cuerpo K no puede tener caracterstica 0 (caso contrario


contendra al conjunto infinito {1K ,2 1K , ,n 1K , }). K es pues de caracterstica prima p y contiene al subcuerpo {0K ,1K ,2 1K , (p 1) 1K } isomorfo
al cuerpo Fp de los enteros mdulo p.
.
Corolario 1.6. Sea Fq un cuerpo de caracterstica p. Existe un entero
positivo m tal que q = pm .

Demostracin: Fq admite una estructura de espacio vectorial sobre su subcuerpo Fp , sea m su dimensin (obviamente finita). Fijada una base cualquiera
de este espacio vectorial, Fq se identifica con el conjunto de vectores Fm
p , conjunto con cardinal pm .
El resultado anterior muestra que el cardinal de un cuerpo finito es siempre
potencia de un nmero primo. El siguiente teorema muestra que para cualquier potencia de un primo existe un cuerpo finito con ese cardinal y que tal
cuerpo es esencialmente nico.
.
Definicin 1.7 (Clausura algebraica). Sea K un cuerpo. La clausura
algebraica de K es un cuerpo que contiene a K, tal que todo polinomio
con coeficientes en K tiene todas sus races en l y que es minimal con
esta propiedad. Tal clausura existe y es nica salvo isomorfismo.

Observacin
El cuerpo C de los nmeros
complejos contiene las races
de todo polinomio con
coeficientes en el cuerpo Q
de los nmeros racionales.
Sin embargo C no es una
clausura algebraica de Q ya
que no se cumple la
condicin de minimalidad. La
clausura es un subcuerpo de
C denominado cuerpo de los
nmeros algebraicos.

CC-BY-NC-ND PID_00200953

10

.
Teorema 1.8. Para todo primo p y todo nmero natural m existe un
cuerpo finito con q = pm elementos. Tal cuerpo es nico salvo isomorfismo.

Demostracin: 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 races de F(X) en
una cierta clausura algebraica de Fp (no confundir con las races complejas de
tal polinomio, ntese que Fp no est contenido en los complejos). Tales races
son distintas (el polinomio F(X) no tiene races mltiples, ya que su derivada
no es nula: F (X) = qXq1 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, tambin ( )q = (pues todos los dems miembros del desarrollo de (a + b)q son mltiplos de p), luego la suma, diferencia,
producto y cociente de elementos de R estn en R.
Sea K otro cuerpo con q elementos. El grupo multiplicativo K = K {0} tiene
cardinal q1 y por tanto, todo elemento a K verifica aq1 = 1K , luego aq = a,
ecuacin que obviamente tambin verifica OK . Es decir, los q elementos de K
son races de Xq X y por tanto K puede identificarse con R.
Habitualmente, en criptografa 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 elementos, pero no una construccin explcita. El mtodo siguiente proporciona tal
construccin, que es formalmente anloga a la del cuerpo Fp como clases de
equivalencia de los enteros mdulo p.
Sea f (X) = Xm +fm1 Xm1 + +f1 X+f0 Fp [X] un polinomio mnico (coeficiente
del trmino 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 mdulo f (X). Un conjunto de representantes de estas clases viene
dado por el conjunto K de los q = pm polinomios a0 +a1 X+ +am1 Xm1 Fp [X]
de grado menor que m (pues todo g(X) Fp [X] es equivalente al polinomio
resto de su divisin 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 + + am1 Xm1 con a0 + a1 + +
am1 m1 y K con el conjunto de estas expresiones.
Ntese que m + fm1 m1 + + f1 + f0 0K y por tanto puede considerarse
como una raz del polinomio f (X) en K. Se tiene,

Cuerpos finitos

CC-BY-NC-ND PID_00200953

Cuerpos finitos

11

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

Demostracin: El razonamiento es totalmente anlogo al de la proposicin


1.3 y los detalles se dejan como ejercicio. En particular el inverso de un elemento no nulo se obtiene utilizando el algoritmo de Euclides extendido para
polinomios.
Nota
Se ha sealado que puede considerarse como raz de f (X). Dado que este polinomio
de grado m tiene m races puede plantearse cul de ellas es . Sin embargo, a diferencia
de lo que sucede con las races 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 smbolo, que se toma como
raz de f (X); una vez fijada esta raz, las restantes pueden expresarse en funcin de (ver
el ejemplo siguiente).

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


raz. Las otras dos races son entonces 2 y 2 + . Un cuerpo con 8 elementos estara
formado por los elementos:

F8 = {0,1,,1 + ,2 ,1 + 2 , + 2 ,1 + + 2 }

(2)

con las siguientes tablas de adicin y multiplicacin:

1+

1 + 2

+ 2

1 + + 2

1+

1 + + 2

1+

1+

1+

1+

+ 2

1 + + 2

1 + 2
2

1+

1 + 2

1 + 2

1 + + 2

+ 2

1+

+ 2

+ 2

1 + + 2

1 + 2

1+

1 + + 2

1 + + 2

+ 2

1 + 2

1+

1+

1 + 2

+ 2

1 + + 2

1+

1 + 2

+ 2

1 + + 2

1+

1+

1++

1+

1++

1 + 2

1+

1+

1 + + 2

+ 2

1 + 2

1 + 2

1 + 2

1 + + 2

1+

+ 2

+ 2

+ 2

1 + + 2

1 + 2

1+

1+

1++

1++

1+

1++

1+

1+

+ 2

1+

1++

1++

1+

Nota
El ejemplo anterior construye un cuerpo con 8 elementos utilizando el polinomio irreducible X3 + X + 1 F2 [X]. Pero una construccin anloga podra obtenerse a partir de
una raz del polinomio X3 + X2 + 1 F2 [X] el cual es tambin 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

Cuerpos finitos

12

ms de un polinomio irreducible de grado m). En esta otra construccin se obtendran


tablas aditivas y multiplicativas aparentemente diferentes.
Sin embargo, el teorema 1.8 garantiza que solo existe un cuerpo con 8 elementos. Cul
es la explicacin de esta aparente contradiccin? En realidad es un simple problema de
etiquetado de los elementos: en concreto, puede comprobarse que la asignacin =
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 (Fq ,). 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 cclicos de orden p:

(Fq ,+) Z/pZ Z/pZ.

(3)

Demostracin: Como se ha indicado (Fq ,+) es un espacio vectorial sobre


su subcuerpo primo Fp . Cualquier base de este espacio (por ejemplo, una base del tipo {1, ,m1 } utilizada en el teorema 1.9 induce el isomorfismo
indicado.

1.2.1. Representacin 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, . . . ,p1}. 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 travs de un canal binario.
En esta forma aditiva los elementos pueden sumarse (sumando coordenada a
coordenada mdulo p) o multiplicarse escalarmente por un elemento de Fp .
Para estudiar la estructura multiplicativa, recordemos que, dado un grupo abeliano finito (G,), llamamos orden de x G al orden del subgrupo engendrado 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, entonces existe un elemento x G de orden n.

CC-BY-NC-ND PID_00200953

13

Demostracin: Sea n = pe11 pemm la descomposicin de n en factores primos.


Como pei i aparece en la factorizacin, 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
x=

Qm

i=1

xki i tendr orden exactamente n.

.
Teorema 1.12 (Estructura multiplicativa). El grupo multiplicativo (Fq ,) es cclico de orden q 1.

Demostracin: Sea n el exponente de Fq . En virtud del lema anterior debe


existir un elemento de orden n. Por tanto n q 1 = #Fq . Por otra parte, por
ser n mltiplo del orden de todo elemento, los q 1 elementos de Fq satisfacen
la ecuacin 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 cclico.
.
Definicin 1.13 (Elemento primitivo). Llamaremos elemento primitivo de Fq a un generador del grupo cclico (Fq ,).

Nota
La nocin de elemento primitivo en el contexto de un grupo cclico finito de orden n y
la notacin (n) para el nmero de tales elementos primitivos puede encontrarse en el
mdulo 5 del curso Criptografa de la UOC. Tal nmero es importante en matemticas y
ser utilizado en otras partes de este curso, por lo que damos a continuacin su definicin
y algunas de sus propiedades.

.
Definicin 1.14 (Funcin de Euler). Para todo nmero natural n se
denota (n) al nmero de elementos a; 0 < a < n tales que mcd(a,n) =
1. La funcin as obtenida se denomina funcin de Euler.

.
Proposicin 1.15. La funcin de Euler verifica las siguientes propiedades:
1) Si p es un nmero primo, (p) = p 1.
2) Si p es un nmero primo y r un nmero natural, (pr ) = pr pr1 =
pr1 (p 1).
3) Si m,n son nmeros naturales primos entre s (es decir, mcd(m,n) =
1), (mn) = (m) (n)

Cuerpos finitos

CC-BY-NC-ND PID_00200953

Cuerpos finitos

14

La demostracin es sencilla y se deja como un ejercicio.


.
Corolario 1.16. Sea n = pr11 . . . prss la factorizacin prima del nmero
natural n. Se tiene:

(n) = n

(1 1/pi )

(4)

El corolario 1.16 muestra que el clculo de (n) es fcil si se conoce la factorizacin de n. Por contra, sin conocer tal factorizacin, este clculo es un
problema computacionalmente dificil.

1.2.2. Representacin multiplicativa


En virtud del teorema 1.12, si es un elemento primitivo de Fq , entonces
Fq = {i | i = 1, . . . ,q 1}. Esta representacin ser fundamental en los sistemas

criptogrficos basados en el problema del logaritmo discreto.

Ejemplo 1.5 . Para q = 11, = 2 es un elemento primitivo de F11 .

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


1 F2 [X], y sea una raz.
Para saber si es un elemento primitivo, en F8 deberamos calcular su orden y ver si es
mximo. O sea, si el menor entero positivo r tal que r = 1 es r = q 1 = 7.
Sabemos que 3 + + 1 = 0, o sea 3 = + 1. Luego, 4 = 2 + ; 5 = 3 + 2 = 2 + + 1;
6 = (3 )2 = 2 + 1 y 7 = 3 + = 1.

Observacin
No se conoce ningn
algoritmo eficiente para el
clculo de un elemento
primitivo, ni siquiera en el
caso de los cuerpos Fp , p
primo.

Luego es un elemento primitivo y la tabla de equivalencias entre la representacin


vectorial (o polinomial) y exponencial es:

Exponencial

Vectorial

Polinomial

(0,0,0)

(1,0,0)

(0,1,0)

(0,0,1)

(1,1,0)

1+

(0,1,1)

+ 2

(1,1,1)

1 + + 2

(1,0,1)

1 + 2

Observacin
Observar que al escribir un
polinomio como vector,
utilizando los coeficientes de
su expresin aditiva, hemos
empezado por el trmino de
grado cero como primera
coordenada.

CC-BY-NC-ND PID_00200953

Cuerpos finitos

15

2. Bases de cuerpos finitos


.

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


combinacin lineal, con coeficientes en Fp , de los elementos de una base.
Desde un punto de vista computacional, dos tipos de bases son especialmente
importantes.
.
Definicin 2.1 (Base polinmica). Se denomina base polinmica
del cuerpo Fq a una base del tipo {1, ,m1 }, con raz de un
polinomio mnico e irreducible con coeficientes en Fp .

El nmero de bases polinmicas de Fq ser pues igual al nmero de polinomios mnicos e irreducibles de grado m con coeficientes en Fp . Tal nmero
puede determinarse explcitamente.
.
Proposicin 2.2. Xq X es el producto de todos los polinomios irreducibles sobre Fp cuyo grado divide a m.

Demostracin: Sea g(X) Fp [X] un polinomio mnico e irreducible de grado d|m. Es decir m = dd . En virtud del teorema 1.9 las races de g(X) determinan un cuerpo con Fpd elementos y por tanto, por el teorema 1.8, son races
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 anlogo con X en
d

lugar de p, muestra que Xp

1 divide a Xp

1 luego Xp X y por tanto

g(X) divide a Xq X.
Recprocamente, un razonamiento similar prueba que si g(X) es un polinomio
mnico e irreducible que divide a Xq X, su grado es un divisor de m.
.
Corolario 2.3. Si denotamos por Np (d) el nmero de polinomios irreducibles de grado d sobre Fp , se tiene,

q=

X
d|m

dNp (d).

(5)

CC-BY-NC-ND PID_00200953

Cuerpos finitos

16

El nmero buscado Np (m) figura como sumando en la expresin anterior. Veamos cmo despejarlo.
.
Definicin 2.4 (Funcin de Moebius). Llamaremos funcin de Moebius a la funcin de variable natural, : N {1,0,1} definida del
modo siguiente: si n N y n =
primos, entonces

(n) =

8
>
>
>
1
>
>
>
<

Qs

i=1

pei i es su descomposicin en factores

si n = 1;

0
>
>
>
>
>
>
:

(6)

si ei 2 para algn valor de i;

(1)s

si ei = 1 para todo valor de i.

.
Lema 2.5. Si n N, se verifica que

(d) =

8
>
>
< 1
>
>
: 0

d|n

si n = 1;

(7)

si n > 1.

Demostracin: 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 definicin de la funcin de Moebius,

(d)

(1) +

s
X

(pi ) +

i=1

d|n

(pi pj ) + + (p1 p2 . . . ps )

1i<js

B s C
B s C
B s C
C (1) + B
C (1)2 + + B
C (1)s
A
@
A
@
A

1+B
@

(1 1)s = 0.

CC-BY-NC-ND PID_00200953

Cuerpos finitos

17

.
Lema 2.6 (Frmula de inversin de Moebius). Sea f una funcin
de variable natural con valores en un grupo abeliano. Para n N definamos g(n) mediante

g(n) =

f (d).

(8)

X n
n
(d)g( ) =
( )g(d).
d
d

(9)

d|n

Se verifica que
f (n) =

X
d|n

d|n

Demostracin:

X
d|n

n
(d)g( )
d

X
d|n

(d)

f (e)

e|(n/d)

X X

(d)f (e)

e|n d|(n/e)

f (e)

e|n

(d)

d|(n/e)

f (n).

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


.
Teorema 2.7. El nmero de polinomios irreducibles de grado m sobre
Fp es

Np (m) =

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

(10)

d|m

Demostracin: Basta aplicar la frmula de inversin de Moebius a la funcin


f (m) = mNp (m).

Ejemplo 2.1. Para p = 2 el nmero de polinomios de grado m es:


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

Observacin
Un polinomio irreducible de
grado m puede obtenerse
tomando polinomios
arbitrarios y aplicndoles un
test de irreducibilidad (Lidl y
Niederreiter, 1997). El valor
Np (m) dado por el teorema
2.7 proporciona una
estimacin de la probabilidad
de xito de tal bsqueda
aleatoria.

CC-BY-NC-ND PID_00200953

Cuerpos finitos

18

.
Definicin 2.8 (Base Normal). Se denomina base normal de Fq a
m1

una base del tipo {,p , ,p

} con Fq .

Como se ver en el apartado siguiente, las bases normales son muy eficientes
para el cmputo de la exponenciacin en Fq , operacin bsica en los algoritmos criptogrficos basados en el problema del logaritmo discreto. Para tener
una base normal es necesario un elemento cuyas potencias p-simas sucesivas sean linealmente independientes.

Ejemplo 2.2. Sea q = 8 = 23 , raz 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


Lectura recomendada

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


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

Sobre el teorema de la base


normal podis ver la obra
de Lidl y Niederreiter (1997)
o la de Menezes (1993).

mal para todo cuerpo finito.

Evaluemos el nmero de bases normales. Supongamos fijada una tal base norm1

mal B = {,p , . . . ,p

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

de base de B a una nueva base B = {0 ,1 , . . . ,m1 } viene determinado por


una matriz m m inversible C = (cij ), cij Fp .
Veamos qu condicin debe cumplir C para que la nueva base B sea tambin
normal.
.
Definicin 2.10 (Matriz circulante). Se denomina matriz circulante (con coeficientes en un cuerpo o anillo) a una matriz del tipo:
0

B a0
B
B
B
B am1
B
B
[a0 ,a1 , . . . ,am1 ] = B
B .
B
B
B
B .
B
@

a1

a1

...

am1 C

a0

...

am2

a2

...

a0

C
C
C
C
C
C
C.
C
C
C
C
C
C
A

(11)

Observacin
Comenzar con 0 los
subndices de los elementos
de la base B y de los
componentes de la matriz
circulante es por coherencia
con los exponentes de la base
normal B: p0 ,p1 , . . . ,pm1

CC-BY-NC-ND PID_00200953

Cuerpos finitos

19

Es decir, la matriz queda determinada por su primera fila, ya que las siguientes
se deducen cada una de la anterior mediante una permutacin cclica de sus
elementos, que desplaza cada coordenada una posicin a la derecha.
.
Teorema 2.11. La base B es normal si, y solo si, la matriz C de cambio
de base es circulante

Demostracin: Supongamos que la matriz es circulante, es decir C = [a0 ,a1 ,


. . . ,am1 ] lo que implica que cij = aji luego,

i =

X
j

aji p = @

X
j

ji

1pi

aji p A = @

X
j

1pi

pi

aj p A = 0

lo que muestra que la base B es normal.


Si recprocamente suponemos B normal, sea 0 =

pi

i = 0 =

i+j

c0j p =

circulante.

j c0j

pj

. Se tendr:

c0,ji p

(12)

pero tambin (por definicin) i =

j cij

pj

, lo que muestra que la matriz C es

El nmero de bases normales del cuerpo Fq ser pues igual al nmero de matrices m m circulantes e invertibles con coeficientes en Fp .

Lectura recomendada
Para la determinacin del
nmero de bases normales
del cuerpo Fq podis ver la
obra de Lidl y Niederreiter.

CC-BY-NC-ND PID_00200953

Cuerpos finitos

20

3. Computacin en cuerpos finitos


.

El propsito de este apartado es mostrar cmo pueden realizarse, con los elementos de un cuerpo finito Fq , las operaciones aritmticas habituales y cul
es el coste computacional de las mismas.

3.1. Aritmtica 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 adicin o substraccin de dos
elementos a, b se realiza sumando o restando coordenada a coordenada y reduciendo el resultado mdulo p.

3.1.1. Multiplicacin
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:

c=ab=(

X
i

ai vi )(

b j vj ) =

ai bj (vi vj ) =

ij

X
ij

ai bj (

tijk vk )

(13)

Luego, denotando Tk = (tijk ), k = 1,2, . . . ,m, se tienen m matrices m m denominadas tablas de multiplicacin. Si c = c1 v1 + c2 v2 + + cm vm , las coordenadas
ci vienen dadas por la ecuacin matricial:

ck = aTk bt .

(14)

Las tablas de multiplicacin determinan pues el producto. Este puede implementarse bien en software, almacenando las m tablas, bien en dispositivos
hardware especficos, 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 polinmicas o las normales, ya descritas. Veamos las caractersticas especficas de estos dos casos:

Observacin
En la ecuacin 14 la bt
denota el vector traspuesto
del b (en este caso un vector
escrito verticalmente).

CC-BY-NC-ND PID_00200953

Cuerpos finitos

21

Base polinmica: Sea {1,, ,m1 }, con raz del polinomio (mnico
e irreducible) f (X). En este caso, dados a = a0 + a1 + + am1 m1 y b =
b0 + b1 + + bm1 m1 , el clculo de a b implica dos operaciones:

1) Multiplicacin de a y b como si fuesen polinomios en X.


2) Reduccin del polinomio obtenido, de grado a lo sumo 2m 2, mdulo
f (X) (es decir, realizar la divisin eucldea por f (X) y tomar el resto).

Ejemplo 3.1. Sea el cuerpo F8 y raz 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 , . . . ,m1 =


m1

}, las m tablas de multiplicacin Tk = (tijk ) verifican la siguiente rela-

cin:
.
0
Lema 3.1. Para 0 < l m 1 se tiene tijl = til,jl
. Es decir, la tabla Tl se

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

Demostracin: Por definicin de las tablas i j =


miembros a p
il jl =

se tiene que

k
k til,jl k .

p
i

p
j

= il jl =

k
k tij k .

k
k tij kl .

Elevando ambos

Pero, por definicin,

Igualando los coeficientes de 0 en ambas expresiones se

tiene el resultado.
En consecuencia, si se tiene un algoritmo (o en hardware un circuito electrnico) 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 coordenadas de a y b desplazadas l posiciones.

3.1.2. Divisin
La divisin de dos elementos a,b Fq , b 6= 0, implica la multiplicacin de a
por el inverso del elemento b. Si se emplea una base polinmica, 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 b1 = .

CC-BY-NC-ND PID_00200953

22

Cuerpos finitos

3.1.3. Exponenciacin
Clculos 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 criptogrficos basados

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


primalidad*. En principio podra realizarse este clculo multiplicando a por s
mismo n veces y posteriormente reduciendo mdulo m el resultado obtenido.
Ahora bien, para n grande, un clculo del tipo anterior sera impracticable por
dos razones:

1) El nmero excesivo de multiplicaciones.


2) Los clculos intermedios de estas multiplicaciones proporcionan nmeros
de tamao creciente, que pronto superarn la capacidad de almacenamiento
del computador.

Existe sin embargo un algoritmo (multiplicacin y elevacin al cuadrado) que


permite evitar estos dos inconvenientes:
Sea n = s0 + s1 2 + sk1 2k1 la expresin 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 := ba (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 expresin del exponente n en otra base diferente
de 2 (por ejemplo, para base 3 se tendra un algoritmo donde en lugar de elevar al
cuadrado se elevara al cubo).
2) La reduccin mdulo m puede sustituirse por operacin en un cuerpo finito Fq . En
particular para m = p primo la reduccin mdulo p es la operacin en el cuerpo
primo Fp .

* A su vez necesarios en el
sistema criptogrfico RSA;
consultar la obra de Koblitz
(1994).

CC-BY-NC-ND PID_00200953

Cuerpos finitos

23

La exponenciacin puede simplificarse, especialmente en el caso de cuerpos


binarios, utilizando bases normales. En efecto se tiene:
.
Lema 3.3. Sean {a0 ,a1 , . . . ,am1 } las coordenadas de un elemento a Fq
m1

en la base normal {,p , . . . ,p

}. El elemento ap tiene por coordena-

das (am1 ,a0 ,a1 , . . . ,am2 ).

Demostracin: Se tiene (teniendo en cuenta que todos los dems miembros


del desarrollo de (a + b)q son potencia de p y por tanto nulos en caracterstica
n

p, que ai = ai y que p = q = ) que:


m1

(a0 +a1 p + +am1 p

m1

)p = a0 p +a1 p + +am1 p = am1 +a0 p + +am2 p

El lema anterior muestra que la elevacin a la potencia p implica simplemente


una permutacin circular de los coeficientes y por tanto, su coste computacional es despreciable. Si p = 2 es la elevacin al cuadrado, pieza fundamental en
el algoritmo 3.2, la que tiene coste cero.

3.2. Complejidad de la aritmtica en cuerpos finitos


Veamos cmo obtener una estimacin del coste de los algoritmos aritmticos descritos en un cuerpo finito Fq . La disciplina que estudia el coste de los
algoritmos y problemas matemticos se denomina teora de la complejidad
computacional. Si se desea medir la cantidad de computacin necesaria para ejecutar un algoritmo, habr que tener una unidad de medida. Dado que
un computador reduce cualquier clculo a sumas binarias elementales, puede
tomarse tal suma como unidad.
.
Definicin 3.4 (Operacin bit). Se denomina operacin bit a la adicin de dos elementos en el cuerpo F2 , es decir, a la suma binaria (mdulo 2) de dos nmeros iguales a 0 1 (bits).

Para medir en operaciones bit el tiempo o cantidad de computacin de un algoritmo, la teora de la complejidad computacional introduce dos precisiones:
1) El tiempo debe ser funcin de la longitud de los datos (inputs). Tales datos
son siempre nmeros naturales (o reducibles a ellos: por ejemplo, un elemento
de un cuerpo finito con cardinal q = pm queda determinado por m nmeros
naturales menores que p).

CC-BY-NC-ND PID_00200953

24

Cuerpos finitos

2) El tiempo de ejecucin de un algoritmo, para una longitud dada de los datos, variar en cada caso concreto. Se adopta el criterio del caso peor tomando
una cota vlida para toda instancia particular de dicha longitud.
.
Definicin 3.5 (Longitud binaria de un nmero). Se denomina
longitud (binaria) k de un nmero natural n , al nmero de dgitos de
su expresin en base 2. Dicha longitud es el nmero natural k tal que
2k1 n < 2k y por tanto k = log2 n + 1. Ntese que la longitud de
un nmero es tambin el nmero de bits de memoria necesarios para
almacenarlo en un computador.

.
Definicin 3.6 (Notacin 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 ).

.
Definicin 3.7 (Complejidad Polinmica). Un algoritmo con datos iniciales: los enteros n1 ,n2 , . . . ,ns , de longitudes k1 ,k2 , . . . ,ks , se llama
de complejidad polinmica si existe un polinomio P en s variables tal que
el tiempo de ejecucin de dicho algoritmo, medido en operaciones bit,
es O(P(k1 ,k2 , . . . ,ks )).

Como veremos, las operaciones aritmticas usuales en cuerpos finitos, en par-

Algoritmos eficientes

ticular las implicadas en los algoritmos criptogrficos, tienen una complejidad


polinmica. Dado que las operaciones en cuerpos finitos se remiten a operaciones con nmeros enteros, veamos previamente la complejidad de algunos
algoritmos bsicos con enteros.
.
Proposicin 3.8.

El tiempo necesario para sumar dos nmeros naturales de longitud


binaria k es O(k). La adicin de nmeros naturales tiene pues complejidad lineal en la longitud de los datos.

El tiempo necesario para multiplicar dos enteros naturales de longitudes k, l , l k es O(k2 ). La multiplicacin tiene pues una complejidad cuadrtica en la longitud de los datos.

Los algoritmos de
complejidad polinmica se
denominan
computacionalmente
eficientes o buenos, ya que el
computador puede
ejecutarlos en un tiempo
razonable, por oposicin a los
algoritmos cuya complejidad
es exponencial en la longitud
de los datos.

CC-BY-NC-ND PID_00200953

Cuerpos finitos

25

Demostracin:

Observacin

1) Puede siempre suponerse la misma longitud para ambos sumandos, aadiendo eventualmente ceros a la izquierda de la representacin binaria del de
menor longitud. La suma se obtiene entonces realizando k sumas binarias, es
decir, por definicin, k operaciones bit.
2) Sea l k. Con la regla habitual de multiplicacin: colocar el nmero menor debajo del mayor y multiplicar cada dgito de aquel por este, colocar los
resultados en filas desplazadas cada una de ellas una posicin a la izquierda
respecto de la anterior y sumando, a lo sumo, las l filas, de longitud k + l, (teniendo en cuenta los kl desplazamientos), se tiene un nmero de operaciones
bit,

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

Nota
La operacin de substraccin o resta tiene obviamente el mismo tiempo de ejecucin
que la suma. La divisin, con la regla habitual, se reduce a multiplicaciones y diferencias
y tiene pues igual tipo de complejidad que la multiplicacin, es decir, cuadrtica. Sin
embargo, debe recordarse que la estimacin de la complejidad, dada por la notacin O,
implica una constante, por lo que dos algoritmos con igual complejidad pueden tener de
hecho costes muy diferentes. Es el caso de la divisin, bastante ms costosa que la multiplicacin. Ello justifica el tratar de evitar o limitar al mximo el nmero de divisiones;
en el caso de la criptografa con curvas elpticas, 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 clculo de inversos en Fp .
Obsrvese que en el algoritmo 1.4 los restos ai , obtenidos al iterar el paso 2,
forman una sucesin decreciente. Por tanto, el algoritmo finaliza necesariamente en un nmero finito de etapas. Ms concretamente se tiene,
.
Lema 3.9. Si a b, el nmero de etapas necesarias en la ejecucin del
algoritmo de Euclides extendido es O(log(a)).

Demostracin: Basta probar que los restos ai verifican la relacin ai+2 < 21 ai ,
lo que implica que el nmero de etapas es, a lo sumo, 2log(a). Ahora bien,
si ai+1

1
2 ai ,

entonces ai+2 < ai+1

1
2 ai .

Si ai+1 >

1
2 ai ,

la divisin eucldea

proporciona ai = 1ai+1 + ai+2 , con lo que tambin en este caso, ai+2 = ai ai+1 <
1
2 ai .

Debe sealarse que el


algoritmo habitual de
multiplicacin no es el mejor
algoritmo conocido para
realizar esta operacin. Existe
otro, debido a Schnhage y
Strassen, con complejidad
O(k log(k) log log(k))

CC-BY-NC-ND PID_00200953

Cuerpos finitos

26

.
Proposicin 3.10. El coste computacional del algoritmo de Euclides
extendido es O(log2 a) (es decir, cuadrtico en la longitud de los datos).

Demostracin: Cada etapa del algoritmo comporta una divisin (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 proposicin se deduce teniendo en cuenta el lema anterior.
Veamos finalmente la complejidad del algoritmo 3.2, de multiplicar y elevar
al cuadrado:
.
Proposicin 3.11. El algoritmo de multiplicar y elevar al cuadrado
para calcular an (mod m), tiene una complejidad de O(log2 (m) log(n)).

Demostracin: El algoritmo comporta, como mximo, O(log(n)) cuadrados,


O(log(n)) multiplicaciones y O(log(n)) divisiones (para realizar las reducciones
mdulo m), de nmeros, todos ellos de longitud O(log m). Luego la complejidad sera 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 aritmticas elementales con nmeros naturales, as como del
algoritmo de Euclides y el algoritmo de multiplicar y elevar al cuadrado, podemos deducir el coste de la aritmtica en el cuerpo finito Fq , q = pm ,
.
Proposicin 3.12. El coste computacional de una adicin (o de una
substraccin) de elementos de Fq es O(log(q)) operaciones bit.

Demostracin: La adicin de dos elementos a,b, realizada como adicin


(o sustraccin) de vectores con coeficientes en Fp implica la realizacin de m
adiciones (o sustracciones) de nmeros naturales menores que p y la reduccin
de cada resultado mdulo p. Obsrvese que para tal reduccin no es necesaria
una divisin: dado que los nmeros obtenidos son menores o iguales que
2(p 1), para obtener el resultado mdulo p basta dejar el resultado inalterado
si el nmero 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

Cuerpos finitos

27

.
Proposicin 3.13. El coste computacional (utilizando la representacin polinmica) de una multiplicacin (o de una divisin) de elemen3

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

Demostracin: Los elementos a Fq se manejarn como expresiones a =


a0 + a1 + + am1 m1 , ai {0,1, . . . ,p 1}. Realizar la multiplicacin de a
por b implica realizar el producto de los polinomios que los representan y la
reduccin del resultado mdulo f (X).

Observacin
A efectos computacionales el
coste de las sumas o
diferencias en un algoritmo
en cuerpos finitos suelen
considerarse irrelevantes, ya
que su complejidad es menor
que la de la multiplicacin. A
veces tal complejidad se
expresa no en operaciones
bit sino en nmero de
operaciones elementales: en
este caso se entienden por tal
las multiplicaciones.

La multiplicacin de dos polinomios de grado m 1 sobre Fp implica la realizacin de O(m2 ) multiplicaciones de enteros mdulo p, cada una de las cuales
requiere O(log2 p) operaciones bit, ms una serie de adiciones que, por tener
un coste computacional inferior, podemos no tomar en consideracin. As
pues, esta primera etapa requiere O(m2 log2 p) operaciones bit. La divisin del
resultado por el polinomio f (X) requiere realizar O(m) divisiones de enteros
mdulo p (que realizadas con el algoritmo de Euclides requieren O(log3 p) operaciones bit) y O(m2 ) multiplicaciones de enteros mdulo p; por tanto, esta
reduccin representa un coste de O(m log3 p + m2 log2 p).
En total, la multiplicacin 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 divisin x/y, solo resta probar que el inverso de y Fq

Observacin

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


Euclides a f (X) y al polinomio que representa b, lo que requiere O(m) divisiones de polinomios de grado a lo sumo m, cada una de las cuales comporta O(m log3 p + m2 log2 p) operaciones bit. En definitiva, el coste total es
O(m3 log3 p) = O(log3 q) operaciones bit.

3.3. Algoritmos aritmticos en cuerpos finitos


El subapartado 3.1 describe los aspectos matemticos de las operaciones aritmticas en cuerpos finitos. Desde un punto de vista computacional, especialmente para cuerpos de cardinal q muy grande es crucial poder implementar,
tanto en software como en hardware, tales operaciones lo ms eficientemente posible. Existen numerosos algoritmos con este propsito, adaptados tanto
al tipo de cuerpo finito como a la plataforma particular en la que se quiere
implementar tal aritmtica (por ejemplo, existen algoritmos especficos para
plataformas con reducida capacidad de computacin y de memoria, como las

Puede observarse que la


complejidad de la
multiplicacin (o divisin) en
un cuerpo finito es cbica
mientras que la
multiplicacin (o divisin) en
nmeros naturales es
cuadrtica. Ello obedece al
sobrecoste de la reduccin
mdulo p y del clculo del
inverso mdulo p.

CC-BY-NC-ND PID_00200953

28

Cuerpos finitos

tarjetas inteligentes o las etiquetas electrnicas). Es este un activo campo de


investigacin en la actualidad, pero que desborda los objetivos del curso, por
lo que nos limitamos a mostrar un solo ejemplo bsico para la adicin y la
multiplicacin en los dos tipos de cuerpos usuales en criptografa: 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 tendrn longitud k =


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

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


forma A := A[t 1] . . . A[1]A[0], concatenacin de t bloques A[i] de P bits.
Para dos tales bloques x,y, notaremos [z,] si x + y = 2P + z, = 0,1, 0 z
2P 1.
Algoritmo de adicin: Sean a,b {0,1, . . . ,p1}. El siguiente algoritmo calcula
c a + b (mod p).
.
Algoritmo 3.14.
1.

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

2.

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

3.

Sea c = C[t 1] C[0].


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

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


nmero es mayor que p el resultado final es c := c p = 53.

Para otros algoritmos de


adicin y multiplicacin, as
como de exponenciacin y
divisin remitimos a la
numerosa bibliografa sobre
el tema, por ejemplo, I.
Blake; G. Seroussi; N. Smart
(2000). Elliptic Curves in
Cryptography, London
Mathematical Society
Lecture Note Series 265.
Cambridge: U. Press; y D.
Hankerson; A. Menezes; S.
Vanstone (2004).Guide to
Elliptic Curve Cryptography.
Springer.

CC-BY-NC-ND PID_00200953

29

Algoritmo de multiplicacin: Sean a,b {0,1, . . . ,p 1}. El producto en Fp


implica el clculo del producto entero c = a b y la posterior reduccin mdulo
p. Para la etapa de reduccin 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.

C[2t 1] := R0 .

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. Anlogamente se obtendra,

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 polinmica determinada por una raz del polinomio irreducible de
grado m f (X), los elementos a F2m se expresan en la forma: a = a0 + a1 +
+ am1 m1 , ai = 0,1. Escribimos f (X) = Xm + r(X).

Cuerpos finitos

CC-BY-NC-ND PID_00200953

30

La adicin 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 multiplicacin. El producto de los elementos a,b comporta
la multiplicacin de dos polinomios binarios a(X),b(X), de grado a lo sumo
m 1 y la posterior reduccin mdulo 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 tamao
P cuyas componentes son el bloque B representando a b(X) o bien un bloque
nulo.
.
Algoritmo 3.16.
1.

C := concatenacin de t bloques de tamao 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 posicin k del bloque A[j].
Caso contrario colocar un bloque nulo en dicha posicin.

3.

C es la representacin 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 tamao 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 correspondiente de C[j] y caso contrario un bloque 0. Queda finalmente C = [B,0][B,B][0,B].
Ntese que el resultado corresponde a la forma polinmica c(X) = BX5 + BX3 + BX2 + B,
el mismo resultado que se habra obtenido multiplicando a(X) = X5 + X3 + X2 + 1 por B.

Cuerpos finitos

CC-BY-NC-ND PID_00200953

31

Ejercicios de autoevaluacin
1. Justificar la necesidad de que n sea primo para que Zn , el conjunto de los enteros mdulo
n, tenga estructura de cuerpo. Mostrar que Z6 no es un cuerpo.
2. Construir explcitamente el cuerpo finito F9 con 9 elementos y dar la tabla de equivalencias vectorial-exponencial.
3. Qu elementos de F9 se pueden tomar como generadores de su grupo multiplicativo?
Qu elementos de F9 tienen raz 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 raz de
f (X). Expresar en la base polinmica {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 nmero primo impar, el producto de todos los elementos no nulos es 1.
9. Demostrar que en un cuerpo finito de caracterstica 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
+1
a) Determinar como potencia de , donde = 10 +
1 + 12
b) Encontrar todas las races de la ecuacin:

7 x2 + (2 + 9 )x +

1+
=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 aplicacin lineal x : Fq Fq dada por: x (y) = xy.
Como toda aplicacin 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 matriz 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 trminos 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 .

Cuerpos finitos

CC-BY-NC-ND PID_00200953

32

14.
a) Multiplicar en binario los nmeros a = 103, b = 65. Determinar el nmero de operaciones
bits realizadas.
b) Generalizar al caso a nmero de longitud binaria k y b = 2k1 + 1.
c) Comparar el nmero de operaciones bits de esta ltima multiplicacin con la complejidad
general para la multiplicacin obtenida en la proposicin 3.8.
15.
a) Formular un algoritmo para la exponenciacin an en un cuerpo finito anlogo al algoritmo 3.2 para la exponenciacin modular en Z.
b) Determinar la complejidad del algoritmo anterior.
c) Aplicar al caso del cuerpo F8 , a = 1 + , raz del polinomio X3 + X + 1 F2 [X] y n = 5.

Cuerpos finitos

CC-BY-NC-ND PID_00200953

Cuerpos finitos

33

Soluciones
1) Si n no fuese primo admitira una factorizacin n = ab, 1 < a,b < n. Los elementos a,b
no admiten entonces inverso: si por ejemplo a admitiese inverso a1 , a1 {1,2, . . . ,n 1} se
tendra que aa1 = 1 y multiplicando ambos miembros por b: (ba)a1 = na1 y 1b = b. Dado
que n a1 = 0 en Zn , entonces b = 0, lo que es una contradiccin.
En el caso n = 6, de lo anterior se deduce que los elementos 2 y 3 no admiten inverso, lo
que tambin 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 construccin 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 raz de dicho polinomio se tendra:

F9 = {0,1,2,,2,1 + ,2 + ,1 + 2,2 + 2}
Las tablas aditivas y multiplicativas para este cuerpo podran construirse como en el ejemplo
1.4. Sin embargo, el polinomio usado no es primitivo y una raz 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 raz y por tanto, 2 = 1 + . Se tiene la
correspondencia.
Exponencial

Vectorial

Polinomial

(0,0)

(1,0)

(0,1)

(1,1)

1+

(1,2)

1 + 2

(2,0

(0,2)

(2,2)

2 + 2

(2,1)

2+

3) Puesto que F9 es un grupo cclico de orden 8, la teora general de grupos cclicos 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 raz del polinomio X2 + 2X + 2 F3 [X]) se tiene:
F9 = {,2 ,3 ,4 ,5 ,6 ,7 ,8 = 1}
Los generadores sern de la forma i , donde mcd(i,8) = 1 y, por lo tanto, i = 1,3,5 y 7. As
pues, los generadores sern {,3 ,5 ,7 }. En efecto, todos estos elementos tienen orden 8 y
por tanto, sus potencias recorren todo F9 .
Los elementos que tienen raz cuadrada son aquellos en los que el exponente es par, o sea
{2 ,4 ,6 ,8 }. En efecto estos elementos tienen raz cuadrada, de hecho, cada uno de ellos
tiene dos races cuadradas: por ejemplo 2 tiene por raz pero tambin 5 ((5 )2 = 10 =
2 ). En cambio los elementos con exponente i impar no admiten raz cuadrada, lo que puede
comprobarse directamente. Obsrvese que si F9 fuese una raz cuadrada de i , es decir
2 = i , puesto que i tiene orden 8, tendra 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, podra 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 sera irreducible, y por lo tanto, Zp [X]/X2 + 1 no ser un cuerpo. Supongamos f (X) = 0,
entonces sera X2 + 1 = 0 (mod p) y X2 = 1 = p 1 (mod p). As pues, comprobaremos si p 1
tiene raz cuadrada mdulo p y, en caso afirmativo, f (X) no ser irreducible.
a) Para p = 3: x2 = 2 no tiene solucin, por tanto f (X) es irreducible.
b) Para p = 5: x2 = 4 tiene solucin x = 2, x = 2, por tanto f (X) no es irreducible.

CC-BY-NC-ND PID_00200953

Cuerpos finitos

34

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


d) Para p = 11: x2 = 10 no tiene solucin, por tanto f (X) es irreducible.
e) Para p = 13: x2 = 12 tiene solucin x = 5 (52 = 25 = 12 (mod p)), por tanto f (X) no es
irreducible.
f) Para p = 19: x2 = 18 no tiene solucin, por tanto f (X) es irreducible.
g) Para p = 23: x2 = 22 no tiene solucin, 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.
Obsrvese que son todos los primos del conjunto dado congruentes con 3 mdulo 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, supondremos 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 conclusin 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 races 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 raz e ir calculando las
potencias de este elemento hasta llegar a un exponente i tal que i = 1. Si i = 120 (orden
mximo), podemos decir que es primitivo y el polinomio correspondiente tambin (no
hace falta calcular todas las potencias de hasta 120, basta calcular i con i divisor de 120).
Finalmente, despus 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 proposicin 2.2 que el polinomio Xp X divide al polinomio


m
Xp X. Por tanto las races del primero (que constituyen el cuerpo Fpr ) son tambin races
del segundo, es decir, elementos del cuerpo Fq .
Supongamos recprocamente 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 dimensin r sobre Fp


Fpm es un espacio vectorial de dimensin m sobre Fp
Fpm es un espacio vectorial sobre Fpr . Llamemos s a su dimensin.

Pero es fcil demostrar la siguiente relacin 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 comprobar que los productos vi wj forman una base de Fpm sobre Fp .]
7) Por ser raz 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:

Xp

1 = Xp

(a1 + a2 + + apm 1 ) Xpm 2 + + (1)p


|
{z
}
=0

ai

CC-BY-NC-ND PID_00200953

35

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 raz
cuadrada:

1 = 0 = 2

= = 2 =

m1

= 2

Como tiene raz cuadrada, todos los elementos de F2m la tendrn tambin.
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 raz
cuadrada, as como el elemento cero. Por lo tanto, los elementos que podemos asegurar que
tienen raz cuadrada sern:

{0,0 ,2 , ,p

que son exactamente la mitad de los elementos no nulos de Fpm y, adems, el cero.
Vamos a ver que no hay ms elementos en Fpm con raz cuadrada y, para ello, consideremos
: Fpm Fpm , definida como (x) = x2 . En esta aplicacin, excepto el cero, todas las
imgenes tienen exactamente dos antiimgenes. 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 ecuacin tiene dos posibles soluciones: x = y y x = y. Como p es impar, siempre existirn
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), dnde 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 races tengan orden
pn 1 = 15.
Comprobemos el polinomio X4 + X3 + X2 + X + 1:
Sea una raz, 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 raz, 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 +

Cuerpos finitos

CC-BY-NC-ND PID_00200953

Cuerpos finitos

36

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:

(0000)

(1000)

(0100)

(0010)

(0001)

(1101)

(1111)

(1110)

(0111)

(0101)

11

(1011)

12

(1100)

13

(0110)

(1001)

(1010)

10

14

(0011)

Para calcular como potencia de , calcularemos:

= 10 +

7 + 23

1+

12

+ 1 = 10 +

7 + 8

+ 1 = 10 +

+ 1 = 10 + 3 + 1 = 12 .

Para encontrar las races de la ecuacin dada, debemos resolver:

7 x2 + (2 + 9 )x +

1+
= 0,
4

o sea: 7 x2 + x + 8 = 0.
Por bsqueda exhaustiva, encontramos las races 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 = 10120 + 4347 y 1 = 4347 (mod 101).
Por tanto, 431 = 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 polinmica, 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

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 , raz 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 cules son no singulares:
a) Sean c0 = c1 = c2 = 0: la matriz es obviamente singular (todos sus coeficientes son nulos).
b) Sean c0 = c1 = c2 = 1: la matriz es singular (pues tiene sus tres filas iguales).
c) Sean c0 = 1 y c1 = c2 = 0: la matriz obtenida es la identidad, no singular, y se tiene B = B.
d) Sean c0 = 0, c1 = 1, c2 = 0: la matriz obtenida es

0
B
B
B 0
@
1

1
0
0

C
C
,
1 C
A
0

matriz no singular que proporciona la base normal B = {4 ,,2 } (Ntese que (4 )2 =


8 = .
e) Sean c0 = 0, c1 = 0, c2 = 1: la matriz obtenida es

B
B
B 1
@
0

0
0
1

C
C
,
0 C
A
0

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


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

1
B
B
B 0
@
1

1
1
0

C
C
,
1 C
A
1

matriz que es singular.


g) Sean c0 = 1, c1 = 0, c2 = 1: Se obtiene tambin una matriz singular.
h) Sean c0 = 0, c1 = 1, c2 = 1: De nuevo la matriz obtenida es singular.
Como conclusin: existen tres bases normales, las {,2 ,4 }, {4 ,,2 }, y {2 ,4 ,}. Obsrvese, 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.

Cuerpos finitos

CC-BY-NC-ND PID_00200953

Cuerpos finitos

38

14)
a) La expresin binaria de ambos nmeros es a = 1100111, b = 1000001. Con la regla
habitual de multiplicacin se obtiene

a+

=ab

Se han realizado un total de 13 operaciones bits (suma de dos nmeros binarios de longitud 13). El resultado obtenido ha sido: 212 + 211 + 29 + 25 + 22 + 2 + 1 = 6695.
b) Ambos nmeros tienen longitud binaria k y expresin binaria a = 1ak1 a1 a0 , b =
10 01. Dado que b tiene solo dos coeficientes no nulos (el primero y el ltimo), habra
que realizar la suma de dos nmeros binarios de longitud 2k1, obtenindose un nmero
con longitud, segn los casos, 2k 1 o 2k, por lo que el nmero 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, Proposicin 3.8, era sin embargo O(k2 ). Recurdese,
sin embargo, que el smbolo O daba una expresin en el caso peor.
15)
a) El algoritmo debe calcular una expresin de la forma an , a Fq , n N. La reduccin
mdulo 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 multiplicacin 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 expresin binaria de n es 5 = 101. Habra 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

Bibliografa

Cuerpos finitos

39

Koblitz, N. (1994). A Course in Number Theory and Cryptography, Second Edition. Nueva York: Springer (Graduate Texts in Mathematics, nm. 114).
Lidl, R.; Niederreiter, H. (1997). Finite Fields. Encyclopedia of Mathematics and its Applications (vol. 20, nm. 20, pg. 2). Cambridge: Cambridge U. Press.
Menezes, A. (1993) (ed.). Applications of Finite Fields. Massachusetts: Kluwer Academic Publishers.

You might also like