Home

CRCs

Cyclic redundancy checks (CRCs) are error-detecting codes used to identify accidental changes to digital data. They are widely used in networks and storage systems to verify integrity of frames, packets, or blocks. A CRC is derived from the data using a fixed polynomial and a set of parameters.

In the CRC calculation, the data is treated as a binary polynomial. It is divided by a

CRCs are particularly effective at detecting common error patterns. They can detect all single-bit and most

Several standard CRCs exist, differing in generator polynomial and parameters. Common ones include CRC-32 (used in

CRCs are not cryptographic hash functions and do not provide security against intentional tampering. They detect

fixed
generator
polynomial
over
GF(2).
The
nonzero
remainder
is
appended
to
the
data
before
transmission.
On
reception,
the
same
division
is
performed;
a
zero
remainder
indicates
no
detectable
error.
burst
errors,
and
any
odd
number
of
bit
errors
with
appropriate
polynomials.
The
exact
detection
capabilities
depend
on
the
chosen
generator
polynomial
and
initialization/finalization
settings.
Ethernet
and
PNG),
CRC-16-CCITT
and
CRC-16-IBM,
and
CRC-8
variants.
Implementations
may
use
bitwise
computation
or
lookup
tables
to
improve
performance.
accidental
corruption
well
but
are
vulnerable
to
deliberate
modification
if
not
paired
with
other
integrity
measures.
They
are
widely
used
in
data
transmission,
storage
formats,
and
file
checksums.