Русский
Русский
English
Статистика
Реклама

Поточный шифр SNOW

Зима. Время валяться в сугробах и играть в снежки. Или почитать статью о поточных шифрах. Кому что больше нравится.

Данная статья является обзорной. Мы поговорим о принципе работы 1 версии SNOW 1.0, вкратце о различных, совершенных на шифр, атаках и о применении его модификаций.

Основная информация

И самая важная, на мой взгляд.

Шифр SNOW относится к словоориентированным поточным шифрам. Он работает с 32-битными словами и поддерживает как 128-, так и 256-битные ключи и состоит из комбинации регистра сдвига с линейной обратной связью (РСЛОС) и конечного автомата (КА).

У него есть 3 модификации. Причем одна из них - SNOW 3G, используется для передачи мобильных данных. Последняя версия SNOW-V была разработана для 5G сетей, но пока не используется.

Немного про историю

SNOW 1.0, первоначально просто SNOW, был разработан в 2000 году в Лундском университете (Швеция).

В первой версии были обнаружены слабые места, и в результате SNOW не был включен в набор алгоритмов NESSIE. В 2003 году авторы разработали новую версию шифра SNOW 2.0, в которой устранили недостатки и улучшили производительность. Во время оценки ETSI SAGE алгоритм шифрования был дополнительно изменён, чтобы повысить его устойчивость к алгебраическим атакам. Результатом таких улучшений в 2006 году стала модификация шифра SNOW 3G.

В 2019 году Ericsson Research совместно с Лундским университетом пересмотрели алгоритм SNOW 3G и обновили его до нового, более быстрого шифра под названием SNOW-V.

Схема работы SNOW

Принцип работы нарисован на картинке. Подробности описаны ниже.

Общая схема работы

Генератор состоит из регистра сдвига с линейной обратной связью длины 16 над полем \mathbb{F}_{2^{32}} . Выход регистра подается на вход конечного автомата. КА состоит из двух 32-битных регистров, называемых R1 и R2, а также некоторых операций для вычисления вывода и следующего состояния (следующего значения R1 и R2). Работа шифра выглядит следующим образом. Сначала выполняется инициализация ключа. Эта процедура обеспечивает начальные значения для РСЛОС, а также для регистров R1, R2 в конечном автомате. Затем первые 32 бита ключевого потока вычисляются путем поразрядного сложения выходных данных КА и последней записи РСЛОС. После этого весь процесс синхронизируется, и следующие 32 бита ключевого потока вычисляются путем ещё одного побитового сложения выходных данных конечного автомата и последней записи РСЛОС. Мы снова синхронизируем и продолжаем в том же духе.

Детальная схема работы

В начальный момент времени t = 0 происходит инициализация регистра сдвига 32-битными значениями s(1), s(2),, s(16) , которые задаются при помощи сгенерированного ключа.

Функция обратной связи для регистра задается многочленом:

 p (x) = x^{16} + x^{13} + x^{7} + \alpha^{-1},

где \mathbb{F}_{2^{32}} неприводимым многочленом

 \pi (x) = x^{32} + x^{29} + x^{20} + x^{15} + x^{10} + x + 1,

над \mathbb{F}_{2} и \pi (\alpha) = 0 .

Выход КА назовемFSM_{out}. Он рассчитывается по следующей формуле:

FSM_{out} = (s(1) \boxplus R1) \oplus R2,

где \boxplus целочисленное сложение по\mod2^{32}.

Выход конечного автоматаFSM_{out}сравнивается с s(16) модулю 2 для формирования потокового ключа, то есть

running key = FSM_{out} \oplus s(16),

где \oplus сложение по mod 2.

Внутри конечного автомата новые значения для R1 и R2 присваиваются по следующим формулам:

newR1 = ((FSM_{out}\boxplus R2) \lll 7) \oplus R1,

где \lll - циклический сдвиг влево,

R2=S(R1),R1=newR1

Наконец, S-блок, обозначаемый S(x) cостоит из четырёх идентичных битовых S-блоков 88 и перестановки полученных битов. Входные данные разделены на 4 байта, каждый байт входит в нелинейное отображение от 8 бит до 8 бит. После этого отображения биты в результирующем слове переставляются, чтобы сформировать окончательный результат S-блока

Для конечного формирования шифртекста потоковый ключ сравнивается с открытым текстом по модулю 2.

Более подробно описан алгоритм шифрования здесь.

Известные атаки

  • В феврале 2002 года Филипп Хоукс и Грегори Роуз описали атаку Guess and determine attack на SNOW 1.0, в котором используются в основном два свойства, чтобы снизить сложность атаки ниже исчерпывающего поиска ключей. Во-первых, тот факт, что автомат имеет только один вход s(1). Это позволяет злоумышленнику инвертировать операции в конечном автомате и получать больше неизвестных только из нескольких предположений. Второе свойство неудачный выбор полинома обратной связи в SNOW 1.0.

  • В августе 2003 года Ватанабе, Бирюков и Канньер описали атаку на SNOW 2.0 методом линейной маскировки. Эта атака использует2^ {230}битов потока и2^ {215}анализа, что быстрее, чем исчерпывающий поиск 256-битного ключа.

  • В 2010 году был описан механизм ресинхронизации SNOW 3G и аналогичного шифра SNOW 3G с использованием атак с коллизией нескольких наборов. В алгоритме описано полное восстановление ключа выбранных атак ресинхронизации IV для 18 из 33 раундов инициализации SNOW3G со сложностью 2^{57} для генерации данных и 2^{53} этапами анализа.

  • В 2020 Lin Jiao, Yongqiang Li и Yonglin Hao совершили атаку на SNOW-V под названием Guess and determine attack. Хмм.. Такое же название атаки, как и на SNOW 1.0. Мы, кажется, зациклились. Или нет?

Теперь о применении

  • SNOW 2.0 один из потоковых шифров, вошедших в стандарт шифрования ISO/IEC 18033-4, который определяет функции вывода для объединения ключевого потока с открытым текстом, генераторы ключевого потока для создания ключевого потока и идентификаторы объектов.

  • SNOW 3Gвыбран в качестве генератора потоковых ключей для алгоритмов шифрования 3GPP UEA2 и UIA2.

  • SNOW-V пока не используется, но всё возможно!

Небольшой итог

Данный шифр, конечно, не идеальный.. А кто идеален? Но он современный и, я думаю, у него есть будущее Проблема безопасной передачи данных как была актуальной, так и является до сих пор!

Источник: habr.com
К списку статей
Опубликовано: 11.12.2020 12:12:55
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Криптография

Шифр

Шифрование

Поточный шифр

3g

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru