Philip Koopman, Carnegie Mellon University
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 BER such 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.
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 0x83 |
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 | 6 0x2dce91 |
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 |
Same as HD=6 | |
| HD=6 | 4072 0x1b9189d |
4072 0x2186c30 |
||
| HD=7 | 230 0x136fd31 |
230 0x2bd893b |
484 0x521f64b |
|
| HD=8 | 230 0x136fd31 |
230 0x2bd893b |
230 0x4cb658f |
|
| 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 | work in progress | |||
| HD=3 | 536870882 0x? |
1073741793 0x? |
2147483616 0x? |
4294967263 work in progress |
| HD=4 | 268435426 0x11c4dfb5 |
536870881 0x? |
1073741792 0x? |
2147483615 work in progress |
| HD=5 | Same as HD=6 | Same as HD=6 | 65505 | |
| HD=6 | 32738 | |||
| HD=7 | ||||
| HD=8 | ||||
| HD=9 | 100 0x1e150a87 |
100 0x242c0684 |
100 0x6c740b8d |
>100 |
| 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 | ||||
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 is 4 bits. Yellow highlighted cells indicated work in progress/missing data. Green indicates preliminary data subject to confirmation.
Additional note: the minimum length dataword considered is 4 bits due to the design of the search tool. (In other words, dataword lengths of 0, 1, 2, 3 bits are not analyzed. This does not affect results reported, but does mean there might, for example, be a 3-bit data word with higher HD than reported as the maximum HD possible for a particular polynomial.)
This web page and all data files are Copyrighted 2015 by Philip Koopman, Carnegie Mellon University.

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.
Errata: (substantive changes that have been incorporated above):