Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
The cyclic redundancy check (CRC) is a technique used to detect errors in digital data. As a type of checksum, the CRC produces a fixed-length data set based on the build of a file or larger data set. In terms of its use, CRC is a hash function that detects accidental changes to raw computer data commonly used in digital telecommunications networks and storage devices such as hard disk drives.
This technique was invented by W. Wesley Peterson in 1961 and further developed by the CCITT (Comité Consultatif International Telegraphique et Telephonique). Cyclic redundancy checks are quite simple to implement in hardware, and can be easily analyzed mathematically. CRC is one of the better techniques that is commonly used in detecting common transmission errors.
CRC is based on binary division and is also called “polynomial code checksum.”
In the cyclic redundancy check, a fixed number of check bits, often called a checksum, are appended to the message that needs to be transmitted. The data receivers receive the data, and inspect the check bits for any errors.
Mathematically, data receivers evaluate the check value that is attached by finding the remainder of the polynomial division of the contents transmitted. If it seems that an error has occurred, a negative acknowledgement is transmitted asking for data retransmission.
A cyclic redundancy check is also applied to storage devices like hard disks. In this case, check bits are allocated to each block in the hard disk. When the computer reads a corrupt or incomplete file, a cyclic redundancy error gets triggered. The CRC can come from another storage device or from CD/DVDs. The common reasons for errors include system crashes, incomplete or corrupt files, or files with lots of bugs.
CRC polynomial designs depend on the length of the block that is supposed to be protected. Error protection features can also determine the CRC design. Resources available for CRC implementation can have an impact on performance.
Another way to understand CRC is to look at the specific words in its name. Experts point out that a CRC is called “redundant” because it adds to the size of the data set without adding new information, and “cyclical” because it works on a system of cyclical implementations.
It's also helpful to point out that CRC is a specific type of checksum, as mentioned, in which arbitrary sized data sets are mapped to a fixed-size string, which an engineer may call a hash function. Some technology builders do report the use of CRC as a hash function in hash security, although others consider it insufficient and suggest a standard like SHA 256.
By contrast, checksums themselves can be abundantly simple—for instance, a primitive checksum can simply be a sum of the byte values in question. The CRC using its cyclical setup is generally recognized as a pretty good strategy for checking against errors and verifying data integrity. It’s part of an evolved toolkit in checksum use and hashing, and in file checking in general.
Another skill set prized in the tech world is the ability to fix or resolve CRC errors because these errors can inhibit access to data. When a CRC error occurs, for whatever reason, fixing it will be part of the IT service provider’s mandate.