SNOW — это семейство синхронных потоковых шифров на основе слов , разработанное Томасом Йоханссоном и Патриком Экдалом в Лундском университете .
В их основе лежит 512-битный сдвиговый регистр с линейной обратной связью , за которым следует конечный автомат с нелинейным выходом и несколькими дополнительными словами состояния.
SNOW 1.0 , SNOW 2.0 и SNOW 3G используют сдвиговый регистр из 16 32-битных слов и 32-битное выходное преобразование add-rotate-XOR (ARX) с 2 или 3 словами состояния. Каждая итерация сдвигает регистр сдвига на 32 бита и выдает 32 бита вывода.
SNOW-V и SNOW-Vi используют сдвиговый регистр из 32 16-битных слов (предназначенных для реализации в виде 4 128-битных SIMD- регистров), который увеличивается на 16 бит за итерацию. 8 итераций LFSR могут выполняться одновременно с использованием операций SIMD, после чего выполняется один шаг выходного преобразования, дающий 128 бит выходного сигнала. Выходное преобразование использует функцию раунда Advanced Encryption Standard (AES) (обычно реализованную аппаратно на последних процессорах) и поддерживает 2 дополнительных 128-битных слова состояния.
SNOW 1.0, первоначально просто SNOW, был представлен проекту NESSIE . [1] Шифр не имеет известных ограничений интеллектуальной собственности или других ограничений. Шифр работает с 32-битными словами и поддерживает как 128-, так и 256-битные ключи. Шифр состоит из комбинации LFSR и конечного автомата (FSM), где LFSR также передает следующую функцию состояния FSM. Шифр имеет короткую фазу инициализации и очень хорошую производительность как на 32-битных процессорах, так и на аппаратном уровне.
В ходе оценки были обнаружены слабые места, в результате чего SNOW не был включен в набор алгоритмов NESSIE. Авторы разработали новую версию шифра — версию 2.0, которая устраняет недостатки и повышает производительность. [2]
Во время оценки ETSI SAGE конструкция была дополнительно модифицирована для повышения ее устойчивости к алгебраическим атакам, в результате чего получил название SNOW 3G. [3]
Было обнаружено, что связанные ключи существуют как для SNOW 2.0, так и для SNOW 3G, [4] что позволяет атаковать SNOW 2.0 в модели связанных ключей.
SNOW использовался в проекте ESTREAM в качестве эталонного шифра для оценки производительности.
SNOW 2.0 — это один из потоковых шифров, выбранный для стандарта ISO/IEC ISO/IEC 18033-4. [5]
SNOW 3G [6] выбран в качестве потокового шифрования для алгоритмов шифрования 3GPP UEA2 и UIA2. [7]
SNOW-V — это масштабная модернизация, опубликованная в 2019 году [8] , разработанная для соответствия скоростям сотовой сети 5G за счет генерации 128 бит выходных данных за итерацию. SNOW-Vi [9] был доработан для еще большей скорости за счет небольших изменений в LFSR; выходное преобразование идентично.