0Pricing
Cryptology Academy · Урок

Линейный криптоанализ и таблицы приближений

Постройте таблицы линейных приближений и статистически восстановите биты ключа

«Линейный криптоанализ и таблицы приближений» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Что такое линейный криптоанализ

Линейный криптоанализ (Мацуй, 1993) — это атака с известным открытым текстом, которая находит линейные аппроксимации (XOR определённых битов) шифра, выполняющиеся с вероятностью p ≠ 1/2. Используя множество пар открытый текст–шифртекст, можно по статистическому смещению раскрыть биты ключа.

Линейная аппроксимация

Линейная аппроксимация для S-блока: сумма выбранных битов входа XOR сумма выбранных битов выхода = 0 (mod 2) с вероятностью p. Она выражается так: P[a·x XOR b·y = 0] = 1/2 + ε, где a,b — битовые маски, а ε — смещение (желательно, чтобы |ε| >> 0).

Таблица линейных аппроксимаций (LAT)

LAT подсчитывает для каждой маски входа a и маски выхода b количество входов x, для которых (a·x) XOR (b·S(x)) = 0. Вычтите 2^{n-1}, чтобы получить смещение. У хорошего S-блока |max_bias| = 1 (вероятность 1/2 ± 1/2^{n/2}), то есть таблица максимально равномерна.

Лемма о накоплении

Для независимых линейных аппроксимаций через несколько раундов смещения перемножаются: ε_total = 2^{r-1} * ε_1 * ε_2 * ... * ε_r. Каждая аппроксимация раунда вдвое уменьшает эффективное смещение. После большого числа раундов общее смещение приближается к 0, поэтому для его обнаружения требуется экспоненциально больше пар.

Методика атаки

Чтобы атаковать шифр с r раундами, найдите линейный след ε через r-1 раундов. Соберите N = 1/ε^2 открытых текстов, известных атакующему. Для каждого кандидата на байт ключа последнего раунда k' частично расшифруйте последний раунд с помощью XOR и проверьте, выполняется ли линейная аппроксимация чаще N/2 раз. Правильный k' демонстрирует правильное смещение.

Атака Мацуй на DES

В 1993 году Мацуй атаковал DES с 16 раундами, используя линейную аппроксимацию 14 раундов со смещением 2^{-21.4}. Потребовалось 2^{43} известных открытых текстов. На первом этапе были восстановлены 26 битов ключа, а оставшиеся 30 — полным перебором. Это была первая практическая атака, оказавшаяся быстрее полного перебора всего ключевого пространства DES.

Стойкость AES

Максимальное значение LAT для S-блока AES: |ε| = 4/256 = 1/64. Стратегия широкого следа ограничивает число активных S-блоков в любом следе из 4 раундов значением ≥ 25. Общее смещение ≤ (1/64)^{25/2} ≈ 2^{-75}. Требуется 2^{150} известных открытых текстов, что практически невыполнимо.

Линейный и дифференциальный криптоанализ

Дифференциальный: пары известных или выбранных открытых текстов; использует разности на выходе. Линейный: известные открытые тексты; использует статистические линейные аппроксимации. На практике оба метода применяются как атаки с выбранным открытым текстом. Оба являются критериями проектирования: S-блоки должны противостоять обоим методам — иметь малый максимум DDT И малый максимум LAT.

Множественный линейный криптоанализ

Используйте несколько линейных аппроксимаций одновременно, чтобы уменьшить сложность по данным. Нюберг и Леандер расширили метод Мацуй: объединение M аппроксимаций сокращает объём данных в log(M) раз. Метод применяется к PRESENT, SIMON и другим лёгким шифрам.

Корреляционные атаки на потоковые шифры

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

Интегральные/квадратные атаки

Интегральный криптоанализ (Кнудсен—Вагнер): выберите набор открытых текстов, в котором некоторые байты принимают все 256 значений, а остальные остаются фиксированными. После нескольких раундов XOR всех выходов в определённых позициях равен 0, то есть они сбалансированы. Метод использует структуру AES и эффективно взламывает AES с уменьшенным числом раундов.

Быстрая проверка

Что утверждает лемма о накоплении при объединении линейных аппроксимаций?

Итоги

Линейный криптоанализ находит линейные аппроксимации S-блоков со смещением. AES противостоит ему благодаря оптимальному с точки зрения LAT S-блоку и стратегии широкого следа. Мацуй взломал DES с помощью следа из 14 раундов, используя 2^43 известных открытых текстов. Далее: атаки дней рождения и поиск коллизий.

Часто задаваемые вопросы

Урок «Линейный криптоанализ и таблицы приближений» бесплатный?

Да — полный текст урока «Линейный криптоанализ и таблицы приближений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Линейный криптоанализ и таблицы приближений»?

Постройте таблицы линейных приближений и статистически восстановите биты ключа Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Линейный криптоанализ и таблицы приближений»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы дифференциального криптоанализа
  2. Линейный криптоанализ и таблицы приближений
  3. Атаки дней рождения и коллизий
  4. Атака «встреча посередине» и компромиссы времени и памяти
← Назад к Cryptology Academy