teoría de códigos

Post on 11-Apr-2017

287 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Teoría de Códigos

Ramfis Sanchez (13-1054)

Matemáticas DiscretasProf. Rina Familia

Teoría de Códigos

La teoría de códigos es una especialidad de las matemáticas que trata de las leyes de la codificación de la información.El auge de las comunicaciones a partir de la segunda mitad del siglo XX motivó un fuerte desarrollo de la teoría de códigos.

Breve cronología del origen de la Teoría de Códigos★ 55 a.C.

○ Julio César, al invadir Gran Bretaña, utiliza códigos para enviar mensajes a sus generales.

★ 1750 d.C.

○ Leonhard Euler sienta las bases de la criptografía de clave pública con su teorema.

★ 1844

○ Samuel Morse transmite su primer mensaje utilizando su código.

★ Década de 1920

○ Se desarrolla la máquina Enigma.

★ 1950

○ Richard Hamming publica un artículo fundamental para crear códigos que detectan y corrigen errores.

★ Década de 1970

○ Desarrollo de la criptografía de clave pública.

Teoría de Códigos

El problema nace de la necesitada de transmitir información de manera segura y fiable a través de un canal que sea poco seguro y poco fiable (con ruido, interferencias, etc).

Nos referimos con poco seguro a un canal que puede ser recibidos y/o alterados por terceros diferentes al emisor y al receptor a quien iba dirigido el mensaje.

Nos referimos con poco fiable, a un canal donde hay ruido, de manera que el mensaje puede llegar alterado o con errores. Un ruido es cualquier cosa que dificulte la correcta recepción del mensaje.

Tipos de Códigos

Los códigos que atacan los problemas de seguridad se llaman Códigos Secretos o Criptográficos y lo que intentan resolver las dificultades por la falta de fiabilidad son los Códigos Detectores y Correctores de Errores.

Además de la transmisión segura y fiable de la información la Teoría de Códigos tiene un tercer aspecto, la llamada Compresión de Datos. Esta estudia cómo codificar los mensajes de la manera más corta posible, eliminando información que sea redundante, de manera que transmitirlos sea poco costoso.

Códigos correctores de error

El diseño de códigos correctores de errores tiene como objetivo construir códigos con redundancia razonable y rápida decodificación. Algunos de los códigos importantes y con más usos para la ingeniería son:

Códigos de Hamming (códigos perfectos para errores simples) y sus variantes.

Códigos de Golay (código perfecto para errores triples).

Códigos BCH (correctores de errores múltiples) y una de sus variantes, los códigos Reed-Solomon (correctores de errores a ráfagas).

Códigos correctores de errorUno de los objetivos de los códigos correctores de error es conseguir aumentar la probabilidad de que el mensaje correcto pueda ser recuperado por el receptor a pesar de los posibles errores, siempre que el número de estos sea razonable.

Por ejemplo, para transmitir los mensajes si y no, podemos asignar al mensaje si el 1 y al no el 0. Sin embargo, en caso de un error o ruido el receptor puede recibir un 0 en lugar de un 1 y no saber si hubo o no un error con el mensaje.

Códigos correctores de errorPero si codificamos el mensaje (si) como 11111 y el (no) cómo 00000. Y se supiese que al transmitir un mensaje solo es posible, por la canal utilizado, cometer un error de uno o dos dígitos, entonces:Al recibir un "00001", el receptor sabrá que se trata de un "no". Así aunque se cometan algunos errores en la transmisión de algunos dígitos, se tendrá la casi certeza de cuál es el error cometido en el mensaje recibido, y corregirlo.

Códigos correctores de errorLa idea es que, antes de enviarlo, el emisor codifica su mensaje m como u. Esto es, añadiendo a m información redundante, de manera que si en el canal se produce ruido r y el receptor en vez de u recibe un mensaje alterado v = u + r, a pesar de todo sea capaz de recuperar el mensaje original m.

Códigos usados en compresión de datos

La compresión de datos está fuertemente relacionada con los códigos correctores de errores. Ambas disciplinas se iniciaron con el artículo de Claude Shannon (1948). En dicho artículo se introduce el concepto de entropía para medir la incertidumbre de una fuente de información o la cantidad de información promedio que contienen los símbolos usados.

Algunos ejemplos de códigos de compresión de datos:Código Huffman (La manera óptima)

Código LZW

Códigos usados en compresión de datos

En un código, los símbolos con menor probabilidad son los que aportan mayor información.Por ejemplo, en un texto, palabras frecuentes como "que", "el", "a" aportan poca información, mientras que palabras menos frecuentes como "corren", "niño", "perro" aportan más información.

Los códigos usados en compresión de datos utilizan la probabilidad para eliminar redundancia y hacer los datos más cortos. Este es el caso del Código Huffman.

Códigos Criptográficos

Los códigos correctores de errores corrigen errores provocados por el canal y no por algún tercero malintencionado. Además, los métodos que se utilizan para codificar y decodificar son públicos.

No es esta la misma situación cuando se quiere enviar un mensaje sin que alguien que haya interceptado el canal pueda interpretar el mensaje (o alterarlo) sin autorización.

Códigos CriptográficosLo que envía el Cifrador y lo que recibe el Descifrador es lo mismo, el mensaje, no se altera al pasar por el Canal. Sin embargo lo que enviamos no es el mensaje original m, sino un versión cifrada Ek(m). La idea es que la única forma de recuperar m a partir del conocimiento de Ek(m) sea aplicando la correspondiente función para descifrar, Dk y que esto no sepa hacerlo el interceptor. El subíndice k representa una clave que solo conocen el Emisor y el Receptor y que es la que imposibilita el descifrado no autorizado.

Referencias● https://es.wikipedia.org/wiki/Teoría_de_códigos

● https://es.wikipedia.org/wiki/Entropía_(información)

● http://rafami.etsisi.upm.es/Algebra/teoriacodigos-Quiros.pdf

● https://es.wikipedia.org/wiki/Compresión_de_datos

top related