Атака по полной двудольной графой является вариантом встречается в-середина методы (MITM) из криптоанализа . Он использует бикликовую структуру, чтобы увеличить количество раундов, которые могут быть атакованы MITM-атакой. Поскольку бикликовый криптоанализ основан на атаках MITM, он применим как к блочным шифрам, так и к (итерационным) хеш-функциям . Biclique-атаки известны тем, что взломали как полный AES [1], так и полную IDEA , [2], хотя и с небольшим преимуществом над грубой силой. Он также был применен к шифру KASUMI и устойчивости к прообразу Skein-512 иХеш-функции SHA-2 . [3]
Атака biclique по-прежнему (по состоянию на апрель 2019 года [Обновить]) самая известная атака с одним ключом на AES . Вычислительная сложность атаки составляет , а для AES128, AES192 и AES256 соответственно. Это единственная публично известная однокнопочная атака на AES, которая атакует полное количество раундов. [1] Предыдущие атаки атаковали варианты с уменьшенным количеством раундов (обычно варианты с уменьшенным числом раундов до 7 или 8).
Несмотря на вычислительную сложность атаки , это теоретическая атака, что означает, что безопасность AES не была нарушена, а использование AES остается относительно безопасным. Тем не менее, атака biclique представляет собой интересную атаку, предлагающую новый подход к выполнению криптоанализа блочных шифров. Атака также предоставила больше информации об AES, поскольку она поставила под сомнение запас безопасности в количестве используемых в ней раундов.
История [ править ]
Первоначальная атака MITM была впервые предложена Диффи и Хеллманом в 1977 году, когда они обсуждали криптоаналитические свойства DES. [4] Они утверждали, что размер ключа слишком мал и что многократное повторное применение DES с разными ключами может быть решением проблемы размера ключа; однако они посоветовали не использовать двойной DES и предложили как минимум тройной DES из-за атак MITM (атаки MITM могут быть легко применены к двойному DES, чтобы снизить безопасность с до минимума , поскольку можно независимо подобрать первый и второй второе DES-шифрование, если у них есть открытый и зашифрованный текст).
С тех пор, как Диффи и Хеллман предложили атаки MITM, появилось много вариантов, которые полезны в ситуациях, когда базовая атака MITM неприменима. Вариант бикликовой атаки был впервые предложен Дмитрием Ховратовичем , Рехбергером и Савельевой для использования в криптоанализе хеш-функций. [5]Однако именно Богданов, Ховратович и Рехбергер показали, как применить концепцию бикликов к настройке секретного ключа, включая криптоанализ блочного шифра, когда они опубликовали свою атаку на AES. До этого MITM-атакам на AES и многие другие блочные шифры уделялось мало внимания, в основном из-за необходимости в независимых битах ключа между двумя `` подшифрами MITM '', чтобы облегчить атаку MITM - чего трудно достичь со многими современные ключевые графики, такие как AES.
Биклика [ править ]
Общее объяснение того, что такое бикликовая структура, можно найти в статье для бикликов .
При атаке MITM ключевые биты и , принадлежащие первому и второму подшифру, должны быть независимыми; то есть они должны быть независимыми друг от друга, иначе согласованные промежуточные значения для открытого и зашифрованного текста не могут быть вычислены независимо в атаке MITM (существуют варианты атак MITM, где блоки могут иметь общие биты ключа. См. атака MITM из трех подмножеств ). Это свойство часто трудно использовать в большом количестве раундов из-за распространения атакованного шифра.
Проще говоря: чем больше раундов вы атакуете, тем больше у вас будет подшифров. Чем больше у вас есть подшифры, тем меньше независимых битов ключа между подшифрами вам придется перебирать независимо друг от друга. Конечно, фактическое количество независимых битов ключа в каждом субшифре зависит от свойств распространения расписания ключей.
Способ, которым biclique помогает справиться с вышеупомянутым, состоит в том, что он позволяет, например, атаковать 7 раундов AES, используя атаки MITM, а затем, используя biclique структуру длины 3 (то есть покрывает 3 раунда шифра), вы можете сопоставить промежуточное состояние в начале раунда 7 с концом последнего раунда, например, 10 (если это AES128), таким образом атакуя полное количество раундов шифра, даже если было невозможно атаковать это количество раундов с базовой атакой MITM.
Таким образом, значение biclique состоит в том, чтобы эффективно построить структуру, которая может отображать промежуточное значение в конце атаки MITM на зашифрованный текст в конце. В какой зашифрованный текст будет отображаться промежуточное состояние в конце, конечно, зависит от ключа, используемого для шифрования. Ключ, используемый для сопоставления состояния с зашифрованным текстом в биклике, основан на перебора битов ключей в первом и втором подшифрах атаки MITM.
Таким образом, сущность biclique-атак заключается, помимо MITM-атаки, в возможности эффективно строить biclique-структуру, которая зависит от ключевых битов и может отображать определенное промежуточное состояние в соответствующий зашифрованный текст.
Как построить биклику [ править ]
Грубая сила [ править ]
Получите промежуточные состояния и зашифрованные тексты, затем вычислите ключи, которые сопоставляются между ними. Это требует восстановления ключей, поскольку каждое промежуточное состояние должно быть связано со всеми зашифрованными текстами.
[ править ]
(Этот метод был предложен Богдановым, Ховратовичем и Рехбергером в их статье: Biclique Cryptanalysis of the Full AES [1] )
Предварительно:
помните, что функция biclique заключается в отображении промежуточных значений, в значения зашифрованного текста, на основе ключа таким образом, что:
Процедура:
Шаг первый: Промежуточное состояние ( ), зашифрованный текст ( ) и ключ ( ) выбираются таким образом, что:, где - функция, которая отображает промежуточное состояние в зашифрованный текст с использованием данного ключа. Это обозначается как базовое вычисление.
Шаг второй: выбираются два набора связанных ключей размера . Ключи подбираются так, чтобы:
- Первый набор ключей - это ключи, которые удовлетворяют следующим дифференциальным требованиям по отношению к базовому вычислению:
- Второй набор ключей - это ключи, которые удовлетворяют следующим дифференциальным требованиям по отношению к базовому вычислению:
- Ключи выбираются таким образом, чтобы следы дифференциалов - и -дифференциалов были независимыми, т. Е. Они не имели общих активных нелинейных компонентов.
Другими словами:
входная разница, равная 0, должна отображаться на выходную разницу в соответствии с ключевой разницей . Все различия относятся к базовому вычислению.
Входная разница должна отображаться на выходную разность 0 при ключевой разнице в . Все различия относятся к базовому вычислению.
Шаг три: Поскольку трассы не имеют общих нелинейных компонентов (например, S-боксы), следы могут быть объединены , чтобы получить: ,
что соответствует определениям обоих дифференциалов с шага 2.
Это тривиально , чтобы видеть , что кортеж из базового вычисления также соответствует по определению обоим дифференциалам, как и дифференциалы по отношению к базовому вычислению. Подставляя в любой из этих двух определений, даст так и .
Это означает, что кортеж базового вычисления также может быть объединен с помощью операции XOR с объединенными следами:
Шаг четвертый: тривиально увидеть, что:
если это подставить в приведенные выше комбинированные дифференциальные трассы, результат будет следующим:
что такое же, как определение, которое было ранее для биклики выше:
Таким образом, можно создать биклику размера ( поскольку все ключи из первого набора ключей могут быть объединены с ключами из второго набора ключей). Это означает, что биклику размера можно создать, используя только вычисления дифференциалов и более . Если для, то все ключи в биклике тоже будут разными.
Таким образом, biclique строится в основной атаке biclique на AES. Есть некоторые практические ограничения в построении бикликов с помощью этой техники. Чем длиннее биклика, тем больше кругов должна пройти дифференциальная трасса. Таким образом, диффузионные свойства шифра играют решающую роль в эффективности построения биклики.
Другие способы построения биклики [ править ]
Богданов, Ховратович и Рехбергер также описывают другой способ построения биклика, названный «Чередование дифференциальных следов связанных ключей» в статье «Бикликовый криптоанализ полного AES [1] ».
Процедура криптоанализа Biclique [ править ]
Шаг первый: злоумышленник группирует все возможные ключи в подмножества ключей определенного размера для некоторых , где ключ в группе индексируется как в матрице размера . Злоумышленник разбивает шифр на два субшифра и (так что ), как при обычной атаке MITM. Набор ключей для каждого субшифра имеет мощность и называется и . Комбинированный ключ субшифров выражается с помощью вышеупомянутой матрицы .
Шаг второй: злоумышленник строит биклик для каждой группы ключей. Биклика имеет размерность-d, поскольку она отображает внутренние состояния , в зашифрованные тексты , с помощью ключей. В разделе «Как построить биклику» рассказывается, как построить биклику, используя «Независимые дифференциалы связанных ключей». В этом случае биклика строится с использованием дифференциалов набора ключей и , принадлежащих субшифрам.
Шаг третий: Атакующий принимает возможные шифртексты, и спрашивает дешифрование-оракул , чтобы обеспечить совпадающие открытые тексты, .
Шаг четвертый: злоумышленник выбирает внутреннее состояние и соответствующий открытый текст, и выполняет обычную атаку MITM снова и снова , атакуя из внутреннего состояния и открытого текста.
Шаг пять: Всякий раз , когда ключ-кандидат обнаружил , что матчи с , что ключ проверяются на другой plain- / зашифрованной пару. если ключ проверяется на другой паре, весьма вероятно, что это правильный ключ.
Пример атаки [ править ]
Следующий пример основан на biclique-атаке на AES из статьи «Biclique Cryptanalysis of the Full AES [1] ».
В описаниях в примере используется та же терминология, что и авторы атаки (например, для имен переменных и т. Д.).
Для простоты ниже описана атака на вариант AES128.
Атака состоит из 7-раундовой атаки MITM с бикликом, охватывающим последние 3 раунда.
Разделение ключей [ править ]
Ключевое пространство разделено на группы ключей, каждая из которых состоит из ключей.
Для каждой из групп выбирается уникальный базовый ключ для базового вычисления.
Базовый ключ имеет два конкретных байта, установленных в ноль, как показано в таблице ниже (которая представляет ключ так же, как AES в матрице 4x4 для AES128):
Затем перечисляются оставшиеся 14 байтов (112 битов) ключа. Это дает уникальные базовые ключи; по одному для каждой группы ключей.
Затем обычные ключи в каждой группе выбираются в соответствии с их базовым ключом. Они выбраны так, что они почти идентичны базовому ключу. Они различаются только 2 байтами (либо 's, либо ' s) из следующих 4 байтов:
Это дает и , что комбинированный дает разные ключи, . эти ключи составляют ключи в группе для соответствующего базового ключа.
Бикликовая конструкция [ править ]
bicliques создается с использованием техники «Независимых дифференциалов связанных ключей», как описано в разделе «Как построить biclique».
Требование для использования этого метода заключалось в том, чтобы прямая и обратная дифференциальные трассы, которые необходимо объединить, не имели общих активных нелинейных элементов. Как известно, что это так?
Из-за того, как ключи на шаге 1 выбираются по отношению к базовому ключу, дифференциальные трейлы, использующие ключи, никогда не используют какие-либо активные S-блоки (что является единственным нелинейным компонентом в AES), а дифференциальные трейлы используют ключ . Следовательно, можно выполнить операцию XOR дифференциальных следов и создать биклику.
Атака MITM [ править ]
Когда биклики созданы, атака MITM почти может начаться. Перед выполнением MITM атаки, промежуточные значения из открытого текста: ,
то промежуточные значения из шифротекста: ,
и соответствующие промежуточные состояния и суб-ключи или , которые предварительно вычислены и сохранены, однако.
Теперь атака MITM может быть осуществлена. Чтобы проверить ключ , необходимо только пересчитать части шифра, которые, как известно, будут варьироваться от до . Для обратного вычисления от до это 4 S-блока, которые необходимо пересчитать. Для прямого вычисления от до это всего 3 (подробное объяснение объема необходимого перерасчета можно найти в статье «Biclique Cryptanalysis of the full AES [1] », откуда взят этот пример).
Когда промежуточные значения совпадают, будет найден ключ-кандидат между и . Затем кандидат-ключ проверяется на другой паре открытый / зашифрованный текст.
Результаты [ править ]
Эта атака снижает вычислительную сложность AES128 до , что в 3-5 раз быстрее, чем метод грубой силы. Сложность данных атаки равна, а сложность памяти - .
Ссылки [ править ]
- ^ a b c d e f Богданов Андрей; Ховратович, Дмитрий; Рехбергер, Кристиан. «Бикликовый криптоанализ полного AES» (PDF) . Архивировано из оригинального (PDF) 08.06.2012. Cite journal requires
|journal=
(help) - ^ "Narrow-Bicliques: криптоанализ полной идеи". CiteSeerX 10.1.1.352.9346 . Cite journal requires
|journal=
(help) - ^ Bicliques для Прообразы: Атаки на мотка-512 и семейства SHA-2
- ^ Диффи, Уитфилд; Хеллман, Мартин Э. «Исчерпывающий криптоанализ стандарта шифрования данных NBS» (PDF) . Cite journal requires
|journal=
(help) - ^ Ховратович Дмитрий; Рехбергер, Кристиан; Савельева Александра. «Bicliques для прообразов: атаки на Skein-512 и семейство SHA-2» (PDF) . Cite journal requires
|journal=
(help)