Вы находитесь на странице: 1из 69

Cdigos y Criptografa

Tema 1. Teora de Cdigos


1
TEMA 1. TEORA DE CDIGOS.



Introduccin


Definicin: Consideremos un conjunto finito A={a
1
, a
2
, ... a
q
}, al que denominaremos
alfabeto, a sus elementos, a
1
, a
2
, ... a
q
, les llamaremos letras o smbolos. Las
sucesiones finitas de elementos de A se llaman palabras.

A a
Palabra a a a
j
p
i
i i i
e
...
2 1


La palabra a
i1
a
i2
...a
in
se dice que tiene longitud n o bien que es una n-palabra.
Una palabra de longitud n se puede considerar como un elemento del producto
cartesiano de A por si mismo n veces, es decir, de:


El producto cartesiano est formado por todas las n-tuplas de A:

} / ) ...... {(
1
A a a a A
i n
n
e =

Esto es igual que una palabra, slo cambia la notacin.
El conjunto de todas las palabras sobre el alfabeto A se denotar como A* (con
independencia de la longitud de las palabras).

.......} 2 , 1 {
.....} 2 , 1 , 0 {
*
=
=
=
+
e
+
Z
N
A A
Z n
n



Definicin: Un cdigo sobre el alfabeto A es un subconjunto C de A*, * A C _
(conjunto formado por palabras del alfabeto).
A los elementos del cdigo C se les llama palabras de cdigo.
El nmero de elementos del cdigo C, que normalmente ser finito, se denota por |C| y
se denomina tamao del cdigo.
Si C es un cdigo sobre A y A tiene q elementos (|A|=q) entonces se dice que C es un
cdigo q-ario. El ejemplo ms normal de alfabeto usado en teora de cdigos es
A = Z
2
= {0,1}y tendremos as cdigos binarios.
Ejemplo de cdigo binario:

C = {0100,0010,0111}


n
n
xA AxA A .... =
Cdigos y Criptografa

Tema 1. Teora de Cdigos
2
Definicin: Si C es un cdigo cuyas palabras tienen todas la misma longitud n,
decimos que C es un cdigo de longitud fija o un cdigo de bloques y a n se le llama
longitud del cdigo C.

El cdigo C anterior es un cdigo de bloques de longitud 4.

C = {011, 1011, 10} No es un cdigo de bloques (no podemos hablar de la longitud
del cdigo)

Si C es un cdigo de longitud n y tamao m se dice que C es un (n,m)-cdigo.

C = {0100,0010,0111} (4,3) cdigo

Dado un alfabeto S al que denominaremos alfabeto fuente y dado un cdigo C sobre el
alfabeto A, se llama funcin de codificacin a una aplicacin biyectiva f:

) ( )... ( ) ( ...
) (
:
2 1 2 1 n n
x f x f x f x x x
x f S x
C S f

e



S es el alfabeto en el cual est la informacin que queremos codificar. Una aplicacin
biyectiva entre 2 conjuntos es una aplicacin inyectiva (elementos diferentes tienen
imgenes diferentes) y sobreyectiva (los elementos del conjunto C son imgenes de
algn elemento de S, en este caso de 1 ya que la aplicacin es inyectiva). A veces f no
ser una aplicacin biyectiva; si f no fuese inyectiva habra varios smbolos del
alfabeto fuente que se codificaran de la misma forma, lo que hara la decodificacin
muy difcil. Cuando f es biyectiva hablamos de cdigos descifrables.
En muchas ocasiones se le llama cdigo a la funcin de codificacin; pero nosotros le
llamamos cdigo al conjunto C (imagen de f).

Ejemplo:

000111 0100001001
0111 ) (
0100 ) (
0010 ) (
} 0111 , 0010 , 0100 { } , , {
} , , {

=
=
=
= =
=
babc
c f c
b f b
a f a
C c b a S
c b a S
f










Cdigos y Criptografa

Tema 1. Teora de Cdigos
3
Ejemplos de cdigos:

- Polivio (ao 208 a.C.) o cdigo de fuego griego.

} 54 .... 25 , 24 , 23 , 22 , 21 , 15 , 14 , 13 , 12 , 11 { :
} 5 , 4 , 3 , 2 , 1 { :
} ,... , {
=
=
=
C
A
S Alfabeto e | o


55 no se incluye ya que el alfabeto A tiene 24 letras. Un alfabeto A de longitud q tiene
q
n
palabras de longitud n (q
n
= |A
n
| )

54 ) (
.
.
12 ) (
11 ) (
:
=
=
=

e e
| |
o o
f
f
f
C S f Sea


Este es un (2,24) cdigo. Este cdigo persigue claridad, facilidad de transmisin de
mensajes a distancia. Este cdigo no permite detectar y/o corregir errores. Se piensa
que este cdigo se usaba para ocultar la informacin. En criptografa no se habla de
cdigo sino de cifras o criptosistemas. Este cdigo se denomina cifra de Polivio.

Damero de Polivio:

1 2 3 4 5
1
o |

2
3
4
5
e



f(o) = 11 f(|)=12 .......


- Cdigo Morse. Se usa para transmisiones telegrficas. Se usa para codificar un
mensaje fuente en lenguaje natural.

S = {a, b, c ......z}
A = {., _, }

Se usan 3 smbolos: punto, raya y espacio.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
4
.. _ _ ) (
_ .. _ ) (
_ . ) (
_ ) (
. ) (
:
=
=

)

=
=
=

z f
x f
ingls en frecuentes ms Letras
a f
t f
e f
A S f


Este cdigo no es de longitud fija. Las letras ms frecuentes se codifican con palabras
cortas, mientras que las letras menos usadas se codifican con palabras ms largas; esto
se usa para conseguir ms eficiencia, cuanto ms frecuentes sean las letras ms cortas
son las palabras del cdigo.
Los espacios se usan para separar palabras (6 espacios) o letras entre palabras (3
espacios). Este cdigo no permite corregir y/o detectar errores y no tiene fines
criptogrficos.


- Cdigo ASCII (American Standard Code for Information Interchange). Este
cdigo es usado por los ordenadores para representar los caracteres alfanumricos
y caracteres especiales. El ASCII estndar usa palabras de 7 bits:

C = {0000000, 0000001, .......1111111}
2
7
= 128 palabras

El cdigo ASCII extendido usa palabras de 8 bits:

C= {00000000, ......11111111}
2
8
= 256

Esta extensin permite codificar ms smbolos.

00100000 Espacio


Al cdigo ASCII de 7 bits se le aade un bit de paridad para que el nmero de 1 de la
palabra sea par:

1 0000001
0 0000000




Este es el cdigo ASCII estndar con control de paridad. El cdigo ASCII estndar no
detecta ni corrige errores, si cambia un bit de la palabra sta se confunde con otra
palabra del cdigo. Al aadir el bit de paridad si se cambia un bit la palabra que se
obtiene no es vlida, ya que el nmero de 1 pasa a ser impar con lo que se detecta el
error. Este cdigo slo detecta errores, no puedo saber cul fue la palabra que se envi.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
5
El ASCII con control de paridad es un (8,128) cdigo, mientras que el ASCII estndar
es un (7,128) cdigo. El cdigo ASCII extendido es un (8,256) cdigo.
El cdigo ASCII no es muy eficiente ya que es de longitud fija y usa el mismo nmero
de bits para codificar caracteres frecuentes y poco frecuentes. En este cdigo no hace
falta separar las palabras ya que cada palabra tiene un nmero fijo de bits.
La ventaja del ASCII con bit de paridad sobre el ASCII estndar es que permite
detectar errores y se puede pedir repetir la transmisin hasta que sta sea correcta; el
inconveniente es que es menos eficiente ya que para transmitir la misma informacin
usa palabras de 8 bits en lugar de palabras de 7 bits.

Para detectar y corregir errores a los cdigos se les aade redundancia con lo que se
pierde eficiencia. Los lenguajes naturales tienen una gran cantidad de redundancia, lo
que permite entender una conversacin telefnica a pesar de que haya errores en la
transmisin. Los cdigos detectores de errores funcionan de tal forma que cuando se
produzca un error, la palabra resultante no sea una palabra del cdigo y de tal forma
que la palabra real sea la ms prxima a la palabra recibida.
El lenguaje natural tiene mucha redundancia; por ejemplo, el castellano tiene 83500
palabras y con 27
4
palabras podramos codificar todas ellas, una posible codificacin:
aaaa, aaab .....zzzy, zzzz, y asignaramos un significado a cada palabra de este cdigo,
pero si se cometiese un error ya tendramos otra palabra del lenguaje y no podramos
saber cul es la palabra enviada.
Esto no ocurre en el lenguaje natural. Shannon estudi la redundancia del idioma
ingls y lleg a la conclusin de que la redundancia del ingls es del 75%. Si se
hubiese diseado el ingls para minimizar la redundancia se reduciran los textos en la
4 parte. Si en un texto en ingls, la probabilidad de eliminar una letra es de el texto
no ser reconocible; por el contrario si la probabilidad de eliminar una letra es de el
texto ser reconocible.


Cdigos Detectores de Errores: Ejemplos


Se intenta buscar una transmisin precisa entre dos puntos. Estos cdigos se usan
cuando se realiza una transmisin por un canal ruidoso. Un canal es el medio fsico
por el cual se realiza la transmisin; un canal ruidoso es un canal que est sujeto a
perturbaciones y que genera alteraciones en el mensaje (ejemplos de canales:
atmsfera, lnea telefnica....). Los cdigos detectores de errores se usan para
recuperar la informacin que se envi incorrectamente. Un ejemplo de esto se usa en
los CD, para que la informacin se mantenga a pesar de que el CD est rayado.











Cdigos y Criptografa

Tema 1. Teora de Cdigos
6

En la teora de la informacin, desde el punto de vista de la eficiencia, nos centramos
en la codificacin pero ahora nos centraremos en los errores que se producen en el
canal. La codificacin y decodificacin deben ser fciles y rpidas; la transmisin a
travs del canal debe ser rpida; debemos maximizar la cantidad de informacin
transmitida por unidad de tiempo y debemos detectar y corregir errores, esta ltima
caracterstica entra en conflicto con las anteriores caractersticas ya que hace que
aumente el tamao de lo que se transmite. El cdigo debe ser lo ms eficiente posible
y debe permitir detectar y corregir errores.

El canal acepta smbolos de un alfabeto finito A={a
1
, a
2
, ... a
q
} que llamaremos
alfabeto del canal (ejemplo: A = {0, 1}). Cmo sabemos si un canal es muy ruidoso o
poco ruidoso; esto se sabe si conocemos cul es la probabilidad de que si se emite un
smbolo se reciba otro smbolo:
P(a
j
recibido|a
i
enviado) (probabilidad de que si se ha enviado a
i
se reciba a
j
). Cuando
este conjunto de probabilidades se conoce para todos los valores de i y j conocemos
las caractersticas del canal.
El canal perfecto sera aquel en el que:

ij i j
a a P o = ) | (

pero esto no existe en la prctica. A estas probabilidades se les llama probabilidades
del canal o probabilidades de transicin.

Definicin: Un canal es un alfabeto (de canal) A={a
1
, a
2
, ... a
q
} junto con un conjunto
de probabilidades de transicin P(a
j
recibido|a
i
enviado) que satisfacen:

=
=
q
j 1
i j
1 enviado) a | recibido P(a

es decir, siempre se recibe un carcter del alfabeto. Una palabra de cdigo de longitud
n correspondiente al cdigo del alfabeto del canal da una palabra recibida de longitud
n que no tiene por qu coincidir con la enviada (ni ser una palabra de cdigo, ya que
puede ser una palabra del alfabeto pero no del cdigo).
No existe dificultad para identificar el comienzo de la 1 palabra enviada. Si usamos
un cdigo de bloques sabemos donde empieza y acaba cada palabra.
Esquema de una transmisin:
Origen Codificador Canal Decodificador Destino
Ruido
Cdigos y Criptografa

Tema 1. Teora de Cdigos
7
El ruido se distribuye aleatoriamente; la probabilidad de que un smbolo sea cambiado
por otro en la transmisin es la misma para todos los smbolos. La transmisin de un
smbolo no est influenciada por la transmisin del smbolo precedente ni de los
anteriores, es decir, el canal es un canal sin memoria. El error en la transmisin de un
smbolo no afecta a la transmisin de los siguientes smbolos.

alfabeto del Palabra A x x x
cdigo de Palabra C c c c
enviado c recibido x P enviado c recibido x P simtrico canal
n
n
n
n
i
i i
e =
e =
=
[
=
...
...
) | ( ) | (
1
1
1



Cada suceso es independiente del anterior. Todos los sucesos son independientes.

El canal que usaremos ms a menudo es el canal binario simtrico (binary simetric
channel BSC). El alfabeto del canal es A={0,1}.






1 0 s s p
1-p probabilidad del canal
p probabilidad del cruce


p probabilidad de que un 0 sea recibido como un 1
1-p probabilidad de que un 0 sea recibido como un 0

p = 0 Canal perfecto
p = 1 Siempre se comete error (Este caso se convierte en perfecto invirtiendo el
smbolo recibido).

En un canal simtrico existe la misma probabilidad de que un smbolo se reciba
incorrectamente y adems si un smbolo se recibe incorrectamente hay la misma
probabilidad de que se reciba cualquier otro smbolo.

Si s s 1 2 / 1 p Se puede convertir el canal de tal forma que 2 / 1 0 s s p
simplemente cambiando los smbolos recibidos. p = es el caso ms desfavorable. En
1-p
1-p
p
p
Cdigos y Criptografa

Tema 1. Teora de Cdigos
8
la prctica los canales tienen una alta fiabilidad. Supondremos que trabajamos con un
BSC que cumple 2 / 1 0 s s p .
Supongamos que queremos detectar errores; debemos disear un cdigo de tal forma
que si a una palabra del cdigo le cambiamos un nico smbolo la palabra resultante
no sea una palabra del cdigo para as poder saber que se ha producido un error. Si
adems queremos corregir errores, la idea es parecida, para hacer la correccin hay
que saber cul es la palabra enviada. La idea bsica es comparar la palabra recibida
con todas las palabras de cdigo y asignarle la palabra que difiera en menos smbolos.

Ejemplo:

C = {00, 01, 10, 11} =
2
2
Z
Z
2
= {0, 1}

Este cdigo no servira para detectar errores.


Si se producen errores las palabras que se obtienen son palabras del cdigo. Para
detectar errores hay que aadir redundancia. Se modifica el cdigo para conseguir que
las palabras del cdigo se parezcan menos entre s. La idea ms sencilla es repetir la
palabra:

C
1
= {000000, 010101, 101010, 111111}

Aumento la longitud de las palabras. Si ahora recibo 111010 veo que no es una palabra
vlida del cdigo y as s que se ha cometido un error. Comparo esta palabra con las
palabras del cdigo y veo en cuntos smbolos se diferencia de las palabras del cdigo.
Veo que la palabra ms prxima es la 101010 ya que slo cambia un smbolo y
podramos asignarle esta palabra. Este cdigo tiene la propiedad de que si al transmitir
una palabra se comete un nico error siempre podemos recuperar la palabra
originalmente transmitida ya que dista uno de una palabra y ms de uno del resto de
palabras. Se dice que este cdigo corrige un error. Esto se logra a costa de aumentar la
longitud del cdigo, necesitamos el triple de tiempo y espacio para transmitir la misma
informacin (disminuye la eficiencia del cdigo). Este cdigo se denomina cdigo de
repeticin. Si nos conformamos con que slo se detecte un error podramos usar este
cdigo:

C
2
= {000, 011, 101, 110}

Aadimos un bit de paridad. Si a alguna palabra le cambiamos un nico smbolo la
palabra obtenida no es una palabra del cdigo. Este cdigo no permite corregir errores;
si se recibe 100 podra haberse enviado 000, 101 o 110 habiendo cometido un error,
pero no podemos saber qu es lo que realmente se ha transmitido. Se debe requerir una
Enviado Recibido
01
11
00
Son palabras del cdigo
Cdigos y Criptografa

Tema 1. Teora de Cdigos
9
nueva transmisin de la palabra. La eficiencia ha disminuido con respecto a C pero no
tanto como con C
1
.


Clases Residuales Mdulo n:

Z = {0, 1, -1, 2, -2, .....}
Sea 2 , > e n Z n . Dados a, b Z e se dice que a es congruente con b mdulo n,
a b (mod n) n | a-b (n divide a a-b) - k e Z / a-b = kn

{(a,b) / a b (mod n)} _ Z x Z

La relacin de congruencia mdulo n es una relacin de equivalencia, pues es:

- Reflexiva, a a (mod n) Z ae
- Simtrica a b (mod n) b a (mod n) Z b a e ,
- Transitiva a b (mod n), b c (mod n) a c (mod n) Z c b a e , ,


La relacin de equivalencia permite definir las clases de equivalencia a e Z. La clase
de equivalencia de a se define como aquellos nmeros relacionados con a:

a e Z, a ={b Z e / a b (mod n)} _ Z

El conjunto de todas las clases de equivalencia forman una particin de Z ( Z es la
unin disjunta de todas las clases). Al conjunto de todas las clases de equivalencia se
le denomina conjunto cociente (sus elementos son clases).

} / { Z a a
Z n
Z
e =
e


Propiedades:

Sean a, b e Z, las siguientes condiciones son equivalentes:

i) a b (mod n)
ii) kn a b Z k + = e - /
iii) a y b tienen el mismo resto al dividir por n

Divisin entera: a,n e Z a= nq + r n r s s 0 , r = a (mod n), el resto o residuo es nico.

} / { } / { )} (mod / { n por dividir al resto mismo el tienen b y a Z b Z k kn a n b a Z b a e = e + = e =

Cuntas clases de equivalencia mod n hay? Cada elemento est en la misma clase de
equivalencia que su resto al dividir por n; el nmero de clases es el nmero de posibles
restos al dividir por n (n clases).


Cdigos y Criptografa

Tema 1. Teora de Cdigos
10
} 1 ...... 1 , 0 { =
e
n
Z n
Z




y x y x
R RxR
y x y x
R RxR
) , (
) , (


+

+


Un anillo (R,+, ) es un conjunto R junto con dos operaciones binarias + y que
cumplen estas propiedades:

- R con respecto a la suma es un grupo abeliano: + es asociativa, tiene elemento
neutro (0), todo elemento de R tiene simtrico (-x) ((R,+) es grupo) y es
conmutativa ((R,+) es un grupo abeliano).
- es asociativa y tiene elemento neutro (1).

- es distributiva con respecto a +, es decir:
o (x + y) z = x z + y z
o x (y + z) = x y + x z

R z y x e , ,

El anillo R se dice conmutativo cuando es conmutativa.

R x x x x
R y x x y y x
x x x x R x R x
R x x x x
R z y x z y x z y x
e = =
e + = +
= + = + e - e
e = + = +
e + + = + +
1 1
,
0 ) ( ) ( / ,
0 0
, , ) ( ) (


Los anillos usuales son (Z,+, ); (R,+,); (C,+,) y (Q,+, ).

Definicin: Un cuerpo es una anillo tal que todo elemento no nulo tiene inverso.

(Z,+, ) no es un cuerpo pero (R,+, ); (C,+,) y (Q,+, ) son cuerpos conmutativos.

} 1 ,.... 1 , 0 {
| ) (mod
=

n
nZ
Z
b a n n b a






Cdigos y Criptografa

Tema 1. Teora de Cdigos
11
En
nZ
Z
se definen dos operaciones:


0 12 4 3
1 7 4 3
} 5 , 4 , 3 , 2 , 1 , 0 {
6
:
:
,
= =
= = +
=
=
+ = +
e
Z
Z
b a b a
b a b a
nZ
Z
b a




(
nZ
Z
,+, ) es un anillo conmutativo. El opuesto de 2 es 4 ( 0 6 4 2 = = + )

Los alfabetos que usaremos son conjuntos de clases residuales.
Para cada ) 2 ( > e n Z n sea

Z
n
:={0,1,2.....n-1}

Si para cada entero a e Z llamamos a(mod n) al resto de dividir a por n, la aplicacin
definida as:

) (mod ) ( n a a f a
Z
nZ
Z
n
f
=



es una aplicacin biyectiva. Ambos conjuntos tienen n elementos, as para ver que f es
biyectiva basta con ver que sea inyectiva.

Sean b a n b a n b n a b f a f
nZ
Z
b a = = = e ) (mod ) (mod ) (mod ) ( ) ( ,

As la aplicacin es inyectiva, ya que si dos elementos tienen la misma imagen
entonces son el mismo elemento.
Definimos en Z
n
las siguientes operaciones
n
Z y x e , :

x + y := (x + y) (mod n)
x y := (x y) (mod n)

(Z
n
, + , ) es un anillo conmutativo. f es un isomorfismo de anillos, es una aplicacin
entre 2 anillos que conserva las operaciones:

f(a+b) = f(a) + f(b)
Cdigos y Criptografa

Tema 1. Teora de Cdigos
12
f(a b) = f(a) f(b)

Los 2 anillos son isomorfos, tienen las mismas propiedades. Estos 2 anillos se pueden
identificar.

Z
6
= {0,1,2,3,4,5,6}

5+2=1 3 5=3 5+3=2

Cundo es Z
n
un cuerpo? Un cuerpo es un anillo en el que todo elemento diferente de
0 tiene inverso para el producto.

Z
2
= {0,1} es un cuerpo. 1=1 (1 + 1 = 0).

Z
3
= {0,1,2} es un cuerpo.


+ 0 1 2
0 0 1 2
1 1 2 0
2 2 0 1

-1 = 2 El opuesto del 1 (1 + (-1) = 0; 1 + 2 = 0)

Z
4
= {0,1,2,3} no es un cuerpo ya que 2 no tiene inverso para el producto. 2 2 = 0, 2
es un divisor de 0, un anillo con divisores de 0 no puede ser un cuerpo.

) 0 ( min de divisores tiene no Entero io Do Cuerpo
:
/


Un divisor de 0 no puede tener inverso para la multiplicacin.

Z
5
= {0,1,2,3,4} es un cuerpo. 2 3 = 1, 4 4 =1.
Z
6
no es un cuerpo, Z
7
es un cuerpo...
Z
n
es un cuerpo si n es primo.

Z b a e , d|a, d|b
d|a, d|b d|d si d es el mximo comn divisor de a y b y se denota d = mcd (a,b) o
d = (a,b).

[
[ [
=
s s s s
=
= =
k
i
l e
i
k i
l
i
k i
e
i
i i
i i
p b a mcd
p b p a
1
) , min(
1 1
) , (


Esto tiene un inconveniente ya que se necesita descomponer los nmeros como
producto de nmeros primos, lo cual es infactible computacionalmente.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
13
Veremos ahora un algoritmo que nos permite hallar el mcd de 2 nmeros, el algoritmo
de Euclides, usa una sucesin de divisiones enteras.

Proposicin: Sean a,b e Z, entonces [d | a , d | b] [d | b, d | a (mod n)]

Proposicin: : Sean a,b e Z, entonces mcd (a,b) = mcd (b,a(mod b). Esto es una
consecuencia directa de la anterior propiedad.

a > b Se reduce el clculo al hallar el mcd ya que a(mod b) es menor que b.

Sean a,b e Z
+

r
-1
= a
r
0
= b
a = q
1
b + r
1

r
-1
= q
1
r
0
+ r
1
r
0
= q
2
r
1
+ r
2
r
1
= q
3
r
2
+ r
3
.
.
.
r
k-3
= q
k-1
r
k-2
+ r
k-1

r
k-2
= q
k
r
k-1
+ r
k

r
k-1
= q
k+1
r
k


r
3
< r
2
< r
1
< r
0


mcd (a,b) = mcd (b,r
1
) = mcd (r
1
,r
2
) = mcd (r
i
,r
i+1
) .

Este proceso no continua de forma indefinida, se alcanzar un resto cero; supongamos
que r
k+1
= 0. Este resto 0 se obtiene en un nmero pequeo de pasos.

mcd (a,b) = mcd (r
k
,0) = r
k
r
k+1
= 0 mcd (a,b) = r
k


Ejemplo

1 2 2
84 60 24 12
24 12 0

mcd (84,60) = 12

Z
n
= {0, 1, 2 .n-1}

Proposicin: Sean a,b e Z, entonces existen enteros u,v e Z / mcd (a,b) = ua + vb

mcd (a,b) = r
k
= r
k-2
q
k
r
k-1
= r
k-2
q
k
(r
k-3
q
k-1
r
k-2
) = .. = ua + vb


Cdigos y Criptografa

Tema 1. Teora de Cdigos
14
Proposicin: Z
n
es cuerpo n es primo

Demostracin:

" " Supongamos que n no es primo, entonces n = rs, r,s > 1. r,s eZ
n
, rs = 0 e Z
n

r y s son divisores de 0 r y s no tienen inverso para el producto.

" ": Supongamos que n es primo y sea a e Z
n
, a = 0. mcd (a,n) = 1 - u, v e Z /
1 = ua + vn 1 (mod n) = ua (mod n) + vn (mod n) 1 = ua (mod n) ua = 1e Z
n



Ejemplo:

9 e Z
23


2 1 1 4
23 9 5 4 1
5 4 1 0

1 = 5 4 = 5 (9 5) = 2 5 9 = 2 (23 2 9) 9 = 2 23 5 9
1 = -5 9 (mod 23)
En Z
23
9 (-5) = 1 e Z
23

-5 = 18
-5 = 23 1 +18

1 18
23 5



9 18 = 1 e Z
23


En Teora de Cdigos trabajaremos con Z
p
cuerpo, es decir p primo. Z
p
no son los
nicos cuerpos finitos que hay. Si q = p
r
con p primo entonces existe un (nico) cuerpo
finito que tiene q elementos (F
q
o GF(q)). F
4
es cuerpo pero Z
4
no lo es.
En la prctica usaremos Z
2
= {0, 1}

+ 0 1
0 0 1
1 1 0

0 1
0 0 0
1 0 1






Cdigos y Criptografa

Tema 1. Teora de Cdigos
15
Aplicacin:

Veremos el cdigo que se utiliza para generar la letra del NIF. Se toma el DNI que
tiene 8 dgitos (n = nmero de DNI) y se calcula el resto de dividir n por 23:

r = n (mod 23)

Esto da la letra " , , , , , , , , , , , , , , , , , , , , , , "
22 2 1 0
E K C L H V Q S Z J N B X D P F Y M G A W R T
n + letra que acupa el lugar r.

Definicin: Sea C un (n,m)-cdigo q-ario (|A| = q, siendo A el alfabeto). Se define la
tasa de informacin (o de transmisin) de C como:

m
n
R
q
log
1
=
En el caso binario tenemos:

m
n
R
2
log
1
=

Esta definicin trata de dar la relacin que hay entre los smbolos del cdigo dedicados
a la informacin y los smbolos dedicados a la redundancia (detectar y/o corregir
errores).

Ejemplo:

C = {00, 01, 10, 11}
m
m
=
2
log
2
1 4 log
2
1
2
= = R

(n,m) - cdigo
. . | | dado n un para m de mximo Valor n longitud de palabras de nmero q A
A C
n n
n
=
_


Este cdigo no corrige ni detecta errores. Todos los smbolos estn dedicados a la
transmisin de informacin y as este cdigo tiene la mxima tasa de transmisin.

log
q
m s n

Para corregir un error podemos aadir un bit de paridad.

C = {000, 011, 101, 110}

3
2
4 log
3
1
2
= = R

Cdigos y Criptografa

Tema 1. Teora de Cdigos
16
La tasa de informacin disminuye, aadimos un bit para detectar errores pero no
transmite informacin. Se puede ver esto como el cociente entre el nmero de
smbolos dedicados a la informacin y el nmero total de smbolos.
Dado R no podemos determinar si el cdigo permite detectar y/o corregir errores.

C = {000000, 010101, 101010, 111111}

3
1
4 log
6
1
2
= = R

Conociendo R sabemos la eficiencia del cdigo. Los cdigos ms eficientes tienen
R = 1.


Distancia Hamming y Descodificacin por Distancia Mnima


C _ A
n

u w

Donde u es la palabra transmitida y w es la palabra recibida. Para descodificar se usa
una regla de decisin que es una aplicacin de A
n
en C:

acin Descodific u w f w
C A
f n
=

) (


Lo que se recibe puede no ser una palabra del cdigo (se conserva la longitud de la
palabra). Esta regla de decisin me da palabras del cdigo. Si f(w) = u descodifico w
como u. Si w ya es una palabra del cdigo entonces f(w) = w.

Supongamos que tenemos una regla de decisin C A f
n
: que verifica:

P (w recibido | f(w) enviado) =
C ve
max P (w recibido | v enviado)
Esto quiere decir que f(w) tiene la propiedad de que no hay ninguna otra palabra de
cdigo que sea ms probable que haya sido enviada. Si esto se cumple se dice que f es
una regla de decisin de probabilidad mxima. En la prctica no se sigue este camino.

BSC



1-p
1-p
p
p
Cdigos y Criptografa

Tema 1. Teora de Cdigos
17
Si usamos un BSC no conocemos el valor de 1-p. No se calculan probabilidades, se ve
cul es la palabra de cdigo ms prxima a la palabra recibida; esto coincide, para un
BSC, con la descodificacin de probabilidad mxima.


Proposicin: Dado un BSC con 2 / 1 0 s s p la regla de decisin de probabilidad
mxima consiste en elegir la palabra de cdigo que difiera de la palabra recibida en el
nmero mnimo de smbolos posibles.

La probabilidad de que una palabra tenga k errores en k posiciones dadas es p
k
(1-p)
k
.
Si enviamos v y la palabra recibida w difiere de v en k lugares entonces la
probabilidad P ( w recibido | v enviado) = p
k
(1-p)
k
. Esta probabilidad aumenta al
aumentar k; debemos hacer k lo mayor posible (distancia mnima), A partir de ahora
no trataremos con probabilidades si no con la distancia mnima.

Puede ocurrir que haya varias palabras a distancia mnima (MLD). Se dice que la
descodificacin es completa si slo hay una palabra posible con distancia mnima y se
dice que la descodificacin es incompleta cuando hay ms de una posible palabra con
distancia mnima y se produce un error.

Definicin: Sea A un alfabeto y u,w e A
n
. Se define la distancia Hamming d(u,w)
como el nmero de posiciones en las que difieren v y w.

) , ( ) , ( w u d w u
R Z xA A
d n n

_


Esta aplicacin es una mtrica:

- Es definida positiva: d(u,w) >0 y d(u,w) = 0 u = w
n
A w u e ,
- Es simtrica: d(u,w) = d(w,u)
n
A w u e ,
- Desigualdad triangular: d (u,v) s d (u,w) + d (w,v)
n
A w v u e , ,

La bola con centro en un elemento u y radio 1 es u, todos los puntos son abiertos (
topologa abierta).

Definicin: Se llama distancia mnima (o distancia) de un cdigo C a:

} , , / ) , ( min{ ) ( v u C v u v u d C d = e =

Definicin: Un cdigo C es t-detector (de errores), t
+
eZ , si cuando el nmero de
errores cometidos al transmitir una palabra es mayor o igual que 1 y menor o igual que
t, entonces la palabra resultante no es una palabra del cdigo. C se dice que es
exactamente t-detector cuando es t-detector pero no es (t+1)-detector.

Proposicin: Un cdigo C es exactamente t-detector si y slo si d(C) = t+1.

Definicin: Un cdigo C es t-corrector de errores si la descodificacin permite corregir
todos los errores de tamao t o menor en una palabra de cdigo, suponiendo que
Cdigos y Criptografa

Tema 1. Teora de Cdigos
18
cuando hay varias palabras de cdigo equidistantes de la palabra recibida el proceso de
descodificacin declara un error y el proceso no se completa. Un cdigo C se dice que
es exactamente t-corrector cuando es t-corrector pero no es (t+1)-corrector.

Error de tamao t: Error en el cual el nmero de errores es t.


Proposicin: Un cdigo C es exactamente t-corrector si y slo si d(C) = 2t + 1 o 2t +
2.

Demostracin:

" ": Supongamos que d(C) = 2t + 1 o 2t + 2 y que la palabra recibida w difiere de
la palabra enviada v en a lo sumo t posiciones, es decir, d(v,w) s t. Supongamos
que u e C tal que d(u,w) s t y u = v. Entonces d(u,v) s d(u,w) + d((w,v) s t + t
s 2t, contradiccin ya que d(C) = 2t + 1 o 2t + 2, as no puede haber 2 palabras de
cdigo distintas cuya distancia es menor que la distancia mnima del cdigo. As
llego a que cualquier palabra de cdigo diferente de v dista de w ms que t.

Veamos ahora que C es t-corrector y no (t+1)-corrector suponiendo que
d(C) = 2t + 1 o 2t + 2

d(C) = 2t +1

- u,v e C / d(u,v) = 2t +1. Supongamos que se transmite w y que se cambian t+1
smbolos correspondientes a t+1 posiciones de entre las 2t+1 en que difieren u y v
por los correspondientes smbolos de la palabra u. Vemos un ejemplo:
1 111 1 10 0
11001110
=
=
v
u

t = 1
2t +1 = 3
01001111 11001110
2
= = w u
d(u,w) = 2 pero d(w,v) = 1

Entonces la palabra recibida w dista t+1 de u y dista t de v, luego el cdigo no
corrige t+1 errores.

d(C) = 2t + 2 Ocurre lo mismo

d(C) = 2t + 2 = 2(t+1) C es exactamente t-corrector.
d(C) = 2t C es exactamente (t-1)-corrector.

" " Supongamos que d(C) s 2t y por lo tanto no es t -corrector. Entonces si el
cdigo es t corrector esto no puede ocurrir y por tanto si C es t-corrector d(C)
>2t + 1. Si d(C) >2t + 3 = 2(t+1) + 1 C sera exactamente (t+1)-corrector
(Contradiccin). As d(C) = 2t + 1 o 2t + 2.



Cdigos y Criptografa

Tema 1. Teora de Cdigos
19
Definicin: Un cdigo de longitud n, tamao m y distancia d se dice que es un
(n,m,d) cdigo.


Ejemplos:

- Cdigo de repeticin binario de longitud n:
{ 0 .... 00 ,

n
1 .... 111 } (n, 2, n)-cdigo

Este cdigo corrige
(


2
1 n
errores.

- El Mariner 9 (1979) tom fotos en blanco y negro de Marte. Las imgenes eran de
600x600 y con 64 niveles de gris. Se us un cdigo binario de tamao 64. Se us
un (32, 64, 16)-cdigo (cdigo de Reed-Muller). Este era un cdigo 7-corrector.


16
3
32
64 log
2
= = R

- El Voyager (1979-1981) tom fotos en color de Jpiter y Saturno de 4096 colores.
Se us un (24, 4096, 8)-cdigo (Cdigo de Golay). Este era un cdigo 3-corrector.

2
1
24
12
24
4096 log
2
= = = R







Cdigos Perfectos


Definicin: Sea A un alfabeto, |A| = q, v e A
n
y r e R, r > 0. La esfera de radio r y
centro v es:

} ) , ( / { ) , ( r w v d A w r v S
n
q
s e =

(Bola cerrada de centro v y radio r).

El volumen de S
q
(v,r) es |S
q
(v,r)| y est dado por:

=

|
|
.
|

\
|
=
r
k
k
q
q
k
n
r n V
0
) 1 ( ) , (
Cdigos y Criptografa

Tema 1. Teora de Cdigos
20

El volumen de la esfera de radio r es independiente del centro.

V
q
(n,r) = 1 + n(q-1) +
|
|
.
|

\
|
2
n
(q-1)
2
+ ....
|
|
.
|

\
|
r
n
(q-1)
r


1 palabras a distancia 0
n(q-1) palabras que distan 1
|
|
.
|

\
|
2
n
Parejas de elementos
(q-1)
2
Posibles posiciones para el resto de smbolos

Ejemplo:

A = {0, 1}
n = 3

100
110
011
111
101
001
000 010



Esfera de radio 1 centrada en 111 = {101, 111, 110, 011}

Definicin: Sea C _ A
n
. El radio de empaquetamiento de C es el mayor entero r tal
que todas las esferas de radio r (S
q
(v,r), v e C) son disjuntas.

Esto siempre existe ya que todas las esferas de radio 0 son disjuntas.

Definicin: El radio de recubrimiento es el menor entero s tal que la unin de todas las
esferas de radio s es A
n
.

C v
n
q
A s v S
e
= ) , (

r = pr(C)
Cdigos y Criptografa

Tema 1. Teora de Cdigos
21
s = cr(C)

Proposicin: Un cdigo C es t-corrector si y slo si las esferas de radio t S
q
(v,t),
v e C, son disjuntos. C es exactamente t-corrector si y slo si pr(C) = t. El radio de
empaquetamiento de un (n,m,d)-cdigo es:

(


=
2
1
) (
d
C pr

Ejemplo:

d(C) = 4
4
1




Las palabras intermedias no son palabras del cdigo. La distancia mnima entre dos
palabras es 4.
Las esferas de radio 1 son disjuntas Este cdigo corrige 1 error
Las esferas de radio 2 no son disjuntas, tienen un punto comn

d(C) = 3



Este cdigo corrige 1 error.

Definicin: Un cdigo C_ A
n
se dice perfecto cuando cr(C) = pr(C), es decir, cuando
existe un entero r tal que S
q
(v,r), ve C, son disjuntas y recubren A
n
. En este caso las
esferas de radio r forman una particin de A
n
.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
22
Ejemplo:

H
2
(3) (Hamming) Es un (7,16,3)-cdigo binario
Este es un cdigo 1-corrector

d = 3 ; t = 1 = pr(H
2
(3))
m = | H
2
(3)| = 16

Veamos si este cdigo es perfecto.

|A
n
| = | |
7
2
Z = 2
7
= 128

Hay que ver que las esferas de radio 1 recubren
7
2
Z . Hay que ver que la unin de todas
las esferas tiene 128 elementos.

V
2
(7,1) = |S
2
(v,1)| = 1 +7 = 8

Hay 16 esferas Tienen 8 16 palabras =128

El cdigo es perfecto.

Proposicin (Condicin de empaquetamiento de esferas): Sea C un (n,m,d)-cdigo q-
ario. C es perfecto si y slo si d = 2t + 1 es impar y adems n V
q
(n,t) = q
n
, es decir:

=

|
|
.
|

\
|
=
t
k
k
n
q
k
n
q
m
0
) 1 (






Demostracin:

" " Si la distancia mnima fuese par, d= 2t + 2 habra palabras que no estaran
en una esfera de radio t=1, para d = 4 (Ver 1 imagen de la pgina anterior) . El
radio t no sera el radio de recubrimiento; t + 1 puede que sea el radio de
recubrimiento pero ya no es el radio de empaquetamiento.
C perfecto, d = 2t + 1, pr(C) = cr(C) = t. {S
q
(v,t) / v e C} es una particin de A
n
.
q
n
= |A
n
| = m V
q
(n,t) (m nmero de esferas)

" ": C es un (n,m,2t+1)-cdigo que cumple m V
q
(n,t) = q
n
. El nmero de
esferas por el volumen de las esferas es q
n
La unin de todas las esferas de radio
t contiene a A
n
. Las esferas de radio t son disjuntas El cdigo es perfecto.


(n,m,d) = (90,2
78
,5) No corresponde a ningn cdigo perfecto. Hay algunos
parmetros que corresponden a ms de un cdigo distinto.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
23

(n,m,d)-cdigo q-ario:

n
m
C R
q
log
) ( =

La eficiencia y la capacidad de corregir errores son incompatibles, para corregir
errores las palabras deben ser largas, con lo que se reduce la eficiencia. Se buscan
cdigos ptimos que combinen estas dos propiedades.




Definicin: La tasa de correccin de errores de un (n,m,d)-cdigo C es:

n
d
C
(


=
2
1
: ) ( o

Es el nmero de errores que se corrigen en relacin a la longitud de las palabras.

Ejemplo:

C ={ 0 .... 00 ,

n
1 .... 111 }
R(C) =
n n
1 2 log
2
=
0 ) ( =

C R
Lim
n

n = 2t +1

2
1
) (
1 2
) (
=
+
=

C
t
t
C
Lim
n
o
o


Cuanto mayor sea la longitud del cdigo ms aumenta la tasa de correccin de errores
(hasta el lmite de 0.5). Este cdigo es til d.p.v de la correccin de errores pero no
d.p.v de la eficiencia.

m = 1:

R(C) = 0 Este cdigo tiene la mnima tasa de transmisin ya que un cdigo de una
sola palabra no transmite informacin.

En este caso no podemos hablar de una distancia mnima, se suele tomar ) (C o = 1 ya
que no puede haber errores debido a que slo hay una palabra.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
24

(n,q
n
,1)-cdigo, C = A
n
(|A| = q)

1
log
) ( = =
n
q
C R
n
q


R es mximo (todos los smbolos transmiten informacin).

0 ) ( = C o

No se corrigen errores ya que todas las palabras de A
n
son palabras del cdigo.

El problema de cules son los mejores cdigo an no est resuelto.

La tasa de correccin de errores est dada por d y n; fijamos d y n y tratamos de
optimizar m para que el cdigo tenga R lo mayor posible. Se definen unos nmeros:

A
q
(n,d) := max {m / existe (n,m,d)-cdigo q-ario}

Un (n,A
q
(n,d),d)-cdigo se dice que es un cdigo optimable.

Problema principal de la teora de cdigos: Determinar el valor de A
q
(n,d)

A
q
(n,d) s q
n-d+1
(Cota de Singleton)

Cota de Plotkin:

a) Si n es par entonces:

Para n < 2d, A
2
(n,d) s
(

n d
d
2

Para n = 2d, A
2
(n,d) = 4d


b) Si n es impar entonces:

Para n < 2d + 1, A
2
(n,d)
(

+
+
s
n d
d
1 2
1


Para n = 2d + 1, A
2
(2d+1,d) s 4d + 4

Shannon: A Mathematica Theory of Communication

Teorema del Canal Ruidoso: Este teorema demuestra que existen buenos cdigos pero
no dice cmo obtenerlos.

Para un BSC con probabilidad de paso p la capacidad es:
Cdigos y Criptografa

Tema 1. Teora de Cdigos
25

) 1 ( log ) 1 ( log 1 ) (
2 2
p p p p p C + + =

Consideremos un BSC con capacidad C(p). Si R(C) < C(p) entonces para cada c > 0
existe un (n,m)-cdigo C cuya tasa de transmisin es mayor o igual que R y para el
cual P(error de descodificacin) < c.

Ejemplo:

BSC con p = 0.01
C(p) = 0.919 (casi 92%)
Podemos encontrar un cdigo con R = 0.919 y con probabilidad de error
arbitrariamente baja.


Cdigos Lineales


Los cdigos lineales son espacios vectoriales sobre un cuerpo finito. Los alfabetos que
usaremos son cuerpos finitos (K).

Z
p
= {0,1....p-1}
q = p
r
p primo, F
q
cuerpo finito con q elementos.
En particular si q = p (primo), entonces F
q
= F
p
= Z
p
.

F
2
= Z
2
= {0,1}
F
3
= {0,1,2}
F
5
= {0,1,2,3,4}

Definicin: Un cdigo lineal de longitud n sobre K es un K-subespacio vectorial C de
K
n


K
n
= {(x
1
..x
n
) / x
1
,x
n
e K}

Dados 2 elementos de C su suma y su producto pertenece a C ( + y son cerradas).

C _ K
n
, v,w e C, o,| e K ov + |w e C

K = Z
2


C = {000,010} Cdigo Lineal

= +
= +
= +
000 010 010
010 010 000
000 000 000


En el caso binario la suma de dos palabras debe ser una palabra del cdigo.

C v u C v u e + e ,

Cdigos y Criptografa

Tema 1. Teora de Cdigos
26
C = {010} No es un cdigo lineal, ya que no contiene a 000.

C = {000,010,110} No es un cdigo lineal ya que 110 + 010 = 100 e C


Un cdigo lineal binario tiene un nmero de palabras que es potencia de 2.

Un cdigo lineal C sobre K de longitud n y dimensin k se dice que es un [n,k]-cdigo
(lineal); si la distancia es d, se dice que es un [n,k,d]-cdigo.

Cul es el tamao de un [n,k,d]-cdigo q-ario?

Si C es un [n,k]-cdigo q-ario C es isomorfo a K
k
(C~ K
k
)
|C| = |K
k
| = |K|
k
= q
k

m = q
k


Un [n,k,d]-cdigo q-ario es un (n,q
k
,d)-cdigo q-ario.

veC, C cdigo binario v + v = 2v = 0

Repaso de lgebra Lineal:

V K-espacio vectorial (V un EV sobre un cuerpo K). Dado un subconjunto S_V, el
subespacio de V generado por S es el menor subespacio de V que contiene a S y se
denota <S>. Se verifica que:

} , / {
1
S v K v S
i i
n
i
i i
e e >= <

=
o o

Si <S> = V entonces se dice que S es un conjunto generador de V.

} , / {
1
S v K v V
i i
n
i
i i
e e =

=
o o

S_V, S se dice que es linealmente independiente cuando:

n i S v K v
i
n
i
i i i i
.... 1 , 0 , , 0
1
= = e e =

=
o o o



S_V, S = {v
1
, .v
n
}. Se dice que S es una base de V cuando S es conjunto generador
de V y S es LI.

S es base

=
= e - e
n
i
i i n
v v K V v
1
1
0
/ ,.... , o o o

Cdigos y Criptografa

Tema 1. Teora de Cdigos
27


= =
= = = =
n
i
i i
n
i
i o i i
n i v v v
1 1
.... 1 , o o o o




Proposicin: Se V un K-espacio vectorial y B_V(B un subconjunto de V). Las
siguientes afirmaciones son equivalentes:

i) B es una base.
ii) B es un conjunto LI maximal de V.
iii) B es un conjunto generador minimal de V.


Conjunto LI maximal Conjunto LI tal que cualquier subconjunto de V que lo
contenga propiamente no es LI.
Conjunto generador minimal Conjunto generador tal que ningn subconjunto
propio de B es conjunto generador.

Corolario: Sea V un K-espacio vectorial. Todo conjunto generador de V contiene una
base y todo conjunto LI de V est contenido en una base.

Corolario: Todo K-espacio vectorial V tiene una base. Adems todas las bases de V
tienen la misma cardinalidad (nmero de elementos) que en nuestro caso es siempre
finita y que se llama dimensin de V, dim V.


Proposicin: dim V = k V~ K
k
. Todos los EV de la misma dimensin son
isomorfos. Un isomorfismo es una aplicacin biyectiva y lineal (conserva las
operaciones).

Demostracin:

" " dim V = k V tiene una base B = {v
1
, .....v
k
}

=
e = = e

k
i
k
k i i
k f
K v f v v V v
K V
1
1
) ,..... ( ) ( , o o o


C_K
n

dim C sdim K
n
= n

[n,k,d]-cdigo lineal
k s n

k = 0 C = {00.0}
k = n C = K
n
Cdigos y Criptografa

Tema 1. Teora de Cdigos
28

Definicin: Sea L una sucesin (puede haber trminos iguales) finita de vectores de
K
n
, (v
1
....v
k
). Se llaman operaciones elementales sobre (v
1
,....v
k
) a las siguientes:

i) e
(p,q)
: Intercambiar v
p
y v
q
(v
p
v
q
)
ii) e
(p)
: Reemplazar el vector v
p
por el vector v
p
, donde e K, = 0
(v
p
v
p
).
iii) e
(p)+(q)
: Reemplazar un vector v
p
de la sucesin por v
p
+ v
q
, con
e K, = 0 (v
p
v
p
+v
q
).


Si e denota una operacin elemental de las anteriores, llamaremos e(L) a la sucesin
finita de vectores obtenida a partir de L mediante la aplicacin de e.




Proposicin: Sea L una sucesin finita de vectores de K
n
y e una operacin elemental
sobre L. Entonces se verifica:

i) <L> = <e(L)>
ii) L es LI e(L) es LI

Demostracin:


i) Todo elemento de e(L) es una CL de los elementos de L y viceversa, as el
espacio que generan es el mismo.
ii) Consecuencia de i).



Si aplicamos una opracin elemental y luego su inversa obtenemos la sucesin L.

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

ee e e
e e
e e
e e
q p q p
p
p
q p q p



Una sucesion finita de vectores de K
n
es una matriz de k filas y n columnas.
L = (v
1
,......v
k
) sucesin finita de vectores de K
n
Matrices M
kxn
(K)
v
1
= (v
11
,....v
1n
)
v
2
= (v
21
,v
2n
)
.
.
.
v
k
= (v
k1
,v
kn
)
Cdigos y Criptografa

Tema 1. Teora de Cdigos
29

Esto se puede ver as:

) (
. . .
. .
. . .
. .
. . .
1
1 11
K M
v v
v v
kxn
kn k
n
e
|
|
|
|
|
|
.
|

\
|



Las operaciones elementales se aplicarn a las filas de la matriz. Vamos a transformar
una matriz dada en otra que nos sea ms til para trabajar.

Definicin: Una sucesin finita v
1
,....v
k
eK
n
se dice que es escalonada cuando, si se
considera la 1 componente no nula de cada vector todas las componentes no
posteriores de los vectores siguientes son cero y adems todos los vectores 0 de la
sucesin estn al final, es decir, v
p
= 0 v
p+1
= ...= v
k
= 0.

Ejemplo:

(3, 5, 0, 1, 4, 2, 2)
(0, 0, 3, 1, 0, 2, 4)
(0, 0, 0, 0, 5, 2, 1)
(0, 0, 0, 0, 0, 2, 3)
(0, 0, 0, 0, 0, 0, 1)
(0, 0, 0, 0, 0, 0, 0)
(0, 0, 0, 0, 0, 0, 0)


Proposicin: Si L = (v
1
, ....v
k
) es una sucesin escalonada de vectores de K
n
, entonces
los vectores no nulos de L forman una base de <L>.

Una sucesin escalonada es LI.

Proposicin: Sea L un conjunto finito de vectores de K
n
, entonces L se puede
transformar en una sucesin escalonada por medio de un nmero finito de operaciones
elementales. La sucesin as obtenida (descartando los vectores nulos si los hubiera) es
una base de <L>.

Si aado n-k vectores de forma que la sucesin resultante sea escalonada obtengo una
base de K
n
.







Cdigos y Criptografa

Tema 1. Teora de Cdigos
30
Ejemplo:

) (
1 0 2 1 0 1 2
1 2 1 0 2 2 1
2 1 1 0 1 2 2
1 2 0 2 1 2 1
2 1 1 0 2 0 0
3 3 5
Z M
x
=
|
|
|
|
|
|
.
|

\
|


Z
3
= {0, 1, 2}

Vamos a transformar esta matriz en escalonada mediante operaciones elementales.

|
|
|
|
|
|
.
|

\
|

|
|
|
|
|
|
.
|

\
|

|
|
|
|
|
|
.
|

\
|

|
|
|
|
|
|
.
|

\
|

|
|
|
|
|
|
.
|

\
|

1 0 0 0 0 0 0
2 1 2 1 0 0 0
2 1 1 0 2 0 0
0 0 1 2 2 1 0
1 2 0 2 1 2 1
2 2 2 0 1 0 0
0 0 1 1 1 0 0
2 1 1 0 2 0 0
0 0 1 2 2 1 0
1 2 0 2 1 2 1
2 2 2 0 1 0 0
0 0 1 1 1 0 0
0 0 1 2 2 1 0
2 1 1 0 2 0 0
1 2 0 2 1 2 1
1 0 2 1 0 1 2
1 2 1 0 2 2 1
2 1 1 0 1 2 2
2 1 1 0 2 0 0
1 2 0 2 1 2 1
1 0 2 1 0 1 2
1 2 1 0 2 2 1
2 1 1 0 1 2 2
1 2 0 2 1 2 1
2 1 1 0 2 0 0
) 3 ( 2 ) 5 (
) 3 ( 2 ) 4 (
) 3 , 2 ( ) 1 ( 2 ) 5 (
) 1 ( ) 4 (
) 1 ( 2 ) 3 (
) 2 , 1 (
e
e
e e
e
e
e




El cdigo generado por los 5 primeros vectores est formado por estos 5 vectores. Los
primeros vectores ya forman una base pero en general no suceder esto. Esta matriz
tiene rango 5.

C = <101101, 011000, 110101, 001010>
6
2
Z _

En primer lugar debemos encontrar una base de C.

|
|
|
|
|
.
|

\
|

|
|
|
|
|
.
|

\
|

|
|
|
|
|
.
|

\
|
+
+
0 0 0 0 0 0
0 1 0 1 0 0
0 0 0 1 1 0
1 0 1 1 0 1
0 1 0 1 0 0
0 0 0 1 1 0
0 0 0 1 1 0
1 0 1 1 0 1
0 1 0 1 0 0
1 0 1 0 1 1
0 0 0 1 1 0
1 0 1 1 0 1
) 4 , 3 (
) 2 ( ) 3 (
) 1 ( ) 3 (
e
e
e


Una base de C, B ={101101, 011000, 001010}

C = <101101,011000, 001010>
Cdigos y Criptografa

Tema 1. Teora de Cdigos
31

Vamos a ver ahora cmo es el cdigo explcitamente.

C = <u
1
, u
2
, u
3
>
C = {u
1
, u
2
, u
3
, 0, u
1
+u
2
, u
1
+u
3
, u
2
+u
3
, u
1
+u
2
+u
3
}

C = {000000, 101101, 011000, 001010,110101, 100111, 010010,111111}

q
k
= 2
3

dim C = 3

C = <0121, 2101>
4
3
Z _


|
|
.
|

\
|
1 2 1 0
1 0 1 2
Son LI

Z
3
= {0, 1, 2}

Tamao del cdigo = q
k
= 3
2
= 9

C = {0000, 0121, 2101, 1202, 0212, 2222, 1020, 2010, 1111}


C = <1000011, 0100101, 0010110, 0001111>
7
2
Z _
[7,4]- cdigo (Hamming)
2
4
= 16 palabras

Cmo hallar la distancia mnima?
En general, para un cdigo arbitrario se toma todo el cdigo y se van comparando las
palabras para ver cul es la distancia mnima; si el cdigo tiene tamao m deberamos
calcular
|
|
.
|

\
|
2
m
distancias, nmero que puede ser grande (m=10000
|
|
.
|

\
|
2
m
= 49995000)
La distancia mnima es la distancia mnima entre dos palabras del cdigo que sean
distintas.

Definicin: Sea C un cdigo (no necesariamente lineal) y v e C una palabra del
cdigo. Se define el peso de v como el nmero w(v) de smbolos no nulos de v.

v = 10010 w(v) = 2

Proposicin: Sea C un cdigo lineal y u,v e C. Entonces se verifica:

- d(u,v) = w(u-v)
- w(u) = d(u,0)

Cdigos y Criptografa

Tema 1. Teora de Cdigos
32
El cdigo debe ser lineal ya que u-v debe pertenecer al cdigo.

Definicin: Sea C un cdigo. Se llama peso de C (o peso mnimo de C) a:

} 0 , / ) ( min{ : ) ( = e = v C v v w C w

Proposicin: Si C es un cdigo lineal entonces d(C) = w(C).

Demostracin:

Sean u,v e C tales que d(u,v) = d(C)

w(C) sw (u-v) = 0
w(u-v) = d(u,v) = d(C)
As : w(C) s d(C)
Sea u una palabra distinta de cero de peso mnimo, es decir, w(u) = w(C)

d(C) s d(u,0) = w(u) = w(C)
As: d(C) s w(C)

Juntando las dos desigualdades obtenemos: d(C) = w(C).

Para obtener la distancia mnima slo tengo que recorrer m-1 palabra del cdigo y
calcular sus pesos, con lo que el nmero de operaciones se reduce.

El peso mnimo no tiene por qu coincidir con el peso mnimo de los elementos de la
base.


Matrices Generatrices y Matrices de Control


Definicin: Sea C un [n,k]-cdigo lineal sobre un cuerpo K (C _ K
n
). Una matriz
generatriz de C es una matriz de M
kxn
(K) cuyas filas forman una base de C.

La matriz generatriz no es nica ya que hay muchas bases.

C = <101101, 011000, 110101, 001010> es un [6,3]-cdigo

|
|
|
.
|

\
|
= e
|
|
|
.
|

\
|
=
0 1 0 1 0 0
1 0 1 1 0 1
0 0 0 1 1 0
) (
0 1 0 1 0 0
0 0 0 1 1 0
1 0 1 1 0 1
2 6 3
G Z M G
x


Siempre se cumple que k s n.

Para que una matriz sea generatriz sus filas deben ser una base del cdigo, deben ser
un conjunto LI. La matriz debe tener rango k (= nmero de filas).

Cdigos y Criptografa

Tema 1. Teora de Cdigos
33
Proposicin: Si G e M
kxn
(K) con k s n, G es matriz generatriz de un cdigo lineal
sobre K ([n,k]-cdigo) si y slo si rg(G) = (G) = k.

Proposicin: Sea C un [n,k]-cdigo lineal sobre K y G una matriz generatriz de C.
Entonces C = { xG / x eK
k
} y la aplicacin:

xG x
C K
f k




es un isomorfismo de k-espacios vectoriales.

x e K
k
, x e M
1xk
(K)
G e M
kxn
(K)

xG e M
1xn
(K) = K
n


Se multiplica la primera componente de x por la primera fila de G y as sucesivamente,
y al final se hace una suma componente a componente.

) 1 1 1 ( 3 ) 0 0 1 ( 2 ) 1 0 0 ( 1
1 1 1
0 0 1
1 0 0
) 3 2 1 ( + + =
|
|
|
.
|

\
|


G e M
kxn
(K); (G) = k = (f) = dim(Im f); Im f = C

W V
f


dim V = dim ker f + dim Im f

k = dim ker f + k dim ker f = 0 f es inyectiva

V f Im ~

Interesa encontrar matrices generatrices lo ms sencillas posibles para que la
descodificacin sea sencilla. Veamos cmo conseguir matrices generadoras lo ms
sencillas posibles.

Definicin: Sea C un (n,m,d)-cdigo q-ario sobre un alfabeto A. Consideramos los dos
tipos de operaciones siguientes:

1- Sea o una permutacin del conjunto de ndices {1, 2, .... n}. Es una aplicacin
biyectiva de un conjunto en si mismo. Ejemplo:

|
|
.
|

\
|
=
|
|
.
|

\
|
=
4 5 1 2 3
5 4 3 2 1
) 5 ( ) 4 ( ) 3 ( ) 2 ( ) 1 (
5 4 3 2 1
o o o o o
o

Para cada palabra de cdigo u = u
1
u
2
...u
n
, u
i
e A, se sustituye u por la palabra
u
o(1)
u
o(2)
.... u
o(n)
(permutacin posicional).
Cdigos y Criptografa

Tema 1. Teora de Cdigos
34

2- Sea para cada ndide i e {1, 2, ....n}, H
i
: A A una permutacin. Se sustituye
cada palabra del cdigo u = u
1
u
2
...u
n
por u
1
u
2
... H
i
(u
i
)... u
n
(permutacin de
smbolos).Ejemplo:
i = 3

2 2
3
Z Z
[

H
3
= (1 0) Cada elemento va al siguiente y el ltimo va al primero.

10110 10010

Definicin: El cdigo C es equivalente al cdigo C cuando C se obtiene a partir de C
mediante una sucesin finita de operaciones de los 2 tipos anteriores.



Ejemplo:

C = {10121, 21120, 00221, 10120, 01212}
5
3
Z _
o e S
5
o = (1 3) (2 5)

1 3 2 5
3 1 5 2

C= {11121, 1221, 21020, 10120, 22011}

Ahora aplico:

(H
1
) (0 2 1) en la posicin 1
(H
4
) (0 1) en la posicin 4

Aplico H
1
:

C = { 01120, 00221, 11020, 00120, 12011}

Aplico H
4
:

C = {01120, 00221, 11020, 00120, 12001}

Esta relacin es una relacin de equivalencia, es decir, cumple las propiedades
reflexiva, simtrica y transitiva.
Estas operaciones conservan todos loas parmetros del cdigo (longitud, tamao y
distancia entre palabras). Dos cdigos equivalentes tienen los mismos parmetros y la
misma distancia mnima, con lo que tienen la misma capacidad de corregir errores.

Proposicin: Sea C un cdigo de longitud n sobre el alfabeto A y u e A
n
. Entonces
existe un cdigo C equivalente a C y tal que u e C.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
35

Demostracin:

Sea v e C. Mediante a lo sumo n permutaciones de smbolos se pasa de v a u.
Entonces el cdigo C obtenido a partir de esas permutaciones es equivalente a C y
tenemos la propiedad de que u e C.

Definicin: Una matriz generatriz G de un [n,k]-cdigo se dice normalizada o estndar
(o estndar por la izquierda) cuando es de la forma siguiente:

) | ( A I G
k
=

donde I
k
es la matriz identidad de M
k
(K) (matrices cuadradas k x k). Adems si un
cdigo C tiene una matriz generatriz estndar se dice que C es un cdigo sistemtico.



Ejemplo:

[5,3]-cdigo

G =
|
|
|
.
|

\
|
35 34
25 24
15 14
1 0 0
0 1 0
0 0 1
a a
a a
a a



A k filas y n-k columnas
A e M
kx(n-k)
(K)

n = k, K
n
= C
[n,n]-cdigo

G =
|
|
|
|
|
|
.
|

\
|
1 . . . 0
. . .
. 0 .
0 1 0
0 . . 0 1


Un cdigo de este tipo es el cdigo ASCII estndar.
El cdigo ASCII con bit de paridad es un (8,128,2)-cdigo; es un cdigo lineal ya que
si sumamos 2 palabras con un nmero par de unos obtenemos una palabra con un
nmero par de unos. Es un [8,7]-cdigo.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
36

|
|
|
|
|
|
|
|
|
.
|

\
|
A
I
1
1
1
1
1
1 0
. .
. .
0 . 0 1 0
0 . . 0 1
7



Veamos ahora un ejemplo en Z
3
:


|
|
.
|

\
|
0 1 2
1 2 1

No es un cdigo sistemtico. Ya que la matriz de 2x2 tiene rango 1
(1 1 - 2 2 = 0)

Las primeras k columnas de la matriz deben formar una matriz kxk de rango k para
que el cdigo sea sistemtico ya que as podemos transformar esta matriz kxk en la
matriz identidad aplicando operaciones elementales.

Proposicin: Se verifican las siguiente propiedades:

i) Todo cdigo lineal es equivalente a un cdigo sistemtico.
ii) Un cdigo sistemtico posee una nica matriz generatriz estndar.
iii) Si C es un [n,k]-cdigo sistemtico entonces para cada u = u
1
u
2
...u
n e
K
k

existe una nica palabra de cdigo c
u e
C de la forma c
u
= u
1
u
2
...u
k
x
k+1
...x
n.

Tomamos todo K
k
y le aadimos n-k smbolos de tal forma que el cdigo
siga siendo un EV. Las k primeras componentes se llaman smbolos de
informacin y las n-k siguientes se llaman smbolos de control o smbolos
de redundancia.

Cdigo ASCII con bit de paridad Las 7 primeras posiciones no corrigen errores,
forman todo
7
2
Z , luego se aade un smbolo de control para permitir la deteccin
de errores.

Demostracin:

i) Supongamos que el primer coeficiente no nulo de la fila i est en la
columna j
i
(i sj
i
). Sean i
1
....i
r
las filas de la matriz escalonada tales que
k
i k
j i =

(k = 1....r). Consideremos la permutacin posicional de la palabras
de C: (i
r
j
r
) (i
r-1
j
r-1
) .... (i
1
j
1
), todas estas trasposiciones son disjuntas y
forman una permutacin (la trasposicin situada ms a la derecha es la que
se aplica primero). Ejemplo:

Cdigos y Criptografa

Tema 1. Teora de Cdigos
37

|
|
|
|
|
.
|

\
|
2 1 0 0 0 0 0 0 0
1 2 1 0 0 0 0 0 0
2 1 1 2 0 1 1 0 0
1 1 2 1 2 0 1 2 1
j
2
= 3, j
3
= 7, j
4
= 8

Aplicamos la permutacin (4 8) (3 7) (2 3)
Ces equivalente a C.

|
|
|
|
|
|
.
|

\
|
x
x
x x
x x x
1
. . 0
. .
1
1
Matriz generatriz de C, el primer bloque es de
tamao kxk y el segundo bloque es de tamao kx(n-k). Aplicando
operaciones elementales por columnas esta matriz se reduce a una matriz
generatriz estndar.

ii) Sean G y G matrices generatrices estndar de C y sean a
i
a
i
las filas
i-sima de G y G. Como ambas matrices generan el mismo cdigo las filas
de G se pueden poner como CL de las filas de G. a
i
tiene un 1 en la
posicin i, a
i
deber ser igual a a
i
, ya que si a
i
lo pusisemos como CL de
las filas de G en esta CL slo intervendra la fila a
i
ya que si no la matriz
fila a
i
tendra unos en una posicin distinta de la i.
iii) Z
3
, [5,3]-cdigo. C = { ....} 010 , 002 , 001 , 000 , aparecen todas las
posibles palabras de
3
3
Z y hay una nica palabra que comienza por esos
smbolos. u = u
1
....u
k
e K
k
, sea G una matriz generatriz estndar con filas
a
1
,...a
k
e K
n
. (u
1
....u
k
)G = u
1
a
1
+ u
2
a
2
+ ....u
k
a
k
= u
1
u
2

...u
k
x
k+1
....x
n
.

) ... 0 ..... 0 0 1 (
1
x x x a
k
= . La palabra empieza por los smbolos u
i

debido a que la matriz es estndar y luego aparecen otros elementos. Todas
las palabras del cdigo se obtienen as. El cdigo ASCII con un bit de
paridad es un cdigo sistemtico ya que se coge todo
7
2
Z y se le aade un
bit de redundancia.


Sea C el cdigo ternario de matriz generatriz:

|
|
|
.
|

\
|
=
1 2 1 1 0
1 1 1 0 1
0 0 2 2 1
G

Encontrar un cdigo sistemtico que sea equivalente a C y una matriz generatriz de
dicho cdigo.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
38
|
|
|
.
|

\
|

|
|
|
.
|

\
|

|
|
|
.
|

\
|

0 1 2 0 0
1 1 2 1 0
0 0 2 2 1
1 2 1 1 0
1 1 2 1 0
0 0 2 2 1
1 2 1 1 0
1 1 1 0 1
0 0 2 2 1
) 2 ( ) 3 ( ) 1 ( ) 2 (
e e


Esta matriz es una matriz generatriz del mismo cdigo ya que slo hemos realizado
operaciones elementales. El cdigo C ya es sistemtico, vamos a hallar la matriz
estndar. La matriz 3x3 tiene rango 3. Para que la matriz kxk escalonada tenga rango k
los elementos de la diagonal deben ser distintos de cero.

|
|
|
.
|

\
|

|
|
|
.
|

\
|

|
|
|
.
|

\
|

|
|
|
.
|

\
|

0 2 1 0 0
1 0 0 1 0
1 2 0 0 1
0 2 1 0 0
1 0 0 1 0
0 0 2 2 1
0 2 1 0 0
1 1 2 1 0
0 0 2 2 1
0 1 2 0 0
1 1 2 1 0
0 0 2 2 1
) 2 ( 2 ) 1 (
) 3 ( 2 ) 1 (
) 3 ( 2 ) 2 ( ) 3 ( 2
e
e
e e

Hacer lo mismo con un cdigo C cuya matriz generatriz es:

) (
0 1 2 1 1
1 1 2 0 1
0 0 2 2 1
3 5 3
Z M G
x
e
|
|
|
.
|

\
|
=

|
|
|
.
|

\
|

|
|
|
.
|

\
|

|
|
|
.
|

\
|

1 2 0 0 0
1 1 0 1 0
0 0 2 2 1
0 1 0 2 0
1 1 0 1 0
0 0 2 2 1
0 1 2 1 1
1 1 2 0 1
0 0 2 2 1
) 2 ( ) 3 ( ) 1 ( ) 3 (
) 1 ( ) 2 (
e e
e


El rango de la matriz 3x3 no es 3. Esta matriz no se puede reducir mediante
operaciones elementales a la matriz identidad ya que sta tiene rango 3.

|
|
|
.
|

\
|

|
|
|
.
|

\
|

|
|
|
.
|

\
|

|
|
|
.
|

\
|

0 2 1 0 0
0 2 0 1 0
2 2 0 0 1
0 2 1 0 0
0 2 0 1 0
2 0 0 2 1
0 2 1 0 0
0 1 1 1 0
2 0 0 2 1
1 2 0 0 0
1 1 0 1 0
0 0 2 2 1
) 2 ( 2 ) 1 ( ) 3 ( ) 2 (
5 3
e e
c c

C es equivalente a C. El cdigo C se obtiene a partir de C permutando las posiciones
3 y 5. Otra matriz generatriz de C sera:

|
|
|
.
|

\
|
2 1 0 1 1
2 1 1 0 1
2 0 0 2 1



Diferencia entre la descodificacin de fuente y la descodificacin de canal:

La descodificacin de canal consiste en, al usar un cdigo detector de errores, recibir
las palabras transmitidas y si stas no son palabras del cdigo por algn mtodo
Cdigos y Criptografa

Tema 1. Teora de Cdigos
39
sustituir la palabra recibida por una palabra del cdigo. La descodificacin de la fuente
consiste en tomar la informacin y pasarla a su formato original.
En el caso de los cdigos lineales la codificacin y descodificacin de fuente es
bastante eficiente.

Sea G la matriz generatriz de un [n,k]-cdigo C sobre K.

xG x
C K
G k




Esta aplicacin es un isomorfismo de EV. Para codificar se codifica por bloques; se
construye la fuente como elementos de K
k
y aplicando el isomorfismo pasamos al
cdigo C.
La descodificacin de fuente consiste en una vez que se ha recibido xG recuperar x;
esto se hace resolviendo un sistema de ecuaciones lineales.

|
|
|
|
|
.
|

\
|
=
kn k
n
a a
a a
G
. .
.
.
. .
1
1 11


x = (x
1,
.....,x
k
)

) ..... ,....., ..... , ..... ( ) ,....., (
1 1 2 1 12 1 1 11 1 k kn n k k k k n
x a x a x a x a x a x a u u xG + + + + = =



a
11
x
1
+ + a
k1
x
k
= u
1

.
.
a
1n
x
1
+ .......+ a
kn
x
k
= u
n



Este sistema tiene rango k, entonces tiene solucin nica. Hay k ecuaciones LI, con lo
que podemos eliminar n-k ecuaciones. El nmero de incgnitas es igual al rango del
sistema, la solucin es nica.
Hay un caso en el que esto es muy sencillo. Si C es un cdigo sistemtico:

u = u
1
....u
k e
K
k

u uG = u
1
....u
k
x
k+1
....x
n


) | ( A I G
k
=

As las descodificacin es trivial, basta con truncar las palabras tomando los k
primeros smbolos.


Cdigos y Criptografa

Tema 1. Teora de Cdigos
40
Definicin: Sea C un [n,k]. El cdigo dual (cdigo ortogonal) de C es el espacio
vectorial ortogonal de C con respecto al producto escalar ordinario de K
n
, es decir:

n n
K C y y x K x C _ e = e =

} , 0 / { :

Proposicin: Si C es un [n,k]-cdigo entonces C

es un [n,n-k]-codigo.

Sea u
1
...u
k
e K
n
una base de C, entonces } .... 1 , 0 / { k i u x K x C
i
n
= = e =

.
Si u
i
= (u
i1
,....u
in
) i = 1...k, entonces C

es la solucin del sistema homogneo.



u
11
x
1
+ + u
1n
x
n
= 0
.
.
u
k1
x
1
+ .......+ u
kn
x
n
= 0

Tengo n incgnitas y el sistema tiene rango k. La solucin es un eV de rango n-k.

Propiedades:

i) Si C y D son cdigos lineales tales que C _ D, entonces D

_ C

.
ii) Si G es una matriz generatriz de C entonces C

= {x e K
n
/ xG
t
= 0}.
iii) C

= C.

Demostracin:

iv) dim C

= n dim C; dim C

= n dim C

= n (n dim C) = dim C
C_ C

, pero dim C

= dim C C

= C


Ejemplo:

C = <0110, 1201>
4
3
Z c

|
|
.
|

\
|
=
1 0 2 1
0 1 1 0
G

x
2
+ x
3
= 0
x
1
+ 2x
2
+x
4
= 0

dim C

= 4 2 = 2

x
3
= o
x
4
= |

x
2
= - o
x
1
= 2o - |
Cdigos y Criptografa

Tema 1. Teora de Cdigos
41

o = 0 | = 1 (-1,0,0,1)
o = 1 | = 0 (2,-1,1,0)

|
|
.
|

\
|

=
0 1 1 2
1 0 0 1
G es una matriz generatriz del cdigo C



Definicin: Se llama matriz de control (parity-check matrix) de C a cualquier matriz
generatriz de C

. Si H es una matriz de control de C entonces:



} 0 / { = e =
t n
xH K x C

Si C es un [n,k]-cdigo y H es una matriz de control de C, H e M
(n-k)xn
(K)

CC

= 0 cuando trabajamos con el cuerpo de los nmeros reales, pero para otros
cuerpos esto no tiene por qu ser cierto (cuerpos finitos, cuerpo de los nmeros
complejos).

Definicin: Un cdigo lineal C se dice autodual cuando coincide con su dual.

Ejemplo:

C = <1100,0011>

Comprobar que C = C

.

x
1
+ x
2
= 0
x
3
+ x
4
= 0

x
2
= o
x
3
= |

x
1
= -o
x
3
= -|

o = 1 | = 0 (1100)
o = 0 | = 1 (0011)


C = C



Algunos libros dan esta definicin de matriz de control:

P es una matriz de control de C cuando u e C uP
t
= 0
Aqu no se exige que la matriz genere C

.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
42
El clculo de la matriz de control en la prctica se hace de forma diferente a la que
hemos hecho.

Proposicin: Sea C un cdigo lineal sistemtico que tiene una matriz generatriz
estndar G = (I
k
| A). Entonces P = (A
t
| -I
n-k
) es una matriz de control de C.

Demostracin:

Si demostramos que las filas de P son vectores de C

y adems que son LI, entonces


tendremos n-k vectores LI de C

que tiene dimensin n-k, as forman una base de


C

. Las filas generan un subespacio de dimensin n-k de C

y como dim C

= n-k
se tiene que las filas son una base de C

, es decir, P es una matriz de control de C.


Se tiene que GP
t
= 0 y por tanto las filas de P pertenecen a C

. El rango de P es n-k,
luego sus n-k filas son LI.

Definicin: Se dice que la matriz de control P del cdigo C es una matriz de control
estndar cuando es de la forma P = (B | I
n-k
)

Si C es un cdigo binario sistemtico con matriz generatriz G = (I
k
| A) entonces la
matriz P = (A
t
| I
n-k
) es una matriz de control estndar de C (-1 = 1).

G = (I
k
| A)

El sistema que habra que resolver para obtener C

sera:

x
1
+ a
1k+1
x
k+1
+ .....+ a
1n
x
n
= 0
x
2
+ a
2k+1
x
k+1
+ ..+ a
2n
x
n
= 0
.
.
x
k
+ a
kk+1
x
k+1
+ ..+ a
kn
x
n
= 0

Tomamos n-k parmetros (x
k+1
...x
n
). Obtenemos una base.
Sea C el cdigo binario de matriz generatriz:

|
|
|
|
|
.
|

\
|
=
1 1 1 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
G

C = H
2
(3) (Cdigo de Hamming)

Hallar una matriz de control de C.

P = (A
t
| -I
n-k
)
G= (I
4
| A)

Cdigos y Criptografa

Tema 1. Teora de Cdigos
43
|
|
|
|
|
.
|

\
|
=
1 1 1
0 1 1
1 0 1
1 1 0
A

|
|
|
.
|

\
|
=
1 0 0 1 0 1 1
0 1 0 1 1 0 1
0 0 1 1 1 1 0
P


Caractersticas de las matrices generatrices y las matrices de control:

La ventaja de la matriz generatriz es que a partir de ella es ms fcil obtener las
palabras del cdigo (CL de sus filas).
Para el clculo de la distancia mnima es mejor tener la matriz de control. A partir de
la matriz generatriz no se conoce ningn mtodo directo para obtener w(C), en cambio
a partir de la matriz de control s.

Proposicin: Sea P una matriz de control de un [n,k,d]-cdigo lineal. Entonces la
distancia mnima d es el menor entero positivo r para el cual existen r columnas
linealmente dependientes en la matriz P.

Demostracin:

Sean p
1
....p
n
las columnas de P. Sea x = x
1
....x
n
e K
n
. x e C xP
t
= 0

xP
t
= x
1
(1 fila de P
t
) + x
2
(2 fila de P
t
) + ..... x
n
(n fila de P
t
) = x
1
p
1
+ ... x
n
p
n


x e C x
1
p
1
+ ... x
n
p
n
= 0

Si x es una palabra de peso mnimo el nmero de coeficientes no nulos es el menor de
entre todas las palabras del cdigo. El peso mnimo es el nmero mnimo de columnas
LD (cada palabra me da un CL de las columnas de la matriz).

Ejemplo:

H
2
(3)

|
|
|
.
|

\
|
=
1 0 0 1 0 1 1
0 1 0 1 1 0 1
0 0 1 1 1 1 0
P

Cul es el mnimo nmero de columnas linealmente dependientes?

rg P = 3 El nmero mximo de columnas LI es 3, as 4 columnas son LD, la
distancia mnima es menor o igual que 4.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
44

Puede haber 3 columnas LD?
La 3 columna es la suma de las dos primeras; as d s 3, he encontrado 3 columnas
LD.
d = 1 ya que slo el vector 0 puede formar por s solo un conjunto LD.
No hay 2 columnas LD ya que una debera ser mltiplo de la otra, pero en este caso
esto implicara que fuesen iguales. Llegamos a que d = 3.

Sea C el [10,8]-cdigo sobre Z
11
con matriz de control:

|
|
.
|

\
|
=
10 9 8 7 6 5 4 3 2 1
1 1 1 1 1 1 1 1 1 1
H

Hallar la distancia mnima de C.

Cualquier columna es LI ya que no hay ninguna columna que sea 0. No hay 2
columnas que sean LD ya que una debera ser mltiplo de la otra y como la 1
componente es 1, la 2 componente debera ser igual; as d(C) > 3. 3 columnas
cualesquiera deben ser LD ya que rg(H) = 2; as d(C) = 3.

Los cdigos lineales tienen un mtodo de descodificacin (de canal) muy bueno.

Sea C un [n,k]-cdigo lineal y H una matriz de control de C, H e M
(n-k)xn
(K). La
matriz H define una aplicacin lineal:

) ) ( (
t t
t
k n h n
Hx x
xH x
K K





La aplicacin se puede dar de cualquiera de estas dos formas.
H = (h)
ee
Las columnas de H son las imgenes de los vectores de la base de K
n

mediante h.

Definicin: Supongamos que se transmite la palabra x e C _ K
n
y que la palabra
recibida es y e K
n
. Entonces a la diferencia c = y x e K
n
se le llama palabra de
error.

Cmo se puede determinar c a partir de h?

x e K
n
; x e C xH
t
= 0

Esto es lo mismo que decir que:

C = ker h = {x e K
n
/ h(x) = 0}

Entonces se verifica que h(y) = h(x + c) = h(x) + h(c) = h(c)

Cdigos y Criptografa

Tema 1. Teora de Cdigos
45

t
k n h n
xH x
K K





ker h = C

K
n
/C = {x + C / x e K
n
} EV de K
n
mdulo subespacio C
x + C = {x + u / u e C} _ K
n


h define una relacin de equivalencia en K
n
:

x, y e K
n
; x ~
h
y h(x) = h(y) h(x y) = 0 x C e Ker h = C

La clase de equivalencia de x e K
n
es x+C. El conjunto cociente asociado a la relacin
de equivalencia es:

K
n
/C = {x + C / x e K
n
}

Las clases {x + C / x e K
n
} (el conjunto cociente) constituyen una particin de K
n
. K
n

es la unin disjunta de las clases de x+C con x e K
n
.
K
n
/C es un K-espacio vectorial con operaciones:

1) (x+C) + (y+C) := x+y+C
n
K y x e ,
2) a(x+C) := ax+C
n n
K x K a e e ,

Si x+C e K
n
/C entonces

u x u
C x C
+
+


es una biyeccin entre C y x+C, luego |x+C| = |C| xe K
n
.
El cdigo es la clase del 0.

|K| = q, |K
n
| = q
n
, |x+C| = |C| = q
k

El nmero de clases es:

q
n
/q
k
= q
n-k
, |K
n
/C| = q
n-k


W V
f


V/Ker f ~ Im f

K
n
/C ~ K
n-k


h(y) = h(c)

Definicin: Sea C un [n,k]-cdigo con matriz de control H. Dado x e K
n
se llama
sndrome de x a la palabra h(x) = xH
t
e K
n-k
. x e C si y slo si el sndrome de x es 0.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
46

Proposicin: Sea C un [n,k]-cdigo lineal con matriz de control H. Entonces si
x,y e K
n
, x e y tienen el mismo sndrome si y slo si pertenecen a la misma clase del
espacio cociente K
n
/C.

La descodificacin por distancia mnima consiste en buscar la palabra c de peso
mnimo entre todas las que tienen el mismo sndrome que la palabra recibida y y a
continuacin calcular x = y - c.

Esquema:

- Se calcula el sndrome de la palabra recibida y, h(y) = yH
t
.
- Se determina la clase lateral asociada a este sndrome, y+C.
- Se busca en esta clase la palabra de peso mnimo c.
- Se calcula x = y-c.

Si C es un cdigo t-corrector y en la transmisin se han cometido t o menos errores
entonces en la clase y+C hay una nica palabra de peso menor o igual que y que es la
palabra de error c.


Descodificacin por sndrome:

Construimos la tabla estndar:

Sea C un [n,k]-cdigo de tamao m(=q
k
), C _ K
n


) ( . .
. . . . .
. . . . .
) (
) (
0 ) 0 ( 0 . . 0
2
1 3 3 1 3 3
2 2 2 1 2 2
1
k n k n k n k n k n
q q
m
q q q
m
m
k n
m
u h C u c u c u u
u h C u c u c u u
u h C u c u c u u
K h C c c

+ + +
+ + +
+ + +
e = +


Sea u
2
una palabra de K
n
-C de peso minimal. La 2 fila est formada por las palabras
de u
2
+C. Sea u
3
una palabra de K
n
-C que no pertenece a u
2
+C de peso minimal.

|K
n
/C| = q
n-k


Repetimos esto q
n-k
veces. K
n
es la unin disjunta de las clase u+C.

Las palabras de la 1 columna de la tabla estndar se llaman lderes de clase y tienen
peso minimal dentro de la clase.

Si C es t-corrector, cualquier palabra de K
n
de peso menor o igual que t es lder de
clase.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
47
En el caso binario el clculo del sndrome se realiza tomando la matriz de control; nos
fijamos en las componentes no nulas de la palabra recibida y sumamos las columnas
de la matriz de control que ocupan las posiciones no nulas de la palabra recibida.

Ejemplo:

Sea C el cdigo con matriz de control:

|
|
|
.
|

\
|
=
1 0 0 1 1
0 1 0 0 1
0 0 1 1 0
H

Construir la tabla estndar y descodificar las palabras recibidas: 11101, 00110 y
01101.

En primer lugar vamos a determinar una matriz generatriz para hallar las palabras del
cdigo. C es un [5,2]-cdigo. Si calculo la matriz de control del cdigo dual obtengo
una matriz generatriz del dual del dual, que es el cdigo C. H es una matriz de control
estndar as el cdigo es sistemtico.

H = (B|I
3
) G = (I
2
|B
t
)

|
|
.
|

\
|
=
1 0 1 1 0
1 1 0 0 1
G

La distancia mnima es el nmero mnimo de columnas LD de la matriz de control.

rg(H) = 3 4 columnas sern LD

No hay ninguna columna que sea 0, as d > 1. 2 columnas LD, en el caso binario,
seran iguales, como no hay 2 columnas iguales d > 2. Hay 3 columnas LD (1 = 4 +
5), as d = 3.

El cdigo es 1-corrector.
Vamos a construir la tabla estndar.

111 01010 11001 00111 10100
110 00110 10101 01011 11000
001 11111 01100 10010 00001
010 11100 01111 10001 00010
100 11010 01001 10111 00100
101 10110 00101 11011 01000
011 01110 11101 00011 10000
000 11110 01101 10011 00000
Sindromes Lderes

Cdigos y Criptografa

Tema 1. Teora de Cdigos
48

En un cdigo t-corrector todas las palabras de peso menor o igual que t van a ser
lderes de clase.
Ahora debo tomar la palabra de peso 2 que no hayamos puesto (hasta la 6 fila).
Ponemos una palabra de peso 2 y obtenemos su sndrome, si ste ya ha salido es que la
palabra ya ha salido y debemos coger otra palabra.


y = 01101
h(y) = 01101 H
t
= 000
01101 e C (Ker h = C)

No puede haber ocurrido un error ya que se ha recibido una palabra del cdigo;
tampoco se pueden haber cometido 2 errores, pero si se pudieron cometer 3 errores.

y = 01101 x = 01101

y = 11101
h(y) = 001 (y e C)

Buscamos el lder de clase de este sndrome.

x = y + 10000 = 01101

Esta es la nica palabra que podemos obtener si se ha producido un nico error. Si
hubiesen ocurrido 2 errores la palabra real podra ser otra pero este cdigo slo corrige
un error. Esta palabra es la palabra de cdigo que aparece en la columna de la palabra
en la tabla.

y = 00110 h(y) =110

El lder de clase es 11000, que tiene peso 2, as se han cometido al menos 2 errores,
como el cdigo es 1-corrector no vamos a tener la seguridad de hacer la
descodificacin correcta.
Descodificaramos como:

x = y - c = 11110

Se han cometido 2 errores y la palabra recibida podra haber sido 00000. Si se han
cometido 2 errores cualquiera de estas dos palabras podra haber sido transmitida.

Este mtodo tiene un inconveniente ya que la tabla estndar puede ser grande, por
ejemplo, en un cdigo binario de longitud 100 en la tabla habra que poner 2100
palabras (sin contar sndromes). Esto hace que para cdigos de estos tamaos la tabla
sea inabordable; por eso en estos casos se utilizara una tabla reducida con 2 columnas,
la columna de los lderes de clase y la de los sndromes. Tendramos esto:

Cdigos y Criptografa

Tema 1. Teora de Cdigos
49
. .
. .
. 1
0000 0
peso
Sndrome Lderes


En primer lugar vamos poniendo las palabras de peso uno y su sndrome. Al acabar
con las palabras de peso uno pasamos a las de peso 2. Esta tabla es mucho ms
reducida. Ejemplo:

[100,60]-cdigo, n-k = 40, tenemos 2
40
lderes de clase y sus correspondientes
sndromes. Contando las 2 columnas: 2 2
40
= 2
41
. Este mtodo de descodificacin vale
para cualquier cdigo. Existen cdigos que tienen mtodos de descodificacin
especficos.


El problema principal en el caso de los cdigos lineales es dada la longitud n y la
distancia mnima d encontrar la dimensin mxima k para la cual existe un
[n,k,d]-cdigo lineal.
Este problema es demasiado difcil, entonces se plantea otro ms fcil; fijadas la
longitud y la dimensin cul es la mxima distancia d posible. La cota de Singleton
nos da esto.


Proposicin: Si C es un [n,k,d]-cdigo lineal entonces d s n-k+1

Demostracin:

Todo cdigo lineal sabemos que es equivalente a un cdigo lineal sistemtico y la
equivalencia de cdigos conserva los parmetros de los cdigos. Obtenemos un cdigo
sistemtico equivalente a C, con lo que tendr sus mismos parmetros. Podemos
suponer que C es sistemtico:

G = (I
k
|A) A e M
kx(n-k)
(K)

d s peso mximo de cualquier fila de la matriz generatriz (= peso mximo de las filas
de G)
A lo sumo en cada fila de G tenemos n-k+1 dgitos distintos de cero. Entonces a lo
sumo el peso de las filas de G es n-k+1. Entonces d s n-k+1. Esta cota se puede
alcanzar.

Definicin: Un [n,k,d]-cdigo lineal C se dice que es un cdigo MDS (maximun
distance separable code) cuando d = n-k+1.


Demostrar que existen cdigos q-arios MDS de tipo [n,n,1], [n,1,n] y [n,n-1,2]. Estos
cdigos se llaman cdigos MDS triviales.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
50
q = 2, C =
n
Z
2
[n,n,1]-cdigo

C
1
= <11...1>
C
1
= {00....0,11....1} [n,1,n]-cdigo

1
C [n,n-1,2]-cdigo

(11....1) es una matriz generatriz de C
1
,

1
C tiene como matriz de control
|
|
.
|

\
|


1
1 . . . 1 | 1
n
.

G = (I
k
|A) H = (A
t
|I
n-k
)

1
C tiene como matriz generatriz (matriz de control de C
1
de 1x(n-1)) a:

|
|
|
|
|
|
.
|

\
|
1 0 . . 0 1
0 . . .
. . . .
. 1 0 1
0 . . 0 1 1



Hay que ver que la distancia mnima es 2:

1
C H = (1|11....1)
2 columnas son LD d = 2 Es un cdigo MDS



















Cdigos y Criptografa

Tema 1. Teora de Cdigos
51
Cdigos Especiales: Cdigos de Hamming, de Golay y de Reed-Muller


Cdigos de Hamming:

Estos fueron los primeros cdigos interesantes que aparecieron. Fueron descubiertos
independientemente por R. Hamming (1950) y M. Golay (1949). Estos cdigos tienen
un procedimiento de descodificacin especial.
Tenemos un [n,k]-cdigo lineal; su distancia mnima es el mnimo nmero de
columnas LD de una matriz de control. Sea d la distancia mnima entonces si tomamos
d-1 columnas cualesquiera de cualquier matriz de control va a ser LI, pero hay un
grupo de d columnas LD.
Vamos a construir un [n,k,3]-cdigo lineal. Construimos este cdigo de tal forma que
su matriz de control tenga 2 columnas cualesquiera LI y con 3 columnas LD, y
cogiendo el mximo nmero de columnas posible.

El cdigo de Hamming q-ario de orden r (r e Z, r > 2) va a ser un cdigo q-ario
H
q
(r) que tiene una matriz de control H
q
(r) con r = n k filas y con el mximo
nmero posible de columnas (siendo d = 3). Las columnas de H
q
(r) son vectores
de
r
q
F .
2 vectores deber se LI Los subespacios que generan son distintos(las 2 rectas que
generan deben ser diferentes).
Considero todas las rectas de
r
q
F que son de la forma <v>, v
r
q
F e .
Tomemos un vector no nulo en cada recta <v>
r
q
F _ ; 2 de estos vectores son LI y
siempre puedo coger 3 que son LD.

r
q
F v
r
q
v F
e
> < = }) 0 { ( } 0 {
Esta unin es disjunta.

} / {
1 | } 0 { |
1 | } 0 { |
q
r r
q
F v v
q v
q F
e >= <
> <
=
o o


El nmero de rectas es
1
1

q
q
r
.

La matriz de control de H
q
(r) es una matriz que tiene r filas y n =
1
1

q
q
r
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
Cdigos y Criptografa

Tema 1. Teora de Cdigos
52
igual a 1. Entonces las columnas de H
q
(r) son estos nmeros escritos en orden
creciente.


H
2
(3)

|
|
|
.
|

\
|
=
1 0 1 0 1 0 1
1 1 0 0 1 1 0
1 1 1 1 0 0 0
) 3 (
2
H

r = 3. Las columnas son nmeros de 3 dgitos binarios.

n = 7
1 2
1 2
1
1
3
=

q
q
r

d = 3

El tomar el dgito ms significativo igual a 1 implica que cogemos un nico punto en
cada recta.

|
|
|
.
|

\
|
=
2 1 0 2 1 0 2 1 0 2 1 0 1
2 2 2 1 1 1 0 0 0 1 1 1 0
1 1 1 1 1 1 1 1 1 0 0 0 0
) 3 (
3
H

Las columnas estn ordenadas en orden creciente.

n = 13
1 3
1 3
3
=



Si pusisemos la columna
2
0
0
sera mltiplo de
1
0
0
y as d = 2 (cogeramos 2 vectores
en la misma recta).

|
|
|
.
|

\
|
=
4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 4 3 2 1 0 1
4 4 4 4 4 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
) 3 (
5
H


31
4
124
1 5
1 5
3
= =

= n

r = 3 = n k k = 28
m = q
k
= q
n-r


Cdigos y Criptografa

Tema 1. Teora de Cdigos
53
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 cdigos perfectos.


=
=
|
|
.
|

\
|
2
1
0
) 1 (
d
i
n i
q q
i
n
m

Demostracin:

1
2
3
2
1
=
(

=
(


=
d
t
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 e H
2
(r) sufre un nico error resultando la palabra y
entonces el sndrome de y,
r t
r
Z r yH y h
2
) ( ) ( e = , 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

0 ... 0 1 0 ... 00
i
i
e = la palabra de error. Entonces:
h(y) = h(x+e
i
) = h(x) + h(e
i
) = h(e
i
) = e
i ) (
2
r H
t
= 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.

[7,4,3]-cdigo

Supongamos que se recibe la palabra y = 1101110

( ) ( ) 0 0 1
1 1 1
0 1 1
1 0 1
0 0 1
1 1 0
0 1 0
1 0 0
0 1 1 1 0 1 1 ) 1101110 ( =
|
|
|
|
|
|
|
|
|
.
|

\
|
= h

Cdigos y Criptografa

Tema 1. Teora de Cdigos
54

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 e H
q
(r) sufre un nico error, resultando
la palabra recibida y. Sea h(y) e K
r
el sndrome de la palabra recibida y o e K el
smbolo ms significativo de h(y). Si la columna de H
q
(r) que contiene a o
-1
h(y) es la
columna i-sima entonces la palabra de error es

) 0 .... 0 0 .... 00 (
i
i
e o o = y se verifica que
x = y - oe
i
.

Demostracin:

Supongamos que el error se ha cometido en la posicin i-sima de modo que
y = x + oe
i
, con 0 , = e o o K . Entonces:

h(y) = h(oe
i
) = ) (r H e
t
q i
o = o i-sima columna de H
q
(r).

Ejemplo:

H
3
(3) y supongamos que se recibe la palabra y = 1101112211201. Descodificar esta
palabra.

( ) ( )
3
3
1 0 2
2 2 1
1 2 1
0 2 1
2 1 1
1 1 1
0 1 1
2 0 1
1 0 1
0 0 1
2 1 0
1 1 0
0 1 0
1 0 0
1 0 2 1 1 2 2 1 1 1 0 1 1 ) ( Z y h e =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
|

\
|
=

h(y) no es una columna de H
3
(3).

(201) = 2 (102)

Cdigos y Criptografa

Tema 1. Teora de Cdigos
55
(102) es la 7 columna de H
3
(3), luego la palabra de error es
o e
7
= 2 (0000001000000). La palabra emitida es x = y 2e
7
= 1101110211201



Cdigos de Golay:

El cdigo de Golay binario g
24
:

El cdigo g
24
es el cdigo lineal binario de matriz generatriz G = (I
12
|A) e M
12x24
(Z
2
),
donde:

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
|

\
|
=
1 0 0 0 1 1 1 0 1 1 0 1
0 0 0 1 1 1 0 1 1 0 1 1
0 0 1 1 1 0 1 1 0 1 0 1
0 1 1 1 0 1 1 0 1 0 0 1
1 1 1 0 1 1 0 1 0 0 0 1
1 1 0 1 1 0 1 0 0 0 1 1
1 0 1 1 0 1 0 0 0 1 1 1
0 1 1 0 1 0 0 0 1 1 1 1
1 1 0 1 0 0 0 1 1 1 0 1
1 0 1 0 0 0 1 1 1 0 1 1
0 1 0 0 0 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1 1 1 1 0
A

A partir de la 3 fila las filas se obtienen desplazando la fila anterior una posicin a la
izquierda.

Vamos a calcular la distancia mnima de este cdigo.

Proposicin: g
24
es un cdigo autodual:

=
24 24
g g

Demostracin:

Es fcil ver que las filas de G son ortogonales entre s (incluyendo una fila consigo
misma). La 1 fila de G tiene peso 12 y las restantes tienen peso 8. Todas las filas
tienen peso par, as todas las filas son autoortogonales. Se tiene que si r y s son filas de
G entonces r s = 0. Esto quiere decir que todas las filas de G pertenecen tambin al
cdigo dual

24
g . Si todas las filas de G pertenecen a

24
g entonces el propio
24
g est
contenido en

24
g (

_
24 24
g g ). Para ver que son iguales hay que calcular sus
dimensiones.

dim
24
g = 12
Cdigos y Criptografa

Tema 1. Teora de Cdigos
56
dim

24
g = n k = 24 12 = 12

As

=
24 24
g g
Proposicin: La matriz (A|I
12
) es una matriz generatriz de g
24.

Demostracin:

La matriz (A|I
12
) es una matriz de control de g
24
, es decir una matriz generatriz de
24 24
g g =



Cuando un cdigo es autodual la matriz generatriz y la matriz de control son la misma
cosa.

Proposicin: Si C es un cdigo binario y u,v eC, entonces:

) ( 2 ) ( ) ( ) ( v u w v w u w v u w + = +

donde ) ,..... , ( :
2 2 1 1 n n
v u v u v u v u = siendo u = (u
1
,...u
n
) y v = (v
1
,...v
n
)

Demostracin:

v = 1011100101011
u = 1101011110001

v + u = 0110111011010

w(uv) = nmero de posiciones en las que ambas palabras tienen un 1

Proposicin: El peso de cada palabra de g
24
es divisible por 4.

Demostracin:

Basta demostrar que la suma de dos filas cualesquiera de la matriz G es divisible por
4.
Sean u y v dos filas de G. Entonces por la frmula anterior:

) ( 2 ) ( ) ( ) ( v u w v w u w v u w + = +

w(u) y w(v) son mltiplos de 4 ya que valen 8 o 12. Hay que ver que el peso de la
interseccin es mltiplo de 2.

) ( 2 ) 2 (mod 0 ) (
) 2 (mod 0
) 2 (mod ) (
v u w v u w
v u
v u v u w

)
`


es mltiplo de 4


El peso mnimo de g
24
es mltiplo de 4 y como G tiene filas de peso 8 el peso mnimo
ser 4 u 8.
Cdigos y Criptografa

Tema 1. Teora de Cdigos
57




Proposicin: g
24
no tiene palabras de peso 4.

Demostracin:

Sea u e g
24
una palabra de peso 4. Consideremos u como la yuxtaposicin de sus
mitades izquierda y derecha, ambas de longitud 12.

) | ( d i u =

Sean G
1
= (I
12
|A) y G
2
(A|I
12
), ambas son matrices generatrices de g
24
. la palabra i es
una CL de las filas de I
12
y como u = 0 se tiene que w(i) > 1.
Usando el mismo razonamiento para d con la matriz G
2
vemos que w(d) > 1.
Si w(i) = 1 entonces u es una fila de G
1
y ninguna de ellas tiene peso 4, luego w(i) > 2
El mismo razonamiento muestra que w(d) > 2.
Entonces tiene que ser w(i) = w(d) = 2.
w(i) = 2 u es la suma de 2 filas de G
1
pero ninguna de estas sumas puede tener
peso 4.


g
24
es un [24,12,8]-cdigo. Este cdigo se us para transmitir imgenes de Jpiter y
Saturno (Voyager 1979-1981).
m = 2
12
= 4096

(1968 Vera Press) Cualquier [24,12,8]-cdigo lineal binario es equivalente por
mltiplos escalares (en la matriz generatriz se pueden multiplicar las columnas por un
escalar) al cdigo g
24
.
(1975 Delsorte-Goethols) Los cdigos de Golay son los nicos cdigos lineales con
estos parmetros. Cualquier (24,2
12
,8)-cdigo binario es equivalente por mltiplos
escalares a g
24
.

El Cdigo de Golay binario g
23
:

Se obtiene a partir de g
24
pinchando una componente a g
24
(usualmente se elimina el
ltimo smbolo de todas las palabras).

n = 23, m = 2
12


La distancia mnima o es la misma o disminuye una unidad. En este caso al pinchar la
ltima columna de la matriz de control de g
24
la ltima fila tienen peso 7, as d = 7. g
23

es un [23,12,7]-cdigo. g
23
es perfecto. g
24
se obtiene a partir de g
23
aadindole un bit
de paridad.




Cdigos y Criptografa

Tema 1. Teora de Cdigos
58





Los Cdigos de Golay Ternarios:

g
12
tiene por matriz generatriz G = (I
6
|B) donde


|
|
|
|
|
|
|
|
.
|

\
|
=
0 1 2 2 1 1
1 0 1 2 2 1
2 1 0 1 2 1
2 2 1 0 1 1
1 2 2 1 0 1
1 1 1 1 1 0
B

A partir de la 3 fila una fila se obtiene a partir de la anterior desplazndola una
posicin hacia la derecha.

Propiedades:

i) g
12
es autodual.
ii) B es simtrica.
iii) G
12
es un [12,6,6]-cdigo.
iv) El cdigo ternario g
11
obtenido pinchando g
12
es un [11,6,5]-cdigo
perfecto.


Cdigos de Nordstrom-Robinson:

Son cdigos no lineales y tienen la propiedad de que tienen una distancia mnima
mayor que cualquier cdigo lineal que tenga el mismo tamao y la misma longitud.


Cdigos de Reed-Muller:

Estos cdigos son fciles de descodificar.

Definicin: Una funcin de Boole de m variables es una aplicacin
2 2
: Z Z f
m
.

Las funciones de boole se suelen representar dando su tabla de verdad.

m = 3



Cdigos y Criptografa

Tema 1. Teora de Cdigos
59


Entero
Binario
0 1 2 3 4 5 6 7
x
1
0 0 0 0 1 1 1 1
x
2
0 0 1 1 0 0 1 1
x
3
0 1 0 1 0 1 0 1
F(x
1
,x
2
,x
3
) 0 1 1 1 0 1 1 0

Para dar la funcin booleana me basta quedarme con la ltima fila ya que me describe
completamente la funcin (si asumo que siempre tengo el mismo orden).
Existe una correspondencia biunvoca entre funciones de boole de m variables y
palabras binarias de longitud 2
m
.

2
4
2
: Z Z f
1011101001000110

f(1110) = 1
f(0101) = 0

B
m
= {funciones de Boole de m variables}
|B
m
| =
m
2
2 nmero de palabras binarias de longitud m

En B
m
se define una suma:

f, g e B
m
, (f + g)(x
1
,.x
m
) : = f(x
1
,.x
m
) + g(x
1
,.x
m
)

(B
m
,+) es un grupo abeliano.

o exclusivo (xor)

(f + g)(x
1
,.x
m
) = 1 f(x
1
,.x
m
) = 1 o g(x
1
,.x
m
) = 1 pero no ambos son 1.

Definimos una multiplicacin escalar:

o e Z
2
, f e B
m
, (of) (x
1
,.x
m
) : = o(f(x
1
,.x
m
))

B
m
es un Z
2
-espacio vectorial.

Dados f, g e B
m
, (f g)(x
1
,.x
m
) : = f(x
1
,.x
m
) g(x
1
,.x
m
)

Sea B
m
: = {F(x
1
,....x
m
) = } ..... ) (
2 1
1
) ... (
1
e =
m
m
m
Z u u u
u
m
u
x x u a , con a(u) e Z
2
.
A los elementos de este conjunto se les llaman polinomios de Boole.

|B
m
| =
m
2
2

Cdigos y Criptografa

Tema 1. Teora de Cdigos
60



Cuntos monomios hay de grado k: k u u x x
m
u
m
u
m
= + +.... / ...
1 1
1
?

Hay
|
|
.
|

\
|
k
m
monomios de grado k en m variables.

m m
m
m m m m
2 ) 1 1 ( .....
2 1 0
= + =
|
|
.
|

\
|
+
|
|
.
|

\
|
+
|
|
.
|

\
|
+
|
|
.
|

\
|
, estos son todos los posibles monomio de m
variables.

Proposicin: La aplicacin:

B
m
B
m

F f

que a cada polinomio de Boole F(x
1
,....x
m
) le hace corresponder la funcin de Boole
f(x
1
,...x
m
) dada por f(x
1
,...x
m
) = F(x
1
,....x
m
) es un isomorfismo de Z
2
-espacios
vectoriales.

Demostracin:

Basta demostrar que toda funcin de Boole de m variables est inducida por un
polinomio de Boole de m variables ya que los 2 conjuntos tienen el mismo nmero de
elementos, as si la aplicacin es sobreyectiva es biyectiva.
Hay que demostrar que toda funcin de Boole f(x
1
,....x
m
) e B
m
est inducida por un
polinomio de Boole. Usamos induccin en m.

m = 1

Las funciones de Boole de 1 variable son 00, 11, 01, 10.

00 0
11 1
01 x
1

10 1 + x
1


Todas las funciones de 1 variable estn inducidas por polinomios.
Supongamos que se verifica para m-1 variables y sea f(x
1
,....x
m
) e B
m


f(x
1
,....x
m
) = f(0,x
2
,x
m
) + H
1
(x
1
,x
m
)[f(1,x
2
,...x
m
) f(0,x
2
,...x
m
)]

donde H
1
(x
1
,x
m
) = x
1
, es decir


f(x
1
,....x
m
) = f(0,x
2
,x
m
) + x
1
(x
1
,x
m
)[f(1,x
2
,...x
m
) f(0,x
2
,...x
m
)]
Cdigos y Criptografa

Tema 1. Teora de Cdigos
61

Definimos funciones de Boole de m-1 variables:

f
0
(x
2
,...x
m
) : = f(0,x
2
,x
m
)
f
1
(x
2
,...x
m
) : = f(1,x
2
,x
m
)

Por la hiptesis de induccin existen polinomios de Boole F
0
(x
2
,...x
m
) y F
1
(x
2
,...x
m
)
tales que:

F
0
(x
2
,...x
m
) = f
0
(x
2
,...x
m
) = f(0,x
2
,x
m
)
F
1
(x
2
,...x
m
) = f
1
(x
2
,...x
m
) = f(1,x
2
,x
m
)

La funcin H
1
(x
1
,x
m
) est inducida por el polinomio G(x
1
,...x
m
) = x
1
. Entonces el
polinomio

F(x
1
,...x
m
) = F
0
(x
2
,x
m
) + x
1
[F
1
(x
2
,...x
m
) F
0
(x
2
,...x
m
)]

induce la funcin f(x
1
,...x
m
).


-Sea f la funcin de Boole dada por:
01100011

Hallar el polinomio de Boole que la induce.

1 1 0 0 0 1 1 0 ) ( , , (
1 0 1 0 1 0 1 0
1 1 0 0 1 1 0 0
1 1 1 1 0 0 0 0
3 2 1
3
2
1
x x x f
x
x
x


0 1 1 0 ) , , 0 (
1 0 1 0
1 1 0 0
3 2
3
2
x x f
x
x


1 1 0 0 ) , , 1 (
1 0 1 0
1 1 0 0
3 2
3
2
x x f
x
x



f(x
1
,...x
m
) = f(0,x
2
,x
m
) + x
1
[f(1,x
2
,x
m
) f(0,x
2
,...x
m
)]

01100011 = 0110 + x
1
[0011 - 0110] = 0110 + x
1
(0101) = 01 + x
2
[10 - 01] + x
1
[01 +
x
2
[01 - 01]] = 01 + x
2
(11) + x
1
(01) = [0 + x
3
(1 0)] + x
2
[1 + x
3
(1 1)] + x
1
[0 +
x
3
(1 0)] = x
3
+ x
2
+ x
1
x
3


Cdigos y Criptografa

Tema 1. Teora de Cdigos
62




-Hallar los polinomios de Boole que inducen las funciones:

a) 00101001
b) 0100101110100010

a) 00101001 = 0010 + x
1
(1011) = x
2
(10) + x
1
[10 + x
2
(01)] = x
2
[1 + x
3
] + x
1
[1 +
x
3
+ x
2
x
3
] = x
2
+ x
2
x
3
+ x
1
+ x
1
x
3
+ x
1
x
2
x
3

b) 0100101110100010 = 01001011 + x
1
(11101011) = 0100 + x
2
(1111) + x
1
[1110
+ x
2
(0101)] = 01 + x
3
(01) + x
2
(11) + x
1
[11 + x
3
(01) + x
2
[01 +x
3
(01)]] = x
4
+
x
3
x
4
+ x
2
+ x
1
[1 + x
4
x
3
+ x
2
x
4
+ x
2
x
3
x
4
] = x
4
+ x
3
x
4
+ x
2
+ x
1
+ x
1
x
4
x
3
+ x
1
x
2
x
4

+x
1
x
2
x
3
x
4




~ 2
2
m
Z B
m

m
B
~



Definicin: Sea m un entero positivo m r s s 0 . Se define el cdigo de Reed-Muller
R(r,m), de longitud 2
m
y orden r como el conjunto de las palabras binarias de
m
Z
2
2
asociadas a polinomios de Boole de B
m
que tienen grado menor o igual que r.

R(r,m) es un cdigo lineal

B
m
(r) R(r,m)

B
m
(r) polinomios de Boole de m variables de grado menor o igual que r

Ejemplos:

R(0,m)

1 ...
0 0
1
=
m
x x

0 0 ...
0 0
1
=
m
x x
1 1 ...
0 0
1
=
m
x x

R(0,m) = {

m
2
0 ... 0 ,

m
2
1 ... 1 } = Rep(
m
2 ) _
m
Z
2
2

R(m,m) =
m
Z
2
2


R(1,3)

Los polinomios de Boole de 3 variables y grado menor o igual que 1 son de la forma:

Cdigos y Criptografa

Tema 1. Teora de Cdigos
63
3 3 2 2 1 1 0
1 x x x o o o o + + +

con o
i
e Z
2
i = 0...3




Los 4 monomios forman una base del espacio de los polinomios. La palabra de R(1,3)
correspondiente a este polinomio ser:

) 01010101 ( ) 00110011 ( ) 00001111 ( ) 11111111 (
3 2 1 0
o o o o + + +

Las palabras entre parntesis son los polinomios que corresponden a los polinomios de
Boole de 4 variables.

1 1 1 1 0 0 0 0
1 0 1 0 1 0 1 0
1 1 0 0 1 1 0 0
1 1 1 1 0 0 0 0
1
3
2
1
x
x
x
x


Polinomios de 3 variables de grado menor
o igual que 1
Polinomio
0 00000000
x
1
00001111
x
2
00110011
x
3
01010101
x
1
+x
2
00111100
x
1
+x
3
01011010
x
2
+x
3
01100110
x
1
+x
2
+x
3
01101001
1 11111111
1+x
1
11110000
1+x
2
11001100
1+x
3
10101010
1+x
1
+x
2
11000011
1+x
1
+x
3
10100101
1+x
2
+x
3
10011001
1+x
1
+x
2
+x
3
10010110


Excepto la palabra 1 y la 0 todas las palabras tienen 4 unos y 4 ceros. El peso mnimo
es 4, as este cdigo tiene distancia mnima 4.

Proposicin: Sea F(x
1
...x
m
) = x
m
+ p(x
1
...x
m-1
) donde p(x
1
...x
m-1
) es un polinomio de
Boole. Entonces la funcin de Boole inducida por F toma los valores 0 y 1 el mismo
nmero de veces, es decir, 2
m-1
veces.
2 2
: Z Z F
m

Cdigos y Criptografa

Tema 1. Teora de Cdigos
64


Demostracin:

(x
1
,...x
m-1
,x
m
)
m
Z
2
e
(x
1
,...x
m-1
,0)
(x
1
,...x
m-1
,1)

Todos los elementos de
m
Z
2
los puedo obtener a partir de los de
1
2
m
Z aadiendo al
final un 1 o un 0.
Si p(x
1
...x
m-1
) = 0:

F(x
1
...x
m-1
,1) = 1 + 0 = 1
F(x
1
...x
m-1
,0) = 0 + 0 = 0

Si p(x
1
...x
m-1
) = 1:

F(x
1
...x
m-1
,1) = 1 + 1 = 0
F(x
1
...x
m-1
,0) = 1 + 0 = 1


La mitad toma el valor 1 y la otra mitad el valor 0.

Proposicin: Todas las palabras de R(1,m) tienen peso mnimo 2
m-1
, excepto la
palabra 00...0 y la palabra 11...1. En consecuencia la distancia mnima de R(1,m) es
2
m-1
.

Demostracin:

R(1,m) est formado por palabras que a excepcin de 0...0 y 1...1 estn inducidas por
polinomios de Boole de la forma x
t
+ p(x
1
...x
t-1
x
t+1
...x
m
). Estas palabras tienen 2
m-1

ceros y 2
m-1
unos.

En los cdigos de Reed-Muller m no es el tamao del cdigo si no el nmero de
variables del polinomio de Boole que le corresponde.

Proposicin: El cdigo de Reed-Muller R(r,m) tiene longitud 2
m
y dimensin:

|
|
.
|

\
|
+
|
|
.
|

\
|
+
|
|
.
|

\
|
+ =
r
m m m
k ...
2 1
1

Ls tasa del cdigo es:

m
k
R
2
=



Cdigos y Criptografa

Tema 1. Teora de Cdigos
65


Demostracin:

El cdigo es isomorfo a los polinomios de Boole de grado menor o igual que r, que
tiene como base los monomios de grado menor o igual que r. El nmero de polinomios
de grado menor o igual que r es:

|
|
.
|

\
|
+
|
|
.
|

\
|
+
|
|
.
|

\
|
+ =
r
m m m
k ...
2 1
1


Tamao = 2
k

n = longitud del cdigo

m
k
k
n
R
2
2 log
2
= =

-Determinar cules de las siguientes palabras pertenecen al cdigo R(2,4)
a) 1101 1110 0001 1001
b) 0011 0101 0011 1010

Este cdigo tiene longitud 16.Debemos ver que los polinomios de Boole que inducen
estas palabras tienen grado menor o igual que 2.

a) 11011110 + x
1
(11000111) = 1101 + x
2
(0011) + x
1
(1100 + x
2
(1011)) = 11 +
x
3
(10) + x
2
(x
3
(11)) + x
1
(11 + x
3
(11) + x
2
(10 + x
3
(01))) = 1 + x
3
(1 + x
4
) + x
2
x
3
+
x
1
(1 + x
3
+ x
2
(1 + x
4
+ x
3
x
4
)) = 1 +x
3
+ x
3
x
4
+ x
2
x
3
+ x
1
x
3
+x
1
x
2
+ x
1
x
2
x
4
+ x
1
x
2
+
x
1
x
2
x
3
x
4


Este polinomio de Boole tiene grado 4. La palabra no pertenece a R(2,4)

b) 00110101 + x
1
(00111010) = 0011 + x
2
(0110) + x
1
(x
2
(1111)) = x
3
(11) + x
2
(01 +
x
3
(11)) + x
1
x
2
(11) = x
3
+ x
2
x
4
+ x
3
x
2
+ x
1
x
2


Esta palabra pertenece a R(2,4)


Definicin: Sea C
1
un (n,m
1
,d
1
)-cdigo lineal y C
2
un (n,m
2
,d
2
)-cdigo lineal sobre un
cuerpo K. Se define un cdigo lineal sobre K:

} , / ) ( { :
2 1 2 1
C v C u v u u C C e e + =

donde u(u+v) es la yuxtaposicin de las palabras u y u+v.

n
n
K C
K C
_
_
2
1

Cdigos y Criptografa

Tema 1. Teora de Cdigos
66
n
K C C
2
2 1
_ , luego
2 1
C C es un cdigo de longitud 2n.

u(u+v) + u(u+v) = (u+u)(u+u+v+v)
2 1
C C e
o(u(u+v)) = ou(ou+ov)
2 1
C C e


Proposicin:
2 1
C C es un (2n,m
1
m
2
,d)-cdigo con d= min{2d
1
,d
2
}

Demostracin:

Sea x
1
= u
1
(u
1
+v
1
) y x
2
= u
2
(u
2
+v
2
); u
1
,u
2
e C
1
, v
1
,v
2
e C
2
.

Si v
1
= v
2
entonces d(x
1
,x
2
) = w((u
1
-u
2
)(u
1
-u
2
)) = 2w(u
1
-u
2
) = 2d(u
1
,u
2
) > 2d
1

Si v
1
= v
2
entonces d(x
1
,x
2
) = w(u
1
-u
2
)+ w((u
1
-u
2
) + (v
1
-v
2
)) > w(v
1
-v
2
) = d(v
1
,v
2
) > d
2


d(x
1
,x
2
) > min{2d
1
,d
2
}

Hay que ver que se cumple la igualdad eligiendo las palabras convenientemente.

Si min{2d
1
,d
2
} = 2d
1
. Tomamos u
1
,u
2
e C
1
/ d(u
1
,u
2
) = d
1
y tomamos x
1
= u
1
(u
1
+v),
x
2
= u
2
(u
2
+v) con v e C
2
, entonces d(x
1
,x
2
) = 2d
1
.

Si min{2d
1
,d
2
} = 2d
2
. Tomamos v
1
,v
2
e C
2
/ d(u
1
,u
2
) = d
2
y tomamos x
1
= u(u+v
1
),
x
2
= u(u+v
2
) con u e C
1
, entonces d(x
1
,x
2
) = w(v
1
-v
2
) = d(v
1
,v
2
) = d
2



Proposicin: Sea 0 < r < m. Se verifica que R(r,m) = R(r,m-1) R(r-1,m-1)

Demostracin:

Vamos a demostrar que R(r,m) _ R(r,m-1) R(r-1,m-1)

Sea x e R(r,m) dada por el polinomio de Boole F(x
1
...x
m
) de grado menor o igual que
r.

F(x
1
...x
m
) = x
1
G(x
2
x
m
) + H(x
2
x
m
), donde G(x
2
x
m
) tiene grado menor o igual
que r-1 y H(x
2
x
m
) tiene grado menor o igual que r.
Sea x
G
la palabra binaria correspondiente a G, x
G
e R(r-1,m-1). Sea x
H
la palabra
binaria correspondiente a H, x
H
e R(r,m-1)

x
1
G 0x
G

H x
H
x
H


x = x
F
= 0x
G
+ x
H
x
H
= x
H
(x
H
+ x
G
)

Para ver que se cumple la igualdad hay que ver que los dos espacios tienen la misma
dimensin.

Cdigos y Criptografa

Tema 1. Teora de Cdigos
67
|
|
.
|

\
|
+
|
|
.
|

\
|
+
|
|
.
|

\
|
+ = =
r
m m m
k m r R ...
2 1
1 ) , ( dim
Se verifica que
|
|
.
|

\
|

+
|
|
.
|

\
|
=
|
|
.
|

\
|
1
1 1
r
m
r
m
r
m
, 0 < r < m

dim (R,m) = k =
|
|
.
|

\
|

+
|
|
.
|

\
|
+
|
|
.
|

\
|
+
|
|
.
|

\
|
+
|
|
.
|

\
|
+
1
1 1
...
1
1
0
1
1
1
1
r
m
r
m m m m
=
(

|
|
.
|

\
|

+
|
|
.
|

\
|
+ +
(

|
|
.
|

\
|
+
|
|
.
|

\
|
+ =
1
1
...
1
1
1
1
...
1
1
1
r
m m
r
m m
=dim R(r,m-1) + dim R(r-1,m-1) =
= dim [R(r,m-1) R(r-1,m-1)]

Corolario: El cdigo de Reed-Muller R(m-1,m) est formado por todas las palabras
binarias de longitud 2
m
y peso par. Por tanto si r < m R(r,m) slo contiene palabras de
peso par.

Demostracin:

R(0,1) = {00, 11} slo tiene palabras de peso par.

Supongamos que R(m-2,m-1) slo tiene palabras de peso par

) 1 , 2 ( ) 2 , 2 ( ) 1 , 1 ( ) , 1 (
1
2
2
= =

m m R Z m m R m m R m m R
m
espacio el Todo


x e R(m-1,m)
x = y(y+z) = yy + 0z
yy
1
2
2

e
m
Z z e R(m-2,m-1)
y siempre tiene peso par
w(0z) = w(z), z e R(m-2,m-1) tiene peso par por hiptesis de induccin.

w(x) = w(yy) + w(0z) 2w(yy0z) es par

Sea P ={palabras de longitud 2
m
y peso par} _
m
Z
2
2

P es un subespacio vectorial de
m
Z
2
2

dim P ?

{(10...01), (010...01), (0010...0), ...(00...011)}

Este conjunto es una base de P. Este conjunto es LI ya que es un conjunto escalonado.
P tiene 2
m
1 vectores
dim P = 2
m
1

R(m-1,m) _ P

Cdigos y Criptografa

Tema 1. Teora de Cdigos
68
dim R(m-1,m) =
|
|
.
|

\
|

+
|
|
.
|

\
|
+
|
|
.
|

\
|
+
1
...
2 1
1
m
m m m
= (1+1)
m
1 = 2
m
1
En la expresin faltara el trmino 1 =
|
|
.
|

\
|
m
m
para poder aplicar la frmula del binomio.

dim P = dim (R(m-1,m) P = R(m-1,m)

r < m R(r,m) _ R(m-1,m)

Ejemplo:

R(2,3) est formado por las palabras binarias de longitud 8 y peso par. Una matriz
generatriz es:

|
|
|
|
|
|
|
|
|
.
|

\
|
=
1 1 0 0 0 0 0 0
1 0 1 0 0 0 0 0
1 0 0 1 0 0 0 0
1 0 0 0 1 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 0 0 1 0
1 0 0 0 0 0 0 1
G

Esta es la matriz generatriz del cdigo ASCII con paridad.

Proposicin: R(r,m) tiene distancia mnima 2
m-r
por tanto tiene parmetros:

(

|
|
.
|

\
|
+
|
|
.
|

\
|
+
r m m
r
m m
2 , ....
1
1 , 2

Demostracin:

R(m,m) =
m
Z
2
2
, 1 = 2
0
= 2
m-m


d(R(1,2)) = d(R(1,1) R(0,1)) = min{2 1,2} = 2 = 2
2-1


Supongamos que 0 < r < m

Supongamos que se verifica para m-1

R(r,m) = R(r,m-1) R(r-1,m-1)

d(R,m) = min{2 d(R(r,m-1)),d(R(r-1,m-1))} = min{ 2 2
m-1-r
,2
m-r
} = 2
m-r


Cdigos y Criptografa

Tema 1. Teora de Cdigos
69
R(r,m) es un
(

|
|
.
|

\
|
+
|
|
.
|

\
|
+
r m m
r
m m
2 , ....
1
1 , 2 -cdigo







Mariner 4 (1965)

22 fotos de Marte de 200 x 200 de 64 niveles
2
6
niveles
6
2
Z ={000000,...,111111}
8 1/3 bits/s, 1 foto ~ 8 horas

Mariner 9 (1969-1971)

700 x 832 = 582480 pixels, 64 niveles
p = 0.05 , 1-p = 0.95, (0.95)
6
~ 0.74

Aproximadamente el 26% de la imagen sera errnea.

Se meten aproximadamente 30 bits de redundancia.

Si tomamos un cdigo de repeticin tenemos d = 5 y el cdigo corregira 2 errores.

Probabilidad de error = 1%
Sin correccin de errores habra unos 150000 pixels errneos por foto. Con el cdigo
de repeticin tendra 5800 pixels errneos por foto. Se us R(1,5), que es un [32,6,16]-
cdigo, en este caso p = 0.01; con este cdigo habra unos 58 pixels errneos por foto.

16200 bits/s

700 x 832 x 32bits/pixel = 18636800 bits

1 imagen ~ 115000 s ~ 32 horas

Вам также может понравиться