checksum n : a digit representing the sum of the digits in an instance of digital data; used to check whether errors have occurred in transmission or storage
digit or character
- Afrikaans: kontrolesom
- Catalan: suma de verificació , checksum
- Chinese: 校验和 (jiàoyànhé)
- Dutch: controlecijfer , checksum
- Estonian: kontrollsumma
- Finnish: tarkistussumma
- French: somme de contrôle
- German: Prüfsumme
- Hebrew: סכום ביקורת
- Icelandic: prófsumma
- Japanese: チェックサム (chekkusamu)
- Norwegian: sjekksum g Norwegian
- Polish: suma kontrolna
- Portuguese: checksum , soma de verificação
- Russian: контро́льная су́мма
- Slovak: kontrolný súčet
- Spanish: suma de verificación , checksum
- Swedish: kontrollsumma
- Vietnamese: giá trị kiểm tra
A checksum is a form of redundancy check, a simple way to protect the integrity of data by detecting errors in data that are sent through space (telecommunications) or time (storage). It works by adding up the basic components of a message, typically the asserted bits, and storing the resulting value. Anyone can later perform the same operation on the data, compare the result to the authentic checksum, and (assuming that the sums match) conclude that the message was most likely not corrupted.
An example of a simple checksum:
- Given 4 bytes of data (can be done with any number of bytes): 0x25, 0x62, 0x3F, 0x52
- Step 1: Adding all bytes together gives 0x118.
- Step 2: Drop the Carry Nibble to give you 0x18.
- Step 3: Get the two's complement of the 0x18 to get 0xE8. This is the checksum byte.
- To Test the Checksum byte simply add it to the original group of bytes. This should give you 0x100.
- Drop the carry nibble again giving 0x00. Since it is 0x00 this means no error was detected (although an undetectable error could have occurred).
The simplest form of checksum, which simply adds up the asserted bits in the data, cannot detect a number of types of errors. Such a checksum, for example, is not changed by:
- Reordering of the bytes in the message.
- Inserting or deleting zero-valued bytes.
- Multiple errors which sum to zero.
More sophisticated types of redundancy check, including Fletcher's checksum, Adler-32, and cyclic redundancy checks (CRCs), are designed to address these weaknesses by considering not only the value of each byte but also its position. The cost of the ability to detect more types of errors is the increased complexity of computing the redundancy check value.
These types of redundancy check are useful in detecting accidental modification such as corruption to stored data or errors in a communication channel. However, they provide no security against a malicious agent as their simple mathematical structure makes them trivial to circumvent. To provide this level of integrity, the use of a cryptographic hash function, such as SHA-256, is necessary. (Collisions have been found in the popular MD5 algorithm and finding collisions in SHA-1 seems possible, but there is no evidence as of 2006 that SHA-256 suffers similar weaknesses.)
On Unix, there is a tool called "cksum" that generates both a 32-bit CRC and a byte count for any given input file.
checksum in Afrikaans: Kontrolesom
checksum in Arabic: تدقيق مجموع
checksum in Catalan: Checksum
checksum in Czech: Kontrolní součet
checksum in German: Prüfsumme
checksum in Estonian: Kontrollsumma
checksum in Spanish: Suma de verificación
checksum in French: Somme de contrôle
checksum in Korean: 체크섬
checksum in Icelandic: Prófsumma
checksum in Italian: Checksum
checksum in Hebrew: סכום ביקורת
checksum in Dutch: Controlecijfer
checksum in Japanese: チェックサム
checksum in Norwegian: Sjekksum
checksum in Polish: Suma kontrolna
checksum in Portuguese: Soma de verificação
checksum in Russian: Контрольная сумма
checksum in Simple English: Checksum
checksum in Slovak: Kontrolný súčet
checksum in Finnish: Tarkistussumma
checksum in Swedish: Kontrollsumma
checksum in Vietnamese: Giá trị tổng kiểm
checksum in Chinese: 校验和