martes, 14 de junio de 2011

El Checksum


Una suma de  
verificación o checksum 
Es una forma de control de redundancia, una medida muy simple para proteger la integridad de datos, verificando que no hayan sido corruptos. Es empleado para comunicaciones (internet, comunicación de dispositivos, etc.) tanto como para datos almacenados (archivos comprimidos, discos portátiles, etc.).
El proceso consiste en sumar cada uno de los componentes básicos de un sistema (generalmente cada byte) y almacenar el valor del resultado. Posteriormente se realiza el mismo procedimiento y se compara el resultado con el valor almacenado. Si ambas sumas concuerdan se asume que los datos probablemente no han sido corrompidos.
La forma más simple de checksum no detecta una variedad de corrupciones; particularmente no cambiará si:
§  Se cambia el orden de los bytes de la información.
§  Se agregan o eliminan bytes de valor igual a cero.
§  Múltiples errores que se cancelan unos con otros.
Los tipos de control de redundancia más sofisticados, incluyendo el checksum de Fletcher, Adler-32 y el control de redundancia cíclica (CRC) son diseñados para tratar estas deficiencias considerando no sólo el valor de cada byte sino también el de su posición. El costo de la capacidad de detectar más tipos de error aumenta junto con la complejidad del algoritmo de comprobación.
Estos tipos de control por redundancia son útiles en la detección de las modificaciones accidentales como corrupción de los datos o los errores de almacenamiento en un canal de comunicaciones. Sin embargo, no proporcionan ninguna seguridad contra un agente malévolo mientras que su estructura matemática sea simple. Para proveer este tipo de integridad, es necesario el uso de una función criptográfica hash, como SHA-256. Se han encontrado colisiones en SHA-1, actualmente la opción más popular, pero no hay evidencia en fecha de 2005que SHA-256 sufra deficiencias similares.
En UNIX hay una herramienta llamada cksum que genera un CRC-32 y un checksum para un archivo determinado dado como parámetro.


No hay comentarios: