Adler-32

Avatar de Usuario
JRD
Administrador del Sitio
Mensajes: 251
Contactar:

Mensaje sin leer #1 » Mié, 04 Dic 2019, 21:15

Adler-32 es un algoritmo de suma de verificación que fue inventado por Mark Adler en 1995, y es una modificación de la suma de verificación de Fletcher. En comparación con una verificación de redundancia cíclica de la misma longitud, cambia la fiabilidad por la velocidad (prefiriendo la última). Adler-32 es más confiable que Fletcher-16 , y un poco menos confiable que Fletcher-32.

Historia
La suma de comprobación Adler-32 es parte de la biblioteca de compresión zlib ampliamente utilizada , ya que ambas fueron desarrolladas por Mark Adler. Se utiliza una versión de " suma de comprobación continua " de Adler-32 en la utilidad rsync.

El algoritmo
Se obtiene una suma de comprobación Adler-32 calculando dos sumas de comprobación de 16 bits A y B y concatenando sus bits en un entero de 32 bits. A es la suma de todos los bytes en la secuencia más uno, y B es la suma de los valores individuales de A de cada paso.

Al comienzo de una carrera de Adler-32, A se inicializa a 1, B a 0. Las sumas se realizan en el módulo 65521 (el número primo más grande menor que 2 16 ). Los bytes se almacenan en orden de red ( big endian ), B ocupa los dos bytes más significativos.

La función puede expresarse como

Código: Seleccionar todo

A = 1 + D 1 + D 2 + ... + D n (mod 65521)

B = (1 + D 1 ) + (1 + D 1 + D 2 ) + ... + (1 + D 1 + D 2 + ... + D n ) (mod 65521)
  = n × D 1 + ( n −1) × D 2 + ( n −2) × D 3 + ... + D n + n (mod 65521)

Adler-32 ( D ) = B × 65536 + A

donde D es la cadena de bytes para los que la suma de comprobación se calcula, y n es la longitud de D .

Ventajas y desventajas
  • Al igual que el CRC-32 estándar , la suma de verificación Adler-32 se puede falsificar fácilmente y, por lo tanto, no es segura para proteger contra modificaciones intencionales.
  • Es más rápido que CRC-32 en muchas plataformas.
  • Adler-32 tiene una debilidad por los mensajes cortos con unos pocos cientos de bytes, porque las sumas de verificación para estos mensajes tienen una cobertura deficiente de los 32 bits disponibles.
Debilidad
Adler-32 es débil para mensajes cortos porque la suma A no se ajusta. La suma máxima de un mensaje de 128 bytes es 32640, que está por debajo del valor 65521 utilizado por la operación de módulo, lo que significa que aproximadamente la mitad del espacio de salida no se utiliza y la distribución dentro de la parte utilizada no es uniforme. Se puede encontrar una explicación extendida en RFC 3309 , que exige el uso de CRC32C en lugar de Adler-32 para SCTP, el Protocolo de transmisión de control de flujo. Adler-32 también ha demostrado ser débil para pequeños cambios incrementales, y también débil para cadenas generadas a partir de un prefijo común y números consecutivos (como nombres de etiquetas autogenerados por generadores de códigos típicos).

Fuente: https://en.wikipedia.org/wiki/Adler-32

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron