CRC=Comprobación de redundancia cíclica : tipo de función que recibe un flujo de datos de cualquier longitud como entrada y devuelve un valor de longitud fija como salida. Suele ser usado para designar tanto a la función como a su resultado y como suma de verificación para detectar la alteración de datos durante su transmisión o almacenamiento.
Es útil para detección de errores, pero no podemos confiar en que el CRC puede verificar plenamente que los datos son correctos en caso de que se hayan producido cambios deliberados y no aleatorios.
La suposición de que no ha sido alterado un mensaje porque coincida éste con su CRC es falsa, porque CRC es un mal método de cifrado de datos, 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.
Si la manipulación del mensaje (cambios de los bits) es deliberada, entonces se tomará 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.
No hay comentarios:
Publicar un comentario