Run (песня Snow Patrol)
- 1 year ago
- 0
- 0
SNOW — словоориентированный синхронный поточный шифр , разработанный Лундском университете (Швеция). На данный момент у него существует 3 модификации: SNOW 2.0, SNOW 3G, SNOW-V. SNOW 3G используется для безопасной передачи мобильных данных.
SNOW 1.0, первоначально просто SNOW , был разработан в 2000 году. Шифр работает с 32-битными словами и поддерживает как 128-, так и 256-битные ключи. Шифр состоит из комбинации регистра сдвига с линейной обратной связью (РСЛОС) и конечного автомата (КА).
В первой версии были обнаружены слабые места , и в результате SNOW не был включен в набор алгоритмов NESSIE . В 2003 году авторы разработали новую версию шифра SNOW 2.0 , в которой устранили недостатки и улучшили производительность. Во время оценки группой экспертов по безопасным алгоритмам ( англ. SAGE ) из Европейского института телекоммуникационных стандартов ( англ. ETSI ) алгоритм шифрования был дополнительно изменён, чтобы повысить его устойчивость к алгебраическим атакам. Результатом таких улучшений в 2006 году стала модификация шифра SNOW 3G .
В 2019 году Ericsson Research совместно с Лундским университетом пересмотрели алгоритм SNOW 3G и обновили его до нового, более быстрого шифра под названием SNOW-V , который может быть использован для безопасной передачи данных в новом поколении связи 5G .
Генератор состоит из регистра сдвига с линейной обратной связью длины 16 над полем . Выход регистра подается на вход конечного автомата. КА состоит из двух 32-битных регистров, называемых R1 и R2, а также некоторых операций для вычисления вывода и следующего состояния (следующего значения R1 и R2). Работа шифра выглядит следующим образом. Сначала выполняется инициализация ключа. Эта процедура обеспечивает начальные значения для РСЛОС, а также для регистров R1, R2 в конечном автомате. Затем первые 32 бита ключевого потока вычисляются путем поразрядного сложения выходных данных КА и последней записи РСЛОС. После этого весь процесс синхронизируется, и следующие 32 бита ключевого потока вычисляются путем ещё одного побитового сложения выходных данных конечного автомата и последней записи РСЛОС. Мы снова синхронизируем и продолжаем в том же духе.
В начальный момент времени t = 0 происходит инициализация регистра сдвига 32-битными значениями , которые задаются при помощи сгенерированного ключа.
Функция обратной связи для регистра задается многочленом:
где задаётся неприводимым многочленом
над и .
Выход КА назовем . Он рассчитывается по следующей формуле:
где — целочисленное сложение по .
Выход конечного автомата сравнивается с по модулю 2 для формирования потокового ключа, то есть
где — сложение по .
Внутри конечного автомата новые значения для R1 и R2 присваиваются по следующим формулам:
где — циклический сдвиг влево
Наконец, S-блок , обозначаемый , состоит из четырёх идентичных битовых S-блоков 8×8 и перестановки полученных битов. Входные данные разделены на 4 байта, каждый байт входит в нелинейное отображение от 8 бит до 8 бит. После этого отображения биты в результирующем слове переставляются, чтобы сформировать окончательный результат S-блока .
Для конечного формирования шифртекста потоковый ключ сравнивается с открытым текстом по модулю 2.
SNOW 2.0 — один из потоковых шифров, вошедших в стандарт шифрования ISO/IEC ISO/IEC 18033-4 , который определяет функции вывода для объединения ключевого потока с открытым текстом, генераторы ключевого потока для создания ключевого потока и идентификаторы объектов, назначенные выделенным генераторам ключевого потока в соответствии с ISO/IEC 9834 для поточных шифров.
SNOW 3G выбран в качестве генератора потоковых ключей для алгоритмов шифрования 3GPP UEA2 и UIA2 .