What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A cyclic redundancy check (CRC) is a value calculated from data to help detect accidental corruption during transmission or storage. The sender and receiver use the same CRC rules; the receiver recalculates or checks the value and looks for a mismatch. A CRC can reveal many errors, but it is not a guarantee that data is unchanged and it does not authenticate data.

What a cyclic redundancy check is

A CRC is an error-detection method that produces a fixed-width check value from a sequence of bits. The value is sent or stored alongside the data. When the data is read or received, a system applies the agreed CRC procedure and checks whether the result is consistent.

NIST describes CRC as a checksum algorithm for situations where accidental data changes are expected. It also distinguishes CRCs from cryptographic hashes: a CRC is not a cryptographic hash or an authentication mechanism. NIST’s CRC glossary definition

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How CRC calculation works

Mathematically, the bits in a message can be represented as a polynomial whose coefficients are in the binary field GF(2). A CRC procedure divides a message-derived polynomial by an agreed generator polynomial. The remainder determines the check bits. The receiver then performs the corresponding calculation or check and compares the outcome. The IETF describes this polynomial-division approach in its CRC guidance and in the CRC-32C procedure used by SCTP. RFC 3385 RFC 9260

In GF(2), addition and subtraction behave like XOR. This makes CRC calculations suitable for efficient software and hardware implementations. The calculation is only interoperable when both sides agree on the CRC rules, not merely on a label such as “CRC-32.”

Why the exact CRC variant matters

CRC variants differ in parameters that affect the result. When implementing or diagnosing one, use the protocol or standard’s specification and check:

  • Generator polynomial: the polynomial used in the division.
  • Width: the number of check bits.
  • Bit ordering: how bits are processed or reflected.
  • Initialization and finalization: any specified starting state or final transformation.
  • Intended data and error conditions: the message lengths and error patterns for which detection performance matters.

Two systems can use CRCs with the same width yet produce different results if other conventions differ. The protocol definition is the authority for which variant and conventions to use. RFC 3385 discusses how polynomial choice and error assumptions affect undetected-error probability. RFC 3385

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

CRC-32C in SCTP: a protocol-specific example

For Stream Control Transmission Protocol (SCTP), RFC 9260 specifies CRC-32C and gives its generator polynomial as 0x11EDC6F41, also expressed as x^32 + x^28 + x^27 + x^26 + x^25 + x^23 + x^22 + x^20 + x^19 + x^18 + x^14 + x^13 + x^11 + x^10 + x^9 + x^8 + x^6 + x^0. The RFC also addresses reflected bit ordering in the SCTP calculation. This example applies to SCTP; it is not a universal recommendation for unrelated formats or protocols. RFC 9260

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What a CRC can—and cannot—tell you

A matching CRC is useful evidence that data passed the checks defined by that CRC procedure. It does not prove that no error occurred: some error patterns can go undetected. The likelihood depends on the selected polynomial and on the error distribution, so a general percentage without those assumptions would be misleading. RFC 3385

A CRC also does not prove who created the data or prevent deliberate tampering. An attacker able to change the data can generally calculate a new CRC for the modified data. Use an appropriate cryptographic authentication mechanism when protection against intentional changes or a need to verify a sender’s identity is required; a CRC alone is for error detection.

Quick Recap

Bestseller No. 1
SaleBestseller No. 2
Bestseller No. 3
Bestseller No. 4
CRC Handbook of Chemistry and Physics, 82nd Edition
CRC Handbook of Chemistry and Physics, 82nd Edition
Used Book in Good Condition
$346.83

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.