[ Home | Up | Summary | Legend | Disclaimer | Appendices ]
width=3 poly=0x3 init=0x0 refin=false refout=false xorout=0x7 check=0x4 residue=0x2 name="CRC-3/GSM"
- Class: academic
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 3.1.2.1, p.18 — Section 3.2.1, p.20)
- Created: 17 February 2017
width=3 poly=0x3 init=0x7 refin=true refout=true xorout=0x0 check=0x6 residue=0x0 name="CRC-3/ROHC"
- Class: academic
- IETF RFC 3095 (July 2001)
- I Definition: Width, Poly, Init (Section 5.9.2, pp.125–6)
- Andreas Vernersson et al. (26 May 2003), rohc 1.0 module
rohc-1.0/rohc/src/c_util.c
- Created: 14 December 2009
- Updated: 4 August 2023
width=4 poly=0x3 init=0x0 refin=true refout=true xorout=0x0 check=0x7 residue=0x0 name="CRC-4/G-704"
- Class: academic
- Alias: CRC-4/ITU
- ITU-T Recommendation G.704 (October 1998)
- I Full mathematical description (Section 2.3.3.5, p.12)
- I Shift register diagram (Annex A.3, p.36)
- Created: 7 October 2008
- Updated: 21 November 2018
width=4 poly=0x3 init=0xf refin=false refout=false xorout=0xf check=0xb residue=0x2 name="CRC-4/INTERLAKEN"
width=5 poly=0x09 init=0x09 refin=false refout=false xorout=0x00 check=0x00 residue=0x00 name="CRC-5/EPC-C1G2"
- Class: attested
- Alias: CRC-5/EPC
- Used in standardised RFID tags.
- EPCglobal Inc™ (4 September 2018), EPC UHF Gen2 Air Interface Protocol: EPC™ Radio-Frequency Identity Protocols Generation-2 UHF RFID Standard, release 2.1
- I Definition: Width, Poly, Init, Residue (Table 6-12, p.34)
- I Definition: RefIn, Residue (Annex F.1, p.143)
- I Shift register circuit diagram (Figure F-1, p.143)
- I Transmission order, implying RefIn and RefOut (Section 6.3.1.4, p.33)
- Hee-Bok Kang et al. (December 2008), High Security FeRAM-Based EPC C1G2 UHF (860 MHz-960 MHz) Passive RFID Tag Chip, ETRI Journal, Volume 30 Number 6
- "jgmh" (20 May 2009), Computer Interfacing Forum topic 1330 (courtesy of the Internet Archive)
- Created: 20 May 2009
- Updated: 28 December 2019
width=5 poly=0x15 init=0x00 refin=true refout=true xorout=0x00 check=0x07 residue=0x00 name="CRC-5/G-704"
- Class: academic
- Alias: CRC-5/ITU
- ITU-T Recommendation G.704 (October 1998)
- I Definition: Residue; full mathematical description (Section 2.2.3.2, pp.8–9)
- I Shift register diagram (Annex A.2, p.36)
- Created: 7 October 2008
- Updated: 21 November 2018
width=5 poly=0x05 init=0x1f refin=true refout=true xorout=0x1f check=0x19 residue=0x06 name="CRC-5/USB"
- Class: confirmed
- Cypress Semiconductor Corporation (26 July 2001), SL811HS/SL811HST Application Notes, Revision 1.21 (courtesy of Stardot.org.uk Forums)
- II Transcript confirming implementation with 4 codewords (pp.25,30)
0000000000001000
1000000010000011
0010111000011000
1010111000000111
- Anonymous (10 July 1997), "Cyclic Redundancy Checks in USB" (Draft) (courtesy of the Internet Archive)
- III Definition: Width, Poly, Init, XorOut (p.2)
- III Definition: Residue (p.3)
- III Code: Perl (pp.3–4)
- IV 4 codewords (p.5)
1010100011110111
0101110010111100
0000111001001110
1000000000010111
- Created: 1 December 2007
- Updated: 12 July 2024
width=6 poly=0x27 init=0x3f refin=false refout=false xorout=0x00 check=0x0d residue=0x00 name="CRC-6/CDMA2000-A"
- Class: attested
- 3rd Generation Partnership Project 2 (3GPP2) (September 2009), Physical layer standard for cdma2000 spread spectrum systems, revision E, version 1.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly (Section 2.1.3.1.4.1.5, p.2-97)
- I Full description (Section 2.1.3.1.4.1, p.2-95)
- I Shift register diagram (Figure 2.1.3.1.4.1.5-1, p.2-97)
- Agilent Technologies, Advanced Design System 2008 Update 2,
CDMA2K_CRC_Coder
module documentation (courtesy of the Internet Archive)
- J. Hurley, Avtec Inc. (6 May 2011), Computer Interfacing Forum topic 1702 (courtesy of the Internet Archive)
- IV 3 codewords
C101002E
0110000F
05100009
- reveng -m CRC-6/CDMA2000-A -a 1 -A 6 -X -c 11000001000000010000000000 00000001000100000000000000 00000101000100000000000000 →
2E 0F 09
- Created: 14 October 2013
- Updated: 28 July 2023
width=6 poly=0x07 init=0x3f refin=false refout=false xorout=0x00 check=0x3b residue=0x00 name="CRC-6/CDMA2000-B"
- Class: academic
- 3rd Generation Partnership Project 2 (3GPP2) (September 2009), Physical layer standard for cdma2000 spread spectrum systems, revision E, version 1.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly (Section 2.1.3.1.4.1.6, pp.2-97–8)
- I Full description (Section 2.1.3.1.4.1, p.2-95)
- I Shift register diagram (Figure 2.1.3.1.4.1.6-1, p.2-98)
- Agilent Technologies, Advanced Design System 2008 Update 2,
CDMA2K_CRC_Coder
module documentation (courtesy of the Internet Archive)
- Created: 14 October 2013
- Updated: 28 July 2023
width=6 poly=0x19 init=0x00 refin=true refout=true xorout=0x00 check=0x26 residue=0x00 name="CRC-6/DARC"
- Class: attested
- ETSI EN 300 751 version 1.2.1 (January 2003)
- I Definition: Width, Poly (Section 11.2, pp.67–8)
- I Definition: RefIn, RefOut (Section 12, pp.69–70)
- IV 3 codewords (Section 11.2, pp.67–8)
1001010011000100
0101001100011101
00001100010000000010000000101101
- See section 12 for details of the transmission order.
- reveng -m CRC-6/DARC -X -c 2923 CAB8 300204B4 →
00 00 00
- reveng -m CRC-6/DARC -a 1 -A 8 -r -X -c 1001010011 0101001100 00001100010000000010000000 →
20 B8 B4
- Unique effective solution of codeword set
- Created: 14 December 2009
- Updated: 20 November 2018
width=6 poly=0x03 init=0x00 refin=true refout=true xorout=0x00 check=0x06 residue=0x00 name="CRC-6/G-704"
- Class: academic
- Alias: CRC-6/ITU
- ITU-T Recommendation G.704 (October 1998)
- I Full mathematical description (Section 2.1.3.1.2, p.3)
- I Shift register diagram (Annex A.1, p.35)
- Created: 7 October 2008
- Updated: 21 November 2018
width=6 poly=0x2f init=0x00 refin=false refout=false xorout=0x3f check=0x13 residue=0x3a name="CRC-6/GSM"
- Class: academic
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 3.9.4.3, pp.31–3 — Section 3.10.7.3, pp.47–9 — Section 4.6, p.64 — Section 5.3.2, p.95)
- Created: 17 February 2017
width=7 poly=0x09 init=0x00 refin=false refout=false xorout=0x00 check=0x75 residue=0x00 name="CRC-7/MMC"
- Class: academic
- Alias: CRC-7
- Used in the MultiMediaCard interface.
- Additional reference courtesy of Greg Nelson, Grammatech Inc.
- JEDEC Standard JESD84-A441 (March 2010) (registration required)
- I Full definition (Section 10.2, pp.157–8)
- I Shift register diagram (Figure 53, p.158)
- Linux contributors (14 January 2021), Linux module
lib/crc7.c
- Nokia Corporation (2008), Linux module
drivers/net/wireless/ti/wl1251/spi.c
- III Definition: Init (l.104)
- Created: 7 October 2008
- Updated: 11 January 2022
width=7 poly=0x4f init=0x7f refin=true refout=true xorout=0x00 check=0x53 residue=0x00 name="CRC-7/ROHC"
- Class: academic
- IETF RFC 3095 (July 2001)
- I Definition: Width, Poly, Init (Section 5.9.2, pp.125–6)
- Andreas Vernersson et al. (26 May 2003), rohc 1.0 module
rohc-1.0/rohc/src/c_util.c
- Created: 14 December 2009
- Updated: 4 August 2023
width=7 poly=0x45 init=0x00 refin=false refout=false xorout=0x00 check=0x61 residue=0x00 name="CRC-7/UMTS"
- Class: academic
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- 3rd Generation Partnership Project (3GPP) TS 25.427 version 17.0.0 (April 2022) (zipped MS Word document) — ETSI TS 125 427 version 17.0.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut (Section 7.2.1, p.40)
- I Definition: RefIn, RefOut (Section 6.1.1, p.20; Section 7.2.1.1, pp.40–1)
- Created: 8 February 2016
- Updated: 7 May 2022
width=8 poly=0x2f init=0xff refin=false refout=false xorout=0xff check=0xdf residue=0x42 name="CRC-8/AUTOSAR"
- Class: attested
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.1.2, p.25)
- IV 7 codewords (Section 7.2.1.2, p.25)
0000000012
F20183C2
0FAA0055C6
00FF551177
332255AABBCCDDEEFF11
926B5533
FFFFFFFF6C
- Unique effective solution of codeword set
- Created: 24 July 2016
- Updated: 28 July 2023
width=8 poly=0xa7 init=0x00 refin=true refout=true xorout=0x00 check=0x26 residue=0x00 name="CRC-8/BLUETOOTH"
- Class: attested
- Used in Bluetooth header error correction (HEC). Init=0x00 is used in the Inquiry Response substate.
- Bluetooth SIG (31 January 2023), Bluetooth Specification, Core Version 5.4
- I Definition: Init (Section 2.B.1.2.1, p.425; Section 2.B.6.4.6, p.478 — Section 2.B.6.5.1.4, pp.481–3 — Section 2.B.7.1, p.497 — Section 2.B.8.4.3, pp.525–7)
- I Definition: Width, Poly (Section 2.B.7.1.1, pp.497–8)
- I Definition: RefIn; shift register diagram (Figure 2.B.7.3, p.498)
- I Definition: Refin, RefOut, Residue (Figure 2.B.7.5, p.498)
- IV 10 codewords (Section 2.G.4, p.899)
110001001010000111
001001001001001100
101001001001011010
011001001001000111
111001001001010001
110110001001111001
001110001010110010
101110001010100100
011110001010111001
111110001010101111
- Created: 20 June 2017
- Updated: 29 July 2023
width=8 poly=0x9b init=0xff refin=false refout=false xorout=0x00 check=0xda residue=0x00 name="CRC-8/CDMA2000"
- Class: academic
- 3rd Generation Partnership Project 2 (3GPP2) (September 2009), Physical layer standard for cdma2000 spread spectrum systems, revision E, version 1.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly (Section 2.1.3.1.4.1.4, p.2-96)
- I Full description (Section 2.1.3.1.4.1, p.2-95)
- I Shift register diagram (Figure 2.1.3.1.4.1.4-1, p.2-97)
- Agilent Technologies, Advanced Design System 2008 Update 2,
CDMA2K_CRC_Coder
module documentation (courtesy of the Internet Archive)
- Created: 14 October 2013
- Updated: 28 July 2023
width=8 poly=0x39 init=0x00 refin=true refout=true xorout=0x00 check=0x15 residue=0x00 name="CRC-8/DARC"
- Class: attested
- The single codeword is supported by the codewords confirming CRC-6/DARC, defined identically apart from Poly in the same standard.
- ETSI EN 300 751 version 1.2.1 (January 2003)
- I Definition: Width, Poly (Section 11.2.3, p.68)
- I Definition: RefIn, RefOut (Section 12, pp.69–70)
- IV 1 codeword (Section 11.2.3, p.68)
000000010000001111010111
- See section 12 for details of the transmission order.
- Created: 14 December 2009
- Updated: 29 November 2018
width=8 poly=0xd5 init=0x00 refin=false refout=false xorout=0x00 check=0xbc residue=0x00 name="CRC-8/DVB-S2"
- Class: academic
- Contributed by Hartmut Brandt, German Aerospace Center.
- ETSI EN 302 307-1 version 1.4.1 (November 2014)
- I Full mathematical description (Section 5.1.4, p.18)
- ETSI EN 302 755 version 1.4.1 (July 2015)
- I Full mathematical description (Annex F, p.163)
- Ethernet POWERLINK Standardisation Group (18 October 2018), OpenSAFETY Safety Profile Specification Working Draft Proposal, version 1.5.2
- I Code: C (Appendix 1, pp.196–9)
- IV 1 codeword (Appendix 1, l.3522, p.197)
22C812563011223344556677884F
- Prof. Philip Koopman, Tridib Chakravarty (June 2004), Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks
- III Assessment of polynomial performance (as
0xEA
or CRC-8)
- Created: 10 January 2014
- Updated: 29 July 2023
width=8 poly=0x1d init=0x00 refin=false refout=false xorout=0x00 check=0x37 residue=0x00 name="CRC-8/GSM-A"
- Class: academic
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 3.1.1.1, pp.17–18)
- Michael Niedermayer, Aurélien Jacobs et al. (27 February 2023), FFmpeg 6.0 (XZ compressed tarfile), module
ffmpeg-6.0/libavutil/tests/crc.c
- Created: 17 February 2017
- Updated: 8 August 2024
width=8 poly=0x49 init=0x00 refin=false refout=false xorout=0xff check=0x94 residue=0x53 name="CRC-8/GSM-B"
- Class: academic
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 5.1.5.1.3, p.71 — Section 5.1.5.2.2, p.73 — Section 5.1.9.1.3, p.80 — Section 5.1.9.2.2, p.83 — Section 5.1.11.1.3, pp.86–7 — Section 5.1.11.2.2, p.89)
- Created: 17 February 2017
width=8 poly=0x1d init=0xff refin=false refout=false xorout=0x00 check=0xb4 residue=0x00 name="CRC-8/HITAG"
- Class: attested
- Contributed by Philippe Teuwen.
- Used in RFID applications.
- Philips Semiconductors (4 October 2001), HITAG core module hardware HTCM400 Product Specification (courtesy of Digi-Key Electronics)
- I Definition: Width, Poly, Init (Section 7.6.1, p.10)
- Philips Semiconductors (18 July 2006), HTS IC H32/HTS IC H56/HTS IC H48 transponder IC Product Specification, revision 3.1 (courtesy of Digi-Key Electronics)
- I Definition: Width, Poly, Init (Section 13.1, p.45 — Section 13.2.2, p.45)
- I Code: C (Section 13.3, p.46)
- IV 1 codeword (Section 13.3, p.46)
000000010110001101000000011011011010010011110
(source: 00000
+ 2C680DB49E
)
- "Sixkay" (July–August 2015), Proxmark3 community forum post
- reveng -m CRC-8/HITAG -a 1 -A 8 -X -c 000000010110001101000000011011011010010011110 1100101010010011010000001111111111000110 →
00 00
- Created: 23 December 2021
- Updated: 4 August 2023
width=8 poly=0x07 init=0x00 refin=false refout=false xorout=0x55 check=0xa1 residue=0xac name="CRC-8/I-432-1"
- Class: academic
- Alias: CRC-8/ITU
- Used as the Asynchronous Transfer Mode Header Error Control sequence (ATM HEC). Single bit errors in the 4-byte ATM header can be automatically corrected.
- ITU-T Recommendation I.432.1 (February 1999)
- I Full mathematical description (Section 7.3.2.2, p.5)
- IV 2 trivial codewords (Section 7.3.2.2, p.6; Table 3, p.12)
0000000000000000000000000000000001010101
0000000000000000000000000000000101010010
- Broadband Forum Technical Committee (10 September 1993), User-Network Interface Specification, version 3.0 (compressed RTF) (courtesy of the Internet Archive)
- I Full mathematical description (Section 2.2.6)
- Created: 19 April 2009
- Updated: 2 August 2023
width=8 poly=0x1d init=0xfd refin=false refout=false xorout=0x00 check=0x7e residue=0x00 name="CRC-8/I-CODE"
- Class: attested
- Philips Semiconductors (30 January 2004), SL2 ICS11 Product Specification, revision 3.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly, Init (Section 10.1, p.26)
- I Code: C (Section 10.3.1, pp.27–9)
- I Worked example (as code trace) (Section 10.3.1, p.29)
- Created: 3 November 2007
- Updated: 6 February 2017
width=8 poly=0x9b init=0x00 refin=false refout=false xorout=0x00 check=0xea residue=0x00 name="CRC-8/LTE"
- Class: academic
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- 3rd Generation Partnership Project (3GPP) TS 36.212 version 17.1.0 (March 2022) (zipped MS Word document) — ETSI TS 136 212 version 17.1.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, pp.10–11)
- I Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.11)
- 3rd Generation Partnership Project (3GPP) TS 36.321 version 17.5.0 (June 2023) (zipped MS Word document) — ETSI TS 136 321 version 17.5.0 (July 2023)
- Referenced from TS 136 212 section 5.2.2.1, p.26
- I Definition: RefIn, RefOut (Section 6.1.1, p.90)
- Created: 13 February 2016
- Updated: 5 August 2023
width=8 poly=0x31 init=0x00 refin=true refout=true xorout=0x00 check=0xa1 residue=0x00 name="CRC-8/MAXIM-DOW"
- Class: attested
- Alias: CRC-8/MAXIM, DOW-CRC
- Used in Maxim 1-Wire® device registration numbers.
- Maxim Integrated (8 August 2012), DS1921G Datasheet
- I Definition: Width, Poly, Init, XorOut (p.9)
- I Shift register diagram (p.9)
- Maxim Integrated (22 August 2012), Application Note 27 (PDF, HTML)
- I Definition: Init, Residue (pp.3–4)
- I Shift register diagram (p.3)
- I Code: 8051 assembler, Pascal (pp.5–8)
- I Worked examples (pp.5–9)
- Maxim Integrated, Maxim iButton® datasheets (for links see Application Note 27)
- IV 15 codewords
- DS1904:
242BC5FB00000040
(source: 40000000FBC52B24
)
- DS1920:
102BC5FB000000A0
(source: A0000000FBC52B10
)
- DS1921G:
212BC5FB00000089
(source: 89000000FBC52B21
)
- DS1971:
142BC5FB00000054
(source: 54000000FBC52B14
)
- DS1971:
14B3D8FB000000D4
(source: D4000000FBD8B314
)
- DS1973:
232BC5FB000000F3
(source: F3000000FBC52B23
)
- DS1973:
23B3D8FB00000073
(source: 73000000FBD8B323
)
- DS1982:
092BC5FB00000097
(source: 97000000FBC52B09
)
- DS1982:
09B3D8FB00000017
(source: 17000000FBD8B309
)
- DS1985:
0B2BC5FB000000ED
(source: ED000000FBC52B0B
)
- DS1985:
0BB3D8FB0000006D
(source: 6D000000FBD8B30B
)
- DS1986:
0F2BC5FB00000019
(source: 19000000FBC52B0F
)
- DS1986:
0FB3D8FB00000099
(source: 99000000FBD8B30F
)
- DS1995:
0A2BC5FB000000D0
(source: D0000000FBC52B0A
)
- DS1996:
0C2BC5FB0000005E
(source: 5E000000FBC52B0C
)
- Created: 26 April 2009
- Updated: 2 January 2021
width=8 poly=0x1d init=0xc7 refin=false refout=false xorout=0x00 check=0x99 residue=0x00 name="CRC-8/MIFARE-MAD"
- Class: attested
- References courtesy of Sourceforge users "xavery" and Oleg Moiseenko.
- NXP Semiconductors (6 November 2018), Application note AN10787: MIFARE Application Directory (MAD), rev. 7.4
- I Definition: Width, Poly, Init (Section 3.7, pp.9–10)
- IV 1 codeword (Table 11, p.10)
0101080108010800000000000004000310031002100210000000000000113089
- Romain Tartière, Romuald Conty, et al. (29 June 2017), libfreefare module
libfreefare/libfreefare/mad.c
- Romain Tartière (29 June 2017), libfreefare module
libfreefare/test/test_mad.c
- IV 3 codewords (1 same as in AN10787)
0103E103E103E103E103E10000000000000000000000000000000000000000C4
0103E103E103E103E103E103E1000000000000000000000000000000000000AB
- Oleg Moiseenko (14 February 2019), CRC RevEng project discussion thread post
- IV 1 codeword
00563D563C563C563C563C563C00000000000000000000000000000000000030
- Created: 21 February 2019
width=8 poly=0x31 init=0xff refin=false refout=false xorout=0x00 check=0xf7 residue=0x00 name="CRC-8/NRSC-5"
- Class: attested
- iBiquity Digital Corporation (16 December 2016), HD Radio™ Air Interface Design Description: Audio Transport, rev. H (courtesy of National Radio Systems Committee)
- I Definition: Width, Poly (Section 5.2.3.2, p.33)
- Incorporated by normative reference into National Radio Systems Committee standard NRSC-5-D.
- Andrew Wesie (9 June 2017), NRSC-5 receiver for rtl-sdr, file
nrsc5/support/sample.xz
(XZ compressed raw radio recording, 22 MB)
- II Recording confirming implementation with 587 codewords (selection)
5822EF639D240114F25D007CDA4208A1CBBDE9DFD73273A7D180003038EB
B002F6E01BF5E00BE3F6D05450D23B70273990D90ED77AEDF6EB803C1AD30A685E0A009A
412C565998C4938214C58005800B09CABACB98B656DE98FB199A18923DE06D592D2D399A5CA72CFAD96BC10735E4774FA06AFEAB1726EF0F471ABED704DA798DEDABB16D1A4F0D7B7C49F65C1EBE2D5DE6EB16D8BF2DB0199F76D6C8455C1C70251B4290CA669C00AC529FC0014002174006E6860558EEF5CBE4DEF994D1F642156E48FA68072E78A7F1C88A80DF02516B5672FFF281780B6200A3
896C608852750D2DC92490555A448BA655686F62F35A2F7522C62EB13161881468600683310689
412C570068CB2362DCCB2400004416B42A5F9B2C469A721D106258A76D77C2F105C315DA1257CAD1232A47282475FB250171BCC094DE3C5711A0B68892F7A5685CAB97881BFA802056600688A08815EAD3C069B68A952C00058BD0071DFD5F975D1CFD976FAE0A82A1AF1636E4687EE472C62F22A96E3197B88943852B128D0489E911B85B84023122176D0670130348DDD554416BB8852A854364
0D0640C6D800124B
89866AD812A05E8034A3BBBAAAB56AD4FAD9894B0030000000007752
- Andrew Wesie, Clayton Smith et al. (25 October 2017), NRSC-5 receiver for rtl-sdr, module
nrsc5/src/frame.c
- Unique effective solution of codeword set
- Created: 16 November 2018
- Updated: 20 March 2019
width=8 poly=0x2f init=0x00 refin=false refout=false xorout=0x00 check=0x3e residue=0x00 name="CRC-8/OPENSAFETY"
- Class: attested
- Ethernet POWERLINK Standardisation Group (18 October 2018), OpenSAFETY Safety Profile Specification Working Draft Proposal, version 1.5.2
- I Full description (Section 5.1.2.6, pp.43–4)
- I Error detection capability (Section 8.1, p.182)
- I Code: C (Appendix 1, pp.196–9)
- IV 1 codeword (Appendix 1, l.3519, pp.196–7)
23C8083411223344556677883C
- Roland Knall (6 February 2012), openSAFETY communication using Ethernet Powerlink V2 as transport protocol (PCAP file) (courtesy of Wireshark Wiki)
- II Transcript confirming implementation (selected codewords)
02A806000060650006A11C
03A80001000060650006A131
03A806000060650007211D
02A80001000060650007211D
04A8060000606500021393
05A800010000606500021350
01AC0600006065000721AF
00AC000300006065000721B5
- Prof. Philip Koopman, Tridib Chakravarty (June 2004), Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks
- III Assessment of polynomial performance (as
0x97
or C2)
- Unique effective solution of codeword set
- Created: 22 July 2016
- Updated: 7 May 2022
width=8 poly=0x07 init=0xff refin=true refout=true xorout=0x00 check=0xd0 residue=0x00 name="CRC-8/ROHC"
- Class: academic
- IETF RFC 3095 (July 2001)
- I Definition: Width, Poly, Init, XorOut (Section 5.9.1, p.125)
- Andreas Vernersson et al. (26 May 2003), rohc 1.0 module
rohc-1.0/rohc/src/c_util.c
- Created: 14 December 2009
- Updated: 4 August 2023
width=8 poly=0x1d init=0xff refin=false refout=false xorout=0xff check=0x4b residue=0xc4 name="CRC-8/SAE-J1850"
- Class: attested
- SAE Standard J1850 (15 May 1994), Excerpt (courtesy of the Internet Archive)
- I Definition: Width, Poly, Init, XorOut, Residue (Section 5.4.1, p.14)
- IV 7 codewords (Table 1, p.15)
0000000059
F2018337
0FAA005579
00FF5511B8
332255AABBCCDDEEFFCB
926B558C
FFFFFFFF74
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.1.1, p.24)
- IV 7 codewords (same as in SAE Standard J1850) (Section 7.2.1.1, pp.24–5)
- "knivmannen" (24 May 2010), StackOverflow submitted question
- IV 5 codewords
55FF0000ECFF601F
55FF0000F0FFA038
660BEAFFBFFFC0CA
5E18EAFFB7FF60BD
F6301600FCFE1081
- Unique effective solution of codeword set
- Created: 17 February 2016
- Updated: 3 August 2023
width=8 poly=0x07 init=0x00 refin=false refout=false xorout=0x00 check=0xf4 residue=0x00 name="CRC-8/SMBUS"
- Class: attested
- Alias: CRC-8
- The System Management Interface Forum, Inc. (3 August 2000), System Management Bus (SMBus) Specification, version 2.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly, RefIn, RefOut (Section 4.2, p.19; Section 5.4.1.3, p.27)
- The System Management Interface Forum, Inc. (14 June 2005), CRC-8 Calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- John Milios, USAR Systems, Inc. (22 April 1999), Firmware CRC-8 implementations for SMBus (courtesy of the Internet Archive)
- III Definition: Width, Poly (p.5)
- III Worked example (p.6)
- III Code: 6805 assembler (pp.14,18)
- Michael Niedermayer, Aurélien Jacobs et al. (27 February 2023), FFmpeg 6.0 (XZ compressed tarfile), module
ffmpeg-6.0/libavutil/tests/crc.c
- Created: 30 March 2005
- Updated: 8 August 2024
width=8 poly=0x1d init=0xff refin=true refout=true xorout=0x00 check=0x97 residue=0x00 name="CRC-8/TECH-3250"
width=8 poly=0x9b init=0x00 refin=true refout=true xorout=0x00 check=0x25 residue=0x00 name="CRC-8/WCDMA"
- Class: third-party
- Andrew Richardson (17 March 2005), WCDMA Design Handbook, Cambridge University Press, ISBN 0-521-82815-5 (embedded content)
- III Definition: Width, Poly, Residue (Section 7.1.3, Table 7.3, p.223)
- III Shift register diagram (Figure 7.4, p.223)
- Prof. Philip Koopman, Tridib Chakravarty (June 2004), Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks
- III Assessment of polynomial performance (as
0xCD
or WCDMA-8)
- "Max" (26 October 2009), Computer Interfacing Forum topic 1431 (courtesy of the Internet Archive)
- IV 46 codewords (selection)
00001148
00012077
80800012
00001021010022000A002D000000000000460A20
00001021010123000A0028000000000000460A54
00001021010125000A0029000000000000460A4B
400010200B01001A000A000100000000008009001F01F393
400010200B01001F000A000100000000000009001F01F3F7
400010200B010020000A000100000000000009001F01F331
40001107083829B41903
40001107084826682180
40001107085C293417A8
- IV 1 non-matching codeword
- Unique effective solution of codeword set
- Created: 8 November 2009
- Updated: 28 December 2019
width=10 poly=0x233 init=0x000 refin=false refout=false xorout=0x000 check=0x199 residue=0x000 name="CRC-10/ATM"
- Class: attested
- Alias: CRC-10, CRC-10/I-610
- Used in Asynchronous Transfer Mode AAL 3/4 and OAM cells. Note there are 6 padding zero bits between each of the 46-byte information fields and their respective CRCs.
- ITU-T Recommendation I.610 (February 1999)
- I Full mathematical description (Section 10.1, p.40)
- IV 2 codewords (Appendix I, p.67)
116A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A00AF
1801AAAAAAAAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A02AC
- Broadband Forum Technical Committee (March 1999), Traffic Management Specification, version 2.1 (courtesy of the Internet Archive)
- I Full mathematical description (Section 5.10.3.1, p.47)
- Charles M. Heard, Generating and Checking CRC-10 in ATM AAL 3/4 or OAM Cells (courtesy of the Internet Archive)
- III Definition: Width, Poly
- III Code: C
- IV 7 codewords (selection; first four attributed to Angie Tso, Telecommunications Techniques Corp.)
0A0B0C0D0E0F0000000000000000000000000000000000000000000000000000000000000000000000000000000001F6
11111111111111111111000000000000000000000000000000000000000000000000000000000000000000000000016B
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF030F
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901202ED
106A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A03B9
180100000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000006A6A6A6A6A6A6A6A004A
- Created: 19 April 2009
- Updated: 7 May 2022
width=10 poly=0x3d9 init=0x3ff refin=false refout=false xorout=0x000 check=0x233 residue=0x000 name="CRC-10/CDMA2000"
- Class: academic
- 3rd Generation Partnership Project 2 (3GPP2) (September 2009), Physical layer standard for cdma2000 spread spectrum systems, revision E, version 1.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly (Section 2.1.3.1.4.1.3, p.2-96)
- I Full description (Section 2.1.3.1.4.1, p.2-95)
- I Shift register diagram (Figure 2.1.3.1.4.1.3-1, p.2-96)
- Agilent Technologies, Advanced Design System 2008 Update 2,
CDMA2K_CRC_Coder
module documentation (courtesy of the Internet Archive)
- Created: 14 October 2013
- Updated: 28 July 2023
width=10 poly=0x175 init=0x000 refin=false refout=false xorout=0x3ff check=0x12a residue=0x0c6 name="CRC-10/GSM"
- Class: academic
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 4.7, p.65)
- Created: 17 February 2017
width=11 poly=0x385 init=0x01a refin=false refout=false xorout=0x000 check=0x5a3 residue=0x000 name="CRC-11/FLEXRAY"
- Class: attested
- Alias: CRC-11
- FlexRay Consortium (October 2010), FlexRay Communications System Protocol Specification, version 3.0.1 (courtesy of nlrp Benchmark)
- I Definition: Width, Poly, Init, RefOut (Section 4.2.8, pp.114–5)
- I Pseudocode (Section 4.5, pp.118–9)
- FlexRay Consortium (October 2010), FlexRay Protocol Conformance Test Specification, version 3.0.1 (courtesy of nlrp Benchmark)
- IV 1 codeword (Section 2.7.5, p.681)
1100000000010000000100000100110
- Robert Bosch GmbH (3 December 2007), E-Ray FlexRay IP Module, Application Note 001: Wakeup (embedded content; courtesy of Yumpu)
- IV 3 codewords (Section 4.4.3, pp.27–30; researched by Vivek Rajan)
1100000000001000100000100011011
1100000000010000100001100000100
0000000000011000100010111010010
- Created: 3 November 2007
- Updated: 7 May 2022
width=11 poly=0x307 init=0x000 refin=false refout=false xorout=0x000 check=0x061 residue=0x000 name="CRC-11/UMTS"
- Class: academic
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- 3rd Generation Partnership Project (3GPP) TS 25.427 version 17.0.0 (April 2022) (zipped MS Word document) — ETSI TS 125 427 version 17.0.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut (Section 7.2.1, p.40)
- I Definition: RefIn, RefOut (Section 6.1.1, p.20; Section 7.2.1.1, pp.40–1)
- Created: 8 February 2016
- Updated: 7 May 2022
width=12 poly=0xf13 init=0xfff refin=false refout=false xorout=0x000 check=0xd4d residue=0x000 name="CRC-12/CDMA2000"
- Class: academic
- 3rd Generation Partnership Project 2 (3GPP2) (September 2009), Physical layer standard for cdma2000 spread spectrum systems, revision E, version 1.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly (Section 2.1.3.1.4.1.2, p.2-95)
- I Full description (Section 2.1.3.1.4.1, p.2-95)
- I Shift register diagram (Figure 2.1.3.1.4.1.2-1, p.2-96)
- Agilent Technologies, Advanced Design System 2008 Update 2,
CDMA2K_CRC_Coder
module documentation (courtesy of the Internet Archive)
- Created: 14 October 2013
- Updated: 28 July 2023
width=12 poly=0x80f init=0x000 refin=false refout=false xorout=0x000 check=0xf5b residue=0x000 name="CRC-12/DECT"
- Class: academic
- Alias: X-CRC-12
- ETSI EN 300 175-3 version 2.5.1 (August 2013)
- I Definition: Residue; full mathematical description (Section 6.2.5.4, pp.99–101)
- Created: 29 July 2010
- Updated: 15 February 2017
width=12 poly=0xd31 init=0x000 refin=false refout=false xorout=0xfff check=0xb34 residue=0x178 name="CRC-12/GSM"
- Class: academic
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 5.1.5.1.4, p.72 — Section 5.1.6.1.4, p.75 — Section 5.1.7.1.4, p.77 — Section 5.1.8.1.4, p.78 — Section 5.1.9.1.4, p.81 — Section 5.1.10.1.4, p.85 — Section 5.1.11.1.4, p.87 — Section 5.1.12.1.4, p.91 — Section 5.1.13.1.4, p.93)
- Created: 17 February 2017
width=12 poly=0x80f init=0x000 refin=false refout=true xorout=0x000 check=0xdaf residue=0x000 name="CRC-12/UMTS"
- Class: academic
- Alias: CRC-12/3GPP
- The crossed-endian definition is unusual but explicit. Researched by "markw_be" at the Computer Interfacing Forum.
- 3rd Generation Partnership Project (3GPP) TS 25.212 version 17.0.0 (March 2022) (zipped MS Word document) — ETSI TS 125 212 version 17.0.0 (May 2025)
- I Mathematical description, defining Width, Poly, Init, Residue (Section 4.2.1.1, pp.19–20)
- I Attachment relation, defining RefIn ^ RefOut (Section 4.2.1.2, p.20)
- Created: 10 December 2009
- Updated: 5 August 2023
width=13 poly=0x1cf5 init=0x0000 refin=false refout=false xorout=0x0000 check=0x04fa residue=0x0000 name="CRC-13/BBC"
- Class: attested
- S. R. Ely, D. T. Wright, British Broadcasting Corporation (March 1982), L.F. Radio-data: specification of the BBC experimental transmissions 1982
- I Full mathematical description (Section 5.3, pp.4–5)
- I Definition of bit order (Section 5.2, p.4)
- I Worked example (as generator matrix) (Figure 10, p.10)
- IV 1 additional codeword (Appendix, p.10)
17777777777762722
(octal)
- Created: 14 October 2013
- Updated: 6 February 2017
width=14 poly=0x0805 init=0x0000 refin=true refout=true xorout=0x0000 check=0x082d residue=0x0000 name="CRC-14/DARC"
- Class: attested
- The single codeword is supported by the codewords confirming CRC-6/DARC, defined identically apart from Poly in the same standard. The source presents the codeword in transmission order, whereas the codeword is composed of the bytes of data sent LSB first. The CRC mask is …
FF 3F
.
- ETSI EN 300 751 version 1.2.1 (January 2003)
- I Definition: Width, Poly (Section 11.1, p.67)
- I Definition: RefIn, RefOut (Section 12, pp.69–70)
- IV 1 codeword (Section 11.1, p.67)
02000102372050524F4A454354204D41494E4D454E553B08
(source: 40008040EC040A4AF252A2C22A04B2829272B2A272AADC10
)
- See section 12 for details of the transmission order.
- Created: 14 December 2009
- Updated: 20 November 2018
width=14 poly=0x202d init=0x0000 refin=false refout=false xorout=0x3fff check=0x30ae residue=0x031e name="CRC-14/GSM"
- Class: academic
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 3.9.1.2, p.28 — Section 3.9.5.2, p.40 — Section 3.10.1.2, p.42 — Section 3.10.9.2, p.54)
- Created: 17 February 2017
width=15 poly=0x4599 init=0x0000 refin=false refout=false xorout=0x0000 check=0x059e residue=0x0000 name="CRC-15/CAN"
- Class: academic
- Alias: CRC-15
- Robert Bosch GmbH (September 1991), CAN 2.0 Specification (courtesy of GitHub)
- I Full definition (except Check) (Section 3.1.1, pp.13–14)
- I Pseudocode
- Created: 2 November 2007
- Updated: 7 May 2022
width=15 poly=0x6815 init=0x0000 refin=false refout=false xorout=0x0001 check=0x2566 residue=0x6815 name="CRC-15/MPT1327"
- Class: attested
- MX-COM reference from Koopman and Chakravarty (2004).
- UK Radiocommunications Agency (20 June 1997), MPT 1327: A signalling standard for trunked private land mobile radio systems, 3rd edition (courtesy of UK National Archives)
- I Full mathematical description (Section 3.2.3, p.3-3)
- I Error control properties (Appendix 2, p.A2-1)
- IV 1 codeword (Section 5.1.1, p.5-3; Appendix 3, p.A3-1)
1010101010101010110001001101010000000000000000000000000000000001010101010101010110001001101011
- "whiteox11" (28 December 2011), "mpt1327 decoding" (video, embedded content; courtesy of YouTube)
- II Transcript confirming implementation with 25 codewords (selection)
100111111101001010110100111100111111101101000100010011110010110
101010011100010101100000101000001101110001101100111010111011101
100111111101000101001010011100100110100101011000100100101110000
100110100100011111000100011010000000101010101010101111110011100
101010111001011010110100001100100101111010100000110000100000100
- "radiowavemaniac" (21 November 2012), "RTL-SDR Trunkview Decoder MPT1327" (video)
- II Transcript confirming implementation with 10 codewords
100010100000110000001100011100100000100001111000111111000110000
100011100000110000001100011100000001000000000000000011010100110
100100110111000011010100010000111111111110010000001011101110100
100100110110011110011100010000111111111110010000011001100110101
100100110110011110011100110100100110000101111100010100001100011
100100111111111111100100010111011001111001111000101011111101011
100100110000101111100100001001011001111001110000111001000011011
100100110000101111100100001000011001111001100000001000110011011
100100110110011010100100010000111111111110010000011011111000111
100100110110011010110100010000111111111110010000101111110001110
- MX-COM, Inc. (17 August 1998), Error detection and correction of MPT1327 formatted messages using MX429A or MX809 devices (courtesy of the Internet Archive)
- III Full mathematical description (Section 1.2.1, p.1)
- III Worked example (Section 1.2.2, p.2)
- III Code: C (Section 1.2.3, p.3)
- reveng -m CRC-15/MPT1327 -t -X -c 9FD2B4F3FB44 →
4F2C
- Unique effective solution of codeword set
- Created: 16 July 2012
- Updated: 2 August 2023
width=16 poly=0x8005 init=0x0000 refin=true refout=true xorout=0x0000 check=0xbb3d residue=0x0000 name="CRC-16/ARC"
- Class: attested
- Alias: ARC, CRC-16, CRC-16/LHA, CRC-IBM
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.2.2, p.27)
- IV 7 codewords (Section 7.2.2.2, p.27)
000000000000
F20183E1C2
0FAA0055E30B
00FF5511CF6C
332255AABBCCDDEEFF98AE
926B554EE2
FFFFFFFF0194
- System Enhancement Associates (24 October 1986), ARC 5.20
- Haruyasu Yoshizaki (10 January 1996), LHA 2.55E
- Rahul Dhesi (19 April 1996), ZOO 2.1a
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- II Implementation (
CRC16_arc
)
- Dr Ross N. Williams (19 August 1993), "A Painless Guide to CRC Error Detection Algorithms" (courtesy of the Internet Archive)
- III All parameters (except Residue)
- Emil Lenchak, Texas Instruments, Inc. (June 2018), CRC Implementation With MSP430
- III All parameters (except Residue) (Section 4.6, p.6)
- Altera Corporation (April 1999), crc MegaCore Function Data Sheet, version 2 (courtesy of the Internet Archive)
- III All parameters (except Residue) (p.6)
- Unique effective solution of codeword set
- Created: 30 March 2005
- Updated: 2 August 2023
width=16 poly=0xc867 init=0xffff refin=false refout=false xorout=0x0000 check=0x4c06 residue=0x0000 name="CRC-16/CDMA2000"
- Class: academic
- 3rd Generation Partnership Project 2 (3GPP2) (September 2009), Physical layer standard for cdma2000 spread spectrum systems, revision E, version 1.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly (Section 2.1.3.1.4.1.1, p.2-95)
- I Full description (Section 2.1.3.1.4.1, p.2-95)
- I Shift register diagram (Figure 2.1.3.1.4.1.1-1, p.2-95)
- Agilent Technologies, Advanced Design System 2008 Update 2,
CDMA2K_CRC_Coder
module documentation (courtesy of the Internet Archive)
- Created: 14 October 2013
- Updated: 28 July 2023
width=16 poly=0x8005 init=0xffff refin=false refout=false xorout=0x0000 check=0xaee7 residue=0x0000 name="CRC-16/CMS"
- Class: third-party
- Dainius Šimelevičius, Remi K. Mommsen et al. (16 December 2016), CERN CMS Online Software (XDAQ) release 14, Event Builder source package, files
daq/evb/include/evb/CRCCalculator.h
, daq/evb/src/common/CRCCalculator.cc
- III All parameters (except Residue)
- III Code: C++
- "movilstore" (24 January 2011), Computer Interfacing Forum topic 1650 (courtesy of the Internet Archive)
- III Reference to application of algorithm on Samsung mobiles
- IV 5 codewords
0200080078110000F00F0000F7E0
020008005B110000F00F00004725
0200080050110000F00F0000F71F
0200080024110000F00F00003636
02000800A6100000F00F0000141A
- "xtrusion" (28 November 2010), Computer Interfacing Forum topic 1627 (courtesy of the Internet Archive)
- IV 12 codewords
0200080034100000B0090000B725
0200080029100000B0090000E76E
0200080002100000B0090000D79B
0200080005100000B0090000A789
0200080078100000B0090000F696
00050900000000003030303000D55E
01000400051000003793
0200080034100000F00F00003740
0200080029100000F00F0000670B
0200080002100000F00F000057FE
0200080005100000F00F000027EC
0200080078100000F00F000076F3
- "Robert" ("xtrusion") (25 December 2010), Computer Interfacing Forum topic 1636 (courtesy of the Internet Archive)
- IV 5 codewords
02000C00301000009A01000000000000837B
02000C00301000009A0100009A0100004B55
02000C00301000009A01000034030000934E
02000C00301000009A010000CE0400005B09
02000C00301000009A01000068060000A311
- Unique effective solution of codeword set
- Created: 13 July 2016
- Updated: 2 August 2023
width=16 poly=0x8005 init=0x800d refin=false refout=false xorout=0x0000 check=0x9ecf residue=0x0000 name="CRC-16/DDS-110"
- Class: attested
- Used in the ELV DDS 110 function generator. Init value is equivalent to an augment of 0xFFFF prepended to the message.
- ELV Elektronik AG (March 2008), Software-Schnittstelle der Funktionsgeneratoren DDS 10/DDS 110 (in German; courtesy of the Internet Archive)
- I Definition: Width, Poly, CRC byte order (p.67)
- IV 1 codeword (escaped according to the text) (p.67)
0200108200731082F7FE
(source: 02000200731082FEF7
)
- "wortel", "Gammatester" (19 July 2009), Computer Interfacing Forum topic 1372 (courtesy of the Internet Archive)
- III All parameters (except Check, Residue) ("Gammatester")
- IV 3 codewords ("wortel")
02001082007800ED96
020010820078016D93
020005006600057A586435
- Unique effective solution of codeword set
- Created: 30 November 2009
- Updated: 28 December 2019
width=16 poly=0x0589 init=0x0000 refin=false refout=false xorout=0x0001 check=0x007e residue=0x0589 name="CRC-16/DECT-R"
- Class: attested
- Alias: R-CRC-16
- Used in DECT A-fields.
- ETSI EN 300 175-3 version 2.5.1 (August 2013)
- I Full mathematical description (Section 6.2.5.2, p.99)
- I Performance of polynomial (Annex B, p.297)
- Thomas Pircher (5 November 2022), pycrc 0.10.0
- Pavel Yazev (9 September 2015), gr-dect2 module
gr-dect2/lib/packet_decoder_impl.cc
- Created: 7 December 2009
- Updated: 3 August 2023
width=16 poly=0x0589 init=0x0000 refin=false refout=false xorout=0x0000 check=0x007f residue=0x0000 name="CRC-16/DECT-X"
- Class: attested
- Alias: X-CRC-16
- The single codeword is supported by the implementation confirming CRC-16/DECT-R, defined identically apart from XorOut in the same standard. Used in DECT B-fields.
- ETSI EN 300 175-3 version 2.5.1 (August 2013)
- I Definition: Residue; full mathematical description (Section 6.2.5.4, pp.99–101)
- I Performance of polynomial (Annex B, p.297)
- "Nick" (27 November 2010), StackOverflow submitted question
- Created: 30 July 2010
- Updated: 2 January 2021
width=16 poly=0x3d65 init=0x0000 refin=true refout=true xorout=0xffff check=0xea82 residue=0x66c5 name="CRC-16/DNP"
- Class: confirmed
- Lammert Bies (August 2011), CRC calculator
- Created: 2 November 2007
- Updated: 28 December 2019
width=16 poly=0x3d65 init=0x0000 refin=false refout=false xorout=0xffff check=0xc2b7 residue=0xa366 name="CRC-16/EN-13757"
- Class: confirmed
- Used in the Wireless M-Bus protocol for remote meter reading.
- STACKFORCE GmbH (2014), Capt²web sniffer, wireless M-Bus monitor (courtesy of the Internet Archive)
- II Transcripts confirming implementation with at least 124 codewords (selection)
EE449ACE010000802307AABC
7A4700E0A535E79CFAA94D07B173BC101496
021CCB0127DCF516FF4EA8BC0A4851744D3D
438A680ECFC8EAA7F5D6476CAD938EBF88AF
259794C336C6FE9601D99F81B5EBDD9F36B5
67FC406AA1107F380CA349EB2F1AD57AD22A
7D8067CD9D1076
D0F1E6C2C3962E
384BABA953BCE5
70414545C59920
F0649A4E111111110000E9CA
A12F2F2F2F2F2F2F2F2F2F2F2F2F2F2F4A08
2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F63D7
7A8D00E0A503B1922864C36F29B37AF0646A
D1391E979A44C456786CBB99CD6ECAACB373
- In the Web interface packet view, the bytes of the A and M fields are displayed in reverse, compared to transmission order.
- Patrick Seem, Texas Instruments, Inc. (23 October 2008), AN067: Wireless MBUS Implementation with CC1101 and MSP430
- III Definition: Width, Poly, Init, XorOut (Section 5.4, p.9)
- III Describes synchronous transfer with MSBs sent first, implying RefIn and RefOut (Sections 7.2.1, 7.3.1, pp.13–14)
- Dr.-Ing. Thomas Weinzierl, Weinzierl Engineering GmbH (July 2005), Stack Implementation for KNX-RF (courtesy of the Internet Archive)
- III Definition: Poly (Section 2.3, p.3)
- III CRC byte order, implying RefIn and RefOut (Section 2.3, p.2, etc.)
- Radio link corresponds to Link A in AN067 (Section 2.2, p.2 vs. AN067 table 3, p.6)
- "Tim" (6 June 2004), Control.com forum post
- III Width, Poly cited for ISO/IEC 60870-5-2
- "MarcPo", "Gammatester" (30 September 2008), Computer Interfacing Forum topic 925 (courtesy of the Internet Archive)
- III All parameters (except Check, Residue) ("Gammatester")
- IV 1 codeword ("MarcPo")
- "Chris P." (27 April 2009), Computer Interfacing Forum topic 1315 (courtesy of the Internet Archive)
- Unique effective solution of codeword set
- Created: 1 October 2008
- Updated: 28 December 2019
width=16 poly=0x1021 init=0xffff refin=false refout=false xorout=0xffff check=0xd64e residue=0x1d0f name="CRC-16/GENIBUS"
- Class: attested
- Alias: CRC-16/DARC, CRC-16/EPC, CRC-16/EPC-C1G2, CRC-16/I-CODE
- Used in standardised RFID tags. Presented high byte first.
- EPCglobal Inc™ (4 September 2018), EPC UHF Gen2 Air Interface Protocol: EPC™ Radio-Frequency Identity Protocols Generation-2 UHF RFID Standard, release 2.1
- I Definition: Width, Poly, Init, Residue (Table 6-11, p.33)
- I Definition: RefIn, Residue (Annex F.2, p.143)
- I Shift register circuit diagram (Figure F-2, p.144)
- I Transmission order, implying RefIn and RefOut (Section 6.3.1.4, p.33)
- IV 7 codewords (Table F-2, pp.144–5)
0000E2F0
08001111CCAE
100011112222968F
180011112222333378F6
20001111222233334444C241
2800111122223333444455552A91
30001111222233334444555566661835
- Philips Semiconductors (30 January 2004), SL2 ICS11 Product Specification, revision 3.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly, Init, Residue (Section 10.2, p.26)
- I Code: C (Section 10.3.2, pp.30–32)
- I Worked example (as code trace) (Section 10.3.2, p.32)
- ETSI EN 300 751 version 1.2.1 (January 2003)
- I Definition: Width, Poly (Section 11.2.5, p.68)
- IV 1 codeword (Section 11.2.5, p.68)
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Hee-Bok Kang et al. (December 2008), High Security FeRAM-Based EPC C1G2 UHF (860 MHz-960 MHz) Passive RFID Tag Chip, ETRI Journal, Volume 30 Number 6
- IV 2 codewords (p.830)
101000000001000000000000000000101000001010001
3000319F60A356276E28F14FDC9C5DB4
- "Geert" (7 December 2007), Computer Interfacing Forum topic 216 (courtesy of the Internet Archive)
- III Quoted definition for GENIbus: Width, Poly, Init, XorOut
- IV 2 codewords cited for GENIbus
100120020C823E003982150064820900FA910A
07200102C302101A901C
- Scott McLaughlin (24 September 2008), Computer Interfacing Forum topic 907 (courtesy of the Internet Archive)
- III Reported definition for TI Tag-It: full (except Check, Residue)
- IV 4 codewords cited for TI Tag-It
0000000001000000000101100011110010111
000000000101000000000000000011000101100011010000000101101101000111001
11000000010100000000000000000110001011000110100000001000000100011111001001111011010001011100000011000001
00000001010100000000000000001100010110001101000000011000001110000000010101010101010101100010011000111
- Unique effective solution of codeword set
- Created: 2 November 2007
- Updated: 3 January 2021
width=16 poly=0x1021 init=0x0000 refin=false refout=false xorout=0xffff check=0xce3c residue=0x1d0f name="CRC-16/GSM"
- Class: attested
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 5.1.2.2, p.67 — Section 5.1.3.2, p.69 — Section 5.1.4.2, p.70)
- ECMA standard ECMA-130, edition 2 (June 1996) — ISO/IEC 10149:1995
- I Definition: Width, Poly, XorOut, RefOut (Section 22.3.6, p.23)
- Andreas Mueller et al. (15 May 2018), cdrdao 1.2.4, modules
cdrdao-1.2.4/dao/SubChannel.cc
, cdrdao-1.2.4/dao/PQSubChannel16.cc
- Stanislav Brabec (26 January 2018), CD-disassembler 0.1 (gzipped tar archive; courtesy of the Internet Archive), module
cddisasm-0.1/cddisasm.c
- Stanislav Brabec (17 January 2014), CD-disassembler homepage (courtesy of the Internet Archive)
- IV 2 codewords
010101000000000002005A28
035D24E3580200010034D0F2
- Created: 17 February 2017
- Updated: 4 August 2023
width=16 poly=0x1021 init=0xffff refin=false refout=false xorout=0x0000 check=0x29b1 residue=0x0000 name="CRC-16/IBM-3740"
- Class: attested
- Alias: CRC-16/AUTOSAR, CRC-16/CCITT-FALSE
- An algorithm commonly misidentified as CRC-CCITT. CRC-CCITT customarily refers to the LSB-first form of the algorithm in ITU-T Recommendation V.41 (see CRC-16/KERMIT); its MSB-first counterpart is CRC-16/XMODEM.
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.2.1, p.26)
- IV 7 codewords (Section 7.2.2.1, p.26)
0000000084C0
F20183D374
0FAA00552023
00FF5511B8F9
332255AABBCCDDEEFFF53F
926B550745
FFFFFFFF1D0F
- Western Digital Corporation (May 1980), FD 179X-02 datasheet (courtesy of University of Kent Mirror Service)
- I Definition: Width, Poly, Init (p.5)
- Floppy disc formats: IBM 3740 (FM, e.g. Acorn DFS), ISO/IEC 8860-2:1987 (DOS 720K), ISO/IEC 9529-2:1989 (DOS 1.4M)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Dr Ross N. Williams (19 August 1993), "A Painless Guide to CRC Error Detection Algorithms" (courtesy of the Internet Archive)
- III All parameters (except Check, Residue)
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- Altera Corporation (April 1999), crc MegaCore Function Data Sheet, version 2 (courtesy of the Internet Archive)
- III All parameters (except Residue) (p.6)
- Scarybeasts (19 February 2021), Beebjit module
beebjit/ibm_disc_format.c
- III Code: C
- IV 2 codewords
FE00000001F1D3
FB
+ E5
× 256 + A40C
- Unique effective solution of codeword set
- Created: 30 March 2005
- Updated: 3 August 2023
width=16 poly=0x1021 init=0xffff refin=true refout=true xorout=0xffff check=0x906e residue=0xf0b8 name="CRC-16/IBM-SDLC"
- Class: attested
- Alias: CRC-16/ISO-HDLC, CRC-16/ISO-IEC-14443-3-B, CRC-16/X-25, CRC-B, X-25
- HDLC is defined in ISO/IEC 13239. CRC_B is defined in ISO/IEC 14443-3.
- ITU-T Recommendation T.30 (September 2005)
- I Definition: Residue; full mathematical description (Section 5.3.7, p.78)
- ITU-T Recommendation V.42 (March 2002)
- I Definition: Residue; full mathematical description (Section 8.1.1.6.1, p.17)
- ITU-T Recommendation X.25 (October 1996)
- I Definition: Residue; full mathematical description (Section 2.2.7.4, p.9)
- IV 4 codewords (Appendix I, p.145)
033F5BEC
01738357
013FEBDF
03733364
- IETF RFC 1331 (May 1992)
- I Code: C (Appendix B, pp.61–3)
- IETF RFC 1662 (July 1994)
- I Code: C (Appendix C.2, pp.19–21)
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
54D9E4
(source: 54261B
)
4361744D6F757365393837363534333231910A
(source: 4361744D6F7573653938373635343332316EF5
)
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- iBiquity Digital Corporation (14 December 2016), HD Radio™ Air Interface Design Description: Advanced Application Services Transport, rev. H (courtesy of National Radio Systems Committee)
- IV 1 codeword (Figure 6-3, p.17)
21005100004944330300000000004A544954320000000D000000416E616C6F6720426C756573545045310000000D0000004A2E20512E205075626C696354414C4200000012000000546865204C6F73742053657373696F6E73F527
- ISO/IEC FCD 14443-3 (24 November 2008)
- IV 3 codewords (Annex B.2, p.50)
000000CCC6
0FAAFFFCD1
0A1234562CF6
- Unique effective solution of codeword set
- Created: 10 September 2005
- Updated: 4 August 2023
width=16 poly=0x1021 init=0xc6c6 refin=true refout=true xorout=0x0000 check=0xbf05 residue=0x0000 name="CRC-16/ISO-IEC-14443-3-A"
- Class: attested
- Alias: CRC-A
- Used in contactless IC cards.
- ISO/IEC FCD 14443-3 (24 November 2008)
- I Definition: Init, XorOut (Section 6.2.4, p.11)
- I Citation for rest of algorithm: ISO/IEC 13239 (see CRC-16/IBM-SDLC)
- IV 2 codewords (Annex B.1, p.49)
- Adam Laurie (31 August 2010), crc16.c (C source text; courtesy of the Internet Archive)
- Adam Laurie (31 August 2010), comment on a Ridrix's Blog post
- III Code: C
- IV 1 codeword
- Flavio D. Garcia, et al. (October 2008), Dismantling MIFARE Classic, Proceedings of the Thirteenth European Symposium on Research in Computer Security (ESORICS 2008)
- IV 6 codewords (Figure 2, p.100; Section 4.1, p.102, referencing ISO/IEC 14443; Figure 6, p.105)
9370C2A82DF4B3BAA3
08B6DD
6030764A
500057CD
937000000000009CD9
6000F57B
- Flavio D. Garcia, et al. (October 2008), Dismantling MIFARE Classic, slide presentation, ESORICS 2008 conference
- IV 1 additional codeword (p.13)
- Unique effective solution of codeword set
- Created: 30 April 2011
- Updated: 3 August 2023
width=16 poly=0x1021 init=0x0000 refin=true refout=true xorout=0x0000 check=0x2189 residue=0x0000 name="CRC-16/KERMIT"
- Class: attested
- Alias: CRC-16/BLUETOOTH, CRC-16/CCITT, CRC-16/CCITT-TRUE, CRC-16/V-41-LSB, CRC-CCITT, KERMIT
- Used in Bluetooth error detection. Init=0x0000 is used in the Inquiry Response substate.
- Press et al. identify the CCITT algorithm with the one implemented in Kermit. V.41 is endianness-agnostic, referring only to bit sequences, but the CRC appears reflected when used with LSB-first modems. Ironically, the unreflected form is used in CRC-16/XMODEM.
- For the algorithm often misidentified as CCITT, see CRC-16/IBM-3740.
- ITU-T Recommendation V.41 (November 1988)
- I Definition: Residue; full mathematical description (Section 2, p.2)
- I Shift register diagrams (Appendix I, p.9)
- Frank da Cruz (June 1986), Kermit Protocol Manual, Sixth Edition (plain text; courtesy of the Internet Archive)
- I Full definition (except Check) (Section 6.3)
- I Pseudocode (Section 6.3)
- Bluetooth SIG (31 January 2023), Bluetooth Specification, Core Version 5.4
- I Definition: Init (Section 2.B.1.2.1, p.425; Section 2.B.6.5.1.4, pp.481–3 — Section 2.B.6.6.2, pp.490–3 — Section 2.B.7.1, p.497 — Section 2.B.8.4.3, pp.525–7)
- I Definition: Width, Poly, RefIn, RefOut, XorOut (Section 2.B.7.1.2, pp.498–9)
- I Shift register diagram (Figure 2.B.7.6, p.499)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Aviation Data Systems (Aust) Pty Ltd. (13 June 2006), PC.ACARS-G ACARS client (PATS presentation) (courtesy of the Internet Archive)
- II Transcripts confirming implementation with 10 codewords
43AED6C8ADD651431551B03102D332B9C1D651313732B583F303
6DAEB9CDADCD524F15C1C154022FCD454C43C1D9C1AEC15431AEB9CDADCD524F32B0B93446C2C13443B0B3B9B946834861
CDAEB9CDADCD524F54DF7F3802D33231C1CDC8B03134388361A7
6D8080808080808015D3518002B0B058D3838236
CDAEB9CDADCD524F15C2C1B9024CB032C1CDC8B03134382FCD454C43C1D9C1AEC15431AEB9CDADCD524FC1B0B9B531323443B3C4B9B0B3C2C1B53131C2B9B0B0C143B53437313443B0C437C134B6B54334C1C432B6B9B5B5C14343433445B9C13831B543383132343446C131B332B0B934B9B0B3B3C1B0454534C438374643B3834483
6DAEB9CDADCD524FB9DF7FD58391C6
43AED6C8ADDA5843D50DD0C1524954D920BF8397AC
43AED6C8ADDA584315C831BC0DD0C1524954D920BF8302D5
32AED6C8ADDA58C21538313702CD31B3C15146B034B3B90D8ACDD6C10D8A5146C1B034B3B92F31B0AED6C8DA58C2AECD454C200D8AC1C1B0B53137202020202083751B
6DAEB9D6ADD3CD57B5DF7F4A839BC6
- Andrew Richardson (17 March 2005), WCDMA Design Handbook, Cambridge University Press, ISBN 0-521-82815-5 (embedded content)
- III Definition: Width, Poly, Residue (Section 7.1.3, Table 7.3, p.223)
- III Shift register diagram (Figure 7.4, p.223)
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
54A114
4361744D6F7573653938373635343332318DC2
- Atmel Corporation (30 March 2015), Application Note ATAN0086: Using Atmel ATA5577 in Animal Identification Application according to ISO11784/85 (courtesy of MCS Electronics)
- IV 2 codewords (Figure 2-2, p.5; Figure 3-1, p.6)
10000000000000000000000000000000000000111001111100000000000000010010001001110100
10001110110001001100011000000010000000111001111100000000000000010111110011100100
- reveng -m CRC-16/KERMIT -i 0047 -X -c 4E010203040506070809 →
6DD2
- reveng -m CRC-16/KERMIT -i 0047 -a 1 -X -c 011101001000000001000000110000000010000010100000 →
1110110000110110
- reveng -m CRC-16/KERMIT -i 0047 -a 1 -X -c 01110100100000000100000011000000001000001010000011 →
1011000011011000
- Unique effective solution of codeword set
- Created: 10 September 2005
- Updated: 4 August 2023
width=16 poly=0x6f63 init=0x0000 refin=false refout=false xorout=0x0000 check=0xbdf4 residue=0x0000 name="CRC-16/LJ1200"
width=16 poly=0x5935 init=0xffff refin=false refout=false xorout=0x0000 check=0x772b residue=0x0000 name="CRC-16/M17"
- Class: attested
- Contributed by Mark Adler.
- M17 Project (13 July 2023), M17 protocol specification, version 1.0
- I Definition: Width, Poly, Init, RefIn, RefOut, Check (Section 2.5.4, pp.24–5; Table 2.9, p.25)
- IV 3 codewords (Table 2.9, p.25)
FFFF
41206E
(i)
× 256 + 1C31
- Created: 7 May 2022
- Updated: 8 August 2024
width=16 poly=0x8005 init=0x0000 refin=true refout=true xorout=0xffff check=0x44c2 residue=0xb001 name="CRC-16/MAXIM-DOW"
- Class: attested
- Alias: CRC-16/MAXIM
- Maxim Integrated (8 August 2012), DS1921G Datasheet
- I Definition: Width, Poly, Init, XorOut (p.32)
- I Shift register diagram (p.34)
- Maxim Integrated (22 August 2012), Application Note 27 (PDF, HTML)
- I Definition: Init (p.10)
- I Shift register diagram (p.11)
- I Code: 8051 assembler (pp.12–16)
- I Worked example (p.15)
- Created: 26 April 2009
- Updated: 28 December 2019
width=16 poly=0x1021 init=0xffff refin=true refout=true xorout=0x0000 check=0x6f91 residue=0x0000 name="CRC-16/MCRF4XX"
- Class: attested
- Youbok Lee, PhD, Microchip Technology Inc. (16 July 2001), "CRC Algorithm for MCRF45X Read/Write Device"
- I Definition: Width, Poly (reverse form) (p.1)
- I Shift register diagram (p.1)
- I Flowchart (p.2)
- I Worked example (p.3)
- I Code: C (pp.4–5)
- Piers Desrochers, PICList MassMind, "A quick guide to CRC" (courtesy of the Internet Archive)
- III Description
- III Worked example
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
54261B
4361744D6F7573653938373635343332316EF5
- "kilobravo" (16 June 2008), Computer Interfacing Forum topic 578 (courtesy of the Internet Archive)
- Unique effective solution of codeword set
- Created: 18 January 2008
- Updated: 4 August 2023
width=16 poly=0x8005 init=0xffff refin=true refout=true xorout=0x0000 check=0x4b37 residue=0x0000 name="CRC-16/MODBUS"
- Class: attested
- Alias: MODBUS
- CRC presented low byte first.
- MODICON Inc. (June 1996), Modbus Protocol Reference Guide, Rev. J
- I Algorithm (pp.112–3)
- I Code: C (pp.113–5)
- Lammert Bies (August 2011), CRC calculator
- Ondřej Karas (28 February 2006), CRC calculator
- Panu-Kristian Poiksalo (28 February 2003), Control.com forum post
- Created: 27 February 2007
- Updated: 2 January 2021
width=16 poly=0x080b init=0xffff refin=true refout=true xorout=0x0000 check=0xa066 residue=0x0000 name="CRC-16/NRSC-5"
- Class: attested
- Implemented in standard NRSC-5-D as a 16-bit CRC truncated (punctured) to 12 bits. The upper 4 bits, the last to leave the shift register, are discarded.
- Init = 0xFFFF implements the algorithm prescribed by iBiquity on 80-bit PDUs. Substitute Init = 0x39C8 if skipping 8 leading zeroes, Init = 0x849D if skipping all 12 leading zeroes and processing only the 68 message bits. In any case Init = 0x0000, XorOut = 0x4955 is equivalent.
- iBiquity Digital Corporation (23 August 2011), HD Radio™ Air Interface Design Description: Station Information Service Transport, rev. J (courtesy of National Radio Systems Committee)
- I Definition: Poly (mantissa only); method (Section 4.10, p.38)
- Incorporated by normative reference into National Radio Systems Committee standard NRSC-5-D.
- Andrew Wesie (9 June 2017), NRSC-5 receiver for rtl-sdr, file
nrsc5/support/sample.xz
(XZ compressed raw radio recording, 22 MB)
- II Recording confirming implementation with 28 codewords (4 bits extrapolated; selection)
000048BBABA0329A0A0A2671
(source: 00001010000010101001101000110010101000001010101110111011010010000000000100100110
)
0030C8D3D37379D91E0A7B40
(source: 00001010000111101101100101111001011100111101001111010011110010000011000001111011
)
0010C097A920F31B240A2D1D
(source: 00001010001001000001101111110011001000001010100110010111110000000001110100101101
)
00200882E861D03C3C0AEB71
(source: 00001010001111000011110011010000011000011110100010000010000010000010000111101011
)
00100000DC69FABC4E0AB6CD
(source: 00001010010011101011110011111010011010011101110000000000000000000001110110110110
)
000015004000809E54456AC7
(source: 01000101010101001001111010000000000000000100000000000000000101010000011101101010
)
00200008FA7E849E54454B82
(source: 01000101010101001001111010000100011111101111101000001000000000000010001001001011
)
001000744280849E54457C5C
(source: 01000101010101001001111010000100100000000100001001110100000000000001110001111100
)
- Andrew Wesie, Clayton Smith et al. (17 April 2018), NRSC-5 receiver for rtl-sdr, module
nrsc5/src/pids.c
- Created: 16 November 2018
- Updated: 20 March 2019
width=16 poly=0x5935 init=0x0000 refin=false refout=false xorout=0x0000 check=0x5d38 residue=0x0000 name="CRC-16/OPENSAFETY-A"
- Class: attested
- The single codeword is supported by the codewords confirming CRC-8/OPENSAFETY, defined identically apart from Width, Poly in the same standard.
- Ethernet POWERLINK Standardisation Group (18 October 2018), OpenSAFETY Safety Profile Specification Working Draft Proposal, version 1.5.2
- I Full description (Section 5.1.2.6, pp.43–4)
- I Error detection capability (Section 8.1, p.182)
- I Code: C (Appendix 1, pp.196–9)
- IV 1 codeword (Appendix 1, l.3525, pp.196–7)
23C8083411223344556677880374
- Prof. Philip Koopman, Tridib Chakravarty (June 2004), Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks
- III Assessment of polynomial performance (as
0xAC9A
or C3)
- Created: 22 July 2016
- Updated: 7 May 2022
width=16 poly=0x755b init=0x0000 refin=false refout=false xorout=0x0000 check=0x20fe residue=0x0000 name="CRC-16/OPENSAFETY-B"
- Class: attested
- The single codeword is supported by the codewords confirming CRC-8/OPENSAFETY, defined identically apart from Width, Poly in the same standard.
- Ethernet POWERLINK Standardisation Group (18 October 2018), OpenSAFETY Safety Profile Specification Working Draft Proposal, version 1.5.2
- I Full description (Section 5.1.2.6, pp.43–4)
- I Error detection capability (Section 8.1, p.182)
- I Code: C (Appendix 1, pp.196–9)
- IV 1 codeword (Appendix 1, l.3530, pp.196–7)
22C812563011223344556677887031
- Prof. Philip Koopman, Tridib Chakravarty (June 2004), Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks
- III Assessment of polynomial performance (as
0xBAAD
)
- Created: 22 July 2016
- Updated: 7 May 2022
width=16 poly=0x1dcf init=0xffff refin=false refout=false xorout=0xffff check=0xa819 residue=0xe394 name="CRC-16/PROFIBUS"
- Class: attested
- Alias: CRC-16/IEC-61158-2
- PROFIBUS International (March 1998), PROFIBUS Specification, Normative Parts, Edition 1.0, Part 9 (courtesy of the Internet Archive)
- I Transmission order, implying RefIn and RefOut (Part 9 Section 8.5.1, p.902)
- I Definition: Width, Poly, Init, Residue (Part 9 Section 8.8.4, pp.905–7)
- I Properties of polynomial (Part 9 Section 8.8.4, p.906)
- "Chetanya" (17 November 2011), Computer Interfacing Forum topic 1752 (courtesy of the Internet Archive)
- III Definition: Width, Poly, Init
- IV 5 codewords
34AF21
011057E0
321000E37E82
331000E32A0F
2611010000080A109739
- Unique effective solution of codeword set
- Created: 5 July 2016
- Updated: 7 May 2022
width=16 poly=0x1021 init=0xb2aa refin=true refout=true xorout=0x0000 check=0x63d0 residue=0x0000 name="CRC-16/RIELLO"
- Class: third-party
- Reported for a Riello Dialog UPS.
- "Snamprogetti" (17 April 2009), Computer Interfacing Forum topic 1305 (courtesy of the Internet Archive)
- III Definition: Width, Poly, Init
- III Algorithm reported to be CRC-CCITT, implying RefIn and RefOut.
- IV 1 codeword
- Created: 18 April 2009
- Updated: 28 December 2019
width=16 poly=0x1021 init=0x1d0f refin=false refout=false xorout=0x0000 check=0xe5cc residue=0x0000 name="CRC-16/SPI-FUJITSU"
- Class: attested
- Alias: CRC-16/AUG-CCITT
- Init value is equivalent to an augment of
0xFFFF
prepended to the message.
- Fujitsu Semiconductor (10 October 2007), FlexRay ASSP MB88121B User's Manual (courtesy of the Internet Archive)
- I Definition: Width, Poly, Init (Section 2.5.1, p.153)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- Created: 30 October 2007
- Updated: 4 August 2023
width=16 poly=0x8bb7 init=0x0000 refin=false refout=false xorout=0x0000 check=0xd0db residue=0x0000 name="CRC-16/T10-DIF"
- Class: attested
- Used in the SCSI Data Integrity Field. XorOut =
0xBADB
is proposed to mark known bad blocks.
- Gerald Houlder, INCITS Technical Committee T10 (2 May 2003), End-to-End Data Protection Proposal
- I Definition: Poly, Init (p.6)
- I Shift register diagram (p.18)
- George O. Penokie, INCITS Technical Committee T10 (22 October 2003), Simplified End-to-End Data Protection
- I Definition: Residue; full mathematical description (Sections 4.5.3–4.5.4, pp.4–5)
- IV 5 codewords (Section 4.5.6, p.6)
00000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA293
000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F0224
FFFF00000000000000000000000000000000000000000000000000000000000021B8
FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0A0B7
- Ralph Weber, John Lohmeyer, INCITS Technical Committee T10 (20 August 2003), Minutes of Data Integrity Study Group - Aug 19-20, 2003
- I Definition: Init, XorOut (Item 4.6, p.3)
- I Acceptance of previous two documents (Item 4.7, p.3)
- Pat Thaler, INCITS Technical Committee T10 (28 August 2003), 16-bit CRC polynomial selection
- I Properties of polynomial
- Martin K. Petersen, Oracle Corporation (2007); Tim Chen, Intel Corporation (2013), Linux module
crypto/crct10dif_common.c
- Created: 29 September 2009
- Updated: 2 January 2021
width=16 poly=0xa097 init=0x0000 refin=false refout=false xorout=0x0000 check=0x0fb3 residue=0x0000 name="CRC-16/TELEDISK"
- Class: confirmed
- Used in the Teledisk disc archive format. DECnet and CRCK allegedly use a Sick-type algorithm but with this polynomial.
- Will Kranz (8 December 2002), wteledsk 1.01
- Will Kranz (8 December 2002), wteledsk 1.01 module
src/tdcrc.c
- Created: 10 December 2009
- Updated: 4 August 2023
width=16 poly=0x1021 init=0x89ec refin=true refout=true xorout=0x0000 check=0x26b1 residue=0x0000 name="CRC-16/TMS37157"
- Class: attested
- Texas Instruments, Inc. (November 2009), TMS37157 datasheet
- I Full definition (except Check) (pp.39–40)
- I Shift register diagram (Figure 51, p.39)
- I Flowchart (Figure 52, p.40)
- "harper", "jacknad" (November 2010–January 2011), StackOverflow submitted question and answers
- III Definition: Init (reverse form) ("harper")
- III Code: C ("jacknad")
- IV 3 codewords ("harper")
0225A6
024000000000A060E7
024100000000A46FA5
- "Petri" (4 May 2010), Texas Instruments, Inc. E2E™ Community forum post
- Unique effective solution of codeword set
- Created: 17 April 2011
- Updated: 28 December 2019
width=16 poly=0x8005 init=0x0000 refin=false refout=false xorout=0x0000 check=0xfee8 residue=0x0000 name="CRC-16/UMTS"
- Class: attested
- Alias: CRC-16/BUYPASS, CRC-16/VERIFONE
- Reported for the multi-threaded portion of the Buypass transaction processing network.
- Verifone, Inc. (May 1995), TCLOAD Reference Manual (courtesy of the Internet Archive)
- I Definition: Poly. CRC byte order, implying RefIn and RefOut (Section 4, p.4-1)
- 3rd Generation Partnership Project (3GPP) TS 25.427 version 17.0.0 (April 2022) (zipped MS Word document) — ETSI TS 125 427 version 17.0.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut (Section 7.2.1, p.40)
- I Definition: RefIn, RefOut (Section 6.1.1, p.20; Section 7.2.1.1, p.40)
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Emil Lenchak, Texas Instruments, Inc. (June 2018), CRC Implementation With MSP430
- III All parameters (except Residue) (Section 4.6, p.6)
- Thomas Schmidt, Microchip Technology Inc. (20 May 2000), "CRC Generating and Checking"
- III Description (p.4)
- III Shift register diagram (Figure 1, p.3)
- III Code: 16C54B assembler (Appendix A, pp.7–11; Appendix B, pp.12–22)
- Michael Niedermayer, Aurélien Jacobs et al. (27 February 2023), FFmpeg 6.0 (XZ compressed tarfile), module
ffmpeg-6.0/libavutil/tests/crc.c
- "Joshua" (31 May 2008), Computer Interfacing Forum topic 530 (courtesy of the Internet Archive)
- IV 2 codewords
0384901B56
03848400001230314131333030323031333030311C39303062BF
- Michael Junker (26 October 2009), Computer Interfacing Forum topic 1432 (courtesy of the Internet Archive)
- IV 7 codewords (7-bit payload characters)
01100110011101011000001100000110011001110101100001101000111010100
(source: 331D3030331D30
+ 53716
)
01101000011101011000001100000110011001110101100001111000111001001
(source: 341D3030331D30
+ 61897
)
01101010011101011000001100000110011001110101100000001000111001111
(source: 351D3030331D30
+ 04559
)
01101100011101011000001100000110011001110101100001011000111000000
(source: 361D3030331D30
+ 45504
)
01100110011101011010001100000110000001110101100000101000111000110
(source: 331D3430301D30
+ 20934
)
01100110011101011000001100000111001001110101100001101000111110110
(source: 331D3030391D30
+ 53750
)
01100010011101011000001100010110000001110101100000001001101010001
(source: 311D3031301D30
+ 04945
)
- Unique effective solution of codeword set
- Created: 4 June 2008
- Updated: 8 August 2024
width=16 poly=0x8005 init=0xffff refin=true refout=true xorout=0xffff check=0xb4c8 residue=0xb001 name="CRC-16/USB"
- Class: confirmed
- CRC appended low byte first.
- Cypress Semiconductor Corporation (26 July 2001), SL811HS/SL811HST Application Notes, Revision 1.21 (courtesy of Stardot.org.uk Forums)
- II Transcript confirming implementation with 3 codewords (pp.25,30)
1BED534B3E6D7F7CD7CC
(source: CRC = EB33
)
55534243A864AB870800000080000A25000000000000000000000000000000C30E
(source: CRC = C370
)
8006000100004000DD94
(source: CRC = BB29
)
- Anonymous (10 July 1997), "Cyclic Redundancy Checks in USB" (Draft) (courtesy of the Internet Archive)
- III Definition: Width, Poly, Init, XorOut (p.2)
- III Definition: Residue (p.3)
- III Code: Perl (p.4)
- IV 2 codewords (p.6)
00010203EF7A
234567890E1C
- Unique effective solution of codeword set
- Created: 1 December 2007
- Updated: 12 July 2024
width=16 poly=0x1021 init=0x0000 refin=false refout=false xorout=0x0000 check=0x31c3 residue=0x0000 name="CRC-16/XMODEM"
- Class: attested
- Alias: CRC-16/ACORN, CRC-16/LTE, CRC-16/V-41-MSB, XMODEM, ZMODEM
- The MSB-first form of the V.41 algorithm. For the LSB-first form see CRC-16/KERMIT. CRC presented high byte first.
- Used in the MultiMediaCard interface. In XMODEM and Acorn MOS the message bits are processed out of transmission order, compromising the guarantees on burst error detection.
- ITU-T Recommendation V.41 (November 1988)
- I Definition: Residue; full mathematical description (Section 2, p.2)
- I Shift register diagrams (Appendix I, p.9)
- 3rd Generation Partnership Project (3GPP) TS 36.212 version 17.1.0 (March 2022) (zipped MS Word document) — ETSI TS 136 212 version 17.1.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, pp.10–11)
- I Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.11)
- 3rd Generation Partnership Project (3GPP) TS 36.321 version 17.5.0 (June 2023) (zipped MS Word document) — ETSI TS 136 321 version 17.5.0 (July 2023)
- Referenced from TS 136 212 section 5.2.2.1, p.26
- I Definition: RefIn, RefOut (Section 6.1.1, p.90)
- JEDEC Standard JESD84-A441 (March 2010) (registration required)
- I Full definition (Section 10.2, pp.157–8)
- I Shift register diagram (Figure 54, p.159)
- Acorn Computers Ltd (October 1984), BBC Microcomputer User Guide (courtesy of the Internet Archive)
- I Pseudocode (Chapter 35, p.369)
- Ward Christensen, Keith Petersen et al. (8 June 1982), XMODEM 5.0
- II Implementation (attributed to Paul Hansknecht)
- Acorn Computers Ltd (1981), Acorn MOS 1.20 (BBC Micro cassette format)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- Altera Corporation (April 1999), crc MegaCore Function Data Sheet, version 2 (courtesy of the Internet Archive)
- III All parameters (except Residue) cited for ZMODEM (p.6)
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
541A71
4361744D6F757365393837363534333231E556
- Created: 30 March 2005
- Updated: 5 August 2023
width=17 poly=0x1685b init=0x00000 refin=false refout=false xorout=0x00000 check=0x04f03 residue=0x00000 name="CRC-17/CAN-FD"
- Class: academic
- Robert Bosch GmbH (17 April 2012), CAN with Flexible Data-Rate: Specification, version 1.0 (courtesy of the Internet Archive)
- I Full definition (except Check); pseudocode (Section 3.2.1, pp.13–14)
- Created: 20 June 2017
- Updated: 3 January 2021
width=21 poly=0x102899 init=0x000000 refin=false refout=false xorout=0x000000 check=0x0ed841 residue=0x000000 name="CRC-21/CAN-FD"
- Class: academic
- Robert Bosch GmbH (17 April 2012), CAN with Flexible Data-Rate: Specification, version 1.0 (courtesy of the Internet Archive)
- I Full definition (except Check); pseudocode (Section 3.2.1, pp.13–14)
- Robert Bosch GmbH (23 December 2011), CRC for CAN with flexible data rate (CAN FD)
- I Error control properties; theory of polynomial construction (Section 2, p.1; Section 3, p.2)
- Created: 20 June 2017
- Updated: 3 January 2021
width=24 poly=0x00065b init=0x555555 refin=true refout=true xorout=0x000000 check=0xc25a56 residue=0x000000 name="CRC-24/BLE"
- Class: attested
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- The Init value applies to Bluetooth Low Energy (BLE) test packets and (device-) advertising channel packets. Data channel packets use a custom Init value defined at connection time.
- BLE sniffer screenshot reference from "volta77" (29 May 2014), Nordic Developer Zone post
- Bluetooth SIG (31 January 2023), Bluetooth Specification, Core Version 5.4
- I Full definition (except Check) (Section 6.B.3.1.1, pp.2746–7)
- I Shift register diagram (Figure 6.B.3.4, p.2747)
- IV 2 codewords (Section 6.C.2.1, p.2922; Section 6.C.4.2.1, p.2928)
0003424C45290ACE
0100001010010000011001011010010100100101110001010100010110000011100000000100000011000000101101010010110111010111
- Texas Instruments, Inc. (12 March 2013), Processors wiki, BLE sniffer guide
- II Transcripts confirming implementation with 4 codewords (plus 3 with custom Init)
00119992B1EBD7900201050702031802180418A85DEF
030C5F96EA3018009992B1EBD790DF02EB
04129992B1EBD7900B094B6579666F6264656D6FD39F03
05225F96EA3018009992B1EBD7901B0A8560A77B22020F0050000000D007FFFFFFFF1FA948DA02
- Liam Goudge (1 October 2014), "Custom Bluetooth Low Energy board with 2.4GHz antenna hack and Nordic nRF51822…"
- II Transcript confirming implementation with 2 codewords (plus 8 with custom Init)
4021EE04A5DDA7F90B094C69616D73424C4576320319410302010607030D180F180A181C929E
C522C4A5F2BE7479EE04A5DDA7F9667265500B085B030500180000004800FFFFFFFF1FA9E478D0
- Anonymous (7 September 2012), BLE sniffer screenshot (courtesy of Texas Instruments, Inc. E2E™ Community forum)
- II Transcript confirming implementation with 2 codewords (plus 7 with custom Init)
00090DEF84B72D3C020105C2E2A4
0522AB2F853118000DEF84B72D3C782118C9567FA202270050000000D007FFFFFFFF1FAF0F1957
- Unique effective solution of codeword set
- Created: 7 February 2016
- Updated: 4 August 2023
width=24 poly=0x5d6dcb init=0xfedcba refin=false refout=false xorout=0x000000 check=0x7979bd residue=0x000000 name="CRC-24/FLEXRAY-A"
- Class: attested
- Channels A and B have different initial vectors to prevent frames crossing channels.
- FlexRay Consortium (October 2010), FlexRay Communications System Protocol Specification, version 3.0.1 (courtesy of nlrp Benchmark)
- I Definition: Width, Poly, Init, RefOut (Section 4.4, pp.117–8)
- I Pseudocode (Section 4.5, pp.118–20)
- FlexRay Consortium (October 2010), FlexRay Protocol Conformance Test Specification, version 3.0.1 (courtesy of nlrp Benchmark)
- IV 5 codewords (Section 2.7.5, p.681)
18020209880000F339C1
600A0248C80102646D70
205606C848102030405060474380
202E06C84810203040506096C9D1
201A06C848102030405060B072EB
- Unique effective solution of codeword set
- Created: 3 November 2007
- Updated: 6 February 2017
width=24 poly=0x5d6dcb init=0xabcdef refin=false refout=false xorout=0x000000 check=0x1f23b8 residue=0x000000 name="CRC-24/FLEXRAY-B"
- Class: attested
- Channels A and B have different initial vectors to prevent frames crossing channels.
- FlexRay Consortium (October 2010), FlexRay Communications System Protocol Specification, version 3.0.1 (courtesy of nlrp Benchmark)
- I Definition: Width, Poly, Init, RefOut (Section 4.4, pp.117–8)
- I Pseudocode (Section 4.5, pp.118–20)
- FlexRay Consortium (October 2010), FlexRay Protocol Conformance Test Specification, version 3.0.1 (courtesy of nlrp Benchmark)
- IV 5 codewords (Section 2.7.5, p.681)
18020209880000D5B910
600A0248C8010242EDA1
205606C848102030405060E6D9BE
202E06C8481020304050603753EF
201A06C84810203040506011E8D5
- Unique effective solution of codeword set
- Created: 3 November 2007
- Updated: 6 February 2017
width=24 poly=0x328b63 init=0xffffff refin=false refout=false xorout=0xffffff check=0xb4f3e6 residue=0x144e63 name="CRC-24/INTERLAKEN"
- Class: academic
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- The Interlaken Alliance (7 October 2008), Interlaken Protocol Definition, version 1.2
- I Definition: Width, Poly (Section 5.3.2.2, p.18)
- I Definition: Init, RefIn, RefOut, XorOut (Appendix B, p.48)
- IV 1 codeword (Appendix B, p.48)
520BB1047D585E00C2B4B401BBAF01000000FCB0B3A8468E1A0A01E1BA38A9DF00003677EEA56DDABEB48D4D93A88A1200001F9515F655DCC3857A641B260C51F10000000000000059E69D
- Created: 10 February 2016
- Updated: 4 August 2023
width=24 poly=0x864cfb init=0x000000 refin=false refout=false xorout=0x000000 check=0xcde703 residue=0x000000 name="CRC-24/LTE-A"
- Class: academic
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- 3rd Generation Partnership Project (3GPP) TS 36.212 version 17.1.0 (March 2022) (zipped MS Word document) — ETSI TS 136 212 version 17.1.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, pp.10–11)
- I Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.11)
- 3rd Generation Partnership Project (3GPP) TS 36.321 version 17.5.0 (June 2023) (zipped MS Word document) — ETSI TS 136 321 version 17.5.0 (July 2023)
- Referenced from TS 136 212 section 5.2.2.1, p.26
- I Definition: RefIn, RefOut (Section 6.1.1, p.90)
- Created: 13 February 2016
- Updated: 5 August 2023
width=24 poly=0x800063 init=0x000000 refin=false refout=false xorout=0x000000 check=0x23ef52 residue=0x000000 name="CRC-24/LTE-B"
- Class: academic
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- 3rd Generation Partnership Project (3GPP) TS 36.212 version 17.1.0 (March 2022) (zipped MS Word document) — ETSI TS 136 212 version 17.1.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, pp.10–11)
- I Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.11)
- 3rd Generation Partnership Project (3GPP) TS 36.321 version 17.5.0 (June 2023) (zipped MS Word document) — ETSI TS 136 321 version 17.5.0 (July 2023)
- Referenced from TS 136 212 section 5.2.2.1, p.26
- I Definition: RefIn, RefOut (Section 6.1.1, p.90)
- Created: 13 February 2016
- Updated: 5 August 2023
width=24 poly=0x864cfb init=0xb704ce refin=false refout=false xorout=0x000000 check=0x21cf02 residue=0x000000 name="CRC-24/OPENPGP"
- Class: attested
- Alias: CRC-24
- IETF RFC 4880 (November 2007)
- I Definition: Width, Poly, Init (Section 6, p.53)
- I Code: C (Section 6.1, p.54)
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- Created: 2 November 2007
- Updated: 4 August 2023
width=24 poly=0x800063 init=0xffffff refin=false refout=false xorout=0xffffff check=0x200fa5 residue=0x800fe3 name="CRC-24/OS-9"
- Class: attested
- Microware Systems Corporation (January 1983), OS-9 Operating System, System Programmer's Manual, revision F-1 (PDF, HTML) (courtesy of Søren Roug)
- I Definition: Width, Poly, Init, XorOut, Residue (Section 10.1.4, pp.51–2)
- I Code: C (Section 10.1.4, p.52)
- Microware Systems Corporation (August 2000), OS-9 Technical Manual, version 2.2, revision I (courtesy of the Internet Archive)
- I Definition: Init, Residue (Chapter 8, p.228)
- Microware Inc., TPUG Inc. (1985), SuperOS-9 system disk (courtesy of the Internet Archive)
- II Transcript confirming implementation with at least 7 codewords (selection)
87CD00320021F181D600260029FF0000000F010400000100060101001000100101445261ED015242C643626D4473EB0C4EDF
87CD0020000D118108001500FA556E4D6F756EF401113F21265F103F06782872
87CD003C002CF181D500300033030003051A00000100010100011808180D1B040117030508070000002C0000546572ED5343C643626D436FEE81D4AA
87CD00300021F181D400240027FF0000000F01000000010023010100100010010144B0015242C643626D4473EBA297DD
87CD00300021F181D400240027FF0000000F01010000010023010100100010010144B1015242C643626D4473EBC1CCD5
87CD00300021F181D400240027FF0000000F01020000010023010100100010010144B2015242C643626D4473EB6421CD
87CD00300021F181D400240027FF0000000F01030000010023010100100010010144B3015242C643626D4473EB077AC5
- Søren Roug (15 May 2018), osnine-java, module
os9l1/src/main/java/org/roug/osnine/os9/OS9.java
- III Code: Java (ll.953–94)
- Unique effective solution of codeword set
- Created: 25 July 2018
- Updated: 4 August 2023
width=30 poly=0x2030b9c7 init=0x3fffffff refin=false refout=false xorout=0x3fffffff check=0x04c34abf residue=0x34efa55a name="CRC-30/CDMA"
- Class: academic
- Reference from named polynomial in Prof. Koopman's CRC Polynomial Zoo.
- CCSA Telecommunication Industry Standard YD/T 1838.3-2008 (5 November 2008; courtesy of the Internet Archive)
- I Full definition (except Check, Residue) (Section 2.1.1.5.1.2, pp.2-44–5)
- Created: 20 February 2016
- Updated: 4 August 2023
width=31 poly=0x04c11db7 init=0x7fffffff refin=false refout=false xorout=0x7fffffff check=0x0ce9e46c residue=0x4eaf26f1 name="CRC-31/PHILIPS"
- Class: confirmed
- Sincere thanks to Luigi (gigirex) for his assistance.
- AVMagazine.it has a forum topic on the Philips TV (in Italian).
- Philips 37PF9731 LCD TV
- "gigirex" (1 March 2012), Computer Interfacing Forum topic 1774 (courtesy of the Internet Archive)
- IV 7 codewords (76 bytes each)
- Created: 12 April 2012
- Updated: 28 December 2019
width=32 poly=0x814141ab init=0x00000000 refin=false refout=false xorout=0x00000000 check=0x3010bf7f residue=0x00000000 name="CRC-32/AIXM"
- Class: attested
- Alias: CRC-32Q
- Used for aeronautical data. Recognised by the ICAO.
- EUROCONTROL (20 March 2006), AIXM Primer 4.5
- I Definition: Width, Poly, Init, XorOut, RefIn (Section 6.2, pp.23–5)
- I Flowchart (p.24)
- I Code: Java (Appendix B, pp.41–5)
- IV 8 codewords (Table 6.1, p.25)
3438303633374EA5A7C704
3031363334313145A1AE5741
3438303633374E3031363334313145A1BA30EE
3738326C297100
3438303633374E30313633343131453738326A259F4E
34362E37266D25C1
3438303633374E303136333431314534362E372F866D6D
3438303633374E303136333431314537383234362E375E5DC940
- Created: 29 April 2009
- Updated: 2 January 2021
width=32 poly=0xf4acfb13 init=0xffffffff refin=true refout=true xorout=0xffffffff check=0x1697d06a residue=0x904cddbf name="CRC-32/AUTOSAR"
- Class: attested
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.3.2, pp.28–9)
- IV 7 codewords (Section 7.2.3.2, p.29)
000000004022B36F
F20183251A724F
0FAA0055F82D6620
00FF55116E99D79B
332255AABBCCDDEEFF3D345AA6
926B55788A68EE
FFFFFFFFFFFFFFFF
- Unique effective solution of codeword set
- Created: 24 July 2016
- Updated: 28 July 2023
width=32 poly=0xa833982b init=0xffffffff refin=true refout=true xorout=0xffffffff check=0x87315576 residue=0x45270551 name="CRC-32/BASE91-D"
- Class: confirmed
- Alias: CRC-32D
- Greg Cook (21 August 2020), Base91 level 1 version 3.12
- II Implementation
- III Full mathematical description
- III All parameters
- III Code: C
- Prof. Philip Koopman (July 2002), "32-Bit Cyclic Redundancy Codes for Internet Applications", Proceedings of The International Conference on Dependable Systems and Networks
- III Polynomial discovered by Castagnoli; properties confirmed by Koopman
- Created: 28 November 2008
- Updated: 8 August 2024
width=32 poly=0x04c11db7 init=0xffffffff refin=false refout=false xorout=0xffffffff check=0xfc891918 residue=0xc704dd7b name="CRC-32/BZIP2"
- Class: attested
- Alias: CRC-32/AAL5, CRC-32/DECT-B, B-CRC-32
- Used in DECT B-fields.
- Black's example AAL5 cells, with bytes
00 00 00 28
inserted between the described data fields and their CRCs, equal the examples in I.363.5.
- ITU-T Recommendation I.363.5 (August 1996)
- I Definition: Residue; full mathematical description (Section 9.2.1.2 (f), p.12)
- IV 3 codewords (Appendix I, p.39)
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000028864D7F99
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000028C55E457A
0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223242526272800000028BF671ED0
- ETSI EN 300 175-3 version 2.5.1 (August 2013)
- I Definition: Residue; full mathematical description (Section 6.2.5.5, p.102)
- Julian Seward (4 September 1999), bzip2 0.9.5d
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Emil Lenchak, Texas Instruments, Inc. (June 2018), CRC Implementation With MSP430
- III All parameters (except Residue) (Section 4.6, p.6)
- Richard Black (18 February 1994), Fast CRC32 in Software: Software Implementations
- Richard Black (18 February 1994), Fast CRC32 in Software: Some Examples
- IV 3 codewords (same as in I.363.5)
- Angie Tso, Telecommunications Techniques Corp. (24 October 1994), Cell Relay mailing list post (courtesy of the Internet Archive)
- IV 4 codewords (first three same as in I.363.5)
0102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223242526272811220028ACBA602A
- Ryan Luecke, James Lyons (11 October 2011), CRC32 Checksums; The Good, The Bad, And The Ugly (courtesy of the Internet Archive)
- Unique effective solution of codeword set
- Created: 8 October 2008
- Updated: 22 August 2022
width=32 poly=0x8001801b init=0x00000000 refin=true refout=true xorout=0x00000000 check=0x6ec2edc4 residue=0x00000000 name="CRC-32/CD-ROM-EDC"
- Class: academic
- ECMA standard ECMA-130, edition 2 (June 1996) — ISO/IEC 10149:1995
- I Definition: Width, Poly, Refin, RefOut, Residue (Section 14.3, p.16)
- Heiko Eißfeldt, Jörg Schilling (28 April 2013), cdrtools 3.01 (in German), source code distribution (Bzip2 compressed tarfile), modules
cdrtools-3.01/libedc/crctable.out
, cdrtools-3.01/libedc/edc_ecc.c
- III Parameters: Width, Poly, RefIn
- III Code: C
- Created: 19 April 2019
- Updated: 4 August 2023
width=32 poly=0x04c11db7 init=0x00000000 refin=false refout=false xorout=0xffffffff check=0x765e7680 residue=0xc704dd7b name="CRC-32/CKSUM"
- Class: attested
- Alias: CKSUM, CRC-32/POSIX
- The
cksum
program processes a representation of the input stream length following the input. It returns 930766865
(0x377A6011
) on the check string, processed internally as 31 32 33 34 35 36 37 38 39 09
. See the definition for details.
- The Open Group (1997), Single Unix Specification, version 2, Commands & Utilities Issue 5, Reference Pages: cksum
- I Full definition (except Check, Residue)
- Q. Frank Xia (December 1999), GNU cksum 2.0a
- Michael Niedermayer, Aurélien Jacobs et al. (27 February 2023), FFmpeg 6.0 (XZ compressed tarfile), module
ffmpeg-6.0/libavutil/tests/crc.c
- IV 1 codeword (before XorOut stage)
(i+i*i)
× 1999 + 3F0A451F
(source: + C0F5BAE0
)
- Created: 30 March 2005
- Updated: 8 August 2024
width=32 poly=0x1edc6f41 init=0xffffffff refin=true refout=true xorout=0xffffffff check=0xe3069283 residue=0xb798b438 name="CRC-32/ISCSI"
- Class: attested
- Alias: CRC-32/BASE91-C, CRC-32/CASTAGNOLI, CRC-32/INTERLAKEN, CRC-32C, CRC-32/NVME
- IETF RFC 7143 (April 2014)
- I Full definition (except Check) (Section 13.1, pp.230–1)
- IETF RFC 3385 (September 2002)
- I Code: Verilog (implementation in hardware)
- III Survey of literature and discussion of polynomial properties
- NVM Express, Inc. (27 December 2023), NVM Express® TCP Transport Specification, Revision 1.0d
- I Citation for algorithm: IETF RFC 3385 (Section 3.3.1.1, p.14)
- The Interlaken Alliance (7 October 2008), Interlaken Protocol Definition, version 1.2
- I Definition: Width, Poly (Section 5.4.6, p.33)
- I Definition: Init, RefIn, RefOut, XorOut (Appendix B, p.48)
- Dipl. Inf. Johann F. Löfflmann (30 July 2006), Jacksum 1.7.0
- Greg Cook (21 August 2020), Base91 level 1 version 3.12
- II Implementation
- III Full mathematical description
- III All parameters
- III Code: C
- Mark Bakke, Julian Satran, Venkat Rangan (May–June 2001), IP Storage Mailing List thread
- III All parameters (except Residue) (Bakke, Rangan)
- III Definition: Width, Poly, Init, XorOut (Satran)
- III Code: C (Rangan)
- IV 3 codewords (Bakke)
0000000000000000000000000000000000000000000000000000000000000000AA36918A
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43ABA862
000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F4E79DD46
- NVM Express, Inc. (10 January 2024), NVM Express® Management Interface Specification, Revision 1.2d
- IV 7 codewords (Appendix C, pp.162–5)
84100000060301000000000000000000000000000000000000000000040000001400000000000000000000000100000000000000000000000000000000000000000000004AC32CFA
8490000000000000000000000000000000000000415A3132333435362020202020202020202020207A1FC47B
84080000010000000000000000000080AAEF81B4
848800000000000038FF1E0501000000C83B3B57
8400000004450000CD21EC1E
8480000000450100BD860283
- Unique effective solution of codeword set
- Created: 10 September 2005
- Updated: 8 August 2024
width=32 poly=0x04c11db7 init=0xffffffff refin=true refout=true xorout=0xffffffff check=0xcbf43926 residue=0xdebb20e3 name="CRC-32/ISO-HDLC"
- Class: attested
- Alias: CRC-32, CRC-32/ADCCP, CRC-32/V-42, CRC-32/XZ, PKZIP
- HDLC is defined in ISO/IEC 13239.
- ITU-T Recommendation V.42 (March 2002)
- I Definition: Residue; full mathematical description (Section 8.1.1.6.2, p.17)
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.3.1, pp.27–8)
- IV 7 codewords (Section 7.2.3.1, p.28)
000000001CDF4421
F20183779DAB24
0FAA005587B2C9B6
00FF55111262A032
332255AABBCCDDEEFF3D86AEB0
926B559BA2DE9C
FFFFFFFFFFFFFFFF
- Lasse Collin, Igor Pavlov et al. (27 August 2009), The .xz file format, version 1.0.4
- IETF RFC 1662 (July 1994)
- I Code: C (Appendix C.3, pp.21–3)
- PKWARE Inc. (1 February 1993), PKZIP 2.04g
- Frank J. T. Wojcik, Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson et al. (15 October 1999), libpng 1.0.5
- Lasse Collin, Igor Pavlov et al. (21 May 2011), XZ Utils 5.0.3
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Dr Ross N. Williams (19 August 1993), "A Painless Guide to CRC Error Detection Algorithms" (courtesy of the Internet Archive)
- III All parameters (except Residue)
- Emil Lenchak, Texas Instruments, Inc. (June 2018), CRC Implementation With MSP430
- III All parameters (except Residue) (Section 4.6, p.6)
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- NVM Express, Inc. (11 January 2024), NVM Express® Base Specification, Revision 2.0d
- IV 1 codeword (Section 8.13.5.8, p.409)
89AEB31A874EAF84841B46736B0DFDF2BA58D30AA2A545A3E235A3521E07594CFA690DA7
(source: ia6zGodOr4SEG0Zzaw398rpY0wqipUWj4jWjUh4HWUz6aQ2n
)
- NVM Express, Inc. (27 December 2023), NVM Express® TCP Transport Specification, Revision 1.0d
- I 1 codeword (Section 3.6.1.5, p.27)
5512DBB6737D0106F65975B773DFB011FFC344BCF442E2DD6D8BC4870B5D5B035FF4BAD9
(source: VRLbtnN9AQb2WXW3c9+wEf/DRLz0QuLdbYvEhwtdWwNf9LrZ
)
- Cisco Systems (September 2013), Meraki Air Marshal white paper
- IV 1 codeword (p.9)
C008300028CFE9521D3B08EA449900E808EA449900E8300102007E649416
- Ryan Luecke, James Lyons (11 October 2011), CRC32 Checksums; The Good, The Bad, And The Ugly
- Unique effective solution of codeword set
- Created: 30 March 2005
- Updated: 8 August 2024
width=32 poly=0x04c11db7 init=0xffffffff refin=true refout=true xorout=0x00000000 check=0x340bc6d9 residue=0x00000000 name="CRC-32/JAMCRC"
- Class: confirmed
- Alias: JAMCRC
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Altera Corporation (April 1999), crc MegaCore Function Data Sheet, version 2 (courtesy of the Internet Archive)
- III All parameters (except Residue) (p.6)
- Created: 30 March 2005
- Updated: 21 November 2018
width=32 poly=0x741b8cd7 init=0xffffffff refin=true refout=true xorout=0x00000000 check=0xd2c22f51 residue=0x00000000 name="CRC-32/MEF"
- Class: attested
- Reference courtesy of Greg Nelson, Grammatech Inc.
- Mayo Foundation (19 February 2016), Multiscale Electrophysiology File Format Version 3.0 (MEF3) specification (courtesy of GitHub)
- I Definition: Init (p.90), Width (p.91)
- I Citation for Poly: "Koopman" (p.91)
- Dan Crepeau (27 Sep 2021), Sample MEF 3.0 data (tar archive)
- II Recording confirming implementation with at least 32 codewords (selection)
4E6F7465000100003000000040F2E0C8E674040054686973206973207468652074657874206F6620746865206669727374206E6F74652E007E7E7E7E7E7E7E7E7E7E7E7E42342AB7
4E6F74650001000030000000C08879C9E674040054686973206973207468652074657874206F6620746865207365636F6E64206E6F74652E007E7E7E7E7E7E7E7E7E7E7E78CE3BA8
42342AB74E6F7465000100003000000040F2E0C8E674040054686973206973207468652074657874206F6620746865206669727374206E6F74652E007E7E7E7E7E7E7E7E7E7E7E7E78CE3BA84E6F74650001000030000000C08879C9E674040054686973206973207468652074657874206F6620746865207365636F6E64206E6F74652E007E7E7E7E7E7E7E7E7E7E7E266D44ED
4E6F746500010000000400000000000040F2E0C8E67404004E6F7465000100004804000000000000C08879C9E6740400D1D99813
- Matt Stead, Ben Brinkmann, Dan Crepeau, Mayo Foundation (2013), Multiscale Electrophysiology Format (MEF) version 3.0 library, modules
meflib/meflib.c
, meflib/meflib.h
- Created: 10 January 2022
- Updated: 4 August 2023
width=32 poly=0x04c11db7 init=0xffffffff refin=false refout=false xorout=0x00000000 check=0x0376e6e7 residue=0x00000000 name="CRC-32/MPEG-2"
- Class: attested
- ISO/IEC 13818-1:2000 — ITU-T Recommendation H.222.0 (February 2000)
- I Definition: Width, Poly, Init, RefIn, RefOut, Residue (Annex A, p.97)
- I CRC checking algorithm (Annex A, p.97)
- I Partial shift register diagram (Annex A, p.97)
- Dipl. Inf. Johann F. Löfflmann (30 July 2006), Jacksum 1.7.0
- VideoLAN Organization (13 October 2022), VLC 3.0.18 module
vlc-3.0.11/modules/mux/mpeg/ps.c
- Created: 8 October 2008
- Updated: 4 August 2023
width=32 poly=0x000000af init=0x00000000 refin=false refout=false xorout=0x00000000 check=0xbd0be338 residue=0x00000000 name="CRC-32/XFER"
- Class: confirmed
- Alias: XFER
- Jon Welch (12 January 2007), XFER in C, version 5.1a
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III Presents polynomial and its properties (p.299)
- Created: 30 March 2005
- Updated: 2 January 2021
width=40 poly=0x0004820009 init=0x0000000000 refin=false refout=false xorout=0xffffffffff check=0xd4164fc646 residue=0xc4ff8071ff name="CRC-40/GSM"
- Class: academic
- Correction to XorOut by Mark Cammidge, Peralex Electronics (Pty) Ltd.
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 4.1.2, p.61)
- Patrick Geremia, Texas Instruments, Inc. (April 1999), Cyclic Redundancy Check Computation: An Implementation Using the TMS320C54x
- III Definition: Width, Poly (p.5)
- III Code: TMS320C54x assembler (Appendix E, pp.30–33)
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III Definition: Width, Poly
- Created: 10 December 2009
- Updated: 25 March 2019
width=64 poly=0x42f0e1eba9ea3693 init=0x0000000000000000 refin=false refout=false xorout=0x0000000000000000 check=0x6c40df5f0b497347 residue=0x0000000000000000 name="CRC-64/ECMA-182"
- Class: academic
- Alias: CRC-64
- Used in DLT-1 tape cartridges. For the algorithm often misidentified as ECMA, see CRC-64/XZ.
- ECMA standard ECMA-182 (December 1992) — ISO/IEC 13421:1993
- I Full mathematical description (Annex B, p.51)
- Created: 6 April 2009
- Updated: 7 May 2022
width=64 poly=0x000000000000001b init=0xffffffffffffffff refin=true refout=true xorout=0xffffffffffffffff check=0xb90956c775a41001 residue=0x5300000000000000 name="CRC-64/GO-ISO"
- Class: confirmed
- Go implementation reference contributed by "freetrader".
- The Go Authors, The Go Programming Language, package
crc64
- II Implementation (using constant
crc64.ISO
)
- The Go Authors (26 January 2017), The Go Programming Language, module
src/hash/crc64/crc64.go
- The Go Authors (26 January 2017), The Go Programming Language, module
src/hash/crc64/crc64_test.go
- IV 32 codewords (selection)
0000000000000000
610000000000002034
6162000000000020C436
6162630000000020C47637
6162636400000020C4766733
6162636465000020C47667D332
6162636465660020C47667D30230
6162636465666720C47667D302B031
6162636465666768C47667D302B0210E
6162636465666768697667D302B0216E8B
6162636465666768696A67D302B0216E5B7F
48652077686F2068617320612073686164792070617374206B6E6F77732074686174206E69636520677579732066696E697368206C6173742EB45ABEE25917DBC7
46726565212046726565212F4120747269702F746F204D6172732F666F72203930302F656D707479206A6172732F4275726D61205368617665EFA0DAA61142FCEA
4E6570616C207072656D69657220776F6E27742072657369676E2EA628EFD66A865552
486973206D6F6E6579206973207477696365207461696E7465643A20277461696E7420796F75727320616E6420277461696E74206D696E652E16499D643A967888
73697A653A2020612E6F75743A2020626164206D61676963D2ADCDDA653C55F3
546865206D616A6F722070726F626C656D20697320776974682073656E646D61696C2E20202D4D61726B20486F72746F6EB976A68740035E9D
5468697320697320612074657374206F662074686520656D657267656E63792062726F6164636173742073797374656D2E613B506B00F1FCE7
- Unique effective solution of codeword set
- Created: 28 January 2017
- Updated: 29 August 2024
width=64 poly=0x259c84cba6426349 init=0xffffffffffffffff refin=true refout=true xorout=0x0000000000000000 check=0x75d4b74f024eceea residue=0x0000000000000000 name="CRC-64/MS"
- Class: attested
- Reference courtesy of Greg Nelson, Grammatech Inc.
- Reportedly also used in AppID hashes and the
thumbcache.dll
file.
- Microsoft Corporation (25 June 2021), [MS-FCIADS]: File Classification Infrastructure Alternate Data Stream (ADS) File Format
- I Full mathematical description (Section 2.8, pp.11–12)
- IV 1 codeword (Section 3, pp.13–15)
EBDBF499B234C9018A000000000000000000000002000000D8AE24AFCF9C941F0100000008000000360000002E00000042007500730069006E0065007300730049006D0070006100630074000000480042004900000007000000080000001C000000180000005000490049000000310000005365C6807317DACE
- Hexacorn Ltd (30 April 2013), JumpLists file names and AppID calculator
- II Implementation (with AppID string translation)
- III Code: Perl
- IV 7 codewords
4D004900430052004F0053004F00460054002E0049004E005400450052004E00450054004500580050004C004F005200450052002E00440045004600410055004C005400A149B5EA6DB8C828
4D004900430052004F0053004F00460054002E00570049004E0044004F00570053002E0053005400490043004B0059004E004F0054004500530058C773F29AD57E33
7B00310041004300310034004500370037002D0030003200450037002D0034004500350044002D0042003700340034002D003200450042003100410045003500310039003800420037007D005C004E004F00540045005000410044002E004500580045002B4EC2C169DC9C9B
7B00440036003500320033003100420030002D0042003200460031002D0034003800350037002D0041003400430045002D004100380045003700430036004500410037004400320037007D005C004E004F00540045005000410044002E00450058004500237ED143CB0E8E91
7B00390030003500450036003300420036002D0043003100420046002D0034003900340045002D0042003200390043002D003600350042003700330032004400330044003200310041007D005C0049004500580050004C004F00520045002E0045005800450006B6151674EBA0C3
7B00360044003800300039003300370037002D0036004100460030002D0034003400340042002D0038003900350037002D004100330037003700330046003000320032003000300045007D005C0049004500580050004C004F00520045002E00450058004500CE6D913EB0E370E2
7B00370043003500410034003000450046002D0041003000460042002D0034004200460043002D0038003700340041002D004300300046003200450030004200390046004100380045007D005C0049004500580050004C004F00520045002E00450058004500A5A793B7B47F220E
- Unique effective solution of codeword set
- Created: 7 January 2022
width=64 poly=0xad93d23594c93659 init=0xffffffffffffffff refin=true refout=true xorout=0xffffffffffffffff check=0xae8b14860a799888 residue=0xf310303b2b6f6e42 name="CRC-64/NVME"
- Class: attested
- Contributed by Don MacAskill.
- NVM Express, Inc. (28 December 2023), NVM Express® NVM Command Set Specification, Revision 1.0d
- I Full mathematical description and procedure (Section 5.2.1.3, pp.80–4)
- I All parameters (except Check, Residue) (Section 5.2.1.3.4, pp.82–3)
- IV 4 codewords (Section 5.2.1.3.5, p.84)
00
× 4096 + 4EB622EB67D38264
FF
× 4096 + ACA3EC0273BADDC0
(i)
× 4096 + 9C4450675F9F723E
(4095 - i)
× 4096 + 7E519E8E4BF62D9A
- The published Check value is incorrect. (Figure 120, p.83)
- Coly Li, Keith Busch et al. (7 March 2022), Linux module
lib/crc64.c
- Created: 8 August 2024
width=64 poly=0xad93d23594c935a9 init=0x0000000000000000 refin=true refout=true xorout=0x0000000000000000 check=0xe9c6d914c4b8d9ca residue=0x0000000000000000 name="CRC-64/REDIS"
- Class: academic
- Contributed by Johann N. Löfflmann.
- Matt Stancliff et al. (16 November 2021), Redis module
redis/src/crc64.c
- III Definition: Width, Poly, RefIn, RefOut, XorOut, Check
- III Code: C
- IV 1 codeword (454 bytes)
- Created: 24 August 2022
width=64 poly=0x42f0e1eba9ea3693 init=0xffffffffffffffff refin=false refout=false xorout=0xffffffffffffffff check=0x62ec59e3f1a4f00a residue=0xfcacbebd5931a992 name="CRC-64/WE"
- Class: confirmed
- Wolfgang Ehrhardt (27 March 2012), CRC/Hash plugin for FAR Manager
- Created: 8 November 2009
- Updated: 28 December 2019
width=64 poly=0x42f0e1eba9ea3693 init=0xffffffffffffffff refin=true refout=true xorout=0xffffffffffffffff check=0x995dc9bbdf1939fa residue=0x49958c9abd7d353f name="CRC-64/XZ"
- Class: attested
- Alias: CRC-64/GO-ECMA
- An algorithm commonly misidentified as ECMA. For the true ECMA algorithm see CRC-64/ECMA-182.
- Go implementation reference contributed by "freetrader".
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.4.1, pp.29–30)
- IV 7 codewords (Section 7.2.4.1, p.30)
000000004B9F1B1E3586A5F4
F20183C6F1648166279C31
0FAA005575157C66F7D0C554
00FF5511E604077EBE2238A6
332255AABBCCDDEEFFD5E5A819B2CE1E70
926B554E3E9FB5A996AA5F
FFFFFFFF00000000FFFFFFFF
- Lasse Collin, Igor Pavlov et al. (27 August 2009), The .xz file format, version 1.0.4
- Lasse Collin, Igor Pavlov et al. (21 May 2011), XZ Utils 5.0.3
- The Go Authors, The Go Programming Language, package
crc64
- II Implementation (using constant
crc64.ECMA
)
- The Go Authors (26 January 2017), The Go Programming Language, module
src/hash/crc64/crc64.go
- The Go Authors (26 January 2017), The Go Programming Language, module
src/hash/crc64/crc64_test.go
- IV 32 codewords (selection)
0000000000000000
61052B652E77840233
616246B0840E207365BC
6162632776271A4A09D82C
61626364BA60596E59289D3C
6162636465F29508FB58DF0B04
616263646566F400A745859F8ED0
61626364656667660E71CCA8A320EC
6162636465666768590C7A640AF3B467
6162636465666768698EEF569DC8F66699
6162636465666768696AF47357CD2E3A0932
48652077686F2068617320612073686164792070617374206B6E6F77732074686174206E69636520677579732066696E697368206C6173742E0DA0B92AACC06285
46726565212046726565212F4120747269702F746F204D6172732F666F72203930302F656D707479206A6172732F4275726D612053686176658A513E353038601F
4E6570616C207072656D69657220776F6E27742072657369676E2E415A746AB1F20E79
486973206D6F6E6579206973207477696365207461696E7465643A20277461696E7420796F75727320616E6420277461696E74206D696E652E6D100B66B2419E04
73697A653A2020612E6F75743A2020626164206D616769634D3AD6D86CE4B5E3
546865206D616A6F722070726F626C656D20697320776974682073656E646D61696C2E20202D4D61726B20486F72746F6E51A0F2946BAF5A86
5468697320697320612074657374206F662074686520656D657267656E63792062726F6164636173742073797374656D2E72BC5BC17F18DB27
- Unique effective solution of codeword set
- Created: 4 July 2011
- Updated: 29 August 2024
width=82 poly=0x0308c0111011401440411 init=0x000000000000000000000 refin=true refout=true xorout=0x000000000000000000000 check=0x09ea83f625023801fd612 residue=0x000000000000000000000 name="CRC-82/DARC"
- Class: attested
- The single codeword is supported by the codewords confirming CRC-6/DARC, defined identically apart from Width, Poly in the same standard. The source presents the codeword in transmission order, whereas the codeword is composed of the bytes of data sent LSB first. The example input message is 190 bits long, considering that the inner CRC is 14 bits. The CRC mask is …
C0 FF FF FF FF FF FF FF FF FF FF
.
- ETSI EN 300 751 version 1.2.1 (January 2003)
- I Definition: Width, Poly (Section 11.1, p.67)
- I Definition: RefIn, RefOut (Section 12, pp.69–70)
- IV 1 codeword (Section 11.1, p.67)
02000102372050524F4A454354204D41494E4D454E553B48424065001049B5FB9ADE
(source: 40008040EC040A4AF252A2C22A04B2829272B2A272AADC124202A6000892ADDF597B
)
- See section 12 for details of the transmission order.
- reveng -m CRC-82/DARC -X -c 02000102372050524F4A454354204D41494E4D454E553B48424065001049B5FB9ADE →
0000000000000000000000
- reveng -m CRC-82/DARC -a 1 -A 8 -r -X -c 0100000000000000100000000100000011101100000001000000101001001010111100100101001010100010110000100010101000000100101100101000001010010010011100101011001010100010011100101010101011011100000100 →
40424065001049B5FB9ADE
- Created: 14 December 2009
- Updated: 23 December 2021
Summary of the CRC catalogue
CRC width (bits) |
Records |
Attested |
Confirmed |
Academic |
Third-party |
Total |
3 | – | – | 2 | – | 2 |
4 | – | – | 2 | – | 2 |
5 | 1 | 1 | 1 | – | 3 |
6 | 2 | – | 3 | – | 5 |
7 | – | – | 3 | – | 3 |
8 | 12 | – | 7 | 1 | 20 |
10 | 1 | – | 2 | – | 3 |
11 | 1 | – | 1 | – | 2 |
12 | – | – | 4 | – | 4 |
13 | 1 | – | – | – | 1 |
14 | 1 | – | 1 | – | 2 |
15 | 1 | – | 1 | – | 2 |
16 | 23 | 4 | 1 | 3 | 31 |
17 | – | – | 1 | – | 1 |
21 | – | – | 1 | – | 1 |
24 | 5 | – | 3 | – | 8 |
30 | – | – | 1 | – | 1 |
31 | – | 1 | – | – | 1 |
32 | 8 | 3 | 1 | – | 12 |
40 | – | – | 1 | – | 1 |
64 | 3 | 2 | 2 | – | 7 |
82 | 1 | – | – | – | 1 |
Total | 60 | 11 | 38 | 4 | 113 |
- I
- Primary documents. Evidence from a standards document (official or de facto) defining a protocol that uses the CRC algorithm.
- II
- Implementations. A widely-available implementation that can calculate CRCs for any desired message.
- III
- Secondary documents. Evidence from documents other than standards documents.
- IV
- Codewords. Valid message-CRC pairs from any source. Trivial codewords are simple sums of the algorithm parameters and/or simple multiples of the generator polynomial, and show insufficient calculation complexity to validate an algorithm. These are collected in the Catalogue only for illustration.
- Attested
- The algorithm is evidenced by its definition in a primary document, plus one or more of the following:
- A worked example in a primary document
- A widely-available implementation that can calculate CRCs for any desired message
- Two or more published non-trivial codewords
- An almost identical attested algorithm definition in the same primary document (notwithstanding this clause), plus one non-trivial codeword published anywhere.
- Confirmed
- The algorithm is evidenced by a widely-available implementation that can calculate CRCs for any desired message.
- Academic
- It has not been confirmed that CRCs are actually calculated in the field according to this record.
- Third-party
- All parameters and codewords originate from unofficial sources.
width
- The number of bit cells in the linear feedback shift register; the degree of the generator polynomial, less one.
poly
- The generator polynomial that sets the feedback tap positions of the shift register.
poly
is written in the hexadecimal, direct notation found in MSB-first code. The least significant bit corresponds to the inward end of the shift register, and is always set. The highest-order term is omitted.
init
- The settings of the bit cells at the start of each calculation, before reading the first message bit.
init
is written in the hexadecimal, direct notation found in MSB-first code. The least significant bit corresponds to the inward end of the shift register.
refin
- If equal to
false
, specifies that the characters of the message are read bit-by-bit, most significant bit (MSB) first; if equal to true
, the characters are read bit-by-bit, least significant bit (LSB) first. Each sampled message bit is then XORed with the bit being simultaneously shifted out of the register at the most significant end, and the result is passed to the feedback taps.
refout
- If equal to
false
, specifies that the contents of the register after reading the last message bit are unreflected before presentation; if equal to true
, it specifies that they are reflected, character-by-character, before presentation. For the purpose of this definition, the reflection is performed by swapping the content of each cell with that of the cell an equal distance from the opposite end of the register; the characters of the CRC are then true images of parts of the reflected register, the character containing the original MSB always appearing first.
xorout
- The XOR value applied to the contents of the register after the last message bit has been read and after the optional reflection.
xorout
is written in hexadecimal notation, having the same endianness as the CRC such that its true image appears in the characters of the CRC.
check
- The contents of the register after initialising, reading the UTF-8 string
"123456789"
(as 8-bit characters), optionally reflecting, and applying the final XOR.
residue
- The contents of the register after initialising, reading an error-free codeword and optionally reflecting the register (if
refout=true
), but not applying the final XOR. This is mathematically equivalent to initialising the register with the xorout
parameter, reflecting it as described (if refout=true
), reading as many zero bits as there are cells in the register, and reflecting the result (if refin=true
). The residue of a crossed-endian model is calculated assuming that the characters of the received CRC are specially reflected before submitting the codeword.
name
- The name assigned to the model in this Catalogue.
- Unique effective solution of codeword set
- This model is the only one at the specified width that solves all the codewords listed in the model entry. Equivalent forms of the model may exist (differing in Init, XorOut and Residue values) but they produce identical CRCs at all message lengths. (If (x + 1)n appears in the factorisation of G(x), then there shall be 2n − 1 equivalent forms.)
Robert Bosch GmbH (September 1991), CAN 2.0 Specification.
Dipl. Inf. Johann N. Löfflmann (30 July 2006), Jacksum. CRC and hash calculator in Java.
Thomas Pircher (5 November 2022), pycrc. Python based parametrised CRC calculator and C code generator.
William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing. 2nd ed. Cambridge: Cambridge University Press. ISBN 0-521-43108-5
Dr Ross N. Williams (19 August 1993), "A Painless Guide to CRC Error Detection Algorithms" (courtesy of the Internet Archive).
Lammert Bies (August 2011), "On-line CRC calculation and free library".
Lammert Bies, "Error detection and correction" Web forum (courtesy of the Internet Archive).
Jonathan Graham Harston (21–23 June 2011), "Source Code for Calculating CRCs".
PicList MassMind, "Cyclic Redundancy Check error detection".
Tom Torfs, IOCCC winning entry, 1998, CRC generator.
Every effort has been made to ensure accuracy, however there may be
occasional errors or omissions. All trademarks and registered trademarks
are the intellectual property of their respective owners. The code and
documentation included in this document are supplied without warranty,
not even the implied warranties of merchantability or fitness for a
particular purpose. In no event shall the author or his suppliers be
liable for any loss, damage, injury or death, of any nature and
howsoever caused, arising from the use of, or failure, inability or
unwillingness to use, this software or documentation.
[ Top of page ]
Map of common 16-bit CRC algorithms.
Karnaugh map of the most common 16-bit CRCs, with Check values and algorithm citations. All values are hexadecimal.
"123456789" (UTF-8) |
Polynomial |
1021 |
8005 |
Reflected? |
False |
True |
False |
Initial value |
Final XOR |
|
0000 |
0000 |
31C3 (XMODEM) |
2189 (KERMIT) |
BB3D (ARC) |
FEE8 (UMTS) |
FFFF |
CE3C (GSM) |
DE76 (–) |
44C2 (MAXIM) |
0117 (–) |
FFFF |
D64E (GENIBUS) |
906E (SDLC) |
B4C8 (USB) |
5118 (–) |
0000 |
29B1 (IBM 3740) |
6F91 (MCRF4XX) |
4B37 (MODBUS) |
AEE7 (CMS) |
Cross-reference of generator polynomials to Professor Koopman's CRC Polynomial Zoo.
Generator polynomials appearing in the CRC Catalogue
Width |
Polynomial |
Zoo names |
Models |
Direct |
Reflected |
Koopman |
3 | 0x3 | 0x6 | 0x5 | (*p) CRC-3K; RFC 3095; FP-3 | CRC-3/GSM , CRC-3/ROHC |
4 | 0x3 | 0xc | 0x9 | (*p) CCITT-4; FP-4; ITU-T G.704 | CRC-4/G-704 , CRC-4/INTERLAKEN |
5 | 0x05 | 0x14 | 0x12 | (*p) CRC-5-EPC; CRC-5-USB; FP-5 | CRC-5/USB |
5 | 0x09 | 0x12 | *< 0x14 | (*p) CRC-5-EPC; CRC-5-USB; FP-5 | CRC-5/EPC-C1G2 |
5 | 0x15 | 0x15 | *< 0x1a | (*op) CRC-5; CRC-5-ITU; CRC-5F/4; FOP-5 ("65") | CRC-5/G-704 |
6 | 0x03 | 0x30 | 0x21 | (*p) CRC-6; CRC-6-ITU; FP-6 | CRC-6/G-704 |
6 | 0x07 | 0x38 | 0x23 | (*op) CRC-6-CDMA2000-B; FOP-6 | CRC-6/CDMA2000-B |
6 | 0x19 | 0x26 | < 0x2c | (*op) DARC-6 | CRC-6/DARC |
6 | 0x27 | 0x39 | 0x33 | (*p) CRC-6-CDMA2000-A; CRC-6F/3 ("147p") | CRC-6/CDMA2000-A |
6 | 0x2f | 0x3d | 0x37 | (*op) CRC-6-GSM; CRC-6F/4 ("157") | CRC-6/GSM |
7 | 0x09 | 0x48 | 0x44 | (*p) CRC-7 | CRC-7/MMC |
7 | 0x45 | 0x51 | < 0x62 | (*op) CRC-7P | CRC-7/UMTS |
7 | 0x4f | 0x79 | 0x67 | (*o) RFC 3095 | CRC-7/ROHC |
8 | 0x07 | 0xe0 | 0x83 | (*op) FOP-8; ATM-8; CRC-8P | CRC-8/I-432-1 , CRC-8/ROHC , CRC-8/SMBUS |
8 | 0x31 | 0x8c | < 0x98 | (*op) DOWCRC | CRC-8/MAXIM-DOW , CRC-8/NRSC-5 |
8 | 0x1d | 0xb8 | 0x8e | (*p) SAE J-1850; FP-8 | CRC-8/GSM-A , CRC-8/HITAG , CRC-8/I-CODE , CRC-8/MIFARE-MAD , CRC-8/SAE-J1850 , CRC-8/TECH-3250 |
8 | 0x49 | 0x92 | < 0xa4 | (*o) CRC-8-GSM-B | CRC-8/GSM-B |
8 | 0x2f | 0xf4 | 0x97 | (*op) C2; CRC-8-AUTOSAR; CRC-8F/4.2 ("457") | CRC-8/AUTOSAR , CRC-8/OPENSAFETY |
8 | 0x39 | 0x9c | = 0x9c | DARC-8 | CRC-8/DARC |
8 | 0xd5 | 0xab | < 0xea | (*o) CRC-8 | CRC-8/DVB-S2 |
8 | 0x9b | 0xd9 | 0xcd | (*op) WCDMA-8 | CRC-8/CDMA2000 , CRC-8/LTE , CRC-8/WCDMA |
8 | 0xa7 | 0xe5 | 0xd3 | (*op) CRC-8-Bluetooth | CRC-8/BLUETOOTH |
10 | 0x3d9 | 0x26f | < 0x3ec | (*op) CRC-10-CMDA2000 | CRC-10/CDMA2000 |
10 | 0x175 | 0x2ba | = 0x2ba | CRC-10-GSM | CRC-10/GSM |
10 | 0x233 | 0x331 | 0x319 | (*op) CRC-10 | CRC-10/ATM |
11 | 0x385 | 0x50e | < 0x5c2 | (*o) FlexRay-11 | CRC-11/FLEXRAY |
11 | 0x307 | 0x706 | 0x583 | (*op) CRC-11F/4.2 "7015" | CRC-11/UMTS |
12 | 0xd31 | 0x8cb | < 0xe98 | CRC-12-GSM | CRC-12/GSM |
12 | 0x80f | 0xf01 | 0xc07 | (*op) CRC-12 | CRC-12/DECT , CRC-12/UMTS |
12 | 0xf13 | 0xc8f | < 0xf89 | (*op) CRC-12-CMDA2000 | CRC-12/CDMA2000 |
13 | 0x1cf5 | 0x15e7 | < 0x1e7a | (*o) CRC-13-BBC | CRC-13/BBC |
14 | 0x0805 | 0x2804 | 0x2402 | (*op) DARC-14 (*op) | CRC-14/DARC |
14 | 0x202d | 0x2d01 | < 0x3016 | (*op) CRC-14-GSM | CRC-14/GSM |
15 | 0x4599 | 0x4cd1 | < 0x62cc | (*o) CAN | CRC-15/CAN |
15 | 0x6815 | 0x540b | < 0x740a | CRC-15-MPT1327 | CRC-15/MPT1327 |
16 | 0x0589 | 0x91a0 | 0x82c4 | (*o) CRC-16-DECT | CRC-16/DECT-R , CRC-16/DECT-X |
16 | 0x080b | 0xd010 | 0x8405 | – | CRC-16/NRSC-5 |
16 | 0x1021 | 0x8408 | < 0x8810 | (*op) CCITT-16 | CRC-16/GENIBUS , CRC-16/GSM , CRC-16/IBM-3740 , CRC-16/IBM-SDLC , CRC-16/ISO-IEC-14443-3-A , CRC-16/KERMIT , CRC-16/MCRF4XX , CRC-16/RIELLO , CRC-16/SPI-FUJITSU , CRC-16/TMS37157 , CRC-16/XMODEM |
16 | 0x1dcf | 0xf3b8 | 0x8ee7 | ProfiBus | CRC-16/PROFIBUS |
16 | 0x3d65 | 0xa6bc | 0x9eb2 | (*o) C1; CRC-16-DNP; CRC-16F/6.2 ("236545") | CRC-16/DNP , CRC-16/EN-13757 |
16 | 0x8005 | 0xa001 | *< 0xc002 | (*op) CRC-16; CRC-16-IBM | CRC-16/ARC , CRC-16/CMS , CRC-16/DDS-110 , CRC-16/MAXIM-DOW , CRC-16/MODBUS , CRC-16/UMTS , CRC-16/USB |
16 | 0x5935 | 0xac9a | = 0xac9a | C3; CRC-16F/5 ("254465s") | CRC-16/M17 , CRC-16/OPENSAFETY-A |
16 | 0x6f63 | 0xc6f6 | 0xb7b1 | IEEE WG77.1 | CRC-16/LJ1200 |
16 | 0x755b | 0xdaae | 0xbaad | CRC-16K/4 | CRC-16/OPENSAFETY-B |
16 | 0x8bb7 | 0xedd1 | 0xc5db | (*p) CRC-16-T10-DIF | CRC-16/T10-DIF |
16 | 0xa097 | 0xe905 | 0xd04b | (*o) IBM-16 | CRC-16/TELEDISK |
16 | 0xc867 | 0xe613 | 0xe433 | (*p) CRC-16-CMDA2000 | CRC-16/CDMA2000 |
17 | 0x1685b | 0x1b42d | = 0x1b42d | (*o) CRC-17-CAN | CRC-17/CAN-FD |
21 | 0x102899 | 0x132281 | < 0x18144c | (*o) CRC-21-CAN | CRC-21/CAN-FD |
24 | 0x00065b | 0xda6000 | 0x80032d | (*op) BLE-24 (Bluetooth Low Energy) | CRC-24/BLE |
24 | 0x328b63 | 0xc6d14c | 0x9945b1 | (*op) CRC-24/4 | CRC-24/INTERLAKEN |
24 | 0x5d6dcb | 0xd3b6ba | 0xaeb6e5 | (*o) CRC-24; CRC-24/6.1; FlexRay-24 | CRC-24/FLEXRAY-A , CRC-24/FLEXRAY-B |
24 | 0x800063 | 0xc60001 | 0xc00031 | (*op) WCDMA-24 | CRC-24/LTE-B , CRC-24/OS-9 |
24 | 0x864cfb | 0xdf3261 | 0xc3267d | (*op) CRC-24-Radix-64 | CRC-24/LTE-A , CRC-24/OPENPGP |
30 | 0x2030b9c7 | 0x38e74301 | 0x30185ce3 | (*op) CRC-30 | CRC-30/CDMA |
31 | 0x04c11db7 | 0x76dc4190 | 0x42608edb | – | CRC-31/PHILIPS |
32 | 0x000000af | 0xf5000000 | 0x80000057 | (*p) FP-32, CRC-32K/3 | CRC-32/XFER |
32 | 0x04c11db7 | 0xedb88320 | 0x82608edb | (*p) IEEE 802.3; CRC-32 | CRC-32/BZIP2 , CRC-32/CKSUM , CRC-32/ISO-HDLC , CRC-32/JAMCRC , CRC-32/MPEG-2 |
32 | 0x1edc6f41 | 0x82f63b78 | < 0x8f6e37a0 | (*op) iSCSI; CRC-32C; CRC-32/4 | CRC-32/ISCSI |
32 | 0x741b8cd7 | 0xeb31d82e | 0xba0dc66b | (*o) CRC-32K/6.1 | CRC-32/MEF |
32 | 0x8001801b | 0xd8018001 | 0xc000c00d | – | CRC-32/CD-ROM-EDC |
32 | 0x814141ab | 0xd5828281 | 0xc0a0a0d5 | (*op) CRC-32Q | CRC-32/AIXM |
32 | 0xf4acfb13 | 0xc8df352f | < 0xfa567d89 | (*o) CRC-32/6 corrected | CRC-32/AUTOSAR |
32 | 0xa833982b | 0xd419cc15 | = 0xd419cc15 | CRC-32/5.1 | CRC-32/BASE91-D |
40 | 0x0004820009 | 0x9000412000 | 0x8002410004 | – | CRC-40/GSM |
64 | 0x000000000000001b | 0xd800000000000000 | 0x800000000000000d | (*p) FP-64, CRC-64-ISO | CRC-64/GO-ISO |
64 | 0x259c84cba6426349 | 0x92c64265d32139a4 | < 0x92ce4265d32131a4 | – | CRC-64/MS |
64 | 0xad93d23594c935a9 | 0x95ac9329ac4bc9b5 | < 0xd6c9e91aca649ad4 | (*p) Jones | CRC-64/REDIS |
64 | 0xad93d23594c93659 | 0x9a6c9329ac4bc9b5 | < 0xd6c9e91aca649b2c | – | CRC-64/NVME |
64 | 0x42f0e1eba9ea3693 | 0xc96c5795d7870f42 | 0xa17870f5d4f51b49 | (*o) CRC-64-ECMA | CRC-64/ECMA-182 , CRC-64/WE , CRC-64/XZ |
82 | 0x0308c0111011401440411 | 0x220808a00a2022200c430 | 0x218460088808a00a20208 | – | CRC-82/DARC |
Legend: < Lexically greater than its reciprocal in the Reflected column. *< Lexically greater than its reciprocal listed in the Zoo and in the Reflected column. = Palindromic polynomial. (*o) Multiple of (x + 1). (*p) Primitive polynomial. (*op) Product of a primitive polynomial and (x + 1).
Greg Cook,
https://reveng.sourceforge.io/crc-catalogue/all.htm Last updated 29 August 2024
Links last verified 20 July 2023
Hosting by
[ Top of page ]