Атака по полному двудольному графу

Атака по полному двудольному графу (англ. Biclique attack) — одна из разновидностей атаки «встречи посередине»[1]. В данной атаке используется структура полного двудольного графа для увеличения количества попыток атаки посредника. Так как эта атака основа на методе атаки посредника, то она применима как к блочным шифрам, так и к криптографическим хеш-функциям. Данная атака известна тем, что позволяет вскрыть шифры AES[2] и IDEA[3], хотя по скорости лишь немного обгоняет метод полного перебора. Вычислительная сложность атаки составляет , и для AES128, AES192 и AES256 соответственно. Так как вычислительная сложность – теоретическое значение, то это означает, что AES не был взломан и его использование остается относительно безопасным. Также эта атака поставила под сомнение достаточность количества раундов, используемых в AES.

История

править

Метод атаки посредника был впервые предложен Диффи и Хеллманом в 1977 году в процессе обсуждения свойств алгоритма DES.[4] Они рассуждали о том, что размер ключа был слишком мал, и что повторное использование DES с разными ключами могло быть решением данной проблемы. Однако, было предложено не использовать "double DES", а сразу применять как минимум triple DES из-за особенностей атаки посредника. С тех пор, как Диффи и Хеллман предложили метод атаки посредника, появилось много вариаций, которые могут использоваться, когда классический вариант MITM неприменимы. Идея атаки по полному двудольному графу была впервые высказана Хоратовичем, Рехбергером и Савельевой для варианта с использованием хеш-функций.[5] Впоследствии Богданов, Хоратович и Рехбергер опубликовали атаку на AES, в которой показали, как можно применить концепцию полного двудольного графа к секретному ключу, включающий в себя блочный шифр[6].

Полный двудольный граф

править

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

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

В данном случае, полный двудольный граф помогает в решении этой проблемы. Например, если проводить 7 раундов атаки посредника на AES, и затем использовать полный двудольный граф длиной 3 (покрывающий 3 итерации шифра), то будет возможность сопоставить промежуточное состояние в начале 7 итерации с промежуточным состоянием последней итерации (с 10, в случае с AES128). Таким образом, получается атака на все раунды шифра, хотя в классической атаке посредника это могло быть невозможно.

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

Построение полного двудольного графа

править

Данный метод был предложен Богдановым, Ховратовичем и Рехбергером в работе Biclique Cryptanalysis of the Full AES.

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

Второй шаг: Выбирается два множества ключей, каждое размером  , таким образом, что:

  • Первое множество ключей — это ключи, которые удовлетворяют дифференциальным требованиям функции   на основе базовые вычислений:  
  • Второе множество ключей — это ключи, которые удовлетворяют дифференциальным требованиям функции   на основе базовые вычислений:  

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

Четвертый шаг: Легко заметить, что:
 
 
 
Таким образом, имеем:
 
Что совпадает с определением функции полного двудольного графа, показанной выше:
 

Таким образом, можно создать полный двудольный граф размера  ( , так как   ключей первого множества необходимо соединить с   ключами второго множества). Это означает, что граф размером   можно построить, используя   вычислений дифференциалов   и   и функции  . Если   для   , тогда все ключи   будут различными во всем графе.

Криптографический анализ атаки

править

1. Криптоаналитик собирает все возможные ключи в подмножества ключей размером  , где   некоторое число. Ключ в группе обозначается как   в матрице размера  . Далее криптоаналитик разделят шифр на два шифра подстановки,   и   (такие, что  ), так же, как и в атаке посредника. Множества ключей для каждого шифра подстановки имеют мощности  , и обозначаются   и  . Объединение ключей обоих шифров подстановки выражается через вышеупомянутую матрицу  .

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

3. Криптоаналитик выбирает   возможных шифротекстов,  , и запрашивает соответствующие им открытые тексты,  .

4. Злоумышленник выбирает внутреннее состояние,   и соответствующий ему открытый текст,  , и производит классическую атаку посредника, используя   и  .

5. Как только находиться ключ, сопоставляющий   с  , он тестируется на другой паре 'внутреннее состояние-шифротекст'. Если ключ работает и на этой паре, то с большой долей вероятности это корректный ключ.

Пример атаки

править

Ниже представлен пример атаки на AES128. Атака состоит из 7 раундовой атаки посредника, полный двудольный граф используется в 3 последних итерациях.

Разделение ключей

править

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

 

Оставшиеся 14 байт (112 бит) заполняются последовательно. Таким образом получается   уникальных базовых ключей; по одному на каждую группу ключей.
Обычно   ключей в каждой группе выбираются в соответствии с базовым ключом группы. Они отличаются только 2 байтами (либо из  , либо из  ) из представленных ниже 4 байт:

 

Таким образом, получается  и  , что в сумме даёт   различных ключей,  .

Построение графа

править

Полный двудольный граф размером   строится так, как это указано в разделе "Построение полного двудольного графа".

Атака посредника

править

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

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

Когда состояния совпадут, ключ-кандидат  , принимающий значения от   до   найден. Далее этот ключ тестируется на другой паре открытый-/шифротекст

Результаты

править

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

Примечания

править
  1. Ernest Foo, Douglas Stebila. Improving the Biclique Cryptoanalysis of AES // Information Security and Privacy: 20th Australasian Conference, ACISP 2015, Brisbane, QLD, Australia, June 29 -- July 1, 2015, Proceedings. — Springer, 2015. — С. 39.
  2. Архивированная копия. Дата обращения: 14 ноября 2015. Архивировано из оригинала 6 марта 2016 года.Архивированная копия. Дата обращения: 14 ноября 2015. Архивировано из оригинала 6 марта 2016 года.
  3. Narrow-Bicliques: Cryptanalysis of Full IDEA. Архивировано 17 ноября 2015 года.
  4. Whitfield Diffie, Martin E. Hellman. Exhaustive Cryptanalysis of the NBS Data Encryption Standard. Архивировано 3 марта 2016 года.
  5. Dmitry Khovratovich, Christian Rechberger, Alexandra Savelieva. Bicliques for Preimages: Attacks on Skein-512 and the SHA-2 family. Архивировано 22 июля 2016 года.
  6. Andrey Bogdanov, Dmitry Khovratovich, Christian Rechberger. Biclique Cryptanalysis of the Full AES (англ.) // Advances in Cryptology – ASIACRYPT 2011 / Dong Hoon Lee, Xiaoyun Wang. — Berlin, Heidelberg: Springer, 2011. — P. 344–371. — ISBN 978-3-642-25385-0. — doi:10.1007/978-3-642-25385-0_19. Архивировано 20 августа 2020 года.

Литература

править