Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Nacional Autónoma de México Facultad de Ingeniería Redes de Datos Seguras Grupo: 03 - Semestre: 2023-1 Tarea: Control de errores - CRC Fecha de entrega: 4/10/2022 Profesora: M.C. María Jaquelina López Barrientos Alumno: Téllez González Jorge Luis Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ Introducción El CRC es un mecanismo de detección de errores que se utiliza comúnmente en las redes informáticas y de almacenamiento para identi�car los datos cambiados o dañados durante la transmisión. Cuando un dispositivo conectado a la red necesita transmitir datos, el dispositivo ejecuta un algoritmo de cálculo basado en códigos cíclicos contra los datos que resultan en un número de longitud �ja. Este número de longitud �ja se denomina valor CRC, pero coloquialmente, a menudo se denomina CRC para abreviar. Este valor CRC se agrega a los datos y se transmite a través de la red hacia otro dispositivo. Este dispositivo remoto ejecuta el mismo algoritmo de código cíclico con respecto a los datos y compara el valor resultante con el CRC agregado a los datos. Si ambos valores coinciden, el dispositivo remoto asume que los datos se transmitieron a través de la red sin estar dañados. Si los valores no coinciden, el dispositivo remoto asume que los datos se dañaron durante la transmisión a través de la red. Estos datos dañados no se pueden con�ar y se descartan. (CISCO, 2021) Figura 1. El CRC se agrega a los mensajes como una validación del contenido de las tramas. Los errores CRC normalmente se mani�estan de dos maneras (CISCO, 2021): ● Incrementar o no los contadores de errores en las interfaces de los dispositivos conectados a la red. ● Pérdida de paquetes/tramas para el trá�co que atraviesa la red debido a que los dispositivos conectados a la red descartan tramas dañadas. 2 Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ Los CRC se utilizan para la detección de errores en varias tecnologías de redes informáticas, como Ethernet (ambas variantes, por cable e inalámbricas), Token Ring, Asynchronous Transfer Mode (ATM) y Frame Relay. Las tramas Ethernet tienen un campo de Secuencia de veri�cación de tramas (FCS) de 32 bits al �nal de la trama (inmediatamente después de la carga útil de la trama) donde se inserta un valor CRC de 32 bits. Desarrollo 1. Calcular los bits de protección para los datos mostrados si: 𝐺(𝑥) = 𝑥4 + 𝑥2 + 1 a. Datos: 1100110010 3 Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ b. Datos: 1010111011 4 Jaquelina López ok Jaquelina López ok Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ c. Datos: 1000100101 5 Jaquelina López ok Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ 2. Determinar para cada una de las siguientes tramas recibidas si llegaron sin errores: a) 10101110000111 b) 10010011111011 6 Jaquelina López ok Jaquelina López ok Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ c) 11100000111000 CRC-64 CRC es un método matemático que permite detectar errores en la información que se transmite. El orden del polinomio generador es el que determina el tipo de CRC que se implementa; considerando que, por ejemplo, el CRC-8 emplea polinomios de dimensión máxima de 9 bits, CRC-16 de dimensión máxima de 17 bits, de forma sucesiva. Para el caso particular de CRC-64, se emplea una longitud polinomial de hasta 65 bits. De acuerdo al estándar ISO 3309, el polinomio generador de CRC-64 es: 𝐺(𝑥) = 𝑥64 + 𝑥4 + 𝑥3 + 𝑥 + 1 Existe otra de�nición para el polinomio generador dada por la especi�cación ECMA-182 sobre las características físicas y magnéticas de las cintas magnéticas para permitir el correcto intercambio de información con ese medio. El polinomio generador completo es de la forma: 7 Jaquelina López ok Jaquelina López ok Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ Figura 2. Longitud compactada del polinomio generador de CRC-64 de ECMA-182. CRC-128 A diferencia de la variante anterior, en esta se emplea un polinomio generador de hasta 129 bits de espacio. En la actualidad, CRC-128 se encuentra en un estado de obsolescencia tecnológica y no tiene ninguna aplicación actual. Se ha propuesto su potencial uso en el ámbito criptográ�co, sin embargo, su naturaleza enfocada a la búsqueda de errores no lo hace un candidato �able para tal propósito. Otra posible propuesta de uso es que CRC-128 podría presentar un escenario factible para hashing sin una cantidad alta de colisiones; siempre y cuando el polinomio generador sea elegido correctamente. Aún así, existen métodos superiores que hacen a CRC-128 una técnica sin un caso de uso real. Dentro de lo anterior, CRC comúnmente se ha comparado con el algoritmo de checksum criptográ�co MD5 que fue diseñado desde un inicio como algoritmo criptográ�co de hashing para generar una �rma de autenticación única para la información con el �n de veri�car su integridad y detectar cualquier corrupción (intencionada o no) de los datos. MD5 produce salidas consistentes en hashes de 128 bits. Aunque las comparaciones con CRC surgen con facilidad, sus aplicaciones son distintas: ● CRC está enfocado principalmente a la detección de errores en la capa de enlace y no es un método diseñado para hashing seguro. ● MD5 se emplea para generar �rmas de identi�cación o contraseñas seguras , así como almacenarlas. También se puede emplear para revisar la integridad de la información, pero a nivel puramente lógico. 8 Jaquelina López ok Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ Conclusiones Por medio de la investigación y el trabajo desarrollado me fue posible abordar más acerca de la técnica de control de errores CRC y las aplicaciones que tiene para asegurar la �abilidad de las comunicaciones en una red. CRC, dentro del contexto en que está ubicado, es un método �able y que permite contar con una métrica bien de�nida para detectar de forma e�ciente errores en las tramas mediante un proceso similar al hashing que emplean algoritmos más avanzados como MD5. Sin embargo, es importante resaltar que son métodos con un enfoque y una base completamente distinta, ya que en CRC se está hablando de la transición hacia lo lógico, mientras que los algoritmos como MD5 o SHA operan a nivel lógico. Aunque en esencia es un método en teoría sencillo, a medida que se aumenta el grado del polinomio generador la complejidad de la división aumentará; con la ganancia que ello supone en la�abilidad a la hora de detectar errores. Referencias CISCO (2021). Comprender los errores de verificación de redundancia cíclica en los switches Nexus. Consultado el 2 de octubre de 2022 desde: https://www.cisco.com/c/es_mx/support/docs/ios-nx-os-software/nx-os-software/217554- understand-cyclic-redundancy-check-crc.html Pypi (s.f.). CRC64ISO. Consultado el 2 de octubre de 2022 desde: https://pypi.org/project/crc64iso/ Torvald, L. (s.f.). Normal 64-bit CRC calculation. Consultado el 2 de octubre de 2022 desde: https://github.com/torvalds/linux/blob/master/lib/crc64.c Narkive (2003). CRC 32 vs CRC 64 vs CRC 128 vs MD5. Consultado el 3 de octubre de 2022 desde: https://sci.crypt.narkive.com/rJFP1uDs/crc-32-vs-crc-64-vs-crc-128-vs-md5 StackOver�ow (2010). Does anyone have CRC128 and CRC256 Code in C++ and C#? Consultado el 3 de octubre de 2022 desde: 9 https://www.cisco.com/c/es_mx/support/docs/ios-nx-os-software/nx-os-software/217554-understand-cyclic-redundancy-check-crc.html https://www.cisco.com/c/es_mx/support/docs/ios-nx-os-software/nx-os-software/217554-understand-cyclic-redundancy-check-crc.html https://pypi.org/project/crc64iso/ https://github.com/torvalds/linux/blob/master/lib/crc64.c https://sci.crypt.narkive.com/rJFP1uDs/crc-32-vs-crc-64-vs-crc-128-vs-md5 Facultad de Ingeniería Redes de Datos Seguras______________________________________________________________________________________________________________ https://stackover�ow.com/questions/3550594/does-anyone-have-crc128-and-crc256-code-i n-c-and-c Bhardwaj R. (s.f.) MD5 vs CRC – Detailed Comparison. Consultado el 4 de octubre de 2022 desde: https://networkinterview.com/md5-vs-crc-detailed-comparison/ 10 https://stackoverflow.com/questions/3550594/does-anyone-have-crc128-and-crc256-code-in-c-and-c https://stackoverflow.com/questions/3550594/does-anyone-have-crc128-and-crc256-code-in-c-and-c https://networkinterview.com/md5-vs-crc-detailed-comparison/
Compartir