Интерполяционная атака — в криптографии тип криптоаналитической атаки в блочных шифрах.

Для взлома блочных шифров существовало 2 вида атак: дифференциальный криптоанализ и линейный криптоанализ. Со временем были представлены некоторые блочные шифры, на примере которых была доказана их безопасность от дифференциальных и линейных атак. Такими шифрами являлись шифры: KN-Cipher[en] и SHARK. Тем не менее, в конце 90-х годов Томас Якобсен и Ларс Кнудсен показали, что эти шифры легко взломать, введя новую атаку под названием интерполяционная атака.

В этой атаке, алгебраическая функция используется для представления S-Box. Это может быть простое квадратичная функция, полином или рациональная функция над полем Галуа. Еe коэффициенты могут быть определены с помощью стандартных методов интерполяции Лагранжа, с использованием известных открытых текстов как точек данных. Кроме того, выбранные открытыe тексты могут быть использованы для упрощения уравнений и оптимизировать атаку. В простейшем варианте интерполяционная атака выражает зашифрованный текст в виде многочлена от текста. Если многочлен имеет относительно низкое число неизвестных коэффициентов, то с набором пар открытого текста / зашифрованного текста, полином может быть восстановлен. Зная полиномом восстановления, атакующий имеет представление о шифровании без точного знания секретного ключа. Интерполяционная атака невозможна, если использовать не непрерывную функцию [источник не указан 1438 дней].

Интерполяционная атака также может быть использована для восстановления секретного ключа.

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

Пусть итерация шифрования задаётся как

 

Где   — это открытый текст,   — секретный раундовый ключ,   — зашифрованный текст для   — раундовой итерации шифрования.

Рассмотрим 2-раундовый шифр. Пусть   — сообщение и  — зашифрованный текст, тогда на выходе из 1-го раунда получаем

 

А на выходе из 2-го раунда:

 
 

Зашифрованный текст в виде полинома открытого текста выходов

 

где   — ключ, зависящий от константы

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

Существование править

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

Временная сложность править

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

Интерполяционная атака Meet-In-The-Middle (метод согласования) править

Зачастую именно этот метод является эффективным. Как он работает?

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

Таким образом получается, что

 

и если оба многочлена   и   с небольшим количеством коэффициентов, то мы можем решить уравнение для неизвестных коэффициентов.

Временная сложность править

Предположим, что   может быть выражено через коэффициенты  , и   может быть выражено через коэффициенты  . Тогда нам нужно было бы   известных отличий   пар, чтобы решить уравнение, путём установки его в качестве матричного уравнения. Однако, это матричное уравнение разрешимо с точностью до умножения и сложения. Таким образом, чтобы убедиться, что мы получаем единственное и ненулевое решение, мы устанавливаем коэффициент, соответствующий высшей степени равным 1, и постоянный член равным нулю. Поэтому требуется   известных отличия пары   . Так временная сложность за эту атаку  . Подход Meet-In-The-Middle обычно имеет меньшее количество коэффициентов чем обычный метод. Это делает этот метод более эффективным, так как нам требуется меньшее количество пар  .

Ключ восстановления править

Мы можем также использовать интерполяционную атаку, чтобы восстановить секретный ключ  . Если убрать последний раунд   — раундового повторного шифра длиной блока  , выход шифра становится  . Получается шифр со сниженной сложностью шифрования. Идея состоит в том, чтобы сделать предположение на последнем   раундового ключа мы можем расшифровать один раунд, чтобы получить выход   приведённого шифра. Тогда, чтобы проверить предположение, нужно использовать интерполяционную атаку на сниженный шифр либо обычным способом, либо с помощью метода Meet-In-The-Middle.

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

 

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

Методом Meet-In-The-Middle мы выражаем выход   из раунда   в виде полинома открытого текста   и в виде полинома выхода пониженного шифра  . Пусть многочлены будут выражены через   и   коэффициенты, соответственно. Тогда с   известным различием пар   мы можем найти коэффициенты. Чтобы проверить догадку на последнем раунде ключа, проверяем с одной дополнительной парой   , если равенство

 

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

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

Временная сложность править

Когда имеется секретный ключ длины  , тогда существует   различных ключей. Вероятность того, что выбранный наугад ключ окажется правильным, составляет  . Следовательно, в среднем нужно сделать   предположений прежде, чем найдется правильный ключ. Т.о. обычный метод имеет временную сложность в среднем   и требует   известных различных пар  , а метод Meet-In-The-Middle имеет сложность   и требует   известных различных пар  .

Использование править

Атака Meet-in-the-Middle может быть использована в варианте для атаки S-блоков, которые используют обратную функцию, потому что с  -битной S-блоком,   в  . Блочный шифр SHARK использует SP-сеть с S-блоками  . Шифр устойчив к дифференциальному и линейному криптоанализу после небольшого количества раундов. Однако он был сломан в 1996 году Томасом Якобсен и Ларс Кнудсен, которые использовали интерполяционную атаку. Обозначим через SHARK  версию SHARK с размером блока   бит с помощью   параллельных  -битных S-блоков с количеством раундов  . Якобсен и Кнудсен обнаружили, что существуют интерполяционная атака на АКУЛА   (64-битный блок шифрования), используя около   выбранных открытых текстов и интерполяционная атака на АКУЛА   (128-битный блочный шифр), используя около   выбранных открытых текстов.

Также Томас Якобсен представил вероятностный вариант интерполяционной атаки с использованием алгоритма Мадху Судана для улучшения декодирования кодов Рида-Соломона. Эта атака может работать, даже если алгебраическое отношение между открытыми текстами и шифротекстами имеет лишь часть значений.

Примечания править

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

  • Thomas Jakobsen, Lars Knudsen. The Interpolation Attack on Block Ciphers. — Springer-Verlag, January 1997. — С. 28–40. — ISBN 3-540-63247-6.
  • E.Biham and A.Shamir. Differential Cryptanalysis of DES-like Cryptosystems. — 1991. — ISBN 3-89649-079-6.