Vous êtes sur la page 1sur 55

1

SEP SNEST DGEST




INSTITUTO TECNOLGICO DE TOLUCA

ASIGNATURA:
PROGRAMACION AVANZADA


INVESTIGACION: CODIFICACION



ALUMNO:
ALVARADO ZAVALA DIEGO ALAN





PROFESORA:

ING. ROCIO ELIZABETH PULIDO ALBA




INGENIERIA MECATRNICA


SEPTIMO SEMESTRE





METEPEC, ESTADO DE MXICO, OCTUBRE DEL 2013

2

INTRODUCCION.....3
CODIFICACION..4
1 GRUPOS8
1.1 HOMEOMORFISMOS.10
1.2 ISOMORFISMOS12
1.3 CICLICOS14
1.4 COSETS...16
1.5 TEOREMA DE LAGRANGE18
1.6 METRICA DE HAMMING..19
1.7 MATRICES GENERADORAS Y DE PARIDAD.20
2 ANILLOS24
2.1 GRUPOS DE CODIGO..27
2.2 COSETS LDERES....31
2.3 MATRICES DE HAMMING....33
2.4 CAMPOS FINITOS.....35
2.5 ANILLOS DE POLINOMIOS37
2.6 POLINOMIOS IRREDUCIBLES..39
2.7 CUADROS LATINOS..41
2.8 CRIPTOGRAFIA...45







3

INTRODUCCION
Dentro de este trabajo se desarrollan una diversa serie de conceptos y temas vinculados entre s
para el desarrollo de programas y cdigos computacionales, enfocndose principalmente a la parte
de codificacin, esto a travs de estatutos matemticos bsicos para dar forma y vida a la lgica de
un programa.
Sin duda alguna y con ayuda de este trabajo el usuario podr notar que es indispensable tener un
conocimiento amplio de conceptos y variables matemticas para el desarrollo de sus programas no
importando el lenguaje, ya que se debe seguir esto bajo el precepto lgico de una operacin
partiendo de lo que se desea obtener a manera de diversos algoritmos, y es mediante estos
conceptos y su adaptacin a cada lenguaje que este tipo de procesos cobran vida.
Los temas presentados se vinculan de manera que el usuario pueda relacionarlos y combinarlos de
acuerdo a su conveniencia y a lo que la misma lgica matemtica permita dentro de sus parmetros,
llevando conceptos generales hasta especificaciones dentro de los mismos, as como aadiendo
modelos algebraicos que permitan una explicacin ms grafica dentro de los temas a tratar.















4

CODIFICACION
La codificacin de caracteres es el mtodo que permite convertir un carcter de un lenguaje
natural (alfabeto o silabario) en un smbolo de otro sistema de representacin, como un nmero o
una secuencia de pulsos elctricos en un sistema electrnico, aplicando normas o reglas de
codificacin.
Normas de codificacin
Definen la forma en la que se codifica un carcter dado en un smbolo en otro sistema de
representacin. Ejemplos de esto son el cdigo Morse, la norma ASCII o la UTF-8, entre otros.
ASCII
Por estar ntimamente ligado al octeto (y por consiguiente a los enteros que van del 0 al 127), el
problema que presenta es que no puede codificar ms que 128 smbolos diferentes (128 es el
nmero total de diferentes configuraciones que se pueden conseguir con 7 dgitos binarios o
digitales (0000000, 0000001,..., 1111111), usando el octavo dgito de cada octeto (bit o dgito de
paridad) para detectar algn error de transmisin). Un cupo de 128 es suficiente para incluir
maysculas y minsculas del abecedario ingls, adems de cifras, puntuacin, y algunos "caracteres
de control" (por ejemplo, uno que instruye a una impresora que pase a la hoja siguiente), pero el
ASCII no incluye ni los caracteres acentuados ni el comienzo de interrogacin que se usa en
castellano, ni tantos otros smbolos (matemticos, letras griegas,...) que son necesarios en muchos
contextos.
ASCII Extendido
Debido a las limitaciones del ASCII se definieron varios cdigos de caracteres de 8 bits, entre ellos
el ASCII extendido. Sin embargo, el problema de estos cdigos de 8 bits es que cada uno de ellos se
define para un conjunto de lenguas con escrituras semejantes y por tanto no dan una solucin
unificada a la codificacin de todas las lenguas del mundo. Es decir, no son suficientes 8 bits para
codificar todos los alfabetos y escrituras del mundo.PARCIALMENTE
Unicode
Como solucin a estos problemas, desde 1991 se ha acordado internacionalmente utilizar la
norma Unicode, que es una gran tabla, que en la actualidad asigna un cdigo a cada uno de los ms
de cincuenta mil smbolos, los cuales abarcan todos los alfabetos europeos, ideogramas chinos,
japoneses, coreanos, muchas otras formas de escritura, y ms de un millar de smbolos locales.
Codificacin de caracteres del espaol
5

Minsculas
carcte
r
ISO-
8859
-1
UTF
-8
UTF-16
a 0x61
0x6
1
0x0
0
0x6
1
b 0x62
0x6
2
0x0
0
0x6
2
c 0x63
0x6
3
0x0
0
0x6
3
d 0x64
0x6
4
0x0
0
0x6
4
e 0x65
0x6
5
0x0
0
0x6
5
f 0x66
0x6
6
0x0
0
0x6
6
g 0x67
0x6
7
0x0
0
0x6
7
h 0x68
0x6
8
0x0
0
0x6
8
i 0x69
0x6
9
0x0
0
0x6
9
j 0x6a
0x6
a
0x0
0
0x6
a
k 0x6b
0x6
b
0x0
0
0x6
b
Maysculas
carcte
r
ISO-
8859
-1
UTF
-8
UTF-16
A 0x41
0x4
1
0x0
0
0x4
1
B 0x42
0x4
2
0x0
0
0x4
2
C 0x43
0x4
3
0x0
0
0x4
3
D 0x44
0x4
4
0x0
0
0x4
4
E 0x45
0x4
5
0x0
0
0x4
5
F 0x46
0x4
6
0x0
0
0x4
6
G 0x47
0x4
7
0x0
0
0x4
7
H 0x48
0x4
8
0x0
0
0x4
8
I 0x49
0x4
9
0x0
0
0x4
9
J 0x4a
0x4
a
0x0
0
0x4
a
K 0x4b
0x4
b
0x0
0
0x4
b
Acentos y tildes
carcte
r
ISO-
8859
-1
UTF-8 UTF-16
0xe1
0xc
3
0xa
1
0x0
0
0xe
1
0xc1
0xc
3
0x8
1
0x0
0
0xc
1
0xe9
0xc
3
0xa
9
0x0
0
0xe
9
0xc9
0xc
3
0x8
9
0x0
0
0xc
9
0xed
0xc
3
0xa
d
0x0
0
0xe
d
0xcd
0xc
3
0x8
d
0x0
0
0xc
d
0xf3
0xc
3
0xb
3
0x0
0
0xf3
0xd3
0xc
3
0x9
3
0x0
0
0xd
3
0xfa
0xc
3
0xb
a
0x0
0
0xfa
0xda
0xc
3
0x9
a
0x0
0
0xd
a
0xfc
0xc
3
0xb
c
0x0
0
0xfc
6

l 0x6c
0x6
c
0x0
0
0x6
c
m 0x6d
0x6
d
0x0
0
0x6
d
n 0x6e
0x6
e
0x0
0
0x6
e
o 0x6f 0x6f
0x0
0
0x6f
p 0x70
0x7
0
0x0
0
0x7
0
q 0x71
0x7
1
0x0
0
0x7
1
r 0x72
0x7
2
0x0
0
0x7
2
s 0x73
0x7
3
0x0
0
0x7
3
t 0x74
0x7
4
0x0
0
0x7
4
u 0x75
0x7
5
0x0
0
0x7
5
v 0x76
0x7
6
0x0
0
0x7
6
w 0x77
0x7
7
0x0
0
0x7
7
x 0x78
0x7
8
0x0
0
0x7
8
L 0x4c
0x4
c
0x0
0
0x4
c
M 0x4d
0x4
d
0x0
0
0x4
d
N 0x4e
0x4
e
0x0
0
0x4
e
O 0x4f 0x4f
0x0
0
0x4f
P 0x50
0x5
0
0x0
0
0x5
0
Q 0x51
0x5
1
0x0
0
0x5
1
R 0x52
0x5
2
0x0
0
0x5
2
S 0x53
0x5
3
0x0
0
0x5
3
T 0x54
0x5
4
0x0
0
0x5
4
U 0x55
0x5
5
0x0
0
0x5
5
V 0x56
0x5
6
0x0
0
0x5
6
W 0x57
0x5
7
0x0
0
0x5
7
X 0x58
0x5
8
0x0
0
0x5
8
0xdc
0xc
3
0x9
c
0x0
0
0xd
c
0xf1
0xc
3
0xb
1
0x0
0
0xf1
0xd1
0xc
3
0x9
1
0x0
0
0xd
1

Smbolos
carcte
r
ISO-
8859
-1
UTF-8 UTF-16
0xbf
0xc
2
0xbf
0x0
0
0xbf
? 0x3f 0x3f
0x0
0
0x3f
0xa1
0xc
2
0xa
1
0x0
0
0xa
1
! 0x21 0x21
0x0
0
0x2
1

7

y 0x79
0x7
9
0x0
0
0x7
9
z 0x7a
0x7
a
0x0
0
0x7
a

Y 0x59
0x5
9
0x0
0
0x5
9
Z 0x5a
0x5
a
0x0
0
0x5
a





















8

GRUPOS
Un grupo es un par (G; _) formado por un conjunto y una operacin binaria que cumple:
G0 La operacin es cerrada, es decir, a * b G, para todo a,;b G.
G1 La operacin es asociativa, es decir, (a * b)* c = a * (b * c)) , para todo a,;b G._
G2 El conjunto G tiene elemento neutro, que se denotar por e, respecto de la operacin.
G3 Cada elemento de G tiene inverso respecto de la operacin. El inverso del elemento a G se
denotar por a
-1
.
Grupo fundamental: dado un espacio topolgico X, se puede formar el conjunto de todos los lazos
en X que salen de un cierto punto, considerando como equivalentes a dos lazos que se puedan
superponer mediante una homotopa (es decir, tales que se pueda deformar a uno de ellos en forma
continua hasta obtener el otro). A dicho conjunto se le asigna una estructura (algebraica) de grupo,
lo que determina el llamado grupo fundamental de X. Se trata de un invariante topolgico muy
til. Por ejemplo, el grupo fundamental de una circunferencia es Z, el conjunto de los nmeros
enteros (Z = {..., - 3, - 2, - 1, 0, 1, 2, 3, ...}), hecho que resulta claro pues todo lazo cerrado sobre la
circunferencia est determinado unvocamente por la cantidad de vueltas, y el sentido en que se
las recorre. El grupo fundamental de un toro es Z Z, pues en este caso deben tenerse en
cuenta las vueltas dadas "alrededor" del agujero, y tambin "a travs" del mismo. Este resultado es,
claro est, coherente con el hecho de que el toro puede pensarse como el producto cartesiano de
dos circunferencias
Estas son algunas de las propiedades que tienen los grupos:
El neutro es nico. El inverso de cada elemento tambin es nico.
El inverso del inverso de un elemento es el propio elemento: (x
1
)
1
=x
El inverso de un producto es el producto de los inversos, pero cambiado de orden:(xy)
1
=y
1
x
1
.
En un grupo la ecuacin ax = b siempre tiene solucin, que es nica: x=a
1
b. Anlogamente, x =
ba
1
es la nica solucin de xa = b.
Para analizar conjuntos nitos muy pequeos con alguna operacin binaria dada, uno puede utilizar
tablas de multiplicacin para analizar si estamos en presencia de un grupo on no.

9

EJEMPLO
Consideremos el conjunto G = {e, a, b, c, d, f} y denamos la operacin binaria dada por la siguiente
tabla:
| e a b c d f

e | e a b c d f
a | a b e f c d
b | b e a d f c
c | c d f e a b
d | d f c b e a
f | f c d a b e

Lo que esta tabla nos dice, por ejemplo, que el coeciente (2,3), es decir, e es igual a a b.
















10


HOMEOMORFISMOS
Se llama homeomorfismo entre dos espacios topolgicos X e Y a una funcin f: X Y que resulte
biunvoca y bicontinua, es decir:
f es "uno a uno" (biunvoca), lo que significa que para cada elemento x X existe un nico y Y tal
que f(x) = y y viceversa. Esto permite definir la funcin inversa, f-
1
:Y X
f y f-
1
son continuas (f es bicontinua)
La nocin de homeomorfismo responde a la idea intuitiva de "deformacin", y determina cierta
clase de equivalencia: dos espacios homeomorfos tienen las mismas propiedades topolgicas.
Sea h: G G un homomorfismo; sea H el conjunto de todos los elementos z de G tales que
h(z) = e, siendo e la unidad de G. Esto significa que H es la imagen inversa de e. H se denomina
ncleo del homomorfismo.
El ncleo de un homomorfismo entre G y G, es un subgrupo de G.
En efecto:
a) sean heH y heH, sern f(h) = f(h) = e y f(hh) = f(h)f(h) = e lo que significa que hh e
H.
b) sean h e H y e e G ser f(h) = f(he) = f(h)f(e) = ef(e) = f(e) = e esto significa que e e H.
c) sean h e H y h
-1
e G ser f(h
-1
) = f(h
-1
)e = f(h
-1
)f(h) = f(h
-1
h) = f(e) = e.
Luego H es un grupo, es decir un subgrupo de G.
Comprobacin y ejemplos
Cmo demostrar que dos espacios son homeomorfos? Tpicamente hallando un homeomorfismo
explcito entre ellos. (Ej.: Tomando f(x)=tag(tx/2), se tiene que (-1,1) y R son homeomorfos).
Cmo demostrar que dos espacios no son homeomorfos? Basta hallar una propiedad topolgica
que tenga uno de ellos pero no el otro. Normalmente estas propiedades suelen ser la conexin
(quiz suprimiendo puntos del conjunto), la compacidad y el grupo fundamental. Cuando estamos
con topologas raras puede ser suficiente alguna propiedad ms bsica, como la propiedad de
Hausdorff.

11

EJEMPLO
Ej.: El signo no es homeomorfo al signo = porque uno es conexo y el otro no.
Ej.: El signo no es homeomorfo al signo + porque si en ste ltimo quitamos el punto central y
en el el punto correspondiente, uno tiene cuatro componentes conexas (abiertas) y el otro slo
dos.
Ej.: El plano y la superficie esfrica no son homeomorfos porque el primero no es compacto y la
segunda s.
Ej.: El plano y el toro no son homeomorfos porque el primero es simplemente conexo y el otro no.
Ej.: R con la topologa usual no es homeomorfo a R con la topologa cofinita, porque sta ltima no
es Hausdorff.
Ej.: [0,1] no es homeomorfo al espacio X del ejercicio 3 de la Hoja 4, porque X no es conexo por
caminos.














12

ISOMORFISMOS
Podramos definir el significada de un isomorfismo que 2 semigrupos simplemente parezcan iguales,
o que es cuando el dominio y la imagen de un isomorfismo propio pueden ser o son idnticos.
Con relacin a este concepto podemos mencionar diversos teoremas, alguna de cuyas
demostraciones veremos a continuacin.
a) Teorema: La relacin G es isomorfo con G es una relacin de equivalencia entre grupos.
b) Teorema: En todo isomorfismo entre dos grupos, los elementos idnticos se corresponden
y los inversos de elementos correspondientes tambin se corresponden.
c) Teorema: Todo grupo abstracto G es isomorfo con un grupo de transformaciones del grupo
sobre s mismo.
e a b c d g
e e a b c d g
a a b c d g e
b b c d g e a
c c d g e a b
d d g e a b c
g g e a b c d
EJEMPLO
Asociemos a cada elemento a e G la transformacin t
a
: G G tal que t
a
(x) = xa. El lector
puede observar la segunda fila de la tabla mencionada para ver todas las imgenes de esta
transformacin: t
a
(e) = a; t
a
(a) = b; t
a
(b) = c; t
a
(c) = d; t
a
(d) = g; t
a
(g) = e
Para otro elemento cualquiera de G, tendremos otra transformacin; as para b e G tendremos t
b
: G
G, tal que t
b
(x) = xb (tercera fila de la tabla). Vale decir que si a = b t
a
= t
b
.
Sea G = ,t : G G- definidas en la forma indicada. Ser G = ,t
a
, t
b
, t
c
, t
d
, t
e
, t
g
} para el caso de n =
6, todas transformaciones distintas, como puede verificarse observando las diferentes filas de la
tabla correspondiente.

13

Por otra parte, podemos definir en G el producto de transformaciones, tal que:
x e G, x(t
a
t
b
) = (xt
a
)t
b
= (xa)t
b
= (xa)b = x (ab) = t
ab

y en el caso particular de nuestra tabla vemos que t
ab
= t
c
. Esto significa que el producto de dos
transformaciones de G es otra transformacin de G. Luego este producto es cerrado.
En G existe t
e
tal que xe G, t
e
(x) = xe = x. Luego t
e
es la identidad.
En G existe tambin ( t
a
)
-1
= t
g
= t
(a
-1
)
y as para todas las transformaciones de G. Luego cada
elemento de G tiene en el conjunto su inversa.
Esto nos indica que G tiene estructura de grupo y es isomorfo con el grupo abstracto considerado.
Lo cual prueba la tesis.
















14

CCLICOS
Un grupo cclico es un grupo que puede ser generado por un solo elemento; es decir, hay un
elemento a del grupo G (llamado "generador" de G), tal que todo elemento de G puede ser
expresado como una potencia de a. Si la operacin del grupo se denota aditivamente, se dir
que todo elemento de G se puede expresar como na, para n entero.
En otras palabras, G es cclico, con generador a, si G = { a
n
| n Z }. Dado que un grupo generado
por un elemento de G es, en s mismo, un subgrupo de G, basta con demostrar que el nico
subgrupo de G que contiene a a es el mismo G para probar que ste es cclico.
Contrariamente a lo que sugiere la palabra "cclico", es posible generar infinitos elementos y no
formar nunca un ciclo real: es decir, que cada g
n
sea distinto. Un tal grupo sera un grupo cclico
infinito, isomorfo al grupo Z de los enteros bajo la adicin.
Salvo isomorfismos, existe exactamente un grupo cclico para cada cantidad finita de
elementos, y exactamente un grupo cclico infinito. Por lo anterior, los grupos cclicos son de algn
modo los ms simples, y han sido completamente clasificados.
Propiedades
Dado un grupo cclico G de orden n (donde n puede valer infinito), y dado g G, se tiene:

- G es abeliano; es decir, su operacin es conmutativa: ab = ba para cualesquiera a yb G.
Esto es cierto, puesto que cualquier par de enteros a y b, a + b md n = b + a md n.
- Si n < , entonces g
n
= e, puesto que n md n = 0.
- Si n = , entonces el grupo tiene exactamente dos generadores: 1 y -1 en Z, y sus
imgenes ismrficas en otros grupos cclicos infinitos.
- Todo subgrupo de G es cclico. De hecho, para n finito, todo subgrupo de G es isomorfo
a un Z
m
, donde m es divisor de n; y si n es infinito, todo subgrupo de G corresponder a un
subgrupo mZ de Z (el cual es tambin isomorfo a Z), bajo el isomorfismo entre G y Z.

Los generadores de Z
n
son los enteros que son primos relativos con n. El nmero de tales
generadores se designa por (n), donde designa la funcin de Euler. En general, si d es un
divisor de n, el nmero de elementos de Z
n
de orden d es (d). El orden del
elemento m es n /mcd(m,n).
Si p es primo, el nico grupo con p elementos (salvo isomorfismos) es Z
p
.
15

El producto directo de dos grupos cclicos Z
n
y Z
m
es cclico si y solo si m y n son primos entre s; en
tal caso, el grupo obtenido ser isomorfo a Z
nm
. Por ejemplo, Z
12
es isomorfo a Z
3
Z
4
, pero no
a Z
6
Z
2
.
El teorema fundamental de los grupos abelianos afirma que todo grupo abeliano finitamente
generado es isomorfo al producto directo de un nmero finito de grupos cclicos.
Z
n
y Z son tambin anillos conmutativos. Si n es un nmero primo, Z
n
es un cuerpo finito, tambin
denotado por F
n
o GF(n). Cualquier otro cuerpo con n elementos es isomorfo al ya descrito.
EJEMPLO
G = { e, g
1
, g
2
, g
3
, g
4
, g
5
} es cclico. De hecho, G es esencialmente igual (esto es, isomorfo) al
grupo { 0, 1, 2, 3, 4, 5 } bajo la operacin de suma mdulo 6. El isomorfismo se puede hallar
fcilmente haciendo g 1.
EJEMPLO
Demuestre que todo subgrupo de un grupo cclico es cclico.
Sea un grupo multiplicativo generado por el elemento . Sea y sea el menor
entero para el cul . De la definicin de subgrupo tenemos que todo
elemento donde , por el algoritmo de la divisin se tiene que

y as

Aplicando ahora las propiedades de grupo (cancelacin por la izquierda) se tiene que

Dado que entonces el producto se halla en y por lo tanto pero
entonces y por lo tanto

es decir



16

COSETS
Tenemos gH = H si y solamente si g es un elemento de H, desde como H es un subgrupo, debe ser
cerrado y debe contener la identidad.
Cualquier dos cosets izquierdos son o idnticos o desuna -- los cosets izquierdos forman a particin
de G: cada elemento de G pertenece a un y solamente un coset izquierdo. Particularmente la
identidad est solamente en un coset, y ese coset es H s misma; ste es tambin el nico coset
que es un subgrupo. Podemos ver esto claramente en los ejemplos antedichos.
Los cosets izquierdos de H en G sea clases de equivalencia debajo de relacin de
equivalencia en G dado cerca x ~ y si y solamente si x -1y H. Las declaraciones similares son
tambin verdades para los cosets derechos.
Todos los cosets izquierdos y todos los cosets derechos tienen igual orden (nmero de elementos, o
cardinality en el caso de infinito H), igual a la orden de H (porque H est s mismo un coset).
Adems, el nmero de cosets izquierdos es igual al nmero de cosets derechos y se conoce
como ndice de H en G, escrito como *G : H+. Teorema de Lagrange
permite que computemos el ndice en el caso donde G y H sea finito, segn el frmula:

|G| = [G : H] |H|

En matemticas, si G es a grupo, H a subgrupo de G, y g un elemento de G, entonces
gH = {gh : h un
elemento de H} es a coset izquierdo de H en G, y
Hectogramo = {hectogramo : h un elemento de H}
es a coset derecho de H en G. Solamente cuando H es normal voluntad los cosets derechos e
izquierdos de H coincida, que es una definicin de la normalidad de un subgrupo.
A coset es un coset izquierdo o derecho de algunos subgrupo adentro G. Desde entonces
Hectogramo = g(g
1
Hectogramo), los cosets derechos Hectogramo (de H) y los cosets izquierdos
g(g
1
Hectogramo) (de conjugacin subgrupo g
1
Hectogramo ) son iguales. Por lo tanto no es
significativo hablar de un coset como ido o correcto a menos que un primer especifique a subgrupo
subyacente.
Para grupos abeliano o los grupos escritos aditivo, la notacin utilizaron cambios a g+H y H+g
respectivamente. Si H no es normal en G, entonces sus cosets izquierdos son diferentes de
sus cosets derechos. Es decir, hay a en G tales que ningn elemento b satisface ah = Hb.
Esto significa que la particin de G en los cosets izquierdos de H es una diversa particin que la
particin de G en cosets derechos de H. (Es importante observar eso algunos los cosets pueden
coincidir. Por ejemplo, si a est en centro de G, entonces ah = Ha.)
17

Por otra parte, el subgrupo N es normal si y solamente si gN = Ng para todos g en G. En este
caso, el sistema de todos los cosets forma a grupo llamado grupo del cociente G/H con el de la
operacin definido cerca (ah)(bH) = abH. Puesto que cada coset derecho es un coset izquierdo,
no hay necesidad de distinguir cosets izquierdos de cosets derechos.
EJEMPLO
El aadido grupo cclico Z
4
= {0, 1, 2, 3} = G tiene un subgrupo H = {0, 2} (isomorfo a
Z
2
). Los cosets izquierdos de H en G sean
0 + H = {0, 2} = H
1 + H = {1, 3}
2 + H = {2, 0} = H
3 + H = {3, 1}
Hay por lo tanto dos cosets distintos, H s mismo, y 1 + H = 3 + H. Observe eso H (1 +H) = G, tan los
cosets distintos de H en G particin G. Desde entonces Z
4
es grupo abeliano, los cosets derechos
sern iguales que la izquierda (esto no es difcil de verificar).





















18

TEOREMA DE LAGRANGE

Teorema de Lagrange, en matemticas de teora del grupo, indica eso para cualesquiera grupo
finito G, orden (nmero de elementos) de cada subgrupo H de G divide la orden de G. El teorema
de Lagrange se nombra despus Jos Lagrange

Prueba del teorema de Lagrange

Esto se puede demostrar usando el concepto de la izquierda cosets de H en G. Los cosets izquierdos
son clases de equivalencia de un seguro relacin de equivalencia en G y por lo tanto forme una
particin de G. Si podemos demostrar que todos los cosets de H tenga el mismo nmero de
elementos, despus nos hacen, desde entonces H s mismo es un coset de H. Ahora, si ah y bH son
dos cosets izquierdos de H, podemos definir un mapa f : ah bH
fijando f(x) = Ba
-1
x. Este mapa es bijective porque su lo contrario se da cerca f
-1
(y) = ab
-1
y.

Esta prueba tambin demuestra a eso el cociente de las rdenes |G| / |H| es igual a ndice [G
: H] (el nmero de cosets izquierdos de H en G). Si escribimos esta declaracin como
|G| = [G : H] |H|,

Entonces, interpretado como declaracin alrededor nmeros cardinales, sigue siendo verdad incluso
para los grupos infinitos G y H.

Existencia de subgrupos de cierta orden

El teorema de Lagrange plantea la cuestin de si cada divisor de la orden de un grupo es la orden de
un subgrupo. Este asimiento de la necesidad. Dado un grupo finito G y un divisor d de |G|, no existe
necesariamente un subgrupo de G con orden d. El ejemplo ms pequeo es grupo que se alterna G
= A
4
cul tiene 12 elementos pero ningn subgrupo de la orden 6. Cualquier grupo finito que tenga
un subgrupo con el tamao igual a cualquier divisor (del positivo) del tamao del grupo debe ser
soluble, as que los grupos insolubles son ejemplos de este fenmeno, aunque A
4
demuestra que
no son los nicos ejemplos. Si G es abeliano, entonces existe siempre un subgrupo de cualquier
orden que divide el tamao de G. Una generalizacin parcial se da cerca Teorema de Cauchy.

Sea f definida en [0,1] por
f no es continua en [0,1]
(1)
pero s es derivable en (0,1)
(2)
, y es f(x) = 2x.
Ahora y , pero




19

METRICA DE HAMMING
En Teora de la Informacin se denomina distancia de Hamming a la efectividad de los cdigos de
bloque y depende de la diferencia entre una palabra de cdigo vlida y otra. Cuanto mayor sea esta
diferencia, menor es la posibilidad de que un cdigo vlido se transforme en otro cdigo vlido por
una serie de errores. A esta diferencia se le llama distancia de Hamming, y se define como el
nmero de bits que tienen que cambiarse para transformar una palabra de cdigo vlida en
otra palabra de cdigo vlida. Si dos palabras de cdigo difieren en una distancia d, se
necesitan d errores para convertir una en la otra.

Para cualquier elemento x=x1, x2, x3,, xn Z2n donde nZ+, el peso de x que se denota con p(x) es
el nmero de componentes xi de x, para 1ix, tales que xi=1. Si y Z2n, la distancia entre x y y se
denota como d(x,y), es el nmero de componentes tales que xiyi, para 1ix. 1
Una funcin distancia o mtrica es aquella que cumple con las siguientes propiedades:
* d(x,y)0
* dx,y=d(y,x)
* dx,y=0x=y
* dx,zdx,y+d(x,z)
Se denota como (Z2n,d) como un espacio espacio mtrico
EJEMPLO
- La distancia Hamming entre 1011101 y 1001001 es 2.
- La distancia Hamming entre 2143896 y 2233796 es 3.
- La distancia Hamming entre "tener" y "reses" es 3.
Definicin: Sea A un alfabeto y u,w A
n
. Se define la distancia Hamming d(u,w) como el nmero de
posiciones en las que difieren v y w.
A
n
xA
n

d
Z_R
(u, w)d(u,w)

Esta aplicacin es una mtrica:

- Es definida positiva: d(u,w) > 0 y d(u,w) = 0 u = w u, w e A
n

- Es simtrica: d(u,w) = d(w,u) u, w e A- Desigualdad triangular: d (u,v) s d (u,w) + d
(w,v) u, v, w e A
n




20

n k
k x r
I P
MATRICES GENERADORAS Y DE PARIDAD
Matricialmente:
G d C = con sumas mod 2
1 x n k x n
1 x k

a la matriz G se le llama matriz generadora del cdigo.

G = [ I
k
P] I
k
= Porque los primeros k bits coinciden con los de datos.
P

= Formada por el arreglo de los
ij
h transpuestos.



Veamos por ejemplo, un cdigo (7, 3) cuya matriz p es:

(
(
(

=
1 1 1 1
0 1 1 0
0 0 1 1
P P es de orden 3 x 4

entonces n =7 , k =3 y existen 4 bits de paridad, su matriz generadora es:


(
(
(

=
1 1 1 1 1 0 0
0 1 1 0 0 1 0
0 0 1 1 0 0 1
G

Si ) 1 , 0 , 1 ( = d

G d C = ) 1 , 0 , 1 ( =
(
(
(

=
1 1 1 1 1 0 0
0 1 1 0 0 1 0
0 0 1 1 0 0 1
) 1 , 1 , 0 , 0 , 1 , 0 , 1 ( =
y sucesivamente:

d C
1 000 0000000
2 001 0011111
3 010 0100110
4 011 0111001
5 100 1001100
6 101 1010011
21

7 110 1101010
8 111 1110101

Los bits de paridad estn dados como:

3 7
3 2 6
3 2 1 5
3 1 4
d C
d d C
d d d C
d d C
=
=
=
=



Definiremos una matriz H, a la cual llamaremos la matriz de chequeo de paridad, la cual nos
permitir decodificar los vectores recibidos.
Para cada matriz generadora G existir una matriz H de tal forma que las filas de G son ortogonales a
las filas de H; es decir, GH
T
= 0. H
T
es una matriz cuyas filas son las columnas de H y viceversa.
Para cumplir con las condiciones de ortogonalidad de un cdigo sistemtico, las componentes de la
matriz H se escriben como;
H = [P
T
I
r
]

r x n r x k
se le llama matriz de comprobacin de paridad. Es fcil verificar que :

1 x n 0 =
T
H C
n x r

Sea r el vector recibido en lugar de C

e C r =
Donde e es un vector de n bits formado por unos cuando hay un error y ceros cuando no hay un
error.

s H e H e C H r
T T T
~ = = ) (

a s se le llama vector sndrome, est formado por:

) ,..., , (
2 1 ri i i
h h h s =
e indica el rengln i-simo de la matriz H transpuesta (
T
H ) donde est el error.

Por ejemplo, supongamos que se enva ) 0 , 0 , 1 , 1 , 0 , 0 , 1 ( = C y se recibe = r (1,0,0,0,1,0,0)
22


(

=
k n
T
I
P
H

n x r

) 0 , 0 , 0 , 1 (
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 1 1 1
0 1 1 0
0 0 1 1
=
(
(
(
(
(
(
(
(
(

= = r H r s
T

El vector s corresponde al cuarto rengln de
T
H , por lo tanto el error se encuentra en el 4 bit.
Una matriz es revisora de paridad para un cdigo lineal- si se
cumple:

Se tiene, de manera natural:

Por tanto se tiene que toda matriz revisora de paridad posee rango .
Definicin 5.4 Dado un cdigo lineal- , su cdigo
dual es .
Naturalmente, la matriz revisora de paridad de un cdigo es la generatriz del dual y, viceversa, la
generatriz es la revisora de paridad del dual.
Si es la matriz revisora de paridad de un cdigo lineal- entonces la
transformacin lineal , , se dice ser de sndrome. El valor es
el sndrome de la palabra .
23

se forma la matriz observando C
4
,
C
5
, C
6
y se transponen.
As tenemos que las palabras en el cdigo son exactamente aquellas con sndrome nulo. En otras
palabras, el ncleo de la transformacin de sndrome es el cdigo mismo.
EJEMPLO

Considere un cdigo binario con tres dgitos de mensaje y tres de paridad, estos ltimos estn dados
por:

3 2 6
3 1 5
3 2 1 4
d d C
d d C
d d d C
=
=
=

a) Cuntas palabras codificadas hay en el cdigo?
b) Encontrar la palabra codificada que comienza con 110...
c) La palabra recibida 010111 contiene un error. Decodificarla usando la matriz de
comprobacin de paridad.

Solucin.
a) 2
3
= 8 palabras codificadas.
b) Primer mtodo:
1 0 1
1 0 1
0 0 1 1
6
5
4
= =
= =
= =
C
C
C

la palabra codificada es: 110011
Segundo mtodo:
(
(
(

=
1 1 1
1 0 1
0 1 1
P
G d C = ) 0 , 1 , 1 ( =
(
(
(

1 1 1 1 1 0 0
1 0 1 0 0 1 0
0 1 1 1 0 0 1
) 1 , 1 , 0 , 0 , 1 , 1 ( =
c)
T
H r = ) 0 , 1 , 0 (
1 0 0
0 1 0
0 0 1
1 1 1
1 0 1
0 1 1
) 1 , 1 , 1 , 0 , 1 , 0 ( =
(
(
(
(
(
(
(
(


El error est en el quinto bit. La palabra correcta es:
C = (0,1,0,1,0,1)
24

ANILLOS

Un anillo es una estructura algebraica formada por un conjunto (A) y dos operaciones, llamadas
usualmente suma y producto (A,+,*), de modo que (A,+) es un grupo conmutativo con elemento
neutro (que designamos 0), y el producto * es asociativo y tiene lapropiedad distributiva respecto de
la suma. Si el producto es conmutativo hablaremos de un anillo conmutativo y si el anillo posee un
elemento neutro para el producto, lo llamaremos anillo con unidad (a la que designaremos 1).
Sea A un conjunto no vaco, y sean y dos operaciones binarias en A. Se dice que el
conjunto es un anillo si se cumplen las siguientes propiedades:
1. A es cerrado bajo la operacin .

2. La operacin es asociativa.

3.
La operacin tiene a n como elemento
neutro.

4. Existe un elemento simtrico para .

Estas cuatro condiciones definen un grupo. Una quinta condicin define un grupo abeliano:
5. La operacin es conmutativa.

Para definir un anillo, es necesario agregar tres condiciones ms que hablan acerca de la segunda
operacin binaria:
6. A es cerrado bajo la operacin .

7. La operacin es asociativa.

8.
La operacin es distributiva
respecto de .

Y agregando una novena condicin, se define un anillo conmutativo:
9. La operacin es conmutativa.

Si un anillo cuenta con un elemento neutro para la segunda operacin se llama anillo unitario. A
dicho elemento se le suele llamar la unidad (1) para diferenciarlo del elemento neutro de la primera
operacin (usualmente el 0).
25

Definicin sinttica
Un anillo R es un conjunto con dos leyes de composicin, llamadas adicin y multiplicacin,
cumpliendo las condiciones siguientes:
- R1. R es grupo abeliano para la adicin; el elemento neutro en esta adicin se nombra cero del
anillo, y se denota usualmente 0;
- R2. R es un semigrupo para la multiplicacin;
- R3. La multiplicacin es distributiva (por los dos lados) respecto de la adicin.

EJEMPLO
El ejemplo ms intuitivo y familiar de un anillo es el conjunto de los nmeros enteros:
... -4, -3, -2, -1, 0, 1, 2, 3, 4, ...
Junto con las operaciones binarias de la suma y la multiplicacin usuales. Histricamente, el
conjunto de los enteros con sus dos operaciones sirvi de base para la formulacin del
concepto de anillo. La razn por la cual los enteros forman un anillo es que poseen las siguientes
propiedades:
1. Los nmeros enteros estn cerrados bajo la suma: dados dos nmeros enteros a y b, se
cumple que a + b es un nmero entero.
2. La suma es asociativa: dados tres nmeros enteros a, b y c, se cumple que (a + b)
+ c = a + (b + c).
3. Existe un elemento neutro para la suma: para todo nmero entero a, a + 0 = 0 + a = a.
4. Existe un elemento simtrico para la suma: para todo nmero entero a, siempre existe
algn nmero entero b, tal que a + b = 0.
5. La suma es conmutativa: dados dos nmeros enteros a y b, se cumple que a + b = b + a.
6. Los nmeros enteros estn cerrados bajo la multiplicacin: dados dos nmeros
enteros a y b, se cumple que a b es un nmero entero.
7. La multiplicacin es asociativa: dados tres nmeros enteros a, b y c, se cumple que
(a b) c = a (b c).
8. Existe un elemento neutro para la multiplicacin: para todo nmero entero a, a 1 = a.
9. La multiplicacin es distributiva respecto de la suma: a (b + c) = (a b) + (a c).
EJEMPLOS
El conjunto de los enteros gaussianos H = {m+ni: m,n }, con la adicin y mltiplicacin usuales es
un anillo unitario. Es un subanillo de los nmeros complejos .
- El conjunto M de las matrices reales de orden 2 con la adicin y multiplicacin de matrices es un
anillo no conmutativo.
- El conjunto Q( ) de los nmeros reales: m+n donde m, n (son racionales, con la adicin
y multiplicacin, es un anillo unitario conmutativo.
2

26

- El conjunto Z[6] de los enteros mdulo 6; con la adicin y multiplicacin modular, es un anillo
finito con divisores de 0.
- El conjunto F[x] de los polinomios con coeficientes en (conjunto de los enteros), con la adicin
y multiplicacin, es un anillo unitario.






















27

GRUPOS DE CDIGOS
El grupo de cdigo es una seccin de cdigo con una o ms declaraciones y sentencias. Un lenguaje
de programacin que permite bloques, incluyendo bloques anidados dentro de otros bloques.
Ideas de la estructura del bloque se desarrollaron en la dcada de los aos 1950, durante el
desarrollo de los primeros autocodes y fueron formalizados en los informes de Algol 58 y Algol 60.
Algol 58 introdujo la nocin de la "sentencia compuesta", que estaba relacionada nicamente
concontrol de flujo. El posterior informe revisado que describe la sintaxis y la semntica de Algol 60
introdujo la nocin de un bloque, consistiendo en "una secuencia de sentencias encerrada
entre begin y end..." en la que "cada declaracin aparece en un bloque de esta manera y es vlida
slo para ese bloque".
La funcin de los grupos de programacin es permitir que grupos sentencias sean tratados como si
fueran una sola sentencia, y restringir el mbito lxico de las variables, los procedimientos y
funciones declaradas en un bloque para que no entre en conflicto con variables con el mismo
nombre utilizadas para diferentes propsitos en otras partes de un programa.
La nocin de bloques es introducida por diferentes sintaxis en diferentes lenguajes, pero hay dos
grandes familias: la familia del ALGOL en que los bloques estn delimitados por las palabras
clave begin y end, y la familia de C en la que los bloques estn delimitados por llaves { y }. Algunas
otras tcnicas utilizadas son el uso de indentacin, y s-expression con una palabra clave sintctica
como lambda o let (como en la familia del Lisp).
Algunos lenguajes que soportan bloques con declaraciones de variables no soportan completamente
todas las declaraciones; por ejemplo muchos lenguajes derivados de C no permitan la definicin de
una funcin dentro de un bloque. Y a diferencia de su antecesor Algol, Pascal no soporta el uso de
bloques con sus propias declaraciones dentro del begin y end de un bloque existente, slo
sentencias compuestas permitiendo una secuencia de declaraciones agrupadas en if, while, repeat y
otras sentencias de control.
Cuando actualiza el ndice de grupos de cdigo, el sistema bloquea la clase de catlogo necesaria
para otros usuarios. Sin embargo, si utiliza la funcin de actualizacin individual, slo se bloquea el
grupo de cdigos necesario.
Puede crear textos para grupos de cdigos y cdigos en diferentes lenguajes.
Integracin
Puede copiar grupos de cdigos o cdigos de grupo individuales en conjuntos de seleccin
28

Los grupos de cdigos pueden utilizarse en planes de inspeccin o en caractersticas de inspeccin
maestra, segn el status de tratamiento:
Status Efectos
En creacin No puede utilizar todava el grupo de cdigos en
la caracterstica de inspeccin maestra o el plan
de inspeccin.
Liberado Puede utilizar el grupo de cdigos en otras
aplicaciones.
Ya no se puede utilizar No se utilizar el grupo de cdigos en el futuro.
Sin embargo, puede estar todava en uso.
Peticin de borrado En el proceso de borrado, el sistema verifica si se
est utilizando el grupo de cdigos. Si no existe
ningn enlace con el grupo de cdigos, se borra.
Si existe un enlace, no puede borrar el grupo de
cdigos.
La primera vez que se utilizan el cdigo de
entradas de catlogo y el grupo de cdigos, se
fija un indicador de utilizacin. Con ello se evita
que estos objetos se borren por accidente.
Uso
Sea un arreglo con datos, el recorrido iterativo del mismo se produce con la instruccin AEVAL(), la
cual posee la sintaxis:
AEval( <aArreglo>, <bGrupoDeCodigo>, [<nInicio>], [<nCantidad>], [<lAsignar>] ) --> aArreglo
Parmetros
<aArreglo> es un arreglo cuyos elementos se pasan al bloque de cdigo.
<bgrupoDeCodigo> es un grupo de cdigo que se ejecuta para cada elemento del arreglo.
29

<nInicio> es un valor numrico especificando el primer elemento del arreglo <aArreglo> para elcual
el bloque de cdigo se ejecutar. El valor predeterminado es 1.
<nCantidad> es un valor numrico indicando el nmero de elementos pasados al bloque de cdigo
comenzando desde la posicin <nInicio>. Si falta <nCantidad>, se pasarn al bloque de cdigo
secuencialmente todos los elementos desde <nInicio> hasta el ltimo del <aArreglo>.
La expresin lgica <lAsignar> determina cuando se permitir una asignacin dentro del bloque de
cdigo. Si <lAsignar> es Verdadero (.T.), el elemento del arreglo se pasa por referencia. Si se realiza
una asignacin en el bloque de cdigo, sta se reflejar en el correspondiente elemento del arreglo.
EJEMPLO
Sea una porcin de cdigo ejecutable agrupado en una rutina llamada "Procedimiento()".
PROCEDURE Procedimiento()
LOCAL nEleccion
LOCAL aAcciones = {;
{ || Altas() },;
{ || Bajas() },;
{ || Modificaciones() },;
{ || nEleccion:= 0 };
}
nEleccion:= -1
WHILE nEleccion <> 0
@ 10, 10 PROMPT "Altas"
@ 11, 10 PROMPT "Bajas"
@ 12, 10 PROMPT "Modificaciones"
@ 13, 10 PROMPT "Salir"
MENU TO nEleccion
IF nEleccion > 0
EVAL( aAcciones[nEleccion] )
ENDIF
ENDDO
RETURN
En el ejemplo dado, el ciclo WHILE...ENDDO ser cerrado mientras el usuario no realice eleccin
alguna.
Si el usuario presiona la tecla ESC, nEleccin ser asignado con un 0 y el ciclo se romper.
Cuando el usuario elija alguno de los elementos del men entonces nEleccion ser distinto de cero
pero tendr un valor entre 1 y 4.
30

En ese caso ser evaluada positivamente la comparacin nEleccion > 0 y ser evaluado el bloque de
cdigo almacenado en el arreglo aAcciones.
Prstese especial atencin al ltimo elemento de aAcciones, el cual implica una asignacin en
tiempo de ejecucin.





















31

COSETS LDERES
En matemticas, si G es un grupo, H es un subgrupo de G, y G es un elemento de G, entonces
gH = { gh : h un el ement o de H } es un coset izquierdo de H en G , y gH = (gh: h un elemento
de H) es una clase lateral izquierda de H en G, y
Hg = { hg : h un elemento de H } es el coset izquierdo de H en G . Hg = (hg: h un elemento de H) es una
clase lateral derecha de H en G.
Solamente cuando H es normal voluntad los cosets derechos e izquierdos de H coincida, que es
una definicin de la normalidad de un subgrupo.
A coset es un coset izquierdo o derecho de algunos subgrupo adentro G. Desde entonces
Hectogramo = g(g
-1
Hectogramo), los cosets derechos Hectogramo (de H) y los cosets
izquierdos g(g
-1
Hectogramo) (de conjugacin subgrupo g
-1
Hectogramo) son iguales. Por lo tanto
no es significativo hablar de un coset como ido o correcto a menos que un primer especifique a
subgrupo subyacente.
Para grupos abelian o los grupos escritos aditivo, la notacin utilizaron cambios a g+H y
H+g respectivamente
2.8.1 EJEMPLO
Construimos un cdigo de Hamming, codificamos la informacin usando C, introducimos un error, lo
decodificamos calculando el sndrome del vector recibido aplicando un mapa de Cosets lideres para
recuperar el vector original.
Primero declaramos c para ser un cdigo de Hamming de tercer orden en campo finito y 2
elementos.
> C := HammingCode(GF(2), 3);
> print C;
[7, 4, 3] Hamming code (r = 3) over GF(2)
Generator matrix:
[1 0 0 0 0 1 1]
[0 1 0 0 1 0 1]
[0 0 1 0 1 1 0]
[0 0 0 1 1 1 1]
Luego, declaramos L con un set de cosets lderes de C en su espacio V y f siendo el mapa, que declara
el sndrome de un vector en V al coset lder en L.
32

> L, f := CosetLeaders(C);
> print L;
{@
(0 0 0 0 0 0 0),
(1 0 0 0 0 0 0),
(0 1 0 0 0 0 0),
(0 0 1 0 0 0 0),
(0 0 0 1 0 0 0),
(0 0 0 0 1 0 0),
(0 0 0 0 0 1 0),
(0 0 0 0 0 0 1)
@}
Como C tiene dimensin 4, el grado de espacio de informacin I de C es 4. Declaramos I como un
vector informacin de longitud 4 en I, y codificamos I en C declarando w como un producto de i y C
> I := InformationSpace(C);
> print I;
Full Vector space of degree 4 over GF(2)
> i := I ! [1, 0, 1, 1];
> w := i * GeneratorMatrix(C);
> print w;
(1 0 1 1 0 1 0)
Ahora declaramos r como w pero con un error en la coordenada 7
> r := w;
> r[7] := 1;
> print r;
(1 0 1 1 0 1 1)
Finalmente dejamos a s como el sndrome de r con respecto a C, aplicamos f a s para obtener el
coset lder I, y sustraemos I de r para obtener el vector v. encontrando las coordenadas de v con
respecto a C te da la informacin original del vector.
> s := Syndrome(r, C);
> print s;
(1 1 1)
> l := f(s);
> print l;
(0 0 0 0 0 0 1)
> v := r - l;
> print v;
(1 0 1 1 0 1 0)
> res := I ! Coordinates(C, v);
> print res;
(1 0 1 1)
33

MATRICES DE HAMMING
La matriz de control de H
q
(r) es una matriz que tiene r filas y n = columnas, y el cdigo H
q
(r) es un
[n,k,3]-cdigo donde k = n r. Esta matriz se llama matriz de Hamming y no es nica.
Consideremos los elementos de H
q
(r) como nmeros en el sistema de numeracin de base q.
Elegimos los que son distintos de cero y que tienen dgitos ms significativo igual a 1. Entonces las
columnas de H
q
(r) son estos nmeros escritos en orden creciente. H
2
(3)
r = 3. Las columnas son nmeros de 3 dgitos binarios.
d = 3
El tomar el dgito ms significativo igual a 1 implica que cogemos un nico punto en cada recta.
Si pusisemos la columna sera mltiplo de y as d = 2 (cogeramos 2 vectores en la misma recta).
r = 3 = n k k = 28 m = q
k
= q
n-r

Estos fueron los primeros cdigos correctores de errores. En el caso binario la matriz de control
est formada por todos los nmeros binarios menos el cero.
Proposicin: Los cdigos de Hamming son cdigosperfectos.
Demostracin:
m = q
n-r
q
n-r
(1 + n (q 1)) = q
n

Vamos a ver la descodificacin de los cdigos de Hamming.
Proposicin: Si una palabra x H
2
(r) sufre un nico error resultando la palabra y entonces el sndrome
de y, , es la representacin binaria de la posicin del error de la palabra recibida.
Demostracin:
Supongamos que el error se ha cometido en la posicin i, es decir, y = x + e
i
, con la palabra de error.
Entonces:
h(y) = h(x+e
i
) = h(x) + h(e
i
) = h(e
i
) = e
i
= columna i-sima de H
2
(r)
La columna i-sima es la representacin binaria del nmero i, i es la posicin del error. Conocido
u se corrige el error calculando x = y - e
i
, cambiando el i-simo bit de y.
34

[7,4,3]-cdigo
Supongamos que se recibe la palabra y = 1101110
100 = 4 El error se ha cometido en la posicin 4.
La palabra de error es e
4
= (0001000). La palabra emitida es x = y e
4
= 1100110
A este mtodo de descodificacin se le llama descodificacin de Hamming.
Proposicin: Supongamos que una palabra x H
q
(r) sufre un nico error, resultando la palabra
recibida y. Sea h(y) K
r
el sndrome de la palabra recibida y a K el smbolo ms significativo de h(y).
Si la columna de H
q
(r) que contiene a a
-1
h(y) es la columna i-sima entonces la palabra de error es y
se verifica que x = y - ae
i
.
EJEMPLO
Supongamos que el error se ha cometido en la posicin i-sima de modo que y = x + ae
i
, con .
Entonces:
h(y) = h(ae
i
) = = ai-sima columna de H
q
(r). Ejemplo:
H
3
(3) y supongamos que se recibe la palabra y = 1101112211201. Descodificar esta palabra.
h(y) no es una columna de H
3
(3). (201) = 2 (102)
(102) es la 7 columna de H
3
(3), luego la palabra de error es ae
7
= 2(0000001000000). La palabra
emitida es x = y 2e
7
= 1101110211201








35

CAMPOS FINITOS
En lgebra abstracta, un cuerpo finito, campo finito o campo de Galois (llamado as por variste
Galois) es un cuerpo que contiene un nmero finito de elementos. Los cuerpos finitos son
importantes en teora de nmeros, geometra algebraica, teora de Galois, y criptografa. Los
cuerpos finitos son totalmente conocidos, y sern descritos ms abajo.
Dado que todo cuerpo de caracterstica 0 contiene a los racionales y es por lo tanto infinito, todos
los campos finitos tienen caracterstica prima, y por lo tanto, su tamao (o cardinalidad) es de la
forma p
n
, para p primo y n > 0 entero (pues el campo es un espacio vectorial sobre el subcuerpo
de cardinalidad p generado por el elemento 1). No es en general cierto, sin embargo, que todo
cuerpo de caracterstica prima sea finito.
Para un primo p, los enteros mdulo p forman un cuerpo de p elementos, denotado por Z/pZ
(pues su grupo aditivo es isomorfo al grupo cclico de p elementos), F
p
, o GF(p); en algunos casos se
usa Z
p
, aunque esta notacin es evitada por teoristas de los nmeros, pues puede crear confusin
con el anillo de los nmeros p-dicos. Todo cuerpo con p elementos es isomorfo a ste.
Si q = p
n
es una potencia de un primo, existe (salvo isomorfismo) exactamente un campo con q
elementos, denotado por F
q
o GF(q). Se puede construir como sigue: encuntrese un polinomio
irreducible f(X) de grado n con coeficientes en F
p
, y defnase F
q
= F
p
[X] / <f(T)>, donde F
p
[X] denota
el anillo de todos los polinomios con coeficientes en F
p
, <f(X)> denota el ideal generado por f(X), y
la barra diagonal indica el anillo cociente (definido de forma similar al grupo cociente). El polinomio
f(X) se puede hallar factorizando X
q
-X sobre F
p
. El campo F
q
contiene a (una copia de) F
p
como
subcampo.
El campo nito GF(p)
Sea p un nmero primo. El campo GF(p), denominado un campo primo, est compuesto por el
conjunto de enteros ,0, 1, . . . , p1- con las siguientes operaciones aritmticas:
Adicin: Si a, b GF(p), entonces a + b = r, donde r es el residuo de la division de a+b entre p y 0 r
p1. Esta operacin es conocida como la suma modulo p.
Multiplicacin: Si a, b GF(p), entonces a b = s, donde s es el residuo de la division de a b entre p.
A esta operacin se le conoce como multiplicacin modulo p.
Inversin: Si a un elemento de GF(p) diferente de cero, el inverso de a modulo p, denotado como a
1, es el entero nico c GF(p) tal que
a c = 1.
36

EJEMPLO
El campo nito GF(23). Los elementos de GF(23) son
{0, 1, 2, . . . , 22}
Ejemplos de operaciones aritmticas sobre GF(23) son:
12 + 20 = 9.
8 9 = 3.
81 = 3.
EJEMPLO
En el anillo Z2[x] existe un unico polinomio irreducible de grado dos: x
2 + x + 1. Tenemos que
F4 = Z2[x]/(x2 + x + 1).
Podemos listar todos los elementos de F4:
F4 = {aX + b|a,b Z2} = {0, 1,X,X + 1}, donde X es la imagen de x mod (x2+x+1). En algunos casos es
conveniente describir los elementos utilizando un generador del grupo cclico: sea tal que
2 + + 1 = 0. Vemos que
2 = + 1 por lo que
F4 = ,0, 1,,2-







37

ANILLOS DE POLINOMIOS
Sea A un anillo y S cualquier conjunto. El conjunto A[S] de todos los objetos
(1) ,
en donde , y cada n-tupla de nmeros
naturales es diferente para diferente valor de i, se dice anillo de polinomios con indeterminadas en
S sobre A.
Hechos de inters sobre anillos de polinomios tienen que ver con las propiedades del mismo a
partir del anillo en el que tienen sus coeficientes. Por ejemplo, cuando A es un dominio ntegro,
A[S] tambin lo es, y las unidades de A[S] son las mismas que las de A. Por el contrario A[S] nunca
ser un cuerpo, no importando que A lo sea o no, pues aunque las unidades de A[S] sean las
mismas que las de A, A es tan slo un subanillo de A[S]. Sin embargo, el anillo A[S] es un dominio
integro si A lo es, luego, dado el caso, se puede construir el cuerpo de cocientes de A[S] (i.e. el
cuerpo de fracciones de polinomios), que se denota comnmente por A(S).
Los coeficientes de los polinomios de un anillo A[S] pueden tomarse no solo como los elementos de
A. En la prctica podemos hacer agrupaciones del tipo

y stas tambin deben hacerse en un anillo de polinomios A[S]. Para ello se separan los elementos
de S en dos conjuntos disjuntos, digamos R y T, luego el anillo de polinomios A[R][T] tiene
coeficientes en el anillo de polinomios A[R] e indeterminadas en .
Si A es un anillo y , claramente A[R] es un subanillo de A[S].
Sea A un anillo unitario. Todo polinomio no nulo de A[x] cuyo coeficiente director sea una unidad
puede dividir eucldeamente a cualquier otro polinomio de A[x] y el grado del resto es
estrictamente menor que el grado de del divisor. Es decir, si D y d son polinomios de A[x] no
nulos, con el coeficiente director de d una unidad de A, entonces existen polinomios c y r de A[x]
tales que
Con
As, para que la divisin de polinomios sea siempre posible en un anillo de polinomios A[x], A
debe de ser un cuerpo (i.e. todo elemento de A debe ser una unidad), y si as sucede A[x] ser un
dominio eucldeo. Un hecho muy importante es que un anillo de polinomios A[x] es un dominio de
38

ideales principales (DIP) si y slo si A es un cuerpo. Puesto que todos los dominios eucldeos son
DIPs, tenemos que A[S] no es un dominio eucldeo si S contiene ms de un elemento, pues
, y nunca es un cuerpo y por tanto tampoco un DIP.
Los conjuntos de polinomios con coeficientes en Z, Q, R o C, que simbolizaremos mediante
Z[x], Q[x], R[x] y C[x] respectivamente, son, con respecto a la suma y el producto habituales
de polinomios, dominios de integridad conmutativos con unidad (Ejercicio).

En general, dado un anillo A, el conjunto A[x] de polinomios a coeficientes en A
se define como:


A[x] =

n

p(x) = a
i
x
i
: a
i
A, i = 1, ..., n n
N

i=0

El grado de un polinomio p A[x] no nulo, que denotaremos gr(p), se define como el mayor
natural n tal que

a
n
= 0. Vale decir,
gr(p) = n a
n
= 0 a
n+1
= a
n+2
= ... = 0

Un polinomio de grado n se llama monico si a
n
= 1.

En A[x], la suma y el producto se definen de la siguiente manera.
n m
Sean p(x) = a
i
x
i
y q(x) = b
j
x
j
dos elementos de A[x] y, supongamos que n = gr(p)
gr(q) = m.

Entonce
s,
i=
0
j=0

la suma entre p(x) y q(x) es


m
p(x) + q(x) =

(a
i
+ b
i
)x
i
+
i=0

n


i=m
+1


a
i
x
i


el producto entre p(x) y q(x) es


n+m
p(x)q(x) =

c
i
x
i
donde c
i
=
i=0
i


j=0,jn,i
jm

a
j
b
ij
39



POLINOMIOS IRREDUCIBLES
En teora de Anillos, un polinomio no constante (y por lo tanto no nulo) con coeficientes en
un dominio ntegro (es decir, ) es irreducible si no puede factorizarse como
producto de polinomios de manera que todos ellos tengan grados menor que . Es decir,
si entonces ha de ser o (es decir, alguno de ellos ha de ser un
polinomio constante).
Esto es un caso particular de elemento irreducible en un dominio ntegro.
El dominio ntegro R puede, entre otros, ser el conjunto de los nmeros reales (que es dominio
ntegro por ser cuerpo), el conjunto de los nmeros complejos (tambin cuerpo), el
conjunto de los nmeros racionales (cuerpo tambin) o el conjunto de los nmeros
enteros (que no es cuerpo pero s dominio ntegro).
Un polinomio irreducible es polinomio primitivo si y solo si p es primo
y x es un elemento de orden

Para probar si un polinomio es irreducible se pueden aplicar varios criterios, entre los que se
encuentran el criterio de c o el criterio de reduccin.
2.8.2 Polinomios irreducibles de Z[x]
- Un polinomio es irreducible sobre , si y slo si tambin es irreducible.
- Trivialmente un polinomio de segundo grado, que no tenga a 1 o -1 como raz, slo puede ser
reducible si su trmino independiente no es un nmero
primo: , si , entonces la reducibilidad
implica que el trmino independiente tiene dos divisores no triviales y por tanto no puede ser
primo.
2.8.3 Polinomios irreducibles de Q[x]
Lema de Gauss: Si un polinomio es irreducible sobre , entonces tambin es irreducible
considerado sobre .
1

2.8.4 Polinomios irreducibles de R[x]
Los polinomios irreducibles sobre son los monomios y los polinomios de grado 2,
tales que su discriminante sea negativo, es decir:





40

EJEMPLO
Los cinco polinomios siguientes demuestran algunas caractersticas elementales de los polinomios
reducibles e irreducibles, dependiendo del dominio de integridad donde estn definidos:
,
,
,
,
.
- Sobre el anillo de nmeros enteros, los primeros dos polinomios son
reducibles, pero los tres ltimos son irreducibles (el tercero no tiene
coeficientes del nmero entero).
- Sobre el cuerpo de nmeros racionales, los primeros tres polinomios
son reducibles, pero los otros dos son irreducibles.
- Sobre el cuerpo de nmeros reales, los primeros cuatro polinomios son
reducibles, pero el quinto sigue siendo irreducible.
- Sobre el cuerpo de nmeros complejos, los cinco polinomios son
reducibles. De hecho en , cada polinomio no-constante se puede
descomponer en factores lineales

Donde es el coeficiente principal del polinomio y son los ceros de . Por lo
tanto, todos los polinomios irreducibles son de grado 1.
En el caso del cuerpo , tampoco pueden ser reducibles aquellos polinomios de grado 2 con
discriminante negativo, ya que a pesar de ser factorizado por polinomios de menor grado que
ste, y mayor o igual a 0, no tienen sus coeficientes dentro del cuerpo de los reales. ste es el
teorema fundamental del lgebra.







41

CUADRO LATINO
En un diseo de experimentos completo de tres factores, todos ellos con K niveles,
necesita K
3
observaciones, nmero elevado si K es grande. Un diseo ms eficaz que solo
utiliza K
2
observaciones para el mismo problema es el cuadrado latino. Este modelo se basa en
aprovechar la simetra del experimento factorial seleccionando un conjunto de condiciones
experimentales con la condicin de que cada nivel de un factor aparezca una vez con cada uno de
los niveles de los otros factores. Por tanto, el diseo de cuadrado latino se puede utilizar si se
verifican las siguientes condiciones:
Es un diseo de experimentos con tres factores.
Los tres factores tienen el mismo nmero de niveles: K.
No hay interacciones entre los tres factores.

El diseo en cuadrado latino est especialmente indicado para estudiar un factor-tratamiento
con K niveles y con dos factores-bloque de K bloques cada uno. Este diseo se basa en el
concepto de cuadrado latino que es el siguiente
Un cuadrado latino K K es una disposicin de K letras en una matriz K K de forma que todas
las letras aparecen una vez en cada fila y una vez en cada columna.
Por ejemplo, un cuadrado latino 3 3 es el siguiente
A B C
B C A
C A B
Tabla 5.5. Cuadrado latino 3 3.
Un cuadrado latino es un cuadrado latino estndar cuando las letras de la primera fila y de la
primera columna estn dispuestas en orden alfabtico.
Un cuadrado latino es un cuadrado latino cclico si las letras de cada fila se generan cclicamente
de la anterior segn el orden alfabtico.
El cuadrado latino 3 3 de la Tabla 5.5 es estndar y cclico.
Existe un nico cuadrado latino 3 3 estndar, sin embargo hay cuatro cuadrados
latinos 4 4 estndar que se presentan en la Tabla 5.6.
42

Cuadro 1 Cuadro 2 Cuadro 3 Cuadro 4
A B C D A B C D A B C D A B C D
B C D A B A D C B A D C B D A C
C D A B C D A B C D B A C A D B
D A B C D C B A D C A B D C B A
Tabla 5.6: Cuatro posibles cuadrados latinos 4 4 estndar.
Un diseo en cuadrado latino es un diseo de un factor tratamiento con K niveles y K
2
unidades
experimentales agrupadas en K bloques fila y K bloques columna, de forma que unidades
experimentales de un mismo bloque fila son semejantes, unidades experimentales de un mismo
bloque columna son semejantes y unidades experimentales de distintos bloques fila y distintos
bloques columna son sustancialmente diferentes.
Para cualquier nmero de tratamientos K existe siempre al menos un diseo en cuadrado latino
estndar cclico.
Obsrvese que si en un diseo en cuadrado latino se ignora el bloque columna se tiene un diseo
en bloques completamente aleatorizado (el bloque fila es el factor bloque) y, anlogamente, si se
ignora el bloque fila se tiene un diseo en bloques completamente aleatorizado (el bloque
columna es el factor bloque). Adems se trata de un diseo equirreplicado: cada tratamiento
aparece un mismo nmero K de veces en el diseo.
Modelo matemtico.
Se tiene un diseo en cuadrado latino de dos factores bloque y un factor tratamiento, el primer
factor bloque se denota por B y se coloca en filas, el segundo factor bloque se denota por B y
se coloca en columnas, el factor tratamiento se denota por T y sus niveles se colocan segn el
cuadrado latino. Por tanto, el cuadrado latino condiciona el nivel de T que se utiliza en la
casilla ij (bloque i de B y bloque j de B ) y este nivel no se elige.
La formulacin matemtica del modelo es la siguiente:
para cada i = 1,...,K, j = 1,...,K, (el ndice k lo impone el diseo en cuadrado latino) se
tiene

43


donde,
* Y
ij
es el resultado del bloque i-simo, i = 1,...,K del factor bloque B y del bloque j-simo, j =
1,...,J del factor-bloque B , y del nivel k-simo del factor T . Se denota la k entre parntesis, para
indicar que este ndice no se elige sino que viene condicionado por el par ij.
* es el efecto global que mide el nivel medio de todos los resultados,
*
i
es el efecto (positivo o negativo) sobre la media global debido al bloque i de B . Se verifica
que
i = 1
I
i
= 0,
*
j
es el efecto (positivo o negativo) sobre la media global debido al bloque j de B . Se verifica
que
j = 1
J
j
= 0,
*
k
es el efecto (positivo o negativo) sobre la media global debido al nivel k del factor F . Se
verifica que
k = 1
K
k
= 0,
*
ij
es el error experimental, son variables aleatorias i.i.d. con distribucin N .
EJEMPLO
Se quiere estudiar la posible influencia de los aditivos de combustible (factor tratamiento, T )
en la reduccin de xidos de nitrgeno en las emisiones de los automviles (variable respuesta)
controlando la influencia del conductor (factor-bloque B ) y del tipo de coche (factor-
bloque, B ).
Se consideran cuatro conductores: C1, C2, C3, C4.
Cuatro tipos de coche: Seat, Ford, Opel, Renault.
Cuatro aditivos de combustible: A1, A2, A3, A4.
Los resultados del experimento diseado segn la tcnica del cuadrado latino son los de la tabla
adjunta, tambin se presenta el cuadrado latino utilizado. Qu conclusiones se deducen del
experimento?


44




Seat Ford Opel Renault

C1 21 A1 26 A2 20 A4 25 A3

C2 23 A4 26 A3 20 A1 27 A2

C3 15 A2 13 A4 16 A3 16 A1

C4 17 A3 15 A1 20 A2 20 A4


C. Latino

1 2 4 3

4 3 1 2

2 4 3 1

3 1 2 4

Solucin.

Estimacin de los parmetros. Se obtienen los siguientes estimadores:

Estimaciones

i


i
.
i


j

..
k



23 3 19 -1 18 -2

24 4 20 0 22 2

15 -5 19 -1 21 1

18 -2 22 2 19 -1
.. = = 20

Los residuos del modelo son:

Residuos

Seat Ford Opel Renault

C1 1 A1 1 A2 -1 A4 -1 A3

C2 1 A4 1 A3 -1 A1 -1 A2

C3 -1 A2 -1 A4 1 A3 1 A1

C4 -1 A3 -1 A1 1 A2 1 A4




45

CRIPTOGRAFA
La criptologa se clasifica en criptografa y criptoanlisis, en este ltimo caso se refiere a la ciencia
que analiza y rompe los criptosistemas. La criptografa a su vez se clasifica en clsica y moderna.
La criptografa moderna es simtrica (clave privada) y asimtrica (clave pblica).
Criptografa(Es la ciencia que usa la matemtica para encriptar y desencriptar los datos, es decir
es la ciencia de la seguridad de los datos) juega un rol crucial en la vida de la poblacin actual
mundial, desde la Internet banking y comercio electrnico hasta email y los procesos de negocios
basados en la web. De acuerdo con el Oxford English Dictionary, criptografa es la manera secreta
de escribir usando letras o caracteres en un sentido no ordinario, o por mtodos de modo tal que
el mensaje sea entendible cuando se conozca la clave respectiva.
Podemos resumir afirmando que la criptografa est relacionado con la comunicacin en
presencia de un intruso, y abarca diversos problemas tales como: encriptacin, autenticacin,
distribucin de claves, etc. La siguiente figura muestra cmo se produce el proceso de
comunicacin





Observando la figura podemos notar las entidades que participan en un proceso de
comunicacin, donde Alicia escribe un mensaje m el cual a su vez es encriptado usando la funcin
encriptadora E
e
; el resultado de este proceso es el mensaje encriptado (cifrado) c. El mensaje
cifrado es remitido a traves de un canal inseguro hacia Bob, el cual a su vez aplicando la funcin
desencriptadora, D
d
, a c obtiene el mensaje original m. En este proceso de transmisin existe un
tercer participante, denominado adversario, el cual en todo momento desear apoderarse el
mensaje m.
La criptografa es pues el proceso de cifrar un mensaje con la finalidad de asegurar la integridad
del mismo. Pero para lograr tener xito en el proceso de transferencia de mensajes, es necesario
conocer los fundamentos bsicos en el cual se basan los diversos esquemas criptogrficos
existentes. Los fundamentos tericos son: Algoritmos, Complejidad computacional (clase de
problemas P y NP), Teora de nmeros, Algebra, y ltimamente Ecuaciones diferenciales
ordinarias, adems de Nmeros complejos.
46

Elementos participantes en un modelo criptogrfico
Los modelos criptogrficos son aquellos que formalizan el proceso de encriptacin y
desencriptacion, por ello es conveniente fijar la notacin estndar y el contexto en el cual estn
basados los criptosistemas.
Entidades
Alicia y Bob: Son las identidades centrales en el proceso de comunicacin, Alicia necesita remitir
un mensaje secreto a Bob y el para leerlo debe conocer la clave de desencriptacion.
Eva: Es una villana que acta como una entidad pasiva, es decir escucha todas las comunicaciones
entre Alicia y Bob. Eva lee cualquier mensaje que no est correctamente encriptado e incluso
puede hacer confundir a Alicia y a Bob; esto es convencer, por ejemplo, a Alicia que escriba un
texto que a Eva le convenga. Eva no puede alterar el mensaje.
Fred: Es un falsificador que intentar falsificar la firma de Alicia sobre los mensajes que seran
remitidos para Bob.
Mallory: Es el ms villano, pues acta como una entidad activa con deseos de hacer dao, puede
alterar un mensaje de acuerdo a su conveniencia. Tambin se le denomina el hombre que esta en
el centro.
Peggy y Victor: Son entidades que participan en el proceso de firmas digitales. Peggy (the prover)
debe convencer a Victor (the verifier) de su identidad.
Escenario bsico
Alfabeto: Es un conjunto finito de caracteres a partir del cual se construirn las palabras, de
acuerdo con las respectivas reglas de la gramtica establecida.
Por convencin el alfabeto se denota por , y el conjunto de palabras de un lenguaje se denota
por

.
Ejemplos: = ,a, b,..., z-, = ,0, 1,..., 9-, = {0, 1}
2. Espacio de mensajes: Esta formado por una cadena de caracteres ob-tenidos a partir del
alfabeto. Por notacion el espacio de mensajes se re-presenta por M. Un elemento, m, de este
espacio es llamado mensaje en texto plano.


47

EJEMPLO
Considerando el alfabeto = {a, b, ..., z }, sea M el siguiente espacio de mensajes: El curso algebra
universal para ciencia de la computacin est destinado para alumnos de Informtica de la
Universidad Nacional de Trujillo. Los profesores orientan el curso a la criptografa, por ser
fundamental para todo estudiante de ciencia de la computacin, pues el tema de la seguridad de
la informacin es muy importante. El alumno queda satisfecho con los temas estudiados, por ello
afirman Profesor jarm estamos en el salon de clases. Profesora tbn estamos en el laboratorio
esperndola.
Los mensajes en texto plano considerado son:
jarm estamos en el saln de clases
tbn estamos en el laboratorio esperndola.
Espacio de mensajes cifrados: Este espacio est formado por texto cifrado, es decir por mensajes
a los cuales se les ha aplicado algn mtodo de cifrado, donde la notacin considerada es C. Un
elemento, c, de este espacio es llamado mensaje cifrado.
Ejemplo:
Los mensajes en texto plano del ejemplo anterior al ser cifrados seran los siguientes mensajes:
86144 20709 263085 211472 210174 211472 20709 134438
246055 107536 26 191160 94013 20709
Espacio de claves: Es un conjunto finito, donde sus elementos son claves para encriptar, e, y
desencriptar, d, respectivamente. El espacio de claves se denota por K. Las claves son construidas
mediante algoritmos generadores de claves.
Formalmente las claves se pueden expresar como funciones matemticas:
- Funcin encriptadora : E
e
: M C.
- Funcin desencriptadora: D
d
: C M.
Esquema criptogrfico: Esta dado por las funciones para encriptar y desencriptar de algn
criptosistema, con la siguiente propiedad:
e K, d K tal que D
d
= E
e
1
, esto es D
d
(E
e
(m)) = m, m M.
Un criptosistema es denominado frgil, s una tercera entidad, Eva, puede recuperar el texto
plano a partir del texto cifrado. Si todas las claves posibles son probadas para conocer cul de
48

ellas est siendo usada por las entidades en su comunicacin, entonces decimos que el
criptosistema se quiebra; esto se obtiene mediante una busca exhaustiva. Por ello es preferible
que el espacio de claves sea bien grande, para que de este modo la busca sea
computacionalmente inviable.






Figura 1.6: Criptosistema frgil.
En criptografa moderna las tcnicas criptogrficas se clasifican en dos grupos, cada una de las
cuales presentan mtodos para encriptar, adems ciertas ventajas y desventajas. A continuacin
presentamos estos dos grupos.
Criptosistema simtrico
En este tipo de esquema, cada par (e,d) es computacionalmente fcil de determinar d a partir
de e, as como e a partir de d, esto es que e = d.








Figura 1.7: Criptosistema e = d.
49

La criptografa simtrica presenta tres clases:
Cifrado por caracteres: En este esquema, tambin llamado cifrado monogrfico, cada carcter es
cambiado mediante una sustitucin. Considerando que el alfabeto tiene 26 caracteres, entonces
existen 26! posibles maneras para producir una transformacin monogrfica. En el presente texto
se estudian aquellas que estn basadas en la aritmtica modular.
Cifrado por bloque: Es un esquema en el cual el mensaje en texto plano se particional en bloques
de palabras de longitud fija sobre el alfabeto , para luego encriptar cada bloque en cierto
tiempo.
Cifrado por flujo: Es un cifrado en el que se remite una palabra m = m
1
m
2
. . ., usando un flujo de
claves e
1
e
2
. . . en un texto cifrado c = c
1
c
2
. . ..
Adems el descifrado se efecta usando la clave para desencriptar d
i
, correspondiente a la clave
encriptadora e
i
. Existe un criptosistema de clave pblica basada en el cifrado por flujo, es decir el
conocido criptosistema de Blum-Goldwasser.
Criptosistema asimtrico
En este criptosistema, tambin llamado de clave pblica, se considera cualquier par (e,d) con la
propiedad siguiente: Conocida una clave e que es computacionalmente inviable y dado un c C,
entonces se desea encriptar m M tal que E
e
(m) = c. Esta propiedad significa que dado la clave
para cifrar e, es computacionalmente inviable obtener la clave de descifrado d.









Figura 1.8: Criptosistema e 6= d.
50

CRIPTOGRAFIA PGP
Aunque la criptografa asimtrica comenz su andadura mucho antes, no fue hasta 1991 cuando
Phil Zimmermann construye una herramienta que usa tecnologa en un ordenador personal y por
tanto, algo que hasta ese momento estaba en manos de gobiernos o corporaciones que pudieran
permitrselo, puede entrar en todos los hogares.
No fueron pocos los problemas a los que se enfrent Zimmermann, ya que su software no estaba
bien visto por el gobierno de los Estados Unidos que vea que la criptografa que se estaba usando
su ejrcito llegaba al ciudadano. Adems se apoyaba en un algoritmo que estaba patentado: el
RSA (en honor a sus inventores: Rivest, Shamir y Adleman).
Zimmerman funda la compaa PGP (Pretty Good Privacy) [1] para dar salida comercial a su
software. En 1998, esta compaa propone al IETF el estndar OpenPGP [2]. Al ser un estndar,
cualquiera puede realizar la implementacin del mismo y esto mismo lo que supone la llegada en
1999 de GnuPG [3] (Gnu Privacy Guard). As tenemos:
1. PGP. Se refiere a PGP Corporation y a sus productos que implementan el. En junio de 2010 esta
compaa fue adquirida por Symantec Corp.
2. OpenPGP. Estndar del IETF para comunicaciones con criptografa asimtrica.
3. GnuPG. Implementacin GNU del estndar anterior, que est presente en todas las
distribuciones GNU/Linux.
La criptografa asimtrica nos ofrece autenticidad, que consiste en:
a) Confidencialidad. Cifrando las comunicaciones.
b) No repudio. Mediante firma electrnica.
c) Integridad. El mensaje que recibimos es de quien dice ser y contiene lo que el remitente
escribi.
Algunos usos de este tipo de criptografa.
1. Cifrado y descifrado de mensajes
2. Firmado y verificacin de mensajes.
3. Acceso seguro a servicios remotos.
4. Firmado de cdigo.
Cmo funciona
51

Esta criptografa se basa en dos claves distintas (de ah el nombre de criptografa asimtrica). Una
de las claves se denomina pblica y la otra privada.
La clave pblica (como su nombre indica) puede hacerse pblica, por contra la clave privada slo
es conocida por el propietario de la misma.
Cuando una persona quiere firmar digitalmente un mensaje usa su clave privada, de esta forma
cualquier persona que posea la clave pblica del remitente podr comprobar que el mensaje ha
sido firmado correctamente.
Para cifrar un mensaje se usa la clave pblica del destinatario, as cuando ste reciba el mensaje
podr usar su clave privada para descifrarlo y por tanto slo l puede ver el contenido del
mensaje
Generacin de las claves
El primer paso es generar nuestras propias claves (pblica y privada) que se necesitan en
cualquier sistema de criptografa asimtrica. Para ello usamos la orden:
$ gpg -gen-key
Esta orden es interactiva y nos permite generar las claves basndose en la informacin que le
iremos suministrando:
1. Tipo de clave. Lo normal es seleccionar la opcin 1 (RSA)
2. Longitud de la clave. Los 2048 bits que se ofrecen por defecto nos servirn perfectamente.
3. Caducidad de la clave. Es importante darle caducidad a nuestra clave. Una validez de un ao
ser suficiente. Por lo tanto teclearemos 1 y pulsamos la tecla Intro.
4. Nombre y Apellidos. Conviene no usar tildes ni ees si nuestro nombre las contiene, ya que
vamos a publicar esta clave en un servidor y podra haber problemas a la hora de leer nuestro
nombre completo.
5. Direccin de correo electrnico. La direccin de correo electrnico asociada a nuestra clave.
6. Comentario. Si lo deseamos podemos aadir informacin extra, por ejemplo a qu nos
dedicamos o para qu usamos la clave.
7. Contrasea. Para poder usar nuestra clave, sta debe ser desbloquedada, por lo que se pide
una contrasea que slo debemos conocer nosotros y que tendremos que teclear cuando
queramos usar la clave. Conviene elegir una buena contrasea para que nuestra clave privada
est bien protegida.
52

Una vez tecleada (y confirmada) nuestra contrasea, el sistema comenzar a generar las claves.
Tal
y como muestra la orden, conviene que mientras se estn generando las claves, movamos el
ratn, usemos el teclado y el disco para generar eventos aleatorios que el sistema pueda utilizar
para generar las claves y por tanto tardar menos en generarlas. Cuando termine la generacin,
nuestras claves estarn en el directorio .gnupg de nuestro directorio personal.
Conviene proteger adecuadamente este directorio para que nicamente nosotros podamos
acceder a l, as como realizar una copia de seguridad del mismo por si ocurriera un error grave
en nuestro sistema. Es importante recordar que si perdemos la clave privada no podremos firmar
ni descifrar mensajes y deberemos crear un nuevo par de claves.
Identificador y huella digital de la clave
Cuando se genera una clave, se le asocia un identificador. Este identificador permite hacer
referencia a nuestra clave en sucesivas operaciones.
Cada clave tiene tambin una huella digital. Esta huella es un nmero de 20 bytes que se
utilizar a la hora de validar y firmar las claves.
El identificador y la huella digital estn muy relacionados ya que el identificador de la clave son los
cuatro ltimos bytes de la huella digital. Sera muy difcil que dos claves tuvieran el mismo
identificador y estuviramos trabajando con ambas.
El identificador es la secuencia de ocho dgitos hexadecimales que aparece en la lnea que
comienza con la palabra pub, por ejemplo:
/home/user/.gnupg/pubring.gpg
pub 2048R/E99DCB45 2010-08-30 [caduca: 2011-08-30]uid Juan Perez
<jperez@nodomain.org>sub 2048R/8CB35894 2010-08-30 [caduca: 2011-08-30]
El identificador de esta clave es: E99DCB45.
Para averiguar su huella digital, tenemos:
$ gpg fingerprint
Esta orden nos da ms informacin que la anterior y con ella se puede comprobar la relacin
entre identificador y huella digital mencionada arriba.
Generacin del certificado de revocacin
53

Es importante disponer de este certificado que usaremos cuando nuestra clave sea
comprometida, la hayamos perdido o no la queramos usar ms. Para ello ejecutaremos la
siguiente orden:
$ gpg -gen-revoke identificador_de_la_clave > miclave-revoke.asc
Se nos preguntar la razn por la cual generamos el certificado, podemos elegir la 0 y escribir algo
como Certificado generado para mi seguridad.
Necesitaremos teclear la contrasea de nuestra clave (recordar que cualquier operacin con
nuestra clave requiere esta contrasea).
El certificado ser almacenado en el fichero miclave-revoke.asc. Es muy recomendable conservar
este fichero en un lugar alejado de las claves (directorio .gnupg). Normalmente se graba en un CD
y se guarda en lugar seguro.
Identificadores de usuario
Un identificador de usuario consiste en un nombre de usuario, una direccin de correo y un
comentario. En el momento de generar nuestras claves, suministramos esta informacin, por lo
que nuestras claves en este momento ya tienen al menos un identificador de usuario.
Es ms, podemos usar este identificador para hacer referencia a nuestras claves en las
operaciones que realicemos. La orden para la generacin del certificado de seguridad que hemos
usado anteriormente podra ser tambin:
$ gpg -gen-revoke email_de_la_clave > miclave-revoke.asc
Ya que tenemos un identificador de usuario asociado a nuestra clave, podemos acceder a ella con
nuestra direccin de correo electrnico, e incluso nuestro nombre, lo que nos resulte ms
cmodo.
Lo normal hoy en da es tener ms de una direccin de correo electrnico personal, y es probable
que queramos usar nuestra clave para enviar mensajes firmados/cifrados desde otras direcciones
de correo diferentes a la que hemos usado para generar nuestra clave.
Exportar nuestra clave
Exportar la clave privada no es buena idea salvo que nos la vayamos a llevar a otro sitio o
sepamos muy bien lo que estamos haciendo. En cambio, exportar la clave pblica es una forma
para hacer llegar esta clave a las personas con las que nos vayamos a comunicar usando
criptografa asimtrica.
54

Para exportar nuestra clave pblica a un fichero:
$ gpg -a --export identificador_de_la_clave > clave-publica.asc
Publicar nuestra clave pblica
Otra forma para distribuir nuestra clave que se usa con bastante frecuencia es la publicacin en
un servidor de claves, de esta forma nicamente tendremos que facilitar el identificador de
nuestra clave y el servidor en la que la hemos publicado y de esta forma cualquier persona que
quiera usar
PGP puede acceder a nuestra clave (pblica).
Hay muchos servidores de claves repartidos por Internet. Algunos de ellos son:
pgp.rediris.es
pgp.mit.edu
subkeys.pgp.net
pgp.webtru.st
Para publicar nuestra clave ejecutaremos:
$ gpg keyserver servidor-de-claves send-key identificador_de_la_clave
Firmado de claves
La clave pblica de otra persona ya est en nuestro anillo de claves, pero es esta persona quien
dice ser?. Si una Autoridad Certificadora (CA) de confianza, u otra persona en la que confiramos
hubiera firmado esa clave podramos estar seguros de que la persona se ha tenido que identificar
para validar sus datos.
Existen Autoridades Certificadoras conocidas y reconocidas (como Thawte, Verisign, etc), que son
comerciales y seguramente deberemos pagar para que firmen nuestra clave. Existen por el
contrario otras Autoridades Certificadoras que se basan en Anillos de Confianza en las que los
usuarios registrados son los avales de que las claves pertenecen a quin dicen pertenecer, por
ejemplo Cacert
Para garantizar que el propietario de la clave es quin dice ser, sin tener que acudir a una CA
comercial, podemos:
1. Recurrir a Autoridades Certificadoras sin nimo de lucro como CAcert.
2. Reunirnos con el propietario de la clave y pedirle que se identifique.
55

3. Acudir a una fiesta de firmado de claves.
4. Usar crculos de confianza (Web of Trust).
Una vez comprobada la identidad de la persona, podemos proceder a firmar su clave:
$ gpg sign-key identificador_de_la_clave_a_firmar
Debemos estar seguros de la identidad de las personas antes de firmar sus claves.

Vous aimerez peut-être aussi