SNOW (шифр): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
обновление известных атак
Строка 46: Строка 46:
== Известные атаки ==
== Известные атаки ==
* В феврале 2002 года Хоукс и Роуз описали атаку <ref>{{Cite web|url = https://www.researchgate.net/publication/221274592_Guess-and-determine_attacks_on_SNOW| title = Guess-and-determine attacks on SNOW}}</ref> методом предположений и определений на SNOW 1.0, в котором используются в основном два свойства, чтобы снизить сложность атаки ниже исчерпывающего поиска ключей. Во-первых, тот факт, что автомат имеет только один вход s(1). Это позволяет злоумышленнику инвертировать операции в конечном автомате и получать больше неизвестных только из нескольких предположений. Второе свойство - неудачный выбор полинома обратной связи в SNOW 1.0.
* В феврале 2002 года Хоукс и Роуз описали атаку <ref>{{Cite web|url = https://www.researchgate.net/publication/221274592_Guess-and-determine_attacks_on_SNOW| title = Guess-and-determine attacks on SNOW}}</ref> методом предположений и определений на SNOW 1.0, в котором используются в основном два свойства, чтобы снизить сложность атаки ниже исчерпывающего поиска ключей. Во-первых, тот факт, что автомат имеет только один вход s(1). Это позволяет злоумышленнику инвертировать операции в конечном автомате и получать больше неизвестных только из нескольких предположений. Второе свойство - неудачный выбор полинома обратной связи в SNOW 1.0.
*В августе 2003 года Ватанабе, Бирюков и Кристоф Де Канньер описали атаку <ref>{{Cite web|url = https://link.springer.com/chapter/10.1007/978-3-540-24654-1_16| title = A Distinguishing Attack of SNOW 2.0 with Linear Masking Method}}</ref> на SNOW 2.0 методом линейной маскировки. Эта атака использует <math> 2^{230}</math> битов потока и <math> 2^{225}</math> шагов анализа, что быстрее, чем исчерпывающий поиск 256-битного ключа.


== Применение ==
== Применение ==

Версия от 20:47, 20 октября 2020

SNOW 1.0, SNOW 2.0, и SNOW 3G  — словоориентированный синхронный поточный шифр, разработанный в 2000 в Лундском университете, Швеция.

История

SNOW 1.0, первоначально просто SNOW, был представлен проекту NESSIE. Шифр не имеет известной интеллектуальной собственности или других ограничений. Шифр работает с 32-битными словами и поддерживает как 128-, так и 256-битные ключи. Шифр состоит из комбинации регистра сдвига с линейной обратной связью (LFSR) и конечного автомата (FSM), где LFSR также передает функцию следующего состояния FSM. Шифр имеет короткую фазу инициализации и очень хорошую производительность как на 32-битных процессорах, так и на оборудовании.

Во время оценки были обнаружены слабые места, и в результате SNOW не был включен в набор алгоритмов NESSIE. Авторы разработали новую версию шифра SNOW 2.0, в которой устранены недостатки и улучшена производительность.

Во время оценки ETSI SAGE дизайн был дополнительно изменен, чтобы повысить его устойчивость к алгебраическим атакам с результатом, названным SNOW 3G.[1]

Было обнаружено, что связанные ключи существуют как для SNOW 2.0, так и для SNOW 3G, что позволяет атаковать SNOW 2.0 в модели связанных ключей.

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

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

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

Генератор состоит из регистра сдвига с линейной обратной связью длины 16 над полем , питающего конечный автомат. FSM состоит из двух 32-битных регистров, называемых R1 и R2, а также некоторых операций для вычисления вывода и следующего состояния (следующего значения R1 и R2). Работа шифра выглядит следующим образом. Сначала выполняется инициализация ключа. Эта процедура обеспечивает начальные значения для LFSR, а также для регистров R1, R2 в конечном автомате. Затем первые 32 бита ключевого потока вычисляются путем поразрядного сложения выходных данных FSM и последней записи LFSR. После этого весь шифр синхронизируется один раз, и следующие 32 бита ключевого потока вычисляются путем еще одного побитового сложения выходных данных конечного автомата и последней записи LFSR. Мы снова синхронизируем и продолжаем в том же духе.

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

В начальный момент времени t = 0 происходит инициализация регистра сдвига 32-битными значениями .

Обратная связь регистра сдвига задается многочленом:

где порождается неприводимым многочленом

,

над и .

Выход FSM назовем . Он рассчитывается по следующей формуле:

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

Для конечного формирования шифр-текста потоковый ключ сравнивается с открытым текстом по модулю 2. Внутри [конечный автомат|конечного автомата]] новые значения для R1 и R2 присваиваются по следующим формулам:

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

- целочисленное сложение ,
- циклический сдвиг влево,
- сложение по mod2

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

  • В феврале 2002 года Хоукс и Роуз описали атаку [2] методом предположений и определений на SNOW 1.0, в котором используются в основном два свойства, чтобы снизить сложность атаки ниже исчерпывающего поиска ключей. Во-первых, тот факт, что автомат имеет только один вход s(1). Это позволяет злоумышленнику инвертировать операции в конечном автомате и получать больше неизвестных только из нескольких предположений. Второе свойство - неудачный выбор полинома обратной связи в SNOW 1.0.
  • В августе 2003 года Ватанабе, Бирюков и Кристоф Де Канньер описали атаку [3] на SNOW 2.0 методом линейной маскировки. Эта атака использует битов потока и шагов анализа, что быстрее, чем исчерпывающий поиск 256-битного ключа.

Применение

SNOW использовался в проекте ESTREAM как эталонный шифр для оценки производительности.

SNOW 2.0 - это один из потоковых шифров, выбранных для стандарта ISO / IEC ISO / IEC 18033-4 ISO/IEC standard ISO/IEC 18033-4[4].

SNOW 3G [5] выбран в качестве потокового шифра для алгоритмов шифрования 3GPP UEA2 и UIA2 .[6].

Примечания

Литература

Категория:Потоковые шифры