El algoritmo de suma de comprobación SYSV era un algoritmo de suma de comprobación heredado de uso común . Se ha implementado en UNIX System V y también está disponible a través de la utilidad de línea de comandos de suma .
Este algoritmo es inútil desde el punto de vista de la seguridad y es más débil que el CRC-32 cksum para la detección de errores. [1] [2]
Descripción del algoritmo
La parte principal de este algoritmo es simplemente sumar todos los bytes en una suma de 32 bits. Como resultado, este algoritmo tiene las características de una simple suma: [2]
- reorganizar los mismos bytes en otro orden (por ejemplo, mover texto de un lugar a otro) no cambia la suma de comprobación.
- aumentar un byte y disminuir otro byte en la misma cantidad no cambia la suma de control.
- agregar o quitar cero bytes no cambia la suma de control.
Como resultado, este método no detecta muchos cambios comunes en los datos de texto.
El pseudocódigo de FreeBSD para este algoritmo es:
s = suma de todos los bytes ; r = s % 2 ^ 16 + ( s % 2 ^ 32 ) / 2 ^ 16 ; cksum = ( r % 2 ^ 16 ) + r / 2 ^ 16 ;
La última parte dobla el valor en 16 bits.
Referencias
Fuentes
- página oficial del manual de suma de GNU
- página de descarga de coreutils --- busque y descomprima la versión más reciente del paquete coreutils, lea src / sum.c