Интерполяционная атака
В криптографии интерполяционная атака — это тип криптоаналитической атаки на блочные шифры .
После того, как две атаки, дифференциальный криптоанализ и линейный криптоанализ , были представлены на блочных шифрах, были введены некоторые новые блочные шифры , которые доказали свою безопасность против дифференциальных и линейных атак. Среди них было несколько итерированных блочных шифров, таких как KN-Cipher и шифр SHARK . Однако в конце 1990-х годов Томас Якобсен и Ларс Кнудсен показали, что эти шифры легко взломать, представив новую атаку, названную интерполяционной атакой.
В атаке для представления S-блока используется алгебраическая функция . Это может быть простая квадратичная функция , полином или рациональная функция над полем Галуа . Его коэффициенты могут быть определены стандартными методами интерполяции Лагранжа , используя известные открытые тексты в качестве точек данных. Альтернативно, выбранные открытые тексты могут использоваться для упрощения уравнений и оптимизации атаки.
В своей простейшей версии интерполяционная атака выражает зашифрованный текст как полином открытого текста. Если полином имеет относительно небольшое количество неизвестных коэффициентов, то с помощью набора пар открытый текст/зашифрованный текст (p/c) полином можно восстановить. После восстановления полинома злоумышленник получает представление о шифровании, не зная точного секретного ключа.
Интерполяционную атаку также можно использовать для восстановления секретного ключа.
Проще всего описать метод на примере.
Пример [ править ]
Пусть итерационный шифр задается формулой
где это открытый текст, вывод круглый, секрет круглый ключ (полученный из секретного ключа по некоторому ключевому расписанию ), и для -раундовый итеративный шифр, это зашифрованный текст.
Рассмотрим двухраундовый шифр. Позволять обозначают сообщение и обозначают зашифрованный текст.
Тогда результат раунда 1 станет
и результат второго раунда станет
Выражение зашифрованного текста как полинома от открытого текста дает
где являются константами, зависящими от ключа.
Использование такого количества пар открытого текста/зашифрованного текста, сколько неизвестных коэффициентов в полиноме. , то мы можем построить полином. Это можно, например, сделать с помощью интерполяции Лагранжа (см. Полином Лагранжа ). Когда неизвестные коэффициенты определены, мы имеем представление шифрования, без знания секретного ключа .
Существование [ править ]
Учитывая -битный блочный шифр, то есть возможные открытые тексты и, следовательно, отчетливый пары. Пусть будет неизвестные коэффициенты в . Поскольку нам нужно как можно больше пар как количество неизвестных коэффициентов в полиноме, то интерполяционная атака существует только в том случае, если .
Временная сложность [ править ]
Предположим, что время построения полинома с использованием пары малы по сравнению со временем, необходимым для шифрования требуемых открытых текстов. Пусть будет неизвестные коэффициенты в . Тогда временная сложность этой атаки равна , требующий известный отдельный пары.
Интерполяционная атака Meet-In-The-Middle [ править ]
Часто этот метод более эффективен. Вот как это делается.
Учитывая круглый итерационный шифр с длиной блока , позволять быть результатом шифрования после раунды с .Мы выразим стоимость как многочлен открытого текста , и как многочлен зашифрованного текста . Позволять быть выражением с помощью , и пусть быть выражением с помощью . Полином получается путем прямого вычисления с использованием повторяющейся формулы шифра до округления , и полином получается путем вычисления в обратном направлении по повторяемой формуле шифра, начиная с раунда до раунда .
Так что это должно поддерживаться
и если оба и являются полиномами с небольшим количеством коэффициентов, то мы можем решить уравнение для неизвестных коэффициентов.
Временная сложность [ править ]
Предположим, что может быть выражено коэффициенты и может быть выражено коэффициенты. Тогда нам понадобится известный отдельный пары, чтобы решить уравнение, представив его в виде матричного уравнения. Однако это матричное уравнение разрешимо с точностью до умножения и сложения. Поэтому, чтобы убедиться, что мы получили единственное и ненулевое решение, мы устанавливаем коэффициент, соответствующий высшей степени, равным единице, а постоянный член - нулю. Поэтому, известный отдельный нужны пары. Таким образом, временная сложность этой атаки равна , требующий известный отдельный пары.
При использовании подхода «Встреча посередине» общее количество коэффициентов обычно меньше, чем при использовании обычного метода. Это делает метод более эффективным, поскольку меньше нужны пары.
Восстановление ключей [ править ]
Мы также можем использовать атаку интерполяции для восстановления секретного ключа. .
Если мы удалим последний раунд -круглый итерационный шифр с длиной блока , результат шифрования становится . Назовем этот шифр сокращенным шифром. Идея состоит в том, чтобы угадать ключ последнего раунда. , так что мы можем расшифровать один раунд и получить выходные данные сокращенного шифра. Затем для проверки предположения мы используем интерполяционную атаку на сокращенный шифр либо обычным методом, либо методом «Встреча посередине». Вот как это делается.
Обычным методом выражаем вывод сокращенного шифра как полинома открытого текста . Вызов полинома . Тогда, если мы сможем выразить с коэффициенты, затем используя известный отдельный пары, мы можем построить полином. Чтобы проверить угадывание ключа последнего раунда, проверьте еще один пара, если это так
Если да, то с большой вероятностью угадывание ключа последнего раунда было правильным. Если нет, то еще раз угадайте ключ.
Методом «Встреча посередине» мы выражаем вывод из раунда как многочлен открытого текста и как полином от результата сокращенного шифра . Вызов полиномов и , и пусть они выражаются через и коэффициенты соответственно. Затем с известный отдельный пары, мы можем найти коэффициенты. Чтобы проверить угадывание ключа последнего раунда, проверьте еще один пара, если это так
Если да, то с большой вероятностью угадывание ключа последнего раунда было правильным. Если нет, то еще раз угадайте ключ.
Как только мы нашли правильный ключ последнего раунда, мы можем продолжить аналогичным образом с оставшимися ключами раунда.
Временная сложность [ править ]
С секретным круглым ключом длиной , то есть разные ключи. Каждый с вероятностью быть правильным, если выбрано случайно. Поэтому нам в среднем придется сделать догадывается, прежде чем найти правильный ключ.
Следовательно, нормальный метод имеет среднюю временную сложность. , требующий известный отдельный пары, а метод «Встреча посередине» имеет среднюю временную сложность. , требующий известный отдельный пары.
Приложение из реального мира [ править ]
Атака «Встреча посередине» может использоваться в варианте атаки на S-блоки, в котором используется обратная функция, поскольку при -бит S-box тогда в .
Блочный шифр SHARK использует SP-сеть с S-box. . Шифр устойчив к дифференциальному и линейному криптоанализу после небольшое количество раундов. Однако в 1996 году он был взломан Томасом Якобсеном и Ларсом Кнудсеном с помощью интерполяционной атаки. Обозначим через АКУЛУ версия SHARK с размером блока биты с использованием параллельный -битные S-блоки в раунды. Якобсен и Кнудсен обнаружили, что существует интерполяционная атака на SHARK. (64-битный блочный шифр), используя около выбранные открытые тексты и интерполяционная атака на SHARK (128-битный блочный шифр), используя около выбранные открытые тексты.
Также Томас Якобсен представил вероятностную версию интерполяционной атаки с использованием Мадху Судана алгоритма для улучшенного декодирования кодов Рида-Соломона . Эта атака может сработать, даже если алгебраическая связь между открытым текстом и зашифрованным текстом сохраняется только для части значений.
Ссылки [ править ]
- Томас Якобсен , Ларс Кнудсен (январь 1997 г.). Интерполяционная атака на блочные шифры ( PDF / PostScript ) . 4-й международный семинар по быстрому программному шифрованию (FSE '97), LNCS 1267. Хайфа : Springer-Verlag . стр. 28–40 . Проверено 3 июля 2007 г.
- Томас Якобсен (25 августа 1998 г.). Криптоанализ блочных шифров с вероятностными нелинейными отношениями низкой степени (PDF/PostScript) . Достижения криптологии — КРИПТО '98. Санта-Барбара, Калифорния : Springer-Verlag. стр. 212–222 . Проверено 6 июля 2007 г. ( Видео презентации в Google Video — используется Flash )
- Шихо Мориай; Такеши Симояма; Тосинобу Канеко (март 1999 г.). Интерполяционные атаки блочного шифра: SNAKE (PDF) . ФСЕ '99. Рим: Springer-Verlag. стр. 275–289. дои : 10.1007/3-540-48519-8_20 . Проверено 6 ноября 2022 г.
- Амр М. Юсеф; Гуан Гун (апрель 2000 г.). Об интерполяционных атаках на блочные шифры (PDF) . FSE 2000. Нью-Йорк : Springer-Verlag. стр. 109–120 . Проверено 6 июля 2007 г.
- Каору Куросава; Тецу Ивата; Вьет Дуонг Куанг (август 2000 г.). Интерполяционная атака с поиском корня (PDF/PostScript) . Материалы 7-го ежегодного международного семинара по избранным областям криптографии (SAC 2000). Ватерлоо, Онтарио : Springer-Verlag. стр. 303–314 . Проверено 6 июля 2007 г.