Codificación Programación en Tiempo Real
Índice
Pág.
3.1 Grupos 3.1.1 Homeomorfismos 3.1.2 Isomorfismos. 3.1.3 Cíclicos. 3.1.4 Cosets 3.1.5 Teorema de Lagrange 3.1.6 Métrica de Hamming 3.1.7 Matrices Generadoras y de paridad. 3.2 Anillos. 3.2.1 Grupos de códigos. 3.2.2 Cosets líderes. 3.2.3 Matrices de Hamming. 3.2.4 Campos finitos. 3.2.5 Anillos de polinomios. 3.2.6 Polinomios irreducibles 3.2.7 Cuadrados latinos 3.2.8 Criptografía.
3 4 4 6 7 9 10 10 15 16 20 21 23 24 25 26 27
2
Unidad 3 Codificación 3.1 Grupos Un grupo es un par (G; _) formado por un conjunto y una operación binaria que cumple: G0 La operación es cerrada, es decir, a * b G, para todo a,;b G. G1 La operación es asociativa, es decir, (a * b)* c = a * (b * c)) , para todo a,;b G._ G2 El conjunto G tiene elemento neutro, que se denotará por e, respecto de la operación. G3 Cada elemento de G tiene inverso respecto de la operación. El inverso del elemento a € G se denotará por a -1. Grupo fundamental: dado un espacio topológico X, se puede formar el conjunto de todos los lazos en X que salen de un cierto punto, considerando como equivalentes a dos lazos que se puedan superponer mediante una homotopía (es decir, tales que se pueda deformar a uno de ellos en forma continua hasta obtener el otro). A dicho conjunto se le asigna una estructura (algebraica) de grupo, lo que determina el llamado grupo fundamental de X. Se trata de un invariante topológico muy útil. Por ejemplo, el grupo fundamental de una circunferencia es Z, el conjunto de los números enteros (Z = {..., - 3, - 2, - 1, 0, 1, 2, 3, ...}), hecho que resulta claro pues todo lazo cerrado sobre la circunferencia está determinado unívocamente por la cantidad de vueltas, y el sentido en que se las recorre. El grupo fundamental de un toro es Z ´ Z, pues en este caso deben tenerse en cuenta las vueltas dadas "alrededor" del agujero, y también "a través" del mismo. Este resultado es, claro está, coherente con el hecho de que el toro puede pensarse como el producto cartesiano de dos circunferencias Estas son algunas de las propiedades que tienen los grupos: • El neutro es único. El inverso de cada elemento también es único. • El inverso del inverso de un elemento es el propio elemento: (x−1)−1 = x. • El inverso de un producto es el producto de los inversos, pero cambiado de orden:(xy)−1 = y−1x−1. • En un grupo la ecuación ax = b siempre tiene solución, que es única: x = a−1b. Análogamente, x = ba−1 es la única solución de xa = b.
3
3.1.1 Homeomorfismos Se llama homeomorfismo entre dos espacios topológicos X e Y a una función f: X® Y que resulte biunívoca y bicontinua, es decir: f es "uno a uno" (biunívoca), lo que significa que para cada elemento x Î X existe un único y Î Y tal que f(x) = y y viceversa. Esto permite definir la función inversa, f-1:Y® X f y f-1 son continuas (f es bicontinua) La noción de homeomorfismo responde a la idea intuitiva de "deformación", y determina cierta clase de equivalencia: dos espacios homeomorfos tienen las mismas propiedades topológicas.
3.1.2 Isomorfismos. Podríamos definir el significada de un isomorfismo que 2 semigrupos simplemente parezcan iguales, o que es cuando el dominio y la imagen de un isomorfismo propio pueden ser o son idénticos. Con relación a este concepto podemos mencionar diversos teoremas, alguna de cuyas demostraciones veremos a continuación.
4
a) Teorema: La relación G es isomorfo con G’ es una relación de equivalencia entre grupos. b) Teorema: En todo isomorfismo entre dos grupos, los elementos idénticos se corresponden y los inversos de elementos correspondientes también se corresponden. c) Teorema: Todo grupo abstracto G es isomorfo con un grupo de transformaciones del grupo sobre sí mismo. Demostración: Para comprender esta demostración el lector puede tener presente la tabla indicada más arriba para n = 6. Asociemos a cada elemento a G la transformación ta : G G tal que ta(x) = xa. El lector puede observar la segunda fila de la tabla mencionada para ver todas las imágenes de esta transformación: ta(e) = a; ta(a) = b; ta(b) = c; ta(c) = d; ta(d) = g; ta(g) =e Para otro elemento cualquiera de G, tendremos otra transformación; así para b G tendremos tb : G G, tal que tb(x) = xb (tercera fila de la tabla). Vale decir que si a b t a tb . Sea G’ = {t : G G} definidas en la forma indicada. Será G’ = {ta, tb, tc, td, te, tg} para el caso de n = 6, todas transformaciones distintas, como puede verificarse observando las diferentes filas de la tabla correspondiente. Por otra parte, podemos definir en G’ el producto de transformaciones, tal que: x G, x(tatb) = (xta)tb = (xa)tb = (xa)b = x (ab) = tab y en el caso particular de nuestra tabla vemos que tab = tc . Esto significa que el producto de dos transformaciones de G’ es otra transformación de G’. Luego este producto es cerrado. En G’ existe te tal que x G, te(x) = xe = x. Luego te es la identidad. En G’ existe también ( ta)-1 = tg = t(a-1) y así para todas las transformaciones de G’. Luego cada elemento de G’ tiene en el conjunto su inversa. Esto nos indica que G’ tiene estructura de grupo y es isomorfo con el grupo abstracto considerado. Lo cual prueba la tesis.
5
3.1.3 Cíclicos. Un grupo cíclico es un grupo que puede ser generado por un solo elemento; es decir, hay un elemento a del grupo G (llamado "generador" de G), tal que todo elemento de G puede ser expresado como una potencia de a. Si la operación del grupo se denota aditivamente, se dirá que todo elemento de G se puede expresar como na, para n entero. En otras palabras, G es cíclico, con generador a, si G = { an | n ∈ Z }. Dado que un grupo generado por un elemento de G es, en sí mismo, un subgrupo de G, basta con demostrar que el único subgrupo de G que contiene a a es el mismo G para probar que éste es cíclico. Por ejemplo, G = { e, g1, g2, g3, g4, g5 } es cíclico. De hecho, G es esencialmente igual (esto es, isomorfo) al grupo { 0, 1, 2, 3, 4, 5 } bajo la operación de suma módulo 6. El isomorfismo se puede hallar fácilmente haciendo g → 1. Contrariamente a lo que sugiere la palabra "cíclico", es posible generar infinitos elementos y no formar nunca un ciclo real: es decir, que cada gn sea distinto. Un tal grupo sería un grupo cíclico infinito, isomorfo al grupo Z de los enteros bajo la adición. Salvo isomorfismos, existe exactamente un grupo cíclico para cada cantidad finita de elementos, y exactamente un grupo cíclico infinito. Por lo anterior, los grupos cíclicos son de algún modo los más simples, y han sido completamente clasificados. Propiedades Dado un grupo cíclico G de orden n (donde n puede valer infinito), y dado g ∈ G, se tiene:
G es abeliano; es decir, su operación es conmutativa: ab = ba para cualesquiera a y b ∈ G. Esto es cierto, puesto que cualquier par de enteros a y b, a + b mód n = b + a mód n. Si n < ∞, entonces gn = e, puesto que n mód n = 0. Si n = ∞, entonces el grupo tiene exactamente dos generadores: 1 y -1 en Z, y sus imágenes isomórficas en otros grupos cíclicos infinitos. Todo subgrupo de G es cíclico. De hecho, para n finito, todo subgrupo de G es isomorfo a un Zm, donde m es divisor de n; y si n es infinito, todo subgrupo de G corresponderá a un subgrupo mZ de Z (el cual es también isomorfo a Z), bajo el isomorfismo entre G y Z.
6
3.1.4 Cosets Tenemos gH = H si y solamente si g es un elemento de H, desde como H es un subgrupo, debe ser cerrado y debe contener la identidad. Cualquier dos cosets izquierdos son o idénticos o desuna -- los cosets izquierdos forman a partición de G: cada elemento de G pertenece a un y solamente un coset izquierdo. Particularmente la identidad está solamente en un coset, y ese coset es H sí mismo; éste es también el único coset que es un subgrupo. Podemos ver esto claramente en los ejemplos antedichos. Los cosets izquierdos de H en G sea clases de equivalencia debajo de relación de equivalencia en G dado cerca x ~ y si y solamente si x -1y ∈ H. Las declaraciones similares son también verdades para los cosets derechos. Todos los cosets izquierdos y todos los cosets derechos tienen igual orden (número de elementos, o cardinality en el caso de infinito H), igual a la orden de H (porque H está sí mismo un coset). Además, el número de cosets izquierdos es igual al número de cosets derechos y se conoce como índice de H en G, escrito como [G : H ]. Teorema de Lagrange permite que computemos el índice en el caso donde G y H sea finito, según el fórmula: |G | = [G : H ] · |H |
En matemáticas, si G es a grupo, H a subgrupo de G, y g un elemento de G, entonces gH = {gh : h un elemento de H } es a coset izquierdo de H en G, y Hectogramo = {hectogramo : h un elemento de H } es a coset derecho de H en G. Solamente cuando H es normal voluntad los cosets derechos e izquierdos de H coincida, que es una definición de la normalidad de un subgrupo. A coset es un coset izquierdo o derecho de algunos subgrupo adentro G. Desde entonces Hectogramo = g ( g−1Hectogramo ), los cosets derechos Hectogramo (de H ) y los cosets izquierdos g ( g−1Hectogramo ) (de conjugación subgrupo g−1Hectogramo ) son iguales. Por lo tanto no es significativo hablar de un coset como ido o correcto a menos que un primer especifique a subgrupo subyacente. Para grupos abelian o los grupos escritos aditivo, la notación utilizaron cambios a g+H y H+g respectivamente. Si H no es normal en G, entonces sus cosets izquierdos son diferentes de sus cosets derechos. Es decir, hay a en G tales que ningún elemento b satisface ah = Hb. Esto significa que la partición de G en los cosets izquierdos de H es una diversa partición que la
7
partición de G en cosets derechos de H. (Es importante observar eso algunos los cosets pueden coincidir. Por ejemplo, si a está en centro de G, entonces ah = Ha.) Por otra parte, el subgrupo N es normal si y solamente si gN = Ng para todos g en G. En este caso, el sistema de todos los cosets forma a grupo llamado grupo del cociente G /H con el ∗ de la operación definido cerca (ah )∗ (bH ) = abH. Puesto que cada coset derecho es un coset izquierdo, no hay necesidad de distinguir “cosets izquierdos” de “cosets derechos”. Ejemplos El añadido grupo cíclico Z4 = {0, 1, 2, 3} = G tiene un subgrupo H = {0, 2} (isomorfo a Z2). Los cosets izquierdos de H en G sea 0 + H = {0, 2} = H 1 + H = {1, 3} 2 + H = {2, 0} = H 3 + H = {3, 1} Hay por lo tanto dos cosets distintos, H sí mismo, y 1 + H = 3 + H. Observe eso H ∪ (1 + H ) = G, tan los cosets distintos de H en G partición G. Desde entonces Z4 es grupo abelian, los cosets derechos serán iguales que la izquierda (esto no es difícil de verificar). Otro ejemplo de un coset viene de la teoría de espacios del vector. Los elementos (vectores) de una forma del espacio del vector Grupo Abelian debajo adición de vector. No es duro demostrar eso subspaces de un espacio del vector esté subgrupos de este grupo. Para un espacio del vector V, un subspace W, y un vector fijo a en V, los sistemas
se llaman afine los subspaces, y son los cosets (ambos a la izquierda e a la derecha, puesto que el grupo es Abelian). En términos de geométrico los vectores, éstos afinan subspaces son todos los “alinean” o “acepilla” paralelo al subspace, que es una línea o un plano que pasa con el origen.
8
3.1.5 Teorema de Lagrange (Teoría del grupo) Teorema de Lagrange, en matemáticas de teoría del grupo, indica eso para cualesquiera grupo finito G, orden (número de elementos) de cada subgrupo H de G divide la orden de G. El teorema de Lagrange se nombra después José Lagrange Prueba del teorema de Lagrange Esto se puede demostrar usando el concepto de la izquierda cosets de H en G. Los cosets izquierdos son clases de equivalencia de un seguro relación de equivalencia en G y por lo tanto forme una partición de G. Si podemos demostrar que todos los cosets de H tenga el mismo número de elementos, después nos hacen, desde entonces H sí mismo es un coset de H. Ahora, si ah y bH son dos cosets izquierdos de H, podemos definir un mapa f : ah → bH fijando f(x) = Ba-1x. Este mapa es bijective porque su lo contrario se da cerca f -1(y) = ab-1y. Esta prueba también demuestra a eso el cociente de las órdenes |G| / |H| es igual a índice [G : H] (el número de cosets izquierdos de H en G). Si escribimos esta declaración como
|G| = [G : H] · |H|, entonces, interpretado como declaración alrededor números cardinales, sigue siendo verdad incluso para los grupos infinitos G y H.
Existencia de subgrupos de cierta orden El teorema de Lagrange plantea la cuestión de si cada divisor de la orden de un grupo es la orden de un subgrupo. Este asimiento de la necesidad. Dado un grupo finito G y un divisor d de |G|, no existe necesariamente un subgrupo de G con orden d. El ejemplo más pequeño es grupo que se alterna G = A4 cuál tiene 12 elementos pero ningún subgrupo de la orden 6. Cualquier grupo finito que tenga un subgrupo con el tamaño igual a cualquier divisor (del positivo) del tamaño del grupo debe ser soluble, así que los grupos nonsolvable son ejemplos de este phenonenon, aunque A4 demuestra que no son los únicos ejemplos. Si G es abelian, entonces existe siempre un subgrupo de cualquier orden que divide el tamaño de G. Una generalización parcial se da cerca Teorema de Cauchy.
9
3.1.6 Metrica de Hamming En Teoría de la Información se denomina distancia de Hamming a la efectividad de los códigos de bloque y depende de la diferencia entre una palabra de código válida y otra. Cuanto mayor sea esta diferencia, menor es la posibilidad de que un código válido se transforme en otro código válido por una serie de errores. A esta diferencia se le llama distancia de Hamming, y se define como el número de bits que tienen que cambiarse para transformar una palabra de código válida en otra palabra de código válida. Si dos palabras de código difieren en una distancia d, se necesitan d errores para convertir una en la otra. Por ejemplo:
La distancia Hamming entre 1011101 y 1001001 es 2. La distancia Hamming entre 2143896 y 2233796 es 3. La distancia Hamming entre "tener" y "reses" es 3.
Definición: Sea A un alfabeto y u,w An. Se define la distancia Hamming d(u,w) como el número de posiciones en las que difieren v y w.
d An xAn Z R
(u, w) d (u, w) Esta aplicación es una métrica: -
Es definida positiva: d(u,w) 0 y d(u,w) = 0 u = w u, w A n Es simétrica: d(u,w) = d(w,u) u, w A n Desigualdad triangular: d (u,v) d (u,w) + d (w,v) u, v, w An
La bola con centro en un elemento u y radio 1 es u, todos los puntos son abiertos ( topología abierta).
3.1.7 Matriz de paridad La paridad consiste en añadir un bit, denominado bit de paridad, que indique si el número de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit cambiara por error en la transmisión, el mensaje cambiará de paridad y el error se puede detectar (nótese que el bit donde se produzca el error puede ser el mismo bit de paridad). La convención más común es que un valor de paridad de 1 indica que hay un número impar de unos en los datos, y un valor de paridad de 0 indica que hay un número par de unos en los datos. 10
La comprobación de paridad no es muy robusta, dado que si cambia de forma uniforme más de un solo bit, el bit de paridad será válido y el error no será detectado. Por otro lado, la paridad, aunque puede detectar que hay error, no indica en qué bit se cometió. Los datos se deben desechar por entero y volverse a transmitir. En un medio ruidoso, una transmisión correcta podría tardar mucho tiempo o incluso, en el peor de los casos, no darse nunca. El chequeo de paridad, aunque no es muy bueno, usa un único bit, por lo que produce muy poca sobrecarga, y además permite la corrección de ese bit si es conocida su posición. Consideremos bloques de entrada de k bits:
d1, d2 ,...dk
Cada bloque forma un vector o palabra:
d (d1, d2 ,...dk )
Y a la salida se tiene la palabra: C (C1, C2 ,..., Ck , Ck 1,..., Cn )
Para un código sistemático:
C1 d1 . . .
Ck d k
Y si es lineal, los bits de paridad están dados por:
Ck 1 h11d1 h12 d2 ... h1k dk . . .
Cn
hr1d1 hr 2 d 2 ... hrk d k
11
r=n–k
Donde: hij
=1 ó 0
La elección de los hij determina el tipo de código.
Matricialmente: C dG 1xn
con sumas mod 2 kxn
1xk a la matriz G se le llama matriz generadora del código. G = [ Ik P]
Ik = Porque los primeros k bits coinciden con los de datos. P = Formada por el arreglo de los hij transpuestos.
n k
Veamos por ejemplo, un código (7, 3) cuya matriz p es: 1 1 0 0 P 0 1 1 0 1 1 1 1
P es de orden 3 x 4 k xr
entonces n =7 , k =3 y existen 4 bits de paridad, su matriz generadora es: I 1 0 G 0 1 0 0
P 0 0 1
1 0 0 0 1 1 0 1 1 1 1 1
Si d (1,0,1) 1 0 0 1 1 0 0 C dG (1,0,1) 0 1 0 0 1 1 0 (1,0,1,0,0,1,1) 0 0 1 1 1 1 1
12
y sucesivamente:
d
1 2 3 4 5 6 7 8
000 001 010 011 100 101 110 111
C
0000000 0011111 0100110 0111001 1001100 1010011 1101010 1110101
Los bits de paridad están dados como: C4 d1 d3 C5 d1 d2 d3 C6 d2 d3 C7 d3
Supongamos que se recibe: 0 0 0 0 1 1 0,la palabra más cercana es 3, cada vector C difiere de cualquier de cualquier otro en al menos tres posiciones, en consecuencia cualquier vector con un error es corregible puesto que la palabra recibida seguirá estando más próxima a la correcta. La diferencia entre el mínimo número de posiciones de dos vectores codificados cualesquiera, se llama distancia de Hamming. Para que sean corregibles ‘t’ errores, la distancia de hamming (d) debe de ser: d 2t 1
En este caso d 3 t 1puede corregir un solo error. El procedimiento de corrección de errores más simple es el comparar la palabra codificada recibida, con una tabla de palabras codificadas y seleccionar la más cercana; sin embargo el número de comparaciones crece exponencialmente con k, por lo que no es apropiado para códigos grandes. Afortunadamente las relaciones algebraicas de los códigos proporcionan otros métodos más eficientes. El siguiente método es aplicable a los códigos correctores de errores simples, pero su principio de aplica a otros mayores. A la matriz: H = [PT Ir] rxn rxk se le llama matriz de comprobación de paridad. Es fácil verificar que : 1xn
CHT0
13
nxr Sea r el vector recibido en lugar de C rCe
donde e es un vector de n bits formado por unos cuando hay un error y ceros cuando no hay un error. rH T (C e )H T eH T s
a s se le llama vector síndrome, esta formado por: s (h1i , h2i ,..., hri )
e indica el renglón i-ésimo de la matriz H transpuesta ( H T ) donde está el error. Por ejemplo, supongamos que se envía C (1,0,0,1,1,0,0) y se recibe r (1,0,0,0,1,0,0) P HT I nk
nxr
1 1 0 0 0 1 1 0 1 1 1 1 T r s rH 1 0 0 0 (1,0,0,0) 0 1 0 0 0 0 1 0 0 0 0 1
El vector s corresponde al cuarto renglón de bit.
HT,
por lo tanto el error se encuentra en el 4°
Se observa que para que funcione este método, H debe de tener las primeras k columnas definidas en forma única, y deben diferir de las r siguiente columnas que conforman la submatriz identidad y tampoco deben de estar compuestas por ceros. Se debe cumplir entonces que para corregir un error: 2r (r 1) k
14
3.2 Anillos. Sea A un conjunto no vacío con dos elementos distinguidos, n y m, y sean operaciones binarias. Se dice que el conjunto las siguientes propiedades: 1. A es cerrado bajo la operación 2. La operación
y
dos
es un anillo si se cumplen
.
es asociativa.
3. La operación tiene a n como elemento neutro. 4. Existe un elemento simétrico para
Estas cuatro condiciones definen un grupo. Una quinta condición define un grupo abeliano: 5. La operación
es conmutativa.
Para definir un anillo, es necesario agregar cuatro condiciones más que hablan acerca de la segunda operación binaria y el segundo elemento destacado: 6. A es cerrado bajo la operación . 7. La operación es asociativa. La operación tiene a 8. m como elemento neutro. La operación es 9. distributiva respecto de .
Y agregando una décima condición, se define un anillo conmutativo: 10. La operación es conmutativa.
15
3.2.1 Grupos de códigos. El problema de codificación es representar mensajes distintos mediante diferentes secuencias de letras de un alfabeto dado. Por ejemplo, mensajes como " emergencia " , " la ayuda está en camino " ," está todo claro , etc., pueden ser representado por secuencias de puntos y rayas .
Nosotros supondremos que el alfabeto es binario {0,1} . Una secuencia de letras de un alfabeto se conoce como una palabra. Un código es una colección de palabras que son utilizadas para representar distintos mensajes. Una palabra en un código también es denominada como una palabra código. Un código de bloque es un código consistente de palabras que son de la misma longitud. Uno de los criterios al escoger u bloque de código para representar un conjunto de mensajes es su capacidad para corregir errores. Supongamos que una palabra código es transmitida desde su origen hacia su destino.
En el curso de la transmisión, interferencias como ruido pueden ocasionar que algunos de los números uno en la palabra código sean recibidos como números ceros y algunos de los cero como unos. En consecuencia, la palabra recibida podría no continuar siendo la palabra transmitida y es nuestro deseo recuperar la palabra transmitida lo mejor posible y esto es lo que entenderemos por corrección de errores . Denotemos por A al conjunto de todas las sucesiones binarias de longitud n . Sea □ una operación binaria sobre A tal que para x y y en A, x □ y es una sucesión de longitud n que tiene números uno en las posiciones donde x y y difieren y números cero en las posiciones donde x y y son iguales.
Por ejemplo, sea x = 00101 y y = 10110, entonces x * y = 10011. Una palabra con únicamente ceros es la identidad, y que cualquier palabra es su propio inverso en (A,□).
Sea x una palabra en A . Definimos el peso de x , denotado por w(x) , como la cantidad de números uno en x . Así, el pero de 1110000 es igual a 3, al igual que el de 1001100 . Para x y en A , definimos la distancia entre x y , w(x □ y) .
, denotada por
, como el peso de x □ y
16
Por ejemplo la distancia entre 1110000 y 1001100 es 4, y la distancia entre 1110000 y 0001111 es de 7. Observamos que en la distancia entre las dos palabras es exactamente el número de posiciones en las cuales éstas difieren . Ahora sea G un código de bloque. Definimos la distancia de G como la distancia mínima entre cualquier par de palabras de código distintas en G. La distancia de un código de bloque está relacionada con su capacidad de corregir errores. Supongamos que correspondiendo a la transmisión de una palabra código en G , se ha recibido la palabra . Nuestro problema es determinar a partir de la palabra código que fue transmitida. Pero para motivar nuestro análisis supongamos el caso sencillo en el que resulta ser una de las palabras código en G. En este caso, probablemente nos inclinaremos por la conclusión obvia de que la palabra transmitida efectivamente fue , pero aún así está conclusión requiere de una justificación. Supongamos que en el transcurso de la transmisión pueden ocurrir errores en cualquiera de las posiciones , cualquiera de las palabras código en G podría haber sido la palabra transmitida . Pero cuando supusimos que la palabra transmitida fue , estábamos suponiendo de modo tácito que cuando la palabra fue transmitida era más probable que no ocurriera error alguno a que hubiesen ocurrido algunos errores . Ahora estableceremos de manera general de determinar la palabra transmitida correspondiente a la palabra recibida . Denotemos por
a las palabras código en G. Calcularemos la probabilidad
condicional para , donde palabra transmitida ya que fue la palabra recibida. Si
es la probabilidad de que
fuese la
es la mayor de todas las probabilidades condicionales calculadas, concluimos
que fue la palabra transmitida. Este criterio para determinar la palabra transmitida se conoce como criterio de decodificación de la máxima – probabilidad. El cálculo de la probabilidad condicional puede ser realmente complicado ya que la probabilidad depende de muchos factores en el sistema de comunicación. Pero analizaremos otro criterio que puede utilizarse para determinar la palabra transmitida. Calculamos
para toda
, y concluimos que
fue la palabra transmitida
si es la menor distancia entre todas las distancias calculadas. Este se conoce como criterio de decodificación de la mínima – distancia.
17
Por otra parte si suponemos que la presencia de errores en las posiciones son independientes, y que la probabilidad de que haya un error es es la distancia entre xi y
donde mayor será
. Para
<
, entonces
=
, entre menor sea
,
.
En consecuencia, el criterio de decodificación de máxima – probabilidad ( en este caso, la conclusión de que la palabra transmitida fue cuando la palabra recibida es una palabra código está justificada ) . Ahora no debemos dejar pasar que un código distancia puede corregir o menos errores de distancia cuando se sigue el criterio de decodificación de la mínima – distancia. Supongamos que una palabra código x fue transmitida y que la palabra fue recibida. Si no se han cometido más de errores en el transcurso de la transmisión, tenemos que * Sea
otra palabra código. Puesto que *
y * Tenemos por lo tanto que *
Entonces por el criterio de decodificación de la mínima – distancia efectivamente se seleccionará a x como la palabra transmitida. Ya que los códigos de grupo son una clase de códigos de bloque demostraremos que : Un subconjunto G de A es llamado un código de grupo si ( G , □ )es un subgrupo de ( A , □ ) , donde A es el conjunto de sucesiones binarias de longitud .
Mostraremos que la distancia G es igual al peso mínimo de las palabras diferentes del nulo en G . A sí este resultado hace más sencillo calcular la distancia de un código de grupo, 18
puesto que ya no es necesario calcular exhaustivamente la distancia para cada par de palabras distintas de G.
Supongamos que
es una palabra diferente del nulo en G. Debido a que
y ya que 0 está en g , tenemos que
Por otro lado, para cualesquiera
y ya que
y
en G, ya que
está también en g , tenemos que
A partir de (1*) obtenemos
Y a partir de (2*), obtenemos
19
Al combinar (3*) y (4*) llegamos a que
Para códigos de grupo , existe una manera eficiente para determinar la palabra transmitida correspondiente a una palabra recibida de acuerdo con el criterio de decodificación de la mínima – distancia . EJEMPLO 1 Consideremos que G = {0000, 0011, 1101, 1110}. Podemos verificar sencillamente que ( G , Å ) es un grupo . Las filas de la figura 1 son los distintos conjuntos cociente en G .
Entonces de acuerdo al criterio de decodificación de la mínima – distancia , la palabra recibida 1011 será decodificada como 0011 , la palabra recibida será 1010 será decodificada como 1110 ,y la palabra recibida 1111 será decodificada como 1101 o 1110 , según si 0010 o 0001 fuese escogida como el líder del conjunto cociente que contiene a la palabra 1111.
3.2.2 Cosets líderes.
En matemáticas, si G es un grupo, H es un subgrupo de G, y G es un elemento de G, entonces gH = { gh : h an element of H } is a left coset of H in G , and gH = (gh: h un elemento de H) es una clase lateral izquierda de H en G, y Hg = { hg : h an element of H } is a right coset of H in G . Hg = (hg: h un elemento de H) es una clase lateral derecha de H en G.
20
Solamente cuando H es normal voluntad los cosets derechos e izquierdos de H coincida, que es una definición de la normalidad de un subgrupo. A coset es un coset izquierdo o derecho de algunos subgrupo adentro G. Desde entonces Hectogramo = g ( g-1Hectogramo ), los cosets derechos Hectogramo (de H ) y los cosets izquierdos g ( g-1Hectogramo ) (de conjugación subgrupo g-1Hectogramo ) son iguales. Por lo tanto no es significativo hablar de un coset como ido o correcto a menos que un primer especifique a subgrupo subyacente. Para grupos abelian o los grupos escritos aditivo, la notación utilizaron cambios a g+H y H+g respectivamente
3.2.3 Matrices de Hamming. La matriz de control de Hq(r) es una matriz que tiene r filas y n = columnas, y el código Hq(r) es un [n,k,3]-código donde k = n – r. Esta matriz se llama matriz de Hamming y no es única. Consideremos los elementos de Hq(r) como números en el sistema de numeración de base q. Elegimos los que son distintos de cero y que tienen dígitos más significativo igual a 1. Entonces las columnas de Hq(r) son estos números escritos en orden creciente.
H2(3)
r = 3. Las columnas son números de 3 dígitos binarios. n= d=3 El tomar el dígito más significativo igual a 1 implica que cogemos un único punto en cada recta.
Las columnas están ordenadas en orden creciente. n=
21
Si pusiésemos la columna sería múltiplo de y así d = 2 (cogeríamos 2 vectores en la misma recta).
r = 3 = n – k k = 28 m = qk = qn-r Estos fueron los primeros códigos correctores de errores. En el caso binario la matriz de control está formada por todos los números binarios menos el cero.
Proposición:
Los
códigos
de
Hamming
son
códigos
perfectos.
Demostración: m = qn-r qn-r · (1 + n · (q – 1)) = qn Vamos a ver la descodificación de los códigos de Hamming. Proposición: Si una palabra x H2(r) sufre un único error resultando la palabra y entonces el síndrome de y, , es la representación binaria de la posición del error de la palabra recibida. Demostración: Supongamos que el error se ha cometido en la posición i, es decir, y = x + ei, con la palabra de error. Entonces: h(y) = h(x+ei) = h(x) + h(ei) = h(ei) = ei= columna i-ésima de H2(r) La columna i-ésima es la representación binaria del número i, i es la posición del error. Conocido u se corrige el error calculando x = y - ei, cambiando el i-ésimo bit de y. [7,4,3]-código Supongamos que se recibe la palabra y = 1101110
22
100 = 4 El error se ha cometido en la posición 4. La palabra de error es e4 = (0001000). La palabra emitida es x = y – e4 = 1100110 A este método de descodificación se le llama descodificación de Hamming. Proposición: Supongamos que una palabra x Hq(r) sufre un único error, resultando la palabra recibida y. Sea h(y) Kr el síndrome de la palabra recibida y a K el símbolo más significativo de h(y). Si la columna de Hq(r) que contiene a a-1h(y) es la columna i-ésima entonces la palabra de error es y se verifica que x = y - aei. Demostración: Supongamos que el error se ha cometido en la posición i-ésima de modo que y = x + aei, con . Entonces: h(y) = h(aei) = = a·i-ésima columna de Hq(r). Ejemplo: H3(3) y supongamos que se recibe la palabra y = 1101112211201. Descodificar esta palabra. h(y) no es una columna de H3(3). (201) = 2 · (102) (102) es la 7ª columna de H3(3), luego la palabra de error es a·e7 = 2·(0000001000000). La palabra emitida es x = y – 2e7 = 1101110211201
3.2.4 Campos finitos. En álgebra abstracta, un cuerpo finito, campo finito o campo de Galois (llamado así por Évariste Galois) es un cuerpo que contiene un número finito de elementos. Los cuerpos finitos son importantes en teoría de números, geometría algebraica, teoría de Galois, y criptografía. Los cuerpos finitos son totalmente conocidos, y serán descritos más abajo.
Dado que todo cuerpo de característica 0 contiene a los racionales y es por lo tanto infinito, todos los campos finitos tienen característica prima, y por lo tanto, su tamaño (o cardinalidad) es de la forma pn, para p primo y n > 0 entero (pues el campo es un espacio vectorial sobre el subcuerpo de cardinalidad p generado por el elemento 1). No es en general cierto, sin embargo, que todo cuerpo de característica prima sea finito.
23
Para un primo p, los enteros módulo p forman un cuerpo de p elementos, denotado por Z/pZ (pues su grupo aditivo es isomorfo al grupo cíclico de p elementos), Fp, o GF(p); en algunos casos se usa Zp, aunque esta notación es evitada por teoristas de los números, pues puede crear confusión con el anillo de los números p-ádicos. Todo cuerpo con p elementos es isomorfo a éste. Si q = pn es una potencia de un primo, existe (salvo isomorfismo) exactamente un campo con q elementos, denotado por Fq o GF(q). Se puede construir como sigue: encuéntrese un polinomio irreducible f(X) de grado n con coeficientes en Fp, y defínase Fq = Fp[X] / , donde Fp[X] denota el anillo de todos los polinomios con coeficientes en Fp, denota el ideal generado por f(X), y la barra diagonal indica el anillo cociente (definido de forma similar al grupo cociente). El polinomio f(X) se puede hallar factorizando Xq-X sobre Fp. El campo Fq contiene a (una copia de) Fp como subcampo. No hay otros campos finitos.
3.2.5 Anillos de polinomios. Sea A un anillo y S cualquier conjunto. El conjunto A[S] de todos los objetos
(1)
,
en donde , y cada n-tupla de números naturales es diferente para diferente valor de i, se dice anillo de polinomios con indeterminadas en S sobre A. Hechos de interés sobre anillos de polinomios tienen que ver con las propiedades del mismo a partir del anillo en el que tienen sus coeficientes. Por ejemplo, cuando A es un dominio íntegro, A[S] también lo es, y las unidades de A[S] son las mismas que las de A. Por el contrario A[S] nunca será un cuerpo, no importando que A lo sea o no, pues aunque las unidades de A[S] sean las mismas que las de A, A es tan sólo un subanillo de A[S]. Sin embargo, el anillo A[S] es un dominio integro si A lo es, luego, dado el caso, se puede construir el cuerpo de cocientes de A[S] (i.e. el cuerpo de fracciones de polinomios), que se denota comúnmente por A(S). Los coeficientes de los polinomios de un anillo A[S] pueden tomarse no solo como los elementos de A. En la práctica podemos hacer agrupaciones del tipo
24
y éstas también deben hacerse en un anillo de polinomios A[S]. Para ello se separan los elementos de S en dos conjuntos disjuntos, digamos R y T, luego el anillo de polinomios A[R][T] tiene coeficientes en el anillo de polinomios A[R] e indeterminadas en . Si A es un anillo y
, claramente A[R] es un subanillo de A[S].
Sea A un anillo unitario. Todo polinomio no nulo de A[x] cuyo coeficiente director sea una unidad puede dividir euclídeamente a cualquier otro polinomio de A[x] y el grado del resto es estrictamente menor que el grado de del divisor. Es decir, si D y d son polinomios de A[x] no nulos, con el coeficiente director de d una unidad de A, entonces existen polinomios c y r de A[x] tales que
con
Así, para que la división de polinomios sea siempre posible en un anillo de polinomios A[x], A debe de ser un cuerpo (i.e. todo elemento de A debe ser una unidad), y si así sucede A[x] será un dominio euclídeo. Un hecho muy importante es que un anillo de polinomios A[x] es un dominio de ideales principales (DIP) si y sólo si A es un cuerpo. Puesto que todos los dominios euclídeos son DIPs, tenemos que A[S] no es un dominio euclídeo si S contiene más de un elemento, pues ,y nunca es un cuerpo y por tanto tampoco un DIP.
3.2.6 Polinomios irreducibles En Teoría de Anillos, un polinomio no constante (y por lo tanto no nulo) p con coeficientes en un dominio íntegro R (es decir, ) es irreducible si no puede factorizarse como producto de polinomios de manera que todos ellos tengan grados menor que deg(p). Es decir, si entonces ha de ser o (es decir, alguno de ellos ha de ser un polinomio constante). Esto es un caso particular de elemento irreducible en un dominio íntegro. El dominio íntegro R puede, entre otros, ser el conjunto de los números reales (que es dominio íntegro por ser cuerpo), el conjunto de los números complejos (también cuerpo), el conjunto de los números racionales (cuerpo también) o el conjunto de los números enteros (que no es cuerpo pero sí dominio íntegro).
25
Un polinomio irreducible es polinomio primitivo si y solo si p es primo y x es un elemento de orden Para probar si un polinomio es irreducible se pueden aplicar varios criterios, entre los que se encuentran el criterio de c o el criterio de reducción.
3.2.7 Cuadrados latinos Un cuadrado latino es una matriz de n×n elementos, en la que cada casilla está ocupada por uno de los n símbolos de tal modo que cada uno de ellos aparece exactamente una vez en cada columna y en cada fila. Las siguientes matrices son cuadrados latinos:
Los cuadrados latinos se dan como una Tabla de multiplicar (Tabla Cayley) de quasigrupos. Estos tienen su aplicación en el diseño de experimentos. El nombre de Cuadrados Latinos se origina con Leonhard Euler quién utilizó caracteres Latinos como símbolos. Un cuadrado latino se dice que está reducido (o normalizado o de forma estandarizada) si la primera fila y la primera columna están en orden natural. Por ejemplo, el primer cuadrado está reducido, porque la primera fila y la primera columna son 1, 2, 3. Es posible hacer un cuadrado latino permutando (reordenando) las filas y las columnas. Muchas operaciones sobre un Cuadrado latino produce otro Cuadrado latino (por ejemplo, alternar filas). Si permutamos las filas, permutamos las columnas, y permutamos los símbolos de un Cuadrado latino obtenemos un nuevo Cuadrado latino que decimos que es isotópico del primero. El isotopismo es una relación de equivalencia, en base a esto se dice que todos los 26
Cuadrados latinos están divididos en subgrupos, llamados clases isotópicas, según esto dos Cuadrados de la misma clase se dice que son isotópicos, y dos de clases diferentes son no isotópicos. Otro tipo de operación es simple de explicar usando la representación de estos por arreglos ortogonales. Si reorganizamos consciente y sistemáticamente los tres elementos de cada tripleta (f, c, s) por (c, f, s) lo cual corresponde a una transposición del cuadrado (reflejado en la diagonal principal), o podemos remplazar cada tripleta (f, c, s) por (c, s, f), lo que es una operación más complicada. Todas juntas nos dan 6 posibilidades, incluida no hacer nada, dándonos 6 Cuadrados Latinos llamados conjugados del cuadrado original. Finalmente, podemos combinar estas dos operaciones equivalentes: Dos Cuadrados Latinos son paratópicos si uno de ellos es conjugado del otro. Esto es nuevamente una relación de equivalencia, con la clase de equivalencia principal llamada Clase Principal, especies o clase paratópica. Cada clase contiene 6 clases isotópicas.
3.2.8 Criptografía. La criptografía (del griego κρύπτω krypto, «oculto», y γράφω graphos, «escribir», literalmente «escritura oculta») es el arte o ciencia de cifrar y descifrar información mediante técnicas especiales y se emplea frecuentemente para permitir un intercambio de mensajes que sólo puedan ser leídos por personas a las que van dirigidos y que poseen los medios para descifrarlos. Con más precisión, cuando se habla de esta área de conocimiento como ciencia, se debería hablar de criptología, que a su vez engloba tanto las técnicas de cifrado, es decir, la criptografía propiamente dicha, como sus técnicas complementarias, entre las cuales se incluye el criptoanálisis, que estudia métodos empleados para romper textos cifrados con objeto de recuperar la información original en ausencia de las claves. En la jerga de la criptografía, la información original que debe protegerse se denomina texto en claro o texto plano. El cifrado es el proceso de convertir el texto plano en un galimatías ilegible, denominado texto cifrado o criptograma. Por lo general, la aplicación concreta del algoritmo de cifrado (también llamado cifra) se basa en la existencia de una clave: información secreta que adapta el algoritmo de cifrado para cada uso distinto. Cifra es una antigua palabra arábiga para designar el número cero; en la Antigüedad, cuando Europa empezaba a cambiar del sistema de numeración romano al arábigo, se desconocía el cero, por lo que este resultaba misterioso, de ahí probablemente que cifrado signifique misterioso. Las dos técnicas más sencillas de cifrado, en la criptografía clásica, son la sustitución (que supone el cambio de significado de los elementos básicos del mensaje -las letras, los dígitos
27
o los símbolos-) y la trasposición (que supone una reordenación de los mismos); la gran mayoría de las cifras clásicas son combinaciones de estas dos operaciones básicas. El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la clave. El protocolo criptográfico especifica los detalles de cómo se utilizan los algoritmos y las claves (y otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos, algoritmos de cifrado, procesos de gestión de claves y actuaciones de los usuarios, es lo que constituyen en conjunto un criptosistema, que es con lo que el usuario final trabaja e interactúa. Existen dos grandes grupos de cifras: los algoritmos que usan una única clave tanto en el proceso de cifrado como en el de descifrado, y los que emplean una clave para cifrar mensajes y una clave distinta para descifrarlos. Los primeros se denominan cifras simétricas, de clave simétrica o de clave privada, y son la base de los algoritmos de cifrado clásico. Los segundos se denominan cifras asimétricas, de clave asimétrica o de clave pública y forman el núcleo de las técnicas de cifrado modernas. En el lenguaje cotidiano, la palabra código se usa de forma indistinta con cifra. En la jerga de la criptografía, sin embargo, el término tiene un uso técnico especializado: los códigos son un método de criptografía clásica que consiste en sustituir unidades textuales más o menos largas o complejas, habitualmente palabras o frases, para ocultar el mensaje; por ejemplo, "cielo azul" podría significar «atacar al amanecer». Por el contrario, las cifras clásicas normalmente sustituyen o reordenan los elementos básicos del mensaje -letras, dígitos o símbolos-; en el ejemplo anterior, «rcnm arcteeaal aaa» sería un criptograma obtenido por transposición. Cuando se usa una técnica de códigos, la información secreta suele recopilarse en un libro de códigos. Con frecuencia los procesos de cifrado y descifrado se encuentran en la literatura como encriptado y desencriptado, aunque ambos son neologismos erróneos —anglicismos de los términos ingleses encrypt y decrypt— todavía sin reconocimiento académico. Hay quien hace distinción entre cifrado/descifrado y encriptado/desencriptado según estén hablando de criptografía simétrica o asimétrica, pero la realidad es que la mayoría de los expertos hispanohablantes prefieren evitar ambos neologismos hasta el punto de que el uso de los mismos llega incluso a discernir a los aficionados y novatos en la materia de aquellos que han adquirido más experiencia y profundidad en la misma. Ideológicamente cifrar equivale a escribir y descifrar a leer lo escrito.
28