/ˌsiː-ɑːr-ˈsiː/

n. “The digital fingerprint that checks your data for errors.”

CRC, short for Cyclic Redundancy Check, is an error-detecting code used in digital networks and storage devices to detect accidental changes to raw data. By applying a mathematical algorithm to the data, CRC generates a fixed-size checksum (also called a CRC value) that can be used to verify data integrity during transmission or storage.

Key characteristics of CRC include:

  • Error Detection: Identifies accidental changes to data blocks, such as bit flips caused by noise or hardware faults.
  • Polynomial-Based: Uses division of data represented as polynomials to compute the CRC value.
  • Fixed-Length Checksum: The resulting CRC is a short, fixed-size number that represents the original data.
  • Fast and Lightweight: Efficient to compute in both hardware and software.
  • Widely Used: Employed in network protocols (Ethernet, USB, PPP), storage (hard drives, SSDs), and file transfer protocols (XMODEM, ZMODEM).

A simple conceptual example: imagine sending a 16-bit data block 10110011 11001101 and calculating a CRC-8 checksum using a standard polynomial, producing 0x4F. The receiver performs the same calculation; if the CRC matches, the data is considered intact, otherwise a retransmission may be requested.

Conceptually, CRC is like stamping a short “signature” on your data. When it arrives, the recipient checks the signature to make sure nothing got altered in transit.

In essence, CRC is a fundamental technique for ensuring data integrity across noisy communication channels and unreliable storage, forming a cornerstone of reliable digital communication.