I was conducting research on stream ciphers and LFSRs was a subtopic of my research and I was wondering why are LFSRs so popular?
2 Answers
There were popular once upon a time;
They were very easy to implement in the hardware. Think about you only need latch and $\oplus$. For combining functions some $\wedge$ operation.
Their periodic properties are well studied, the minimal polynomial and characteristic polynomial etc. You can see a glimpse in the classical book of Solomon Golomb.
They are insecure, as Fgrieu said in comments. Single LFSR can be breakable by Berlekamp-Massay algorithm. You need only $2L$ keystream if the LFSR's length is $L$. Interestingly, this algorithm was invented for decoding the BCH codes.
Many people tried to use LFSRs to produce secure stream ciphers. To see the attacks on them look at the links.
- Combining LFSRs with non-linear combiner broken by the novel attack of Siegenthaler
- Irregular clocking as Alternating step generator
- Shrinking Generator
- Filtering the LFSR
Some recent (date back to 1999) algorithms based on LFSR
Note 0: Definitions:
Shift Register : cascaded flip-flops that the out od each is connected to the next one's input. At each clock cycle, the data shifts one. As in 'C' code
x << 1Linear-feedback shift register, LFSR is a shift register where the input is the linear combination of previous states.
- Nonlinear-feedback shift register, NLFSR is a shift register where the input is the non-linear combination of previous states.
Note 1: The following from eSream project are using LFSR or NLFSR or both:
- Trivium uses 3 NLFSRs.
- Sosemanuk uses LFSR with a maximal period $2^{230}-1$
- Grain uses both LFSR and NLFSR
- MICKEY uses both LFSR and NLFSR
Note 2: They have other applications as @bmmo6 said in the comments.
Note 3: I barely remember a product advertisement in Cryptologia. They were claiming that they combined 5 LFSRs to generate a secure cipher.
- 49,797
- 12
- 123
- 211
A complement to @kelalaka's excellent answer.
Here are a few LFSR (and NLFSR for Trivium) based stream ciphers that have not been broken.
Trivium
Self shrinking generator.
Also, some stream ciphers with more modern structure are much less understood.
- 25,146
- 2
- 30
- 63