Professional Documents
Culture Documents
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.
1.1.
1.2.
12
1.2.1.
Representacin aditiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.2.2.
Representacin multiplicativa . . . . . . . . . . . . . . . . . . . . . . . .
14
2.
15
3.
20
3.1.
20
3.1.1.
Multiplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.1.2.
Divisin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.1.3.
Exponenciacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.2.
23
3.3.
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:
Cuerpos finitos
CC-BY-NC-ND PID_00200953
Cuerpos finitos
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.
Observacin
Existen cuerpos infinitos que
no son conmutativos, como
el cuerpo de los cuaterniones.
CC-BY-NC-ND PID_00200953
Cuerpos finitos
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).
1.
2.
3.
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: 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.
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
F8 = {0,1,,1 + ,2 ,1 + 2 , + 2 ,1 + + 2 }
(2)
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
(3)
CC-BY-NC-ND PID_00200953
13
Qm
i=1
.
Teorema 1.12 (Estructura multiplicativa). El grupo multiplicativo (Fq ,) es cclico de orden q 1.
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
(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.
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.
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
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
1 divide a Xp
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
si n = 1;
0
>
>
>
>
>
>
:
(6)
(1)s
.
Lema 2.5. Si n N, se verifica que
(d) =
8
>
>
< 1
>
>
: 0
d|n
si n = 1;
(7)
si n > 1.
(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).
Np (m) =
1 X
1 X m d
(d)pm/d =
( )p .
m
m
d
d|m
(10)
d|m
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
} 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.
Evaluemos el nmero de bases normales. Supongamos fijada una tal base norm1
mal B = {,p , . . . ,p
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
i =
X
j
aji p = @
X
j
ji
1pi
aji p A = @
X
j
1pi
pi
aj p A = 0
pi
i = 0 =
i+j
c0j p =
circulante.
j c0j
pj
. Se tendr:
c0,ji p
(12)
j cij
pj
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
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.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:
cin:
.
0
Lema 3.1. Para 0 < l m 1 se tiene tijl = til,jl
. Es decir, la tabla Tl se
se tiene que
k
k til,jl k .
p
i
p
j
= il jl =
k
k tij k .
k
k tij kl .
Elevando ambos
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.
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
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
m1
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 )).
Algoritmos eficientes
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,
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.
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 ,
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 .
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)).
(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
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
CC-BY-NC-ND PID_00200953
28
Cuerpos finitos
2.
3.
c a + b (mod p).
CC-BY-NC-ND PID_00200953
29
Sean R0 := 0, R1 := 0, R2 = 0.
2.
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
C[1] = 01, C[2] = 00, C[3] = 00, C[4] = 11, C[5] = 01, C[6] = 01
Cuerpos finitos
CC-BY-NC-ND PID_00200953
30
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
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
1+2
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
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,
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
(0000)
(1000)
(0100)
(0010)
(0001)
(1101)
(1111)
(1110)
(0111)
(0101)
11
(1011)
12
(1100)
13
(0110)
(1001)
(1010)
10
14
(0011)
= 10 +
7 + 23
1+
12
+ 1 = 10 +
7 + 8
+ 1 = 10 +
+ 1 = 10 + 3 + 1 = 12 .
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
(mod X2 + 1).
0
B
B
B 0
@
1
1
0
0
C
C
,
1 C
A
0
B
B
B 1
@
0
0
0
1
C
C
,
0 C
A
0
1
B
B
B 0
@
1
1
1
0
C
C
,
1 C
A
1
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:
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.