Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Из Википедии — свободной энциклопедии

SOBER-t32
Создатель Филип Хаукес и Грегори Роуз
Создан 2000 год
Опубликован 2000 год
Размер ключа 256 бит
Тип Поточный шифр

SOBER-t32 (англ. Seventeen Octet Byte Enabled Register) — cинхронный аддитивный потоковый шифр из семейства SOBER. Авторами являются Филип Хаукес и Грегори Роуз (Австралия).

Историческая справка

SOBER — семейство потоковых шифров, широко используемых во встроенных системах, предложенное Г. Роузом в 1998 году. На данный момент семейство включает в себя шифры SOBER[1], SOBER-II[2], S16, S32[3], SOBER-t8, SOBER-t16[4], SOBER-t32[5] и SOBER-128[6].

Первый программный потоковый шифр из семейства был разработан с целью удовлетворения основных требований встроенных приложений, которые накладывают жёсткие ограничения на объём вычислительной мощности, программного пространства и памяти, доступной для программных алгоритмов шифрования. Шифрование речи для беспроводной телефонии — одна из первых и главных сфер применения шифров SOBER. Так как большинство используемых мобильных телефонов представляют собой микропроцессор и память, быстрый программный потоковый шифр, использующий небольшое количество памяти, является наиболее подходящим вариантом для таких приложений. Многие методы генерации потока псевдослучайных битов основаны на регистрах сдвига с линейной обратной связью (РСЛОС) над конечным полем Галуа порядка 2. Такие шифры неэффективно использовать на ЦПУ. Шифры семейства SOBER обходят данную проблему, используя РСЛОС над полем и ряд методов, позволяющих значительно увеличить скорость генерации псевдослучайной последовательности в программном обеспечении на микропроцессоре.[7]

Стремление усилить безопасность и использовать шифр в 16-битных и 32-битных процессорах привело к возникновению нескольких вариантов первоначального шифра SOBER. Однако, когда в нём были обнаружены различные недостатки, он был заменён на SOBER-II и его дополнения — S16 и S32. S16 копирует структуру SOBER II и является расширением данного алгоритма до 16-битной арифметики. В это же время S32 основан на 32-битной арифметике[7][8], а структура данного шифра отлична от SOBER-II и S16. Тем не менее, при последующем анализе SOBER-II были обнаружены атаки, которые выявили недостаток всей структуры шифра, а не его отдельных частей. Как итог, на замену существующим шифрам были выпущены три новые версии, основанные на 8-битной, 16-битной и 32-битной арифметике, называемые t-классом шифров SOBER. Синхронные потоковые шифры SOBER-t16 и SOBER-t32 были представлены в программе NESSIE.[9] И хотя оба шифра в итоге были признаны не соответствующими строгим требованиям NESSIE, согласно заключительному отчёту о безопасности, выпущенному NESSIE в феврале 2003 года, на втором этапе отбора были рассмотрены только четыре потоковых шифра: BMGL, SNOW, SOBER-t16 и SOBER-t32.

Описание алгоритма

SOBER-t32 — это 256-битный синхронный потоковый шифр из семейства SOBER. В шифрах данного типа ключи генерируются независимо от открытого текста. Для того чтобы зашифровать открытый текст, отправитель выполняет операцию XOR между открытым текстом и потоком ключей. Если получателю известен секретный ключ, то он может восстановить поток ключей и расшифровать сообщение, выполнив операцию XOR между зашифрованным текстом и потоком ключей.[10]

Основными элементами шифрообразующего устройства являются[11]:

Рис. 1. Структура SOBER-t32


  • Регистр сдвига с линейной обратной связью (РСЛОС), который использует рекуррентное соотношение для создания последовательности состояний (слов) .
  • Нелинейный фильтр (НФ) — создаёт поток из , создавая нелинейную комбинацию из полученных слов.
  • Блок «задержки», или «усечения» (БЗ) — генерирует поток ключей , прорежая НФ-поток нерегулярным образом.

Элементы представлены над полем Галуа с использованием базиса . Если , то представим как , где . Работа шифра основана на 32-битных операциях над по модулю полинома вида:

[12]

Сложение двух элементов в представляется как сложение соответствующих полиномов с приведением коэффициентов по модулю два. Умножение двух элементов в представляется как умножение соответствующих полиномов с приведением коэффициентов полиномов по модулю два. Результат умножения затем приводится по модулю неприводимого полинома .[13]

Регистр сдвига с линейной обратной связью (РСЛОС)

РСЛОС — сдвиговый регистр длины 17, где каждая ячейка содержит одно 32-разрядное слово. Таким образом, полная внутренняя память составляет 544 бит. Состояние РСЛОС в момент времени задаётся вектором:

Следующее состояние РСЛОС получается путём сдвига предыдущего состояния на один шаг. Новое слово вычисляется как линейная комбинация слов, содержащихся в РСЛОС, по следующему правилу:

[14]

где ,  — исключающее или (XOR).

Нелинейный фильтр (НФ)

Нелинейный фильтр предназначен для уменьшения вероятности успешного криптоанализа шифра. Основная цель НФ — скрыть линейность выходного потока регистра[15]. В каждый момент времени нелинейный фильтр берёт из РСЛОС пять слов и вычисляет значение, обозначаемое :

[16]

где:

  •  — сложение по модулю .
  • константа  — слово, которое определяется во время инициализации РСЛОС и сохраняется до конца сеанса.
  • задаёт некоторую нелинейную функцию.
Рис. 2. Структура нелинейной функции


Функция используется для достижения нескольких целей. Во-первых, она скрывает линейность в младшем значащем бите (eng. Least Significant Byte или LSB) и добавляет значительную нелинейность в оставшиеся биты. Во-вторых, она гарантирует, что результат сложения и не коммутирует с результатом сложения и . В-третьих, обеспечивает, чтобы каждый бит вывода НФ зависел от каждого бита и . Операция XOR с константой в рассматриваемой формуле используется для двух целей. В первую очередь данное действие увеличивает сложность любой атаки (исключая полный перебор), поскольку имеется 216 возможных функций НФ.[15] Вдобавок, добавляется к выражению через XOR для того, чтобы снизить вероятность коммутации прибавления и сложения и . Несмотря на это, все ещё существует небольшая вероятность того, что операции будут коммутировать. Однако, эта вероятность мала и зависит от значения .[17]

Внутри функции слово разбивается на старший значащий байт (eng. Most Significant Byte или MSB) и три оставшихся байта. MSB подаётся на вход блока замещения[18](eng. Substitution Box or S-box), который генерирует 32 бита. В этом 32-битном выходе MSB совпадает с MSB исходного слова, а операция XOR между тремя оставшимися байтами и аналогичной частью исходного слова формирует оставшуюся часть выходного слова. Таким образом, функция представима в виде:

[19]

где  — старший значащий байт слова , а представляет собой оставшуюся часть входного слова.

Блок задержки (БЗ)

Блок задержки нерегулярно «прореживает» поток, идущий из НФ, чтобы затруднить восстановление состояния шифрообразующего устройства, например, путём корреляционной атаки. Суть заключается в том, что случайные слова из нелинейного вывода используются для определения включения других слов в выходной поток. Первое 32-разрядное слово на выходе НФ является первой командой управления усечением (eng. Stutter Control Word или SCW)[20]. Каждый бит данного управляющего слова разбивается на пары бит, называемые дибитами. Наборы дибитов предоставляют шифру различные инструкции — сколько циклических проходов по РСЛОС необходимо сделать, подавать ли вывод НФ на выход, как вставить этот вывод в конечный ключевой поток. После использования всех дибитов новое SCW берётся из вывода НФ. Правила определены следующим образом[21]:

  • 00 — следующее слово будет исключено из потока ключей;
  • 01 — в поток ключей идёт результат операции XOR между следующим словом и константой , последующее слово удаляется из потока ключей;
  • 10 — следующее слово исключается, а слово за ним попадает в ключевой поток;
  • 11 — в поток ключей идёт результат операции XOR между следующим словом и константой .

Здесь , а  — побитовое дополнение .

Использование данного механизма позволяет пропустить в ключевой поток только около 48 % слов потока НФ.[22]

Атаки на SOBER-t32

«Предполагай и определяй» атака на SOBER-t32 без блока задержки

В стандартной атаке «Предполагай и определяй» (англ. Guess and determine attack) угадываются некоторые слова регистра РСЛОС, а оставшиеся слова определяются путём использования уравнений на РСЛОС и НФ. Данная атака может быть успешна проведена только в том случае, если шифрообразующее устройство не содержит блок задержки. Он предотвращает атаку — не столько из-за неопределённости, которую он вносит, сколько из-за того, что последовательные слова не появляются в конечном ключевом потоке.[22]

Упрощённая схема: биты переноса известны

В данной секции рассмотрен упрощённый вид атаки, в котором биты переноса известны заранее. Распишем выражение для выхода НФ с учётом явного вида функции , рассматривая старший значащий байт и остальные байты отдельно:

где обозначает бит переноса, идущий к MSB. Предполагая, что MSB константы равен нулю, это уравнение можно разбить на две отдельные части:

В данной системе SBOX1 представляет собой старший значащий байт выходного сигнала блока замещения, а SBOX2 — три оставшихся байта этого выхода. обозначает биты переноса представленных операций сложения. Наиболее интересным является первое выражение представленной системы. Зная старшие значащие биты слов , потока ключей и значения битов переноса и , появляется возможность рассчитать старший значащий бит слова .

В данной подсекции рассматривается случай, когда биты переноса не учитываются. Таким образом, на первом этапе атаки необходимо угадать только старшие значащие биты первых 16 слов РСЛОС (, , …, ) — в общей сложности 128 бит. Зная их и поток ключей , можно вычислить MSB для следующих слов , , и т. д. Остаётся предсказать младшие 24 бита каждого слова, которые появляются в РСЛОС. Их можно извлечь из системы линейных уравнений, получаемых после каждой итерации работы шифратора:

  • 32 линейных уравнения на основании вывода нового слова из РСЛОС.
  • Дополнительное линейное уравнение на младший значащий бит. Так как входные данные для S-box известны, то для младшего значащего бита имеет место следующее выражение:

Таким образом, после срабатываний РСЛОС генерируется линейных уравнения, в которых неизвестными являются:

  • 24 младших значащих бита изначальной последовательности , , …, .
  • значение младшего значащего бита константы .
  • 24 младших значащих бита нового слова на каждой последующей итерации.

Всего неизвестных. Для того чтобы система была разрешима, число переменных не должно превышать число уравнений, то есть:

Важно отметить, что атака восстанавливает полное состояние шифра, за исключением 23 оставшихся бит константы . Однако после завершения атаки эти биты легко восстанавливаются из второго уравнения системы.

Для оценки сложности атаки необходимо знать число бит, которые требуется угадать. В данной версии, следующие биты должны быть угаданы:

  • MSB первых 16 слов РСЛОС — 128 бит.
  • MSB константы K — 8 бит.

В общей сложности для успешной атаки необходимо угадать 136 бит, что подразумевает сложность . В следующем разделе будет представлена сложность полной атаки, учитывающей также и биты переноса.[23]

Полная атака

Предыдущий раздел базируется на упрощении, что биты переноса известны заранее. В действительности их также необходимо угадывать. При этом биты переноса не являются чисто случайными, распределение их значений неравномерно.[24] Этим можно воспользоваться при атаке — вначале попытаться угадать наиболее вероятные значения. Среднее число угадываний хорошо аппроксимируется энтропией, поскольку она равна количеству информации, которая присутствует в битах переноса. Энтропии битов переноса и могут быть получены теоретически — равны 1 и 1.65 соответственно.[25][26]

Для совершения атаки необходимо угадать:

  • 136 бит — из предыдущего раздела.
  • Биты переноса — всего бит.

Таким образом, сложность полной атаки есть

Атака-различитель

В криптографии атакой-различителем (eng. Distinguishing attack) называется любая форма криптоанализа некоторых зашифрованных данных, которая позволяет злоумышленнику выделить зашифрованные данные из потока случайных. Современные шифры с симметричным ключом специально разработаны для защиты от таких атак. Другими словами, современные схемы шифрования являются псевдослучайными перестановками и предназначены для «размывания» зашифрованного текста. Если найден алгоритм, который может отличить выходной поток шифра от случайного быстрее, чем полный перебор, то шифр считается взломанным.

Атаки-различители показывают, что блок задержки не может сорвать все атаки, основанные на знании большой части ключевого потока. Однако и сам блок задержки является неимоверно затратным средством, поскольку снижает производительность шифра на 52 %.[22]

На конференции FSE в 2002 году, П. Экдал и Т. Джонсон представили вариант атаки-различителя на SOBER-t32 без блока задержки, который может быть расширен и на полную схему.[27]

Атака на SOBER-t32 без блока задержки

Атака начинается с линеаризации выхода НФ:

[28]

Шум , возникающий вследствие данной аппроксимации, имеет смещённое распределение.[29] Возводя в квадрат выражение для получения нового слова из РСЛОС, получим новое линейное рекуррентное соотношение:

где .

После этого считается XOR между соседними битами в потоке :

Затем рассчитывается распределение для значений . Согласно результатам моделирования это распределение достаточно смещено. Наибольшее смещение было обнаружено у значений, получаемых на 29-ом и 30-ом битах. Смещение зависит от соответствующих битов и для битов 29 и 30 составляет не менее [30]

Теперь, имея поток из НФ , можно воспользоваться введённым ранее рекуррентным выражением для подсчёта:

где сумма всех по определению равна нулю. Таким образом, данное выражение может быть переписано в следующем виде:

Обозначим левую часть верхнего выражения как , а правую — . Теперь возможно рассчитать следующую вероятность:

где обозначает смещение. Используя эту формулу, можно получить финальное значение вероятности корреляции шести независимых позиций в потоковом ключе для :

Для того чтобы отличить данное неравномерное распределение от равномерного источника , между двумя распределениями вычисляется информация Чернова[31]:

Чтобы получить вероятность ошибки , необходимо выборок из ключевого потока. Каждая выборка состоит из бит, поэтому всего необходимо слов из потока НФ, чтобы отличить SOBER-t32 (без блока задержки) от остального потока из единого источника.

Атака на полную версию SOBER-t32

Данная версия основывается на знании слов из потока НФ. Необходимо отыскать эти слова в потоке ключей , то есть уже после прохождения блока задержки. Прежде всего высчитывается вероятность того, что конкретное слово будет найдено в своей наиболее вероятной позиции в потоке ключей. Берётся слово из потока ключей, которое происходит от конкретного слова из потока НФ. Затем вычисляется вероятность того, что последующие слова появятся в своих наиболее вероятных положениях в ключевом потоке.

По статистике наиболее вероятной позицией для в потоке ключей является , для  — . Согласно результатам симуляций вероятности найти данные слова в таких положениях в потоке ключей составляют 21,7 % и 19,8 % соответственно.[32] Для остальных трёх слов необходимы более сложные теоретические выкладки. Для -го слова, поступающего в блок задержки, можно ожидать, что слов управления задержкой (SCW) использовались ранее. Также ожидается, что из всех оставшихся (не SCW) слов 50 % в конечном счёте попадут в поток ключей. При этом наиболее вероятная позиция для слова :

[33]

Вероятность найти слово в данной наиболее вероятной позиции рассчитывается, исходя из вероятности того, что -ое слово управления задержкой появится в своей наиболее вероятной позиции в потоке НФ. Эту вероятность легче рассчитать теоретически, и легко увидеть, что асимптотическое поведение обоих значений будет одинаковым.[33]

Ранее вводилось, что два дибита — 00 и 11 — определяют, что произойдёт со следующим словом. Два других дибита — 01 и 10 — определяют задержку двух следующих слов. Поскольку каждый дибит появляется с одинаковой вероятностью, ожидается, что один дибит в среднем использует 1.5 слова из потока НФ. SCW выдаёт 16 дибитов и, таким образом, использует в среднем 24 слова. Поскольку SCW также поступает из потока НФ, ожидается, что -й SCW находится на Невозможно разобрать выражение (SVG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «http://localhost:6011/ru.wikipedia.org/v1/»:): {\displaystyle 25n} позиции потока НФ. Вероятность того, что данный SCW действительно находится в этой позиции, равна вероятности того, что слов управления задержкой определят задержку ровно слов из потока НФ. Это означает, что половина из дибитов должна определять задержку одного слова, а другая половина — задержк

у двух слов. Эта вероятность может быть рассчитана следующим образом:

С помощью формулы Стирлинга верхнее выражение упрощается:

Вероятность же нахождения следующих слов в потоке ключей в своих наиболее вероятных позициях задаётся следующим образом:

где  — константа (значение получено экспериментально).[34]

Используя данную формулу, можно рассчитать вероятности для слов . Они — при условии, что предыдущие слова находятся в ключевом потоке в их наиболее вероятном положении — равны соответственно. Таким образом, слова присутствуют в итоговом потоке ключе в своих наиболее вероятных позициях равна:

Теперь, аналогично предыдущему пункту, можно рассчитать информацию Чернова и количество слов, необходимых для атаки:

где  — распределение НФ-потока. Для достижения ошибки в необходимо выборок — для атаки потребуется последовательностей из слов из потока ключей, всего слов.

Примечания

  1. SOBER, 1998.
  2. SOBER II, 1998.
  3. S16 & S32, 2000.
  4. SOBER-t, 1998.
  5. SOBER-t32 specification, 2000.
  6. SOBER 128, 2003.
  7. 1 2 SOBER-t, 1998, p. 2.
  8. SOBER Family, 2011, p. 1.
  9. SOBER-t: probabilistic factors, 2002, p. 1.
  10. SOBER-t, 1998, pp. 1-3.
  11. Cryptanalysis of SOBER-t32, 2003, pp. 2-3.
  12. SOBER-t: probabilistic factors, 2002, уравнение 3, p. 2.
  13. SOBER-t, 1998, pp. 4-5.
  14. SOBER-t: probabilistic factors, 2002, уравнение 6, p. 3.
  15. 1 2 SOBER Family, 2011, p. 2.
  16. SOBER-t: probabilistic factors, 2002, уравнение 7, p. 3.
  17. DA, 2002, p. 215.
  18. SOBER-t, 1998, pp. 1-2.
  19. SOBER-t, 1998, p. 8.
  20. Cryptanalysis of SOBER-t32, 2003, p. 4.
  21. DA, 2002, Таблица 1, p. 215.
  22. 1 2 3 Cryptanalysis of SOBER-t32, 2003, p. 14.
  23. Cryptanalysis of SOBER-t32, 2003, pp. 7-12.
  24. SOBER-t: probabilistic factors, 2002, pp. 7-8.
  25. SOBER-t: probabilistic factors, 2002, p. 8.
  26. Cryptanalysis of SOBER-t32, 2003, p. 7.
  27. DA, 2002, pp. 216-222.
  28. Cryptanalysis of SOBER-t32, 2003, уравнение 11, p. 8.
  29. Cryptanalysis of SOBER-t32, 2003, p. 8.
  30. Cryptanalysis of SOBER-t32, 2003, pp. 8—9.
  31. Cryptanalysis of SOBER-t32, 2003, pp. 9-13.
  32. Cryptanalysis of SOBER-t32, 2003, pp. 9—10.
  33. 1 2 Cryptanalysis of SOBER-t32, 2003, p. 10.
  34. Cryptanalysis of SOBER-t32, 2003, p. 11.

Литература

  • F. Masoodi, S. Alam, M. U. Bokhar. SOBER Family of Stream Ciphers: A Review // International Journal of Computer Applications (0975 – 8887). — 2011. — № 23(1). — P. 1—5.
  • M. AlMashrafi, K. Wong, L. Simpson, H. Bartlett, E. Dawson. Algebraic analysis of the SSS stream cipher // Proceeding SIN '11 Proceedings of the 4th international conference on Security of information and networks. — ACM New York, NY, USA, 2011. — P. 199—204.
  • P. Hawkes, G. Rose. Primitive Specification and Supporting Documentation for Sober-t32 Submission to NESSIE // Proceedings of the First Open NESSIE Workshop. — 2000.
  • S. Babbage, C. De Cannière, J. Lano, B. Preneel, J. Vandewalle. Cryptanalysis of SOBER-t32 // Fast Software Encryption, 10th International Workshop. — 2003.
  • P. Ekdahl and T. Johansson. Distinguishing Attacks on Sober-t16 and t32 // Fast Software Encryption 2002. — 2002. — P. 210—224.
  • G. Rose. SOBER: A Stream Cipher based on Linear Feedback over GF() // Unpublished report. — QUALCOMM Australia, Suite 410 Birkenhead Point, 1998.
  • G. Rose. SOBER II: A Fast Stream Cipher based on Linear Feedback over GF() // Unpublished report. — QUALCOMM Australia, Suite 410 Birkenhead Point, 1998.
  • G. Rose. S16 & S32: Fast Stream Cipher based on Linear Feedback over GF() // Unpublished report. — QUALCOMM Australia, Suite 410 Birkenhead Point, 2000.
  • G. Rose, P. Hawkes. The t-class of SOBER stream ciphers // Unpublished report. — QUALCOMM Australia, Suite 410 Birkenhead Point, 1998.
  • G. Rose, P. Hawkes. Primitive Specifications of SOBER 128. — IACR ePrint Archive, 2003.
  • D. Bleichenbacher, S. Patel. SOBER cryptanalysis // Pre-proceedings of Fast Software Encryption ’99. — 1999. — P. 303—314.
  • G. Rose. S32: A Fast Stream Cipher based on Linear Feedback over GF() // Unpublished report. — QUALCOMM Australia, Suite 410 Birkenhead Point, 1998.
  • S. Babbage, J. Lano. Probabilistic Factors in the Sober-t Stream Ciphers // 3rd open NESSIE Workshop, proceeding. — 2002.

Ссылки

Эта страница в последний раз была отредактирована 24 апреля 2022 в 20:55.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).