Атака «встречей посередине» на 3-подмножества

Атака «встречей посередине» на 3-подмножества (далее — атака 3-подмножества; англ. англ. 3-subset meet-in-the-middle attack) — разновидность обобщённой атаки «встречей посередине», применяемой в криптологии для анализа хеш-функций и блочных шифров. Вариант 3-подмножества позволяет использовать атаки «встречей посередине» для шифров, где не удаётся тривиально разделить ключевые биты на два независимых пространства ключей, как это требуется для классической атаки данного типа.

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

История

Оригинальная атака «встречей посередине» была впервые предложена в статье Диффи и Хеллмана в 1977 году, где обсуждались криптоаналитические свойства DES[1]. Авторы утверждали, что длина ключа DES слишком мала, и что повторное применение DES с разными ключами может решить данную проблему, однако они предостерегали от использования двойного DES и рекомендовали минимум тройной DES из-за уязвимости перед атакой «встречей посередине»: двойной DES крайне чувствителен к такому методу, так как его можно легко разбить на два субшифра (первая и вторая операции DES) с независимыми ключами, что позволяет атаке снизить вычислительную сложность с до .

С момента публикации Диффи и Хеллмана появилось множество вариантов атак «встречей посередине». Некоторые из них делают атаку более эффективной или расширяют области применения, где базовый вариант был невозможен. Вариант с 3-подмножествами предложен Богдановым и Рехбергером в 2011 году[2] и показал свою эффективность для криптоанализа таких шифров, как семейство облегчённых блочных шифров KTANTAN.

Процедура

Как и в случае с классической атакой «встречей посередине», процесс делится на две фазы: фазу сокращения пространства ключей и фазу проверки ключа. На первом этапе пространство возможных ключей сужается за счёт применения самой атаки. На втором этапе полученные кандидаты на роль ключа проверяются на другой паре открытый/зашифрованный текст (plaintext/ciphertext) для отбраковки неверных кандидатов.

Фаза сокращения пространства ключей

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

Ключ делится на три подмножества:

  •  — биты ключа, которые используются обоими субшифрами.
  •  — биты, уникальные для первого субшифра .
  •  — биты, уникальные для второго субшифра .

Дальнейшая процедура перебора для атаки по этим трём подмножествам:

  1. Для каждой догадки :
    1. Вычислить промежуточное значение из открытого текста для всех комбинаций ключ-битов .
    2. Вычислить промежуточное значение для всех комбинаций .
    3. Сравнить и . При совпадении сохранить соответствующую комбинацию как кандидата на ключ.

Фаза проверки ключа

Каждый кандидат, найденный на предыдущем этапе, тестируется на другой паре открытый/зашифрованный текст. Проверка заключается в попытке зашифровать открытый текст P и сверить результат с известным шифротекстом C. Обычно хватает лишь пары дополнительных тестов для отбраковки ложных кандидатов, благодаря чему у атаки 3-подмножеств очень низкая сложность по данным.

Пример

Здесь рассмотрен пример атаки на семейство шифров KTANTAN, изложенный в работе Рехбергера и Богданова. Соглашения по обозначениям соответствуют их оригинальной статье. Эта атака снижает вычислительную сложность для KTANTAN32 до против для полного перебора. Однако на 2014 год сложность всё ещё не реализуема на практике и не делает атаку эффективной для реального взлома. Аналогичная оценка справедлива для KTANTAN48 и KTANTAN64 (см. ниже).

Возможность атаки обусловлена особенностями битовой схемы расширения ключа (key-schedule) KTANTAN. Метод применим ко всем вариантам (KTANTAN32, KTANTAN48, KTANTAN64), так как у них одинаковое распределение ключевых битов. Он не применим к родственным блочным шифрам из семейства KANTAN из-за другой схемы расширения ключа.

Обзор KTANTAN

KTANTAN — облегчённый блочный шифр, разработанный для ограниченных по ресурсам платформ, таких как метки RFID, где применение привычных примитивов типа AES либо невозможно аппаратно, либо слишком затратно. Шифр создан Каньере, Данкельманом и Кнезевичем в 2009 году[3]. KTANTAN поддерживает длину блока 32, 48 или 64 бита и использует ключ размером 80 бит на 254 раунда. Каждый раунд использует два ключевых бита (определяемых схемой расширения ключа) в качестве раунд-ключа.

Подготовка

На этапе подготовки были выявлены слабости схемы расширения ключа KTANTAN, делающие возможной атаку с 3-подмножествами. Поскольку на каждом раунде задействуются лишь два ключевых бита, риск связан с количеством раундов, а не с эффективным перемешиванием ключа. Благодаря устройству key-schedule оказалась возможной идентификация длинных последовательностей раундов, вообще не затрагивающих некоторые ключевые биты.

Точнее:

  • Раунды 1-111 вовсе не используют ключевые биты
  • Раунды 131—254 не используют

Эту особенность и используют для постановки атаки — появляется возможность разделить алгоритм на два блока с независимыми ключевыми битами. Исключёнными битами определяются параметры атаки:

  •  — биты ключа, используемые обоими блоками (оставшиеся 68 бит)
  •  — только для первого блока (раунды 1-111)
  •  — только для второго блока (раунды 131—254)

Фаза сокращения пространства ключей

В этом этапе возникает проблема: в шаге 1.3 нельзя напрямую сравнить значения и , ведь вычисляется на выходе раунда 111, а  — на входе раунда 131. Для обхода этого препятствия применяется разновидность MITM, называемая частичное совпадение. Авторы атаки установили, что если вычислять вперёд из и назад из , то на раунде 127 8 бит состояния остаются неизменными с вероятностью единица — их и сравнивают (для KTANTAN32 это 8 бит на 127-м раунде, для KTANTAN48 — 10 бит на 123-м, для KTANTAN64 — 47 бит на 131-м раунде). Это увеличивает число ложных совпадений, но существенного роста вычислительной сложности не даёт.

Фаза проверки ключа

В случае KTANTAN32 в среднем требуется 2 пары открытый/зашифрованный текст, чтобы найти нужного кандидата из-за ложноположительных результатов (совпадения только части состояния). Для KTANTAN48 и KTANTAN64 в среднем достаточно одной пары для проверки и нахождения корректного ключа.

Результаты

Для:

  • KTANTAN32 вычислительная сложность описанной атаки составляет при количестве данных 3 пары открытый/зашифрованный текст (против для полного перебора);
  • KTANTAN48 — сложность , необходимы 2 пары;
  • KTANTAN64 — и 2 пары.

Данные взяты из работы Рехбергера и Богданова.

С 2011 года атака 3-подмножеств уступила наилучшей на тот момент атаке на KTANTAN, предложенной Вэй, Рехбергером, Го, Ву, Ваном и Лином, которая позволила снизить сложность до с 4 выбранными парами открытый/зашифрованный текст благодаря техникам частичного совпадения и splice & cut MITM[4].

Примечания

  1. Diffie, Whitfield; Hellman, Martin E. (1977-06). “Exhaustive Cryptanalysis of the NBS Data Encryption Standard” (PDF). Computer [англ.]. 10 (6): 74—84. Дата обращения 2024-06-12. Проверьте дату в |date= (справка на английском)
  2. Bogdanov, Andrey; Rechberger, Christian (2011). “A 3-Subset Meet-in-the-Middle Attack: Cryptanalysis of the Lightweight Block Cipher KTANTAN” (PDF). Lecture Notes in Computer Science [англ.]. 6539: 229—248. Дата обращения 2024-06-12.
  3. De Cannière, Christophe; Dunkelman, Orr; Knežević, Miroslav (2009). “KATAN & KTANTAN — A Family of Small and Efficient Hardware-Oriented Block Ciphers”. Lecture Notes in Computer Science [англ.]. 5747: 272—288. Дата обращения 2024-06-12.
  4. Wei, Lei; Rechberger, Christian; Guo, Jian; Wu, Hongjun; Wang, Huaxiong; Ling, San (2011). “Improved Meet-in-the-Middle Cryptanalysis of KTANTAN” (PDF). Lecture Notes in Computer Science [англ.]. 6633: 434—451. Дата обращения 2024-06-12.