"Código de Retención de Errores CRC" Materia Docente Alumno Fecha

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

“Código de retención de Errores CRC”

==Materia==
Telecomunicaciones
==Docente==
M.C. Sandoval Castellanos Carlos
==Alumno==
16170701 – Chavez Verdín Esteban
==Fecha==
Viernes 23 de octubre del 2020
La verificación por redundancia cíclica (CRC) es un código de detección de errores usado
frecuentemente en redes digitales y en dispositivos de almacenamiento para detectar
cambios accidentales en los datos. Los bloques de datos ingresados en estos sistemas
contiene un valor de verificación adjunto, basado en el residuo de una división de
polinomios; el cálculo es repetido, y la acción de corrección puede tomarse en contra de
los datos presuntamente corruptos en caso de que el valor de verificación no concuerde.
Este código es un tipo de función que recibe un flujo de datos de cualquier longitud como
entrada y devuelve un valor de longitud fija como salida. El término suele ser usado para
designar tanto a la función como a su resultado. Pueden ser usadas como suma de
verificación para detectar la alteración de datos durante su transmisión o
almacenamiento. Las CRC son populares porque su implementación en hardware binario
es simple, son fáciles de analizar matemáticamente y son particularmente efectivas para
errores ocasionados por ruido en los canales de transmisión. La CRC fue inventado y
propuesta por W. Wesley Peterson en un artículo publicado en 1961.
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.
Calculo de CRC
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:

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:

Desde la izquierda se divide por cero todos los bits de entrada, cuando este proceso
termina el único bit 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).
El CRC se utiliza como una detección de errores de código, el cual tiene una serie de
aplicaciones usadas cuando se implementa mediante normas, convirtiéndolo así en un
sistema práctico.
Estas son algunas de las aplicaciones:
 Se usa un patrón de prefijos de bit para comprobar su autenticidad. Esto es útil
cuando la trama podría tener errores en los bits de delante de un mensaje, una
alteración que, de otro modo dejaría sin cambios al CRC. A veces un envío agrega n
bits (n es el tamaño de la CRC) al mensaje que se debe controlar ya que se tomaría
un polinomio que no sería el correcto para la división. Esto tiene la conveniencia
de que el CRC del mensaje original con el CRC adjunto es exactamente cero, por lo
que el CRC se puede comprobar simplemente por la división polinómica y
comparando con el resto cero. A veces se realiza una implementación del CRC con
OR exclusivos en el resto de la división polinómica.
 Orden de los bits: en ocasiones, el orden en el que se envían las tramas de datos
no corresponde exactamente con la posición que tendrán los bits en la división
polinómica; es decir, que puede que el primer bit enviado sea el de más peso o
viceversa. Este convenio tiene sentido cuando las tramas a enviar se envían por
puertos series ya que el CRC es comprobado por el hardware de cada máquina, y
cada uno tendrá un convenio conjunto de lectura y posicionamiento de paquetes
para él envió a la capa siguiente.
 Omisión del orden del bit de más peso del polinomio divisor: algunos escritores
proponen omitir esto, puesto que el bit mayor peso es siempre 1, y ya que el bit
CRC debe ser definido por un (n + 1) bits del divisor, es innecesario mencionar el
divisor mayor peso en el mensaje y en el CRC.

También podría gustarte