Это не официальный сайт wikipedia.org 01.01.2023

Атака по полному двудольному графу — Википедия

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

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

ИсторияПравить

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

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

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

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

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

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

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

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

Необходимо помнить, что основная функция полного двудольного графа состоит в том, чтобы строить связи между состояниями S   и шфиротекстами C  , используя ключи K [ i , j ]  : Построение:
Первый шаг: Выбираем состояние( S 0  ), шифротекст( C 0  ) и ключ( K [ 0 , 0 ]  ) так, что: S 0 f K [ 0 , 0 ] C o  , где f   — это функция, которая отображает состояние в шифротекст, использую данный ключ.

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

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

Третий шаг: Заметим, что
0 f Δ i K Δ i j f j K 0 = j f Δ i K j K Δ i  ,
Также легко заметить, что кортеж ( S 0 , C 0 , K [ 0 , 0 ] )  ,так же удовлетворяем обоим дифференциалам. Подставляя S 0 , C 0   K [ 0 , 0 ]   в любое из определений, получим 0 f 0 0  , где Δ 0 = 0 , 0 = 0   и Δ 0 K = 0  .
Это означает, что к кортежу, полученному из базовых вычислений, также можно применять операцию XOR : S 0 j f K [ 0 , 0 ] Δ i K j K C 0 Δ i  

Четвертый шаг: Легко заметить, что:
S j = S 0 j  
K [ i , j ] = K [ 0 , 0 ] Δ i K j K  
C i = C 0 Δ i  
Таким образом, имеем:
S j f K [ i , j ] C i  
Что совпадает с определением функции полного двудольного графа, показанной выше:
i , j : S j f K [ i , j ] C i  

Таким образом, можно создать полный двудольный граф размера 2 2 d  ( 2 2 d  , так как 2 d   ключей первого множества необходимо соединить с 2 d   ключами второго множества). Это означает, что граф размером 2 2 d   можно построить, используя 2 2 d   вычислений дифференциалов Δ i   и j   и функции f  . Если Δ i j   для i + j > 0   , тогда все ключи K [ i , j ]   будут различными во всем графе.

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

1. Криптоаналитик собирает все возможные ключи в подмножества ключей размером 2 2 d  , где d   некоторое число. Ключ в группе обозначается как K [ i , j ]   в матрице размера 2 d × 2 d  . Далее криптоаналитик разделят шифр на два шифра подстановки, f   и g   (такие, что E = f g  ), так же, как и в атаке посредника. Множества ключей для каждого шифра подстановки имеют мощности 2 d  , и обозначаются K [ i , 0 ]   и K [ 0 , j ]  . Объединение ключей обоих шифров подстановки выражается через вышеупомянутую матрицу K [ i , j ]  .

2. Криптоаналитик строит полный двудольный граф для каждой группы 2 2 d   ключей. Граф имеет размерность d  , так как он сопоставляет 2 d   внутренних состояний, S j  , с 2 d   шифротекстами, C i  , используя 2 2 d   ключей. В данном случае полный двудольный граф строится на основе отличий двух множеств ключей, K [ i , 0 ]   и K [ 0 , j ]  .

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

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

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

Пример атакиПравить

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

Разделение ключейПравить

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

[ 0 0 ]  

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

[ i i j j ]  

Таким образом, получается 2 8 K [ i , 0 ]   и 2 8 K [ 0 , j ]  , что в сумме даёт 2 16   различных ключей, K [ i , j ]  .

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

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

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

Как только граф построен, можно начинать атаку посредника. До начала атаки 2 d   состояний из открытого текста:
P i K [ i , 0 ] v i  ,
2 d   состояний из шифротекста:
v j K [ 0 , j ] S j  ,
и соответствующие состояния и множества ключей K [ i , 0 ]   или K [ 0 , j ]   уже посчитаны.

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

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

РезультатыПравить

Эта атака позволяет уменьшить сложность вычислений для взлома AES128 до 2 126.18  , что в свою очередь в 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 на Wayback Machine
  4. Whitfield Diffie, Martin E. Hellman. Exhaustive Cryptanalysis of the NBS Data Encryption Standard. Архивная копия от 3 марта 2016 на Wayback Machine
  5. Dmitry Khovratovich, Christian Rechberger, Alexandra Savelieva. Bicliques for Preimages: Attacks on Skein-512 and the SHA-2 family. Архивная копия от 22 июля 2016 на Wayback Machine
  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 года.

ЛитератураПравить