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

Материал из testwiki
Перейти к навигации Перейти к поиску

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

Описание

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

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

Алгоритм атаки на основе подобранного ключа на «черный ящик», помимо стандартных операций, в любой момент вычислений может потребовать:

  • зашифровать Ekl(m) или расшифровать Ekl1(m), используя секретный ключ k и подобранные сообщение m и вектор инверсии l,
  • использовать «черный ящик» для вычисления Eh(m) или Eh1(m) с помощью ключа h (не являющегося функцией k), подобрав сообщение m.

Также, у алгоритма может иметься доступ к генератору случайных битов. В конце вычислений выводится предполагаемый ключ k.Шаблон:Sfn

Таким образом, если пользователь использует секретный ключ k и открытую криптосистему E (криптосистема с открытым ключом), то в любой момент криптоаналитик может выбрать сообщение m и вектор инверсии l и выполнить шифрование Ekl или расшифрование Ekl1. Основным применением атаки на основе подобранного ключа является верификация систем, но при определённых обстоятельствах эта атака может быть применена на практике. Если поточный шифр используется для передачи сессионного ключа k от пользователя A к пользователю B, и криптоаналитик получает контроль над линией передачи, то он может изменить любые биты ключа на своё усмотрение, и B получит изменённый ключ kl вместо k. Затем, когда B начнет передачу с неверным ключом, A получит искаженное сообщение и начнет процедуру восстановления. Тем временем, криптоаналитик получит зашифрованный ключом kl текст. (Хорошая криптозащита может отражать такие атаки, используя новые независимые сессионные ключи или добавляя нелинейные биты детектирования ошибок в сессионный ключ всякий раз, когда процедура восстановления необходима. Однако, история показывает, что хорошая криптозащита не всегда следует этому и желательно иметь систему, которая не падает под такой атакой)[1].

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

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

Шаблон:Начало цитаты Теорема. Пусть E — блочный шифр с n-битным ключом. Предположим, что криптоаналитик может выполнить 2p инверсий и имеет 2p слов памяти. Тогда он сможет взломать шифр E за 2np дополнительных шага[2]. Шаблон:Конец цитаты

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

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

Ek(m),Ek(0001)(m),,Ekj(m),,Ek(000111)(m),

где k секретный ключ пользователя и m любое подходящее сообщение. Он создает хеш-таблицу из 2p значений (Ekj,j)[2].

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

E(000)(m),E(0010)(m),,E(11100)(m).

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

Если изначальный ключ k взламывается через (a,b), где b состоит из последних p бит, тогда запись (Ekb,b) будет соответствовать результату через ath шифрований во второй стадии. Когда же соответствие будет найдено, (a,b) будет кандидатом в ключи. Возможно несколько ложных тревог, если несколько ключей подходят к сообщению m, но, как в атаке на основе подобранного текста, один или два дополнительных блока известного открытого текста почти наверняка исключают их, незначительно влияя на время работы[2].

Шаблон:Начало цитаты Вывод: Используя неограниченное количество атак на основе подобранного ключа, любой блочный шифр с n-битным ключом может быть взломан с использованием не более O(2n/2) вычислений в памяти[2]. Шаблон:Конец цитаты

Доказательство: Выберем p=n/2.

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

Уязвимость блочного кода для атаки на основе подобранного ключа

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

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

Fk(m)=Ek(m), если первый бит k равен 0
Fk(m)=Ek(m)k в остальных случаях, где k результат инверсии первого бита k, например, k=k(1,0,,0).
F легитимный блочный шифр:
Fk1(m)=Ek1(m), если первый бит ключа k равен 0
Fk1(m)=Ek1(mk), в остальных случаях

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

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

Fk(m)Fk(m)=Ek(m)(Ek(m)k)=k

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

Fk(m)Fk(m)=(Ek(m)k)(Ek(m)=k[1].

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

Примеры атак

Атака на LOKI89

В шифре LOKI89 каждый выбор двух подключей, один из чётного цикла и один из нечётного, имеет соответствующий 64-битный ключ. Так как все алгоритмы получения двух подключей из предыдущих двух одинаковы, местоположение циклов, в которых находятся два текущих подключа не влияет на вывод следующих подключей. Если мы зафиксируем два подключа K2 и K3 ключа K и определим второй ключ K* выбравK1*=K2 и K2*=K3, то значения подключей Ki* ключа K* будут такими же, как и следующие подключи K(i+1) ключа K. В таком случае, K*=(K2,K3)=(KR,ROL12(KL)). Данное соотношение сохраняется для любых двух ключей, выбранных таким образом: если информация перед вторым циклом шифрования ключом K совпадают с информацие перед первым шифрованием ключом K*, то информация и входные данные функции F одинаковы в обоих операциях, сдвинутых на один цикл. В таком случае, если открытый текст P шифруется ключом K, то шифротекст перед вторым циклом будет равняться (PRKR,PLKLF(PRKR,KL)). Полученные данные совпадают с теми, которые будут найдены перед первым циклом шифрования с ключом K*, значение которого будет P*K*=(PR*KL,PR*ROL12(KL)), и, таким образом, в данной пареP*=(PR,PLKLROL12(KL)F(PRKR,KL))Можно заметить, что правая часть выражения P совпадает с левой частью выражения P*, и отношение двух других частей зависит от ключа. В такой паре существует похожее соотношение между шифротекстами:C*=(CRKLROL12(KL)F(CLKR,KL),CL).Графики описывают соотношения между подключами двух ключей и соотношения между значениями в процессе шифрования.

СХЕМЫ

Атака на основе подобранного ключа и подобранного открытого текста, опирающаяся на данные свойства, выбирает 32-битное значение PR, 216 открытых текстов P0,...,P65535, правые части которых равны PR, и чьи 32-битные левые половины выбраны случайно, и 216 открытых текстов P0*,...,P65535*, чьи левые части равны PR, а правые выбраны случайным образом. Два неизвестных связанных ключа используются для шифрования данных открытых текстов на исследуемой системе: ключ K используется для шифрования первых 216 открытых текстов, и ключ K*=(KR,ROL12(KL)) используется для шифрования оставшихся 216 открытых текстов. Для каждой пары открытых текстов Pi и Pj* гарантировано, что PjL*=PiR, и с высокой вероятностью существуют два открытых текста такие, что PjR*=PiLKLROL12(KL)F(PiRKR,KL). Для такой пары данные остаются такими же, если оба выполнения сдвинуть на один цикл. Такую пару легко подобрать, если она существует, проверив равенство CR*=CL. Вероятность пройти данный тест случайным образом составляет 232, следовательно только несколько пар смогут пройти его.

Пары, обладающие такими свойствами открытого текста и шифротекста, удовлетворяют требованиям на ключ (1) и (2). Таким образом, для данной пары выполняется соотношение F(PRKR,KL)F(CLKR,KL)=PR*PLCL*CR , в котором единственным неизвестным является значение KLKR. Из всех 232 возможных вариантов значений KLKR только несколько удовлетворяют уравнению. Пользуясь дифференциальным криптоанализом и техникой оптимизации, нахождение значения KLKR может быть выполнено за несколько операций. После того, как было найдено значение KLKR, легко вычислить KLROL12(KL) используя формулы (1) и (2), чтобы получить K и K*.

Похожая атака на основе подобранного ключа и известного открытого текста использует 232 известных открытых текстов Pi, зашифрованных неизвестным ключом K, и 232 открытых текстов Pj*, зашифрованных связанным ключом K*=(KR,ROL12(KL)). Пару, обладающую данными свойствами, легко определить по 32 общим битам открытого текста и 32 общим битам шифротекста. Данная пара может быть использована для поиска ключей таким же образом, как и в атаке на основе подобранного ключа и подобранного открытого текста.Шаблон:Sfn

Сравнение с другими типами атак

Согласно Брюсу Шнайеру, существует 7 основных способа криптоаналитического вскрытияШаблон:Sfn:

  1. Вскрытие с использованием только шифротекста.
  2. Вскрытие с использованием открытого текста.
  3. Вскрытие с использованием выбранного открытого текста.
  4. Адаптивное вскрытие с использованием открытого текста.
  5. Вскрытие с использованием выбранного шифротекста.
  6. Вскрытие с использованием выбранного ключа.
  7. Бандитский криптоанализ.

В случае атаки на основе шифротекста криптоаналитик имеет доступ только к зашифрованному тексту. Это наиболее трудный тип атаки, из-за малого объёма доступной информации.

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

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

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

Примечания

Шаблон:Примечания

Литература

Шаблон:Rq