LFSR
An LFSR, or linear-feedback shift register, is a shift register whose input bit is a linear function of its previous state, typically the XOR of a subset of its bits. Over the binary field GF(2), the state update consists of shifting the register and inserting at one end the XOR of tapped bits. LFSRs produce sequences that appear random and are widely used for deterministic pseudo-random number generation, cryptography, and error-detecting codes such as CRC.
Two common realizations are the Fibonacci (or standard) LFSR and the Galois (or modular) LFSR. In a
Each LFSR can be associated with a characteristic polynomial over GF(2), whose taps correspond to nonzero coefficients.
Common uses include generating streams of pseudo-random bits for simulations or cryptographic stream ciphers, whitening, and