{
  "slug": "crc32c",
  "term": "CRC-32C",
  "aliases": [
    "Castagnoli CRC",
    "CRC32C"
  ],
  "definition": "CRC-32C is a 32-bit cyclic redundancy check using the Castagnoli generator polynomial.",
  "note": "The full polynomial representation is 0x11EDC6F41, including its leading degree-32 term. iSCSI specifies this generator and publishes digest test vectors; their serialized bytes must not be confused with a checksum API's integer display. [rfc7143] A constructed 18-bit change spanning 33 processing bits preserves the CRC-32C value in Hesela's experiment. A separate 36-bit change over a 65-bit span preserves both CRC-32C and IEEE CRC-32; these are deterministic counterexamples, not measured collision frequencies. [hesela-crc]",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "CRC-32C and IEEE CRC-32 are different functions, not interchangeable names for a 32-bit checksum.",
      "citationIds": [
        "rfc7143",
        "hesela-crc"
      ]
    }
  ],
  "related": [
    "cyclic-redundancy-check",
    "checksum",
    "iscsi",
    "crc-burst-error",
    "hamming-distance"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "citations": [
    {
      "id": "rfc7143",
      "title": "Chadalapaka et al. RFC 7143: iSCSI consolidated specification, section 13.1 and Appendix A.4 (2014)",
      "url": "https://www.rfc-editor.org/rfc/rfc7143.html",
      "accessed": "2026-10-18"
    },
    {
      "id": "hesela-crc",
      "title": "Hesela: CRC polynomials, constructed error patterns and exact small-code enumeration",
      "url": "https://hesela.com/analyses/crc-polynomials-error-patterns/",
      "accessed": "2026-10-18"
    }
  ],
  "updated": "2026-10-19"
}
