Suma kontrolna SYSV

Algorytm sumy kontrolnej SYSV był powszechnie używanym, starszym algorytmem sumy kontrolnej . Zostało zaimplementowane w systemie UNIX System V i jest również dostępne za pośrednictwem narzędzia wiersza poleceń sum .

Ten algorytm jest bezużyteczny z punktu widzenia bezpieczeństwa i jest słabszy niż CRC-32 cksum do wykrywania błędów.

Opis algorytmu

Główną częścią tego algorytmu jest po prostu dodanie wszystkich bajtów do sumy 32-bitowej. W rezultacie algorytm ten ma cechy prostej sumy:

  • ponowne ułożenie tych samych bajtów w innej kolejności (np. przeniesienie tekstu z jednego miejsca w drugie) nie zmienia sumy kontrolnej.
  • zwiększenie jednego bajtu i zmniejszenie innego bajtu o tę samą wartość nie zmienia sumy kontrolnej.
  • dodanie lub usunięcie bajtów zerowych nie zmienia sumy kontrolnej.

W rezultacie wiele typowych zmian w danych tekstowych nie jest wykrywanych tą metodą.

Pseudokod FreeBSD dla tego algorytmu to:

     
          
         s  =  suma  wszystkich  bajtów  ;  _  r  =  s  %  2  ^  16  +  (  s  %  2  ^  32  )  /  2  ^  16  ;  cksum  =  (  r  %  2  ^  16  )  +  r  /  2  ^  16  ; 

Ostatnia część składa wartość na 16 bitów.

Źródła