https://users.ece.cmu.edu/~koopman/lfsr/index.html
Maximal Length LFSR Feedback Terms
This directory holds data files with maximal length LFSR feedback
polynomials. LFSRs have uses as pseudo-random number generators in
several application domains. It is not my intent to teach or support
LFSR design -- just to make available some feedback terms I computed.
If you want to know more about LFSR usage, some starting points are:
* RSA Laboratories: what is a stream cipher?
* Linear Complexity: A Literature Survey
* A more sophisticated program to do this was at ftp://
helsbreth.org/pub/helsbret/random/lfsr_s.c (the author says that
his results agree with the tables below, but that code is no
longer available). A newer program is here: https://bitbucket.org
/gallen/mlpolygen/overview
For more on primitive polynomials, see:
* http://www.theory.csc.uvic.ca/~cos/inf/neck/PolyInfo.html
* On-Line Encyclopedia of Integer Sequences #A011260
---------------------------------------------------------------------
The following table is probably may be updated from time to time as
my workstations have spare cycles to do more computations. You may
use these results as you like, but since this is free I give no
warrantee on them for any purpose whatsoever. If you find a problem,
please let me know and I will fix it if/when I have time.
+-------------------------------------------------------------------+
| SIZE |# Feedback terms| Text file | Gzip'ed file |
| (# bits in | found | (First hundred | (complete |
| feedback term) | | entries) | list) |
|------------------+----------------+----------------+--------------|
| 4 | 2 | 4.txt | 4.dat.gz |
|------------------+----------------+----------------+--------------|
| 5 | 6 | 5.txt | 5.dat.gz |
|------------------+----------------+----------------+--------------|
| 6 | 6 | 6.txt | 6.dat.gz |
|------------------+----------------+----------------+--------------|
| 7 | 18 | 7.txt | 7.dat.gz |
|------------------+----------------+----------------+--------------|
| 8 | 16 | 8.txt | 8.dat.gz |
|------------------+----------------+----------------+--------------|
| 9 | 48 | 9.txt | 9.dat.gz |
|------------------+----------------+----------------+--------------|
| 10 | 60 | 10.txt | 10.dat.gz |
|------------------+----------------+----------------+--------------|
| 11 | 176 | 11.txt | 11.dat.gz |
|------------------+----------------+----------------+--------------|
| 12 | 144 | 12.txt | 12.dat.gz |
|------------------+----------------+----------------+--------------|
| 13 | 630 | 13.txt | 13.dat.gz |
|------------------+----------------+----------------+--------------|
| 14 | 756 | 14.txt | 14.dat.gz |
|------------------+----------------+----------------+--------------|
| 15 | 1,800 | 15.txt | 15.dat.gz |
|------------------+----------------+----------------+--------------|
| 16 | 2,048 | 16.txt | 16.dat.gz |
|------------------+----------------+----------------+--------------|
| 17 | 7,710 | 17.txt | 17.dat.gz |
|------------------+----------------+----------------+--------------|
| 18 | 7,776 | 18.txt | 18.dat.gz |
|------------------+----------------+----------------+--------------|
| 19 | 27,594 | 19.txt | 19.dat.gz |
|------------------+----------------+----------------+--------------|
| 20 | 24,000 | 20.txt | 20.dat.gz |
|------------------+----------------+----------------+--------------|
| 21 | 84,672 | 21.txt | 21.dat.gz |
|------------------+----------------+----------------+--------------|
| 22 | 120,032 | 22.txt | 22.dat.gz |
|------------------+----------------+----------------+--------------|
| 23 | 356,960 | 23.txt | 23.dat.gz |
|------------------+----------------+----------------+--------------|
| 24 | 276,480 | 24.txt | 24.dat.gz |
|------------------+----------------+----------------+--------------|
| 25 | 1,296,000 | 25.txt | 25.dat.gz |
|------------------+----------------+----------------+--------------|
| 26 | 1,719,900 | 26.txt | 26.dat.gz |
|------------------+----------------+----------------+--------------|
| 27 | 4,202,496 | 27.txt | 27.dat.gz |
|------------------+----------------+----------------+--------------|
| 28 | 4,741,632 | 28.txt | 28.dat.gz |
|------------------+----------------+----------------+--------------|
| 29 | 18,407,808 | 29.txt | 29.dat.gz |
|------------------+----------------+----------------+--------------|
| 30 | 17,820,000 | 30.txt | 30.dat.gz |
|------------------+----------------+----------------+--------------|
| 31 | 69,273,666 | 31.txt |31.dat.gz (184|
| | | | MB!) |
|------------------+----------------+----------------+--------------|
| 32 | 67,108,864 | 32.txt |32.dat.gz (186|
| | | | MB!) |
|------------------+----------------+----------------+--------------|
| 33 | -- | 33.txt | |
|------------------+----------------+----------------+--------------|
| 34 | -- | 34.txt | |
|------------------+----------------+----------------+--------------|
| 35 | -- | 35.txt | |
|------------------+----------------+----------------+--------------|
| 36 | -- | 36.txt | |
|------------------+----------------+----------------+--------------|
| 37 | -- | 37.txt | |
|------------------+----------------+----------------+--------------|
| 38 | -- | 38.txt | |
|------------------+----------------+----------------+--------------|
| 39 | -- | 39.txt | |
|------------------+----------------+----------------+--------------|
| 40 | -- | 40.txt | |
|------------------+----------------+----------------+--------------|
| 41 | -- | 41.txt | |
|------------------+----------------+----------------+--------------|
| 42 | -- | 42.txt | |
|------------------+----------------+----------------+--------------|
| 43 | -- | 43.txt | |
|------------------+----------------+----------------+--------------|
| 44 | -- | 44.txt | |
|------------------+----------------+----------------+--------------|
| 45 | -- | 45.txt | |
|------------------+----------------+----------------+--------------|
| 46 | -- | 46.txt | |
|------------------+----------------+----------------+--------------|
| 47 | -- | 47.txt | |
|------------------+----------------+----------------+--------------|
| 48 | -- | 48.txt | |
|------------------+----------------+----------------+--------------|
| 49 | -- | 49.txt | |
|------------------+----------------+----------------+--------------|
| 50 | -- | 50.txt | |
|------------------+----------------+----------------+--------------|
| 51 | -- | 51.txt | |
|------------------+----------------+----------------+--------------|
| 52 | -- | 52.txt | |
|------------------+----------------+----------------+--------------|
| 53 | -- | 53.txt | |
|------------------+----------------+----------------+--------------|
| 54 | -- | 54.txt | |
|------------------+----------------+----------------+--------------|
| 55 | -- | 55.txt | |
|------------------+----------------+----------------+--------------|
| 56 | -- | 56.txt | |
|------------------+----------------+----------------+--------------|
| 57 | -- | 57.txt | |
|------------------+----------------+----------------+--------------|
| 58 | -- | 58.txt | |
|------------------+----------------+----------------+--------------|
| 59 | -- | 59.txt | |
|------------------+----------------+----------------+--------------|
| 60 | -- | 60.txt | |
|------------------+----------------+----------------+--------------|
| 61 | -- | 61.txt | |
|------------------+----------------+----------------+--------------|
| 62 | -- | 62.txt | |
|------------------+----------------+----------------+--------------|
| 63 | -- | 63.txt | |
|------------------+----------------+----------------+--------------|
| 64 | -- | 64.txt | |
+-------------------------------------------------------------------+
In the above data files, the feedback term is the hexadecimal number
that represents the feedback polynomial for a right-shifted LFSR per
the following C code LFSR inner loop implementation:
if (i & 1) { i = (i >> 1) ^ feed; }
else { i = (i >> 1); }
---------------------------------------------------------------------
[MY HOME PAGE]
Philip Koopman