The Cyclic Redundancy Check (CRC) is used to verify data integrity.

Typically, two CRC bytes are added to each block of data. These two added bytes are calculated using the user data block as the key. The mathematical model is to use polynomials with binomial coefficients. After the user data block is transmitted and read, the CRC bytes are also read and compared to freshly generated CRC bytes. The new CRC values are divided into the read block including the original CRC bytes. The division should result in a remainder of zero. This is more reliable than simple checksums, which rely on the assumption that only a single bit will be corrupted.