Detección de Errores.
4. Comprobación de Redundancia Cíclica.
¿Que es CRC?
El núcleo de la verificación CRC es implementar la operación de división sin pedir prestado.
Aritmética módulo 2
La aritmética módulo 2 hace uso de sumas binarias sin acarreo, lo cual es exactamente igual que la operación lógica exclusive-OR. La operación de resta binaria sin acarreos es también igual que la operación lógica exclusive-OR. Por ejemplo:
El siguiente es un ejemplo para ilustrar cómo implementar la verificación CRC.
101101 => 1 25 + 0 24 + 1 23+ 1 22 + 0 21 + 1 20
101101 => 1. 32 + 0 . 16+ 1. 8 + 1. 4 + 0. 2 + 1.1
Podemos ver que no es mas que el Polinomio que permite pasar de un número binario a un número decimal.
Justificación del CRC
Esto es lo que usaremos , esta forma de presentación de un Polinomio para justificar el uso de CRC para Detección de errores en la transmisión.
En el receptor divido nuevamente por el MISMO polinómio.
M / P = (T . 2 n-k + R)/P = T/P . 2 n-k + R/P por (1)
Q + R/P + R/P = Q + R/P + R/P
Si la suma + fuera una or exclusiva y si los sumandos R/P son iguales, esta suma da CERO, lo que implicaría que lo transmitido y lo recibido coinciden!!. Este es el principio del Código de Redundancia Cíclica.
Polinomios de Uso Frecuente.
Suelen usarse alguno de estos cuatro polinomios, los mismos son definidos en un Standar.
Observación: El método NO es de cifrado.
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.
Librería en C que permite hacer un cálculo de CRC
Implementación Electrónica
Esto sería: