Grain (codering)
Een stroomcodering uit het eSTREAM-project die een lineair en een niet-lineair schuifregister combineert.
Grain is ontworpen door Martin Hell, Thomas Johansson en Willi Meier en werd in 2004 ingediend bij het eSTREAM-project. Het gebruikt twee schuifregisters: een lineair register dat zorgt voor een lange periode, en een niet-lineair register dat de uitvoer moeilijker voorspelbaar maakt. De combinatie is klein en snel in hardware, en dat was de bedoeling voor apparaten met een krap vermogens- en oppervlaktebudget.
De familie kent meerdere varianten met verschillende sleutellengtes, en latere versies voegen authenticatie toe. Grain is een goed voorbeeld van een elegant ontwerp dat na cryptanalyse toch bijgesteld moest worden, zoals veel eSTREAM-kandidaten.