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; преобразование выходных данных идентично.