A
checksum or
hash sum is a small-size datum from an arbitrary block of
digital data for the purpose of
detecting errors which may have been introduced during its
transmission or
storage. It is usually applied to an installation file after it is received from the download server. By themselves checksums are often used to verify data integrity, but should not be relied upon to also verify data
authenticity.
The actual
procedure which yields the checksum, given a data input is called a
checksum function or
checksum algorithm. Depending on its design goals, a good checksum algorithm will usually output a significantly different value, even for small changes made to the input. This is especially true of
cryptographic hash functions, which may be used to detect many data corruption errors and verify overall
data integrity; if the computed checksum for the current data input matches the stored value of a previously computed checksum, there is a very high probability the data has not been accidentally altered or corrupted.
Checksum functions are related to
hash functions,
fingerprints,
randomization functions, and cryptographic hash functions. However, each of those concepts has different applications and therefore different design goals. Checksums are used as cryptographic primitives in larger authentication algorithms. For cryptographic systems with these two specific design goals, see
HMAC.
Check digits and
parity bits are special cases of checksums, appropriate for small blocks of data (such as
Social Security numbers,
bank account numbers,
computer words, single
bytes, etc.). Some
error-correcting codes are based on special checksums which not only detect common errors but also allow the original data to be recovered in certain cases.
Source :
http://en.wikipedia.org/wiki/Checksum