Está en la página 1de 6

TEORIAS DE DETECION DE ERRORES

Nombre: Ronny Guevara

Paridad simple (paridad horizontal)[editar]


Consiste en añadir un bit de más a la cadena que queremos enviar, y que nos indicará si el
número de unos (bits puestos a 1) es par o es impar. Si es par incluiremos este bit con el valor
= 0, y si no es así, lo incluiremos con valor = 1.

Ejemplo de generación de un bit de paridad simple:

Queremos enviar la cadena “1110100”:


1º Contamos la cantidad de unos que hay: 4 unos
2º El número de unos es par por tanto añadimos un bit con valor = 0
3º La cadena enviada es 11101000

Es útil para detección de errores, pero, en condiciones de seguridad, no podemos confiar en


que el CRC puede verificar plenamente que los datos son los correctos en caso de que se
hayan producido cambios deliberados y no aleatorios.
A menudo se piensa que si, cuando llega un mensaje, este y su CRC coinciden, quiere decir
que el mensaje no ha podido ser alterado durante su transmisión, aunque se haya transmitido
por un canal abierto.
Esta suposición es falsa porque CRC es un mal método de cifrado de datos. De hecho, el
CRC no se trata realmente de un método de cifrado, lo que realmente hace es utilizarse para
el control de integridad de datos, pero en algunos casos se supone que se utilizarán para el
cifrado.
Cuando un CRC se calcula, el mensaje se conserva (no cifrado) y la constante de tamaño
CRC se sitúa hacia el final (es decir, el mensaje puede ser tan fácil como leer antes de la
posición que ocupa el CRC).
Además, la longitud del CRC es por lo general mucho más pequeña que la longitud del
mensaje, es imposible para una relación de 1:1 entre la CRC y el mensaje.
Así, numerosos códigos producirán el mismo CRC.
Por supuesto, estos códigos están diseñados para ser lo suficientemente diferentes como para
variar (y por lo general solo en uno o dos bits). Pequeños cambios en la palabra clave
producirían una gran diferencia entre un CRC y otro; por ese motivo es posible detectar el
error.
Si la manipulación del mensaje (cambios de los bits) es deliberada, entonces se tomara una
nueva clave, produciendo un falso CRC el cual puede ser calculado para el nuevo mensaje y
sustituir el CRC real en el final del paquete y esta modificación no podrá ser detectada.
La CRC sirve para verificar la integridad, pero no para saber si el mensaje es correcto.
Por el contrario, un medio eficaz para proteger a los mensajes contra la manipulación
intencional es el uso de un código de autenticación de mensajes como HMAC.

Cálculo de CRC[editar]
La mecánica de la informática con su lenguaje binario produce unas CRC simples. Los bits
representados de entrada son alineados en una fila, y el (n + 1) representa el patrón de bits
del divisor CRC (llamado polinomio) se coloca debajo de la parte izquierda del final de la
fila. Aquí está la primera de ellas para el cálculo de 3 bits de CRC:

11010011101100 <--- entrada


1011 <--- divisor (4 bits)
--------------
01100011101100 <--- resultado

Si la entrada que está por encima del extremo izquierdo del divisor es 0, no se hace nada y
se pasa el divisor a la derecha de uno en uno. Si la entrada que está por encima de la izquierda
del divisor es 1, el divisor es Or exclusiva en la entrada (en otras palabras, por encima de la
entrada de cada bit el primer bit conmuta con el divisor). El divisor es entonces desplazado
hacia la derecha, y el proceso se repite hasta que el divisor llega a la derecha, en la parte final
de la fila de entrada. Aquí está el último cálculo:

00000000001110 <--- resultado de la multiplicación de cálculo


1011 <--- divisor
--------------
00000000000100 <--- resto (3 bits)

Desde la izquierda se divide por cero todos los bits de entrada, cuando este proceso termina
el único bits en la fila de entrada que puede ser distinto de cero es n bits más a la derecha, en
la parte final de la fila. Estos n bits son el resto de la división, y será también el valor de la
función CRC (es el CRC escogido a menos que la especificación de algún proceso posterior
lo cambie).
Matemáticas del CRC
Matemáticas del CRC
Este apartado se refiere al análisis matemático de este proceso de división, como pone de
manifiesto la manera de elegir un divisor que garantiza la detección de errores buenas
propiedades. En este análisis, los dígitos de las cadenas de bits son considerados como los
coeficientes de un polinomio en algunos variables x/coeficientes, que son elementos del
campo finito binario en lugar de los números decimales. Este «polinomio» forma unas
cadenas de bits que pueden observarse como elementos de un anillo. Un anillo es, hablando
en términos generales, un conjunto de elementos. Es decir, como los números que pueden ser
operados por una operación semejante pero no idéntica a la de la suma y además alguna otra
operación semejante a la multiplicación. Estas operaciones poseen muchas de las propiedades
de la aritmética: conmutativa, asociativa, y distributiva.

Código Hamming

Es un código detector y corrector de errores que lleva el nombre de su inventor, Richard


Hamming. En los datos codificados en Hamming se pueden detectar errores en un bit y
corregirlos, sin embargo no se distingue entre errores de dos bits y de un bit (para lo que se
usa Hamming extendido). Esto representa una mejora respecto a los códigos con bit de
paridad, que pueden detectar errores en sólo un bit, pero no pueden corregirlo.

El código Hamming sugiere, que si añadimos junto al mensaje más bits detectores-
correctores de error y si esos bits se pueden ordenar de modo que diferentes bits de error
producen diferentes resultados, entonces los bits erróneos podrían ser identificados. En un
conjunto de siete bits, hay sólo siete posibles errores de bit, por lo que con tres bits de control
de error se podría especificar, además de que ocurrió un error, en qué bit fue. Hamming
estudió los esquemas de codificación existentes, incluido el de dos entre cinco, y generalizó
sus conclusiones. Para empezar, desarrolló una nomenclatura para describir el sistema,
incluyendo el número de los bits de datos y el de los bits detectores-correctores de error en
un bloque.

Este código auto corrector permite detectar y corregir errores mediante el empleo de bits de
paridad con determinadas combinaciones únicas de bits de información. Para demostrar la
formación de una estructura que utiliza este código, emplearemos un carácter de 4 bits (I3, I5,
I6 e I7) de información e intercalaremos 3 bits de verificación de paridad (P1, P2 y P4).

El carácter de siete bits resultante será el indicado a continuación:

FORMACIÓN DEL CÓDIGO HAMING


PARA UN CARÁCTER DE 4 BITS

Bits de información I3 I5 I6 I7
Bits de polaridad P1 P2 P4
Carácter resultante P1 P2 I3 P4 I5 I6 I7

La relación entre los bits de información y los de paridad están señalados en el cuadro
siguiente:

RELACION ENTRE LOS BITS DE


INFORMACION Y PARIDAD

Bits de paridad Bits de información


P1 I3 I5 I7
P2 I3 I6 I7
P4 I5 I6 I7

Si el carácter de 4 bits de información a transmitir es por ejemplo 0 0 1 1, se calcula el código


de Hamming equivalente al carácter original. Supongamos que se produce durante la
transmisión un error en el bit I6, el cual en lugar de ser 1 se recibe 0. Dado que este bit es
verificado por P2 y P4, ambos tendrán paridad impar en sus respectivas combinaciones; por
lo tanto, queda identificado el bit erróneo recibido (I6).

EJEMPLO DE APLICACIONES
DEL CODIGO HAMMING

I3 I5 I6 I7
CARÁCTER ORIGINAL 0 0 1 1

Calculo de bit Bits de Bits de


de paridad información paridad
(PAR) asociados (PAR)
P1 0 0 1 1
P2 0 1 1 0
P3 0 1 1 0

P1 P2 I3 P4 I5 I6 I7
CODIGO HAMMING FORMADO
1 0 0 0 0 1 1

Código de Hagelbarger

Este código detector-corrector de errores es capaz de corregir hasta 6 bits erróneos siempre
y cuando los sucedan al menos 19 bits válidos. La implementación del código de Hagelbarger
implica el empleo de un circuito codificador y un circuito decodificador. A continuación
muestra el codificador Hagelbarger:

Código de Hagelbarger

Este código detector-corrector de errores es capaz de corregir hasta 6 bits erróneos siempre
y cuando los sucedan al menos 19 bits válidos. La implementación del código de Hagelbarger
implica el empleo de un circuito codificador y un circuito decodificador. A continuación
muestra el codificador Hagelbarger:

Circuito codificador Hagelbarger

El codificador Hagelbarger recibe los bits del mensaje y los pasa uno a la vez a través del
registro de 7 bits. Cada vez que entra un nuevo bit se genera un bit de paridad par a partir de
los bits contenidos en la primera y cuarta posición del registro. Los bits que salen del registro
de 7 bits y los bits de paridad generados se envían alternadamente por la línea de transmisión;
es decir, este código presenta una redundancia del 100%. De esta forma, todos los bits del
mensaje se encuentran enlazados, por medio de la paridad par, con el cuarto bit que le
precede y sucede.

En la siguiente figura se puede observar el decodificador Hagelbarger:

Circuito decodificador Hagelbarger

El decodificador Hagelbarger recibe a la sucesión de bits y separa a los bits del mensaje de
los bits de paridad, enviando a estos últimos hacia un registro circulante. Después de recibir
a cada par de bits (uno del mensaje y otro de paridad) se efectúan 2 verificaciones de paridad
par, denominadas verificaciones de paridad A y B. Laverificación de paridad A comprueba
si las posiciones 1 y 4 del registro de mensajes son iguales mientras que laverificación de
paridad B verifica la igualdad de las posiciones 4 y 7 del mismo registro. Estas verificaciones
de paridad nos indican si debemos o no de invertir los valores de los bits de las posiciones 4
del registro de mensajes y7 del registro circulante antes de pasar a la siguiente posición
correspondiente, de acuerdo con la siguiente tabla de verdad.
PPA = 1 y PPB = 1
Cambio en la posición
ó
4 del registro de mensajes sí:
PPA = 0 y PPB = 1
PPA = 1 y PPB = 0
Cambio en la posición ó
7 del registro circulante sí: PP(PPA, posición 7 del registro
circulante) = 1

Código de Bose-Chaudhuri

Es un código que forma una clase de código de corrección de errores cíclicos que se
construyen utilizando campos finitos, fueron inventados en 1959 por el matemático francés
Alexis Hocquenghem, e independientemente en 1960 por Raj Bose y DK Ray-Chaudhuri.

Una de las características clave de los códigos es que durante el diseño del código, existe un
control preciso sobre el número de errores de símbolos corregibles.

En particular, es posible diseñar códigos binarios que puedan corregir múltiples errores de
bit. Otra ventaja es la facilidad con que se pueden decodificar, a saber, a través de un método
algebraico conocido como decodificación de síndrome. Esto simplifica el diseño del
decodificador para estos códigos, usando hardware electrónico pequeño de baja potencia.

Bibliografía
errores, d. d. (02 de 05 de 2009). http://www.serbi.ula.ve/serbiula/libros-
electronicos/Libros/trasmisiondedatos/pdf/CAPITULO%20VII.pdf. Obtenido de
http://www.serbi.ula.ve/serbiula/libros-
electronicos/Libros/trasmisiondedatos/pdf/CAPITULO%20VII.pdf:
http://www.serbi.ula.ve/serbiula/libros-
electronicos/Libros/trasmisiondedatos/pdf/CAPITULO%20VII.pdf

http://enacademic.com/dic.nsf/enwiki/26098. (08 de marzo de 2018). ACADEMI. Obtenido de


ACADEMI.

También podría gustarte