online informatica example ejemplo definicion md5 checksum data-consistency adler32

informatica - checksum md5



¿Qué tan confiable es la suma de control adler32? (5)

Me pregunto qué tan confiable es la suma de control adler32, en comparación con, por ejemplo, las sumas de control md5. En wikipedia se dijo que adler32 es "mucho menos confiable" que md5, así que me pregunto cuánto y de qué manera.

Más específicamente, me pregunto si es lo suficientemente confiable como una verificación de consistencia para el archivo de larga duración de archivos (tar) de 20GB +.


Adler-32 y MD5 no son comparables de esta manera. MD5 está destinado a ser una suma de comprobación criptográfica cuando desea asegurarse de que un adversario no haya manipulado un archivo, mientras que Adler-32 (y también CRC, que es comparable a Adler-32) está destinado a garantizar un archivo no ha sido manipulado por accidente (suma de comprobación de integridad).

MD5 en realidad se considera roto por sus propósitos criptográficos, y solo es útil ahora como una verificación de integridad cuando se desean más bits para mayor seguridad. La única forma en que Adler-32 puede ser "menos confiable" es que permite que potencialmente se modifiquen más bits manteniendo la misma salida, lo que significa que hay más espacio para colisiones.

Este enlace proporciona una buena discusión sobre cómo el uso de Adler-32 puede proporcionar beneficios de rendimiento para algunos tipos de código que necesitan usar sumas criptográficas para mayor certeza. Es decir, que puede utilizar la suma de comprobación más pequeña y barata para ver si vale la pena considerar el MD5 / SHA / Whirlpool más caro en el caso de que se cambien los archivos.


Alder32 tiene un propósito completamente diferente al MD5. Adler32 es una suma de comprobación. MD5 es un resumen de mensaje seguro. Adler32 es para hashes rápidos, tiene un espacio de bits pequeño y un algoritmo simple. Su índice de colisión es bajo, pero no lo suficientemente bajo para ser seguro. MD5, SHA y otros hash criptográficos / seguros (o compendios de mensajes) tienen espacios de bits mucho más grandes y algoritmos más complejos, por lo tanto tienen menos colisiones. Comparar SHA2-256, por ejemplo; 256 bits en comparación con los apenas 32 bits de Adler32.

Adler tiene su propósito, en tablas hash, por ejemplo, o verificaciones rápidas de integridad de datos. Aún así, no está diseñado con el mismo propósito que MD5 u otros resúmenes seguros.

Por cierto, si lo que necesita es una suma de comprobación simple pero algo confiable, entonces parece que Fletcher supera a Adler. Yo especulaba que ambos superaron el CRC, aunque tal vez no sea una suma de comprobación basada en la suma simple (aunque es muy propenso a las colisiones). Si desea AMBOS rendimiento y seguridad, entonces use ambos algoritmos. Haga que el algoritmo de suma de comprobación se use como un cálculo y búsqueda rápidos, luego use el resumen más amplio para obtener una confirmación más completa si lo encuentra.

Para responder a su pregunta sobre la garantía de la validez de los archivos, diría que probablemente sea suficiente. ¿Mejor elección? Cuestionable. Posibilidad de error? Muy bajo.


Es menos confiable que, por ejemplo, MD5 o CRC (casi lo mismo que CRC en realidad). La ventaja es la velocidad, la desventaja se muestra más para datos cortos (algunos cientos de bytes); el significado es que la distribución de valores hash no cubre muy bien la salida disponible de 32 bits. Para archivos grandes es una buena opción.


Este es un algoritmo antiguo ; uno que, como dice la página de Wikipedia, "cambia la precisión por velocidad". En resumen, no , no deberías confiar en ello.

El punto es que con múltiples corrupciones, esta suma de comprobación aún podría pasar como "bien". Debido al efecto de avalancha, es mucho menos probable que esto ocurra en los algoritmos modernos (incluso el MD5 de envejecimiento).

Para las máquinas de hoy, la velocidad no es una gran preocupación, por lo tanto, sugiero usar un algoritmo moderno (como SHA2, incluso MD5, si la familia SHA2 es demasiado moderna para sus gustos), incluso para archivos en el rango de TB. El insignificante ahorro de tiempo que obtendría con un antiguo sistema de suma de control no es lo suficiente para compensar el riesgo significativamente mayor de corrupción de datos no detectados, y honestamente, 20GB de archivos no son tantos datos en estos días que debería usar débil ( y me atrevo a decir roto) algoritmos.


Para obtener detalles sobre las capacidades de comprobación de errores de la suma de comprobación de Adler-32, consulte, por ejemplo, Revisiting Fletcher and Adler Checksum. Maxino, 2006.

Este documento contiene un análisis de la distancia de Hamming proporcionada por estas dos sumas de comprobación y proporciona una indicación de la tasa de error residual para palabras de datos de hasta aproximadamente 2 ^ 11 bits. Lo que, obviamente, es mucho menor que su requerimiento de 2 ^ 38 bits ...