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