巡回冗長検査
主な標準CRC

巡回冗長検査は唯一の標準規格があるわけではなく、例えば CRC-12 では3種類の多項式が使われている。また、CRC-16 にはよく使われているものが8種類、CRC-32 は3種類存在する。よく使われている多項式が最も効果的とは限らない。1993年から2004年にかけて、Koopman と Castagnoli らは16ビットまでと、24ビットおよび32ビットの多項式の総当り的調査を行った。そして、それまで利用されていたものよりも（そのメッセージ長でのハミング距離の観点で）性能のよい多項式を発見し、今後の標準化に役立てられるよう発表した。iSCSIはその研究成果を取り入れている。
よく使われるCRC-32多項式は、IEEE勧告のものも V.42、イーサネット、FDDI、ZIP、PNG などで使われているものも、ハミング符号の生成多項式を使っている。これは、誤り検出性能がよいためである。ただし、iSCSIで使っている Castagnoli CRC-32C の方がさらに優れている。
以下の表は、実際に使われている各種アルゴリズムの多項式である。プロトコルによっては、これに事前の逆転や事後の逆転、ビット順序の反転などを施すことがある。独自プロトコルでのCRCは、目くらましとして初期値を複雑化させたり最後にXORしたりすることがあるが、それによって暗号的に強くなるわけではない。
注: ここでは、最上位ビットを省略している。上の特化したCRCの節参照。
| 名称 | 多項式 （用途） | 標準 / 反転 （相反多項式の反転） |
| --- | --- | --- |
| CRC-1 | x + 1  （各種ハードウェア。パリティビット） | 0x1 / 0x1 (0x1) |
| CRC-4-ITU | x4 + x + 1 (ITU G.704, p. 12) | 0x3 / 0xC (0x9) |
| CRC-5-ITU | x5 + x4 + x2 + 1 (ITU G.704, p. 9) | 0x15 / 0x15 (0x1A) |
| CRC-5-USB | x5 + x2 + 1 （USBトークンパケット） | 0x05 / 0x14 (0x12) |
| CRC-6-ITU | x6 + x + 1 (ITU G.704, p. 3) | 0x03 / 0x30 (0x21) |
| CRC-7 | x7 + x3 + 1 （通信系、MMC、SD） | 0x09 / 0x48 (0x44) |
| CRC-8-ATM | x8 + x2 + x + 1 (ATM Header Error Correction) | 0x07 / 0xE0 (0x83) |
| CRC-8-CCITT | x8 + x7 + x3 + x2 + 1 （1-Wire バス） | 0x8D / 0xB1 (0xC6) |
| CRC-8-Dallas/Maxim | x8 + x5 + x4 + 1 （1-Wire バス） | 0x31 / 0x8C (0x98) |
| CRC-8 | x8 + x7 + x6 + x4 + x2 + 1 | 0xD5 / 0xAB (0xEA ) |
| CRC-8-SAE J1850 | x8 + x4 + x3 + x2 + 1 | 0x1D / 0xB8 (0x8E) |
| CRC-10 | x10 + x9 + x5 + x4 + x + 1 | 0x233 / 0x331 (0x319) |
| CRC-11 | x11 + x9 + x8 + x7 + x2 + 1 (FlexRay) | 0x385 / 0x50E (0x5C2) |
| CRC-12 | x12 + x11 + x3 + x2 + x + 1 （通信系、 )   | 0x80F / 0xF01 (0xC07) |
| CRC-15-CAN | x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1  | 0x4599 /  0x4CD1 (0x62CC) |
| CRC-16-Fletcher | CRCではない。フレッチャーのチェックサム | Adler-32 A & B CRC で使用 |
| CRC-16-CCITT | x16 + x12 + x5 + 1 （X.25、V.41、CDMA、Bluetooth、XMODEM、HDLC、PPP、IrDA、BACnet; CRC-CCITTとも） | 0x1021 / 0x8408 (0x8810 ) |
| CRC-16-IBM | x16 + x15 + x2 + 1 （SDLC、USB、その他; CRC-16とも） | 0x8005 / 0xA001 (0xC002) |
| CRC-24-Radix-64 |  x24 + x23 + x18 + x17 + x14 + x11 + x10 + x7 + x6 + x5 + x4 + x3 + x + 1  (FlexRay) | 0x864CFB / 0xDF3261 (0xC3267D) |
| CRC-30 | x30 + x29 + x21 + x20 + x15 + x13 + x12 + x11 + x8 + x7 + x6 + x2 + x + 1  (CDMA) | 0x2030B9C7 / 0x38E74301 (0x30185CE3) |
| CRC-32-Adler | CRCではない; Adler-32 | Adler-32参照 |
| CRC-32 | x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1  (V.42, MPEG-2, zlib, PNG ) | 0x04C11DB7 / 0xEDB88320 (0x82608EDB ) |
| CRC-32C (Castagnoli) | x32 + x28 + x27 + x26 + x25 + x23 + x22 + x20 + x19 + x18 + x14 + x13 + x11 + x10 + x9 + x8 + x6 + 1 (iSCSI, Btrfs, VHDX) | 0x1EDC6F41 / 0x82F63B78 (0x8F6E37A0 ) |
| CRC-32K (Koopman) | x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + 1 | 0x741B8CD7 / 0xEB31D82E (0xBA0DC66B ) |
| CRC-64-ISO | x64 + x4 + x3 + x + 1 (HDLC — ISO 3309) | 0x000000000000001B / 0xD800000000000000 (0x800000000000000D) |
| CRC-64-ECMA-182 | x64 + x62 + x57 + x55 + x54 + x53 + x52 + x47 + x46 + x45 + x40 + x39 + x38 + x37 + x35 + x33 + x32 + x31 + x29 + x27 + x24 + x23 + x22 + x21 + x19 + x17 + x13 + x12 + x10 + x9 + x7 + x4 + x + 1 (ECMA-182 p.63) | 0x42F0E1EBA9EA3693 / 0xC96C5795D7870F42 (0xA17870F5D4F51B49) |
以下は、かつて使われていたが、現在はハッシュ関数などに置換されたもの。
CRC-128 (IEEE)
CRC-256 (IEEE)