Атака на основе подобранного ключа

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

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

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

Алгоритм атаки на основе подобранного ключа на «черный ящик», помимо стандартных операций, в любой момент вычислений может потребовать:
 зашифровать  или расшифровать , используя секретный ключ  и подобранные сообщение  и вектор инверсии ,
 использовать «черный ящик» для вычисления  или  с помощью ключа  (не являющегося функцией ), подобрав сообщение .
Также, у алгоритма может иметься доступ к генератору случайных битов. В конце вычислений выводится предполагаемый ключ .

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

Основной вид атаки на основе подобранного ключа 
В этой части рассмотрим атаку, которая не зависит от конкретной слабости в функции шифровании. Она является атакой «человек посередине» (MITM). Данный вид атаки позволяет сократить время работы расширенного поиска в зависимости от количества разрешённых инверсий ключа.

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

Доказательство:

Аналитик заменяет последние  бит в ключе всеми возможными  способами. Например, он зашифровывает значения

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

Затем он совершает  шифрований, меняя первые  бит ключа и обнуляя последние  бит:

 .

После всех вычислений, каждое значение проверяется на соответствие в хеш-таблице.

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

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

Доказательство: Выберем .

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

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

Пусть  — секретный блочный шифр с размером ключа  бит. Определим новый блочный шифр .

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

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

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

 

В остальных случаях,

 .

Таким образом, аналитик сразу получает все биты ключа , кроме первого, и может завершить операцию, так как ему известен открытый текст.

Примеры атак

Атака на LOKI89 
В шифре LOKI89 каждый выбор двух подключей, один из чётного цикла и один из нечётного, имеет соответствующий 64-битный ключ. Так как все алгоритмы получения двух подключей из предыдущих двух одинаковы, местоположение циклов, в которых находятся два текущих подключа не влияет на вывод следующих подключей. Если мы зафиксируем два подключа  и  ключа  и определим второй ключ  выбрав и , то значения подключей  ключа  будут такими же, как и следующие подключи  ключа . В таком случае, . Данное соотношение сохраняется для любых двух ключей, выбранных таким образом: если информация перед вторым циклом шифрования ключом  совпадают с информацие перед первым шифрованием ключом , то информация и входные данные функции  одинаковы в обоих операциях, сдвинутых на один цикл. В таком случае, если открытый текст  шифруется ключом , то шифротекст перед вторым циклом будет равняться . Полученные данные совпадают с теми, которые будут найдены перед первым циклом шифрования с ключом , значение которого будет , и, таким образом, в данной пареМожно заметить, что правая часть выражения  совпадает с левой частью выражения , и отношение двух других частей зависит от ключа. В такой паре существует похожее соотношение между шифротекстами:Графики описывают соотношения между подключами двух ключей и соотношения между значениями в процессе шифрования.

СХЕМЫ

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

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

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

Сравнение с другими типами атак 
Согласно Брюсу Шнайеру, существует 7 основных способа криптоаналитического вскрытия:
 Вскрытие с использованием только шифротекста.
 Вскрытие с использованием открытого текста.
 Вскрытие с использованием выбранного открытого текста.
 Адаптивное вскрытие с использованием открытого текста.
 Вскрытие с использованием выбранного шифротекста.
 Вскрытие с использованием выбранного ключа.
 Бандитский криптоанализ.
В случае атаки на основе шифротекста криптоаналитик имеет доступ только к зашифрованному тексту. Это наиболее трудный тип атаки, из-за малого объёма доступной информации.

При атаке на основе известного открытого текста криптоаналитику известны открытый и зашифрованный тексты. Данный тип атаки результативнее, чем атака на основе шифротекста за счет большего количества известной информации о криптосистеме.

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

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

Примечания

Литература 
 
 
 

Криптографические атаки