Grain (cipher)

Grain is a stream cipher submitted to eSTREAM in 2004 by Martin Hell, Thomas Johansson and Willi Meier.

The 80-bit NLFSR is updated with a nonlinear 5-to-1 Boolean function and a 1 bit linear input selected from the LFSR.

During keying operations the output of the cipher is additionally fed-back as linear inputs into both the NLFSR and LFSR update functions.

The cipher is sealed for 160 rounds where the 160 bits of keystream generated are fed-back linearly into both the LFSR and NLFSR update functions.

Compared to E0 and A5/1, Grain provides higher security while maintaining a small hardware complexity."

[5] The paper claims: "we find related keys and initial values of the stream cipher Grain 1.0.

Although this does not result in an efficient key recovery attack yet, it indicates a weakness in the initialization which could be overcomed [sic] with a little effort."