vimwiki/tech/LFSR.wiki

25 lines
840 B
Plaintext
Raw Normal View History

2021-12-15 19:00:01 +00:00
= Linear Feedback Shift Register =
A LFSR is set of rules to alter a set of bits. They are useful to psudeo random
number generators, and as key generators for stream ciphers.
All LFSRs are cyclical in nature, and after a set amount of time will repeat
2021-12-15 19:15:01 +00:00
back into themselves. The initial state of the bits in the LFSR is called the
2021-12-15 19:00:01 +00:00
seed.
The maximum period for a _n_ bit shift register is
2^n - 1
2021-12-15 19:45:01 +00:00
An LFSR can be generalized as a recurrence relationship where
- The preceding terms are not raised to a power
- There are no added constants
2021-12-15 19:00:01 +00:00
A *tap* is where a bit is read and fed back into itself.
2021-12-15 19:15:01 +00:00
2021-12-15 19:30:01 +00:00
== Reverse Engineering ==
An LFSR generates values based on a linear expression modulous 2, therefore we
can reverse engineer the state of the LFSR based on a sequence we are given.
This can be done using the Berlekamp-Massey algorithm.