SNOW 1.0, SNOW 2.0, and SNOW 3G are word-based synchronous stream cyphers developed by Thomas Johansson and Patrik Ekdahl at Lund University.
SNOW 1.0, originally simply SNOW, was submitted to the NESSIE project. The cypher has no known intellectual property or additional restrictions. The cypher works on 32-bit words and supports both 128- and 256-bit keys. The cypher consists of a combination of a LFSR and a Finite State Machine (FSM) where the LFSR additionally feeds the next state function of the FSM. The cypher has a short initialization phase and quite good performance on both 32-bit processors and in hardware.
During the evaluation, weaknesses were discovered and as a result, SNOW wasn't included in the NESSIE suite of algorithms. The authors have developed a new version, version 2.0 of the cipher, that solves the weaknesses and improves the performance.
During ETSI SAGE evaluation, the design was further modified to increase its resistance against algebraic attacks with the result named SNOW 3G.
It has been found that related keys exist both for SNOW 2.0 and SNOW 3G , allowing attacks against SNOW 2.0 in the related-key model.
SNOW has been used in the ESTREAM project as a reference cypher for the performance evaluation.
SNOW 3G is chosen as the stream cypher for the 3GPP encryption algorithms UEA2 and UIA2.