Best CRC Polynomials

Philip Koopman, Carnegie Mellon University

Best CRCs | CRC Selection | CRC Zoo | Checksum and CRC Blog

***CRC & Checksum Book*** | Get software to compute HD lengths for yourself. | Pointers to CRC Resources

These are the "Best" general-purpose CRC polynomials with specific Hamming Distance Properties. (See also: Notation and copyright statement). IMPORTANT NOTE: These are "BEST" polynomials under an assumption of a low, constant random independent BERsuch as you'd find in communication networks. If you have a BER that is higher than, say, 1 bit in 100,000, or is non-constant, or is non-random/non-independent, then you need to understand more before using these polynomials.

This data includes work-in-progress results.


CRC Summary Tables

Below is a table of CRC Polynomial performance by Hamming Distance. Click a CRC size for detailed information about CRC polynomials.

Max length
at HD /
Polynomial CRC Size (bits)
3 4 5 6 7 8 9 10 11 12 13 14 15 16
HD=2 0x5 0x9 0x12 0x33 0x65 0xe7 0x119 0x327 0x5db 0x987 0x1abf 0x27cf 0x4f23 0x8d95
HD=3 4
0x5 11
0x9 26
0x12 57
0x33 120
0x65 247
0xe7 502
0x119 1013
0x327 2036
0x5db 4083
0x987 8178
0x1abf 16369
0x27cf 32752
0x4f23 65519
0x8d95
HD=4 10
0x15 25
0x23 56
0x5b 119
0x98 246
0x17d 501
0x247 1012
0x583 2035
0x8f3 4082
0x12e6 8177
0x2322 16368
0x4306 32751
0xd175
HD=5 4
0x72 9
0xeb 13
0x185 21
0x2b9 26
0x5d7 53
0xbae 52
0x1e97 113
0x212d 136
0x6a8d 241
0xac9a
HD=6 4
0x9b 8
0x13c 12
0x28e 22
0x532 27
0xb41 52
0x1e97 57
0x372b 114
0x573a 135
0x9eb2
HD=7 5
0x29b 12
0x571 11
0xa4f 12
0x12a5 13
0x28a9 16
0x5bd5 19
0x968b
HD=8 4
0x4f5 11
0xa4f 11
0x10b7 11
0x2371 12
0x630b 15
0x8fdb
HD=9 5
0x5a47 6
0xe92f
HD=10 5
0xed2f
HD=11

Max length
at HD /
Polynomial CRC Size (bits)
17 18 19 20 21 22 23 24
HD=2 0x16fa7 0x23979 0x6fb57 0xb5827 0x1707ea 0x308fd3 0x540df0 0x8f90e3
HD=3 131054
0x16fa7 262125
0x23979 524268
0x6fb57 1048555
0xb5827 2097130
0x1707ea 4194281
0x308fd3 8388584
0x540df0 16777191
0x8f90e3
HD=4 65518
0x1165d 131053
0x25f53 262124
0x77b0f 524267
0xc1acf 1048554
0x10df8f 2097129
0x248794 4194280
0x400154 8388583
0x9945b1
HD=5 240
0x1724e 493
0x39553 494
0x5685a 1005
0xc8a89 1004
0x1edfb7 2025
0x2a952a 2026
0x6bc0f5 4073
0x98ff8c
HD=6 240
0x1724e 240
0x32c69 494
0x5685a 494
0xe2023 1004
0x1edfb7 1004
0x395b53 2026
0x6bc0f5 2026
0xbd80de
HD=7 46
0x1751b 45
0x25f6a 46
0x50b49 49
0x8810e 106
0x12faa5 105
0x289cfe 106
0x5e2419 231
0x880ee6
HD=8 22
0x11bf5 45
0x25f6a 45
0x779c7 45
0xd41cf 48
0x198313 105
0x289cfe 105
0x469d7c 105
0xcba785
HD=9 8
0x123bd 11
0x27bbc 13
0x7573f 21
0xbe73e 20
0x16e976 22
0x2aedd3 26
0x53df6e 39
0xed93bb
HD=10 6
0x176a7 8
0x2e7de 10
0x44f75 13
0xe6233 20
0x16e976 20
0x247bc4 24
0x463b77 26
0xc7ad89
HD=11 5
0x26a3d 7
0x6d133 11
0x8d3cc 10
0x165751 12
0x36f627 24
0x463b77 23
0x8cd929
HD=12 5
0x51d79 7
0x9d587 10
0x165751 10
0x22efb7 13
0x49ad52 23
0x8cd929
HD=13 5
0x25d467 5
0x4b79d1 7
0xd9588b
HD=14 5
0x4b79d1 6
0xb73e91
HD=15

Max length
at HD /
Polynomial CRC Size (bits)
25 26 27 28
HD=2 0x101690c 0x33c19ef 0x5e04635 0x91dc1e3
HD=3 33554406
0x101690c 67108837
0x33c19ef 134217700
0x5e04635 268435427
0x91dc1e3
HD=4 16777190
0x10bba2d 33554405
0x278b495 67108836
0x745e8bf 134217699
0xb67b511
HD=5 4072
0x1b9189d 8165
0x2c45446 8166
0x6c3ff0d 16357
0x9037604
HD=6 4072
0x1b9189d 4072
0x2186c30 8166
0x6c3ff0d 8166
0xd120245
HD=7 230
0x136fd31 230
0x2bd893b 484
0x521f64b 483
0xb9ccb75
HD=8 230
0x136fd31 230
0x2bd893b 230
0x4cb658f 483
0xb9ccb75
HD=9 40
0x12b00d4 41
0x311e9ad 48
0x4429686 99
0xeaa72ab
HD=10 40
0x12b00d4 40
0x32def69 41
0x51aff9a 48
0xacb6aed
HD=11 24
0x162054b 24
0x248d3be 36
0x474fd47 35
0xb094a3e
HD=12 23
0x15ed6a9 23
0x2bfbd8f 23
0x4258c0f 35
0xb094a3e
HD=13 8
0x12728bf 9
0x2d7a067 11
0x6986313 15
0xe9dadcb
HD=14 7
0x1291ccf 8
0x23bb612 9
0x6a611bf 11
0xaf74fc7
HD=15 5
0x251f66b 7
0x58695e3 8
0xcf11b95
HD=16 5
0x251f66b 6
0x65bd513 8
0xcf11b95
HD=17

Max length
at HD /
Polynomial CRC Size (bits)
29 30 31 32
HD=2 0x16dfbf51 0x31342a2f 0x737e312b 0xad0424f3
HD=3 536870882
0x16dfbf51 1073741793
0x31342a2f 2147483616
0x737e312b 4294967263
0xad0424f3
HD=4 268435426
0x11c4dfb5 536870881
0x2254329d 1073741792
0x52aa4332 2147483615
0xc9d204f5
HD=5 16356
0x1cf492f3 32737
0x2adf3aaf 32738
0x74f9e7cb 65505
0xd419cc15 (**)
HD=6 16356
0x1cf492f3 16356
0x2ad4a56a 32738
0x74f9e7cb 32738
0x9960034c (**)
HD=7 484
0x12e8b5b6 993
0x2a9b3e15 992
0x60f2920b 992
0xf8c9140a (**)
HD=8 483
0x13a46755 483
0x2017ed6a 992
0x60f2920b 992
0xf8c9140a
HD=9 100
0x1e150a87 100
0x242c0684 100
0x6c740b8d 223
0x9d7f97d6
HD=10 100
0x1e150a87 100
0x242c0684 100
0x6c740b8d 100
0xb49c1c96
HD=11 35
0x1c27bd8b 36
0x34c8e00d 36
0x456a3501 38
0x85b9561d
HD=12 35
0x1c27bd8b 35
0x2468c69c 35
0x6bee283f 36
0x950ebfae
HD=13 14
0x13a6f65c 16
0x2b967ef9 18
0x6624b2eb 20
0x93b39b1b
HD=14 14
0x13a6f65c 14
0x3c9a0b27 16
0x47e62564 19
0xa094afb5
HD=15 9
0x12ff393a 11
0x290d6d0e 12
0x52d246e1 15
0xa2572962
HD=16 8
0x15e165a6 9
0x23136e56 11
0x6d094c5d 13
0xe89061db
HD=17 4
0x229df1ac 5
0x47d2d9ab 7
0xa86be4db
HD=18 4
0x46e56a7c 5
0x973afb51
HD=19

(**) means that this is a temporary result which has approximately the longest possible dataword length at the specified HD, but might not be the "best" possible value. (For example, probably there is some as yet unknown result with a slightly longer dataword length at that HD or with lower weights at the same HD.) Ongoing computations will be used to update this value to the "best" value when available. In the meantime, there's nothing wrong with using this polynomial as long as it provides adequate properties for your application.

Additional polynomials (33-64 bits; Special Properties)


To use these tables: top number in each cell is maximum dataword length at that Hamming Distance. The bottom number in each cell is a "good" polynomial that gives at least that HD up to the indicated dataword length in implicit +1 notation. For example, the polynomial 0x247 is a 10-bit CRC that provides HD=4 (or better) up to 501 bit dataword length (501+10=511 bit codeword length). The corresponding polynomial is: 0x247=x^10 +x^7 +x^3 +x^2 +x +1, and is alternately known as 0x48f in explicit +1 notation. See the Polynomial Zoo for detailed information (or click the CRC size link at the top of each column). Additionally, see the tables below for more nuanced selection criteria.

Notes: Minimum dataword length evaluated for the above table is 4 bits. Grayed-out boxes mean that it has been confirmed that the HD at that row cannot be achived with a dataword length of 4 bits or longer. Color highlighted cells indicated work in progress/missing data.


Notation:


This web page and all data files are Copyrighted 2015-2018 by Philip Koopman, Carnegie Mellon University.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Please note that if any data errors or other issues are identified they will be updated at this page, but not necessarily anywhere that has copied these results. Therefore, you should always confirm at this URL: http://users.ece.cmu.edu/~koopman/crc/ that you have the most current version of data before using it.


AltStyle によって変換されたページ (->オリジナル) /