0Pricing
Cryptology Academy · Урок

Основы дифференциального криптоанализа

Изучите распространение разностей на входе и выходе для атаки на шифры с сокращённым числом раундов

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

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

Дифференциальный криптоанализ (Бихам и Шамир, 1990) — это атака с выбранным открытым текстом, которая анализирует распространение различий в парах открытых текстов через шифр. Находя различия на входе, которые с высокой вероятностью порождают предсказуемые различия на выходе, атакующий статистически восстанавливает биты ключа.

Определение разности

Для шифров на основе XOR: разность ΔX = X XOR X'. Для шифров на основе сложения: разность ΔX = X - X' mod 2^n. Разности XOR используются чаще всего, поскольку XOR коммутирует с наложением ключа с помощью XOR: эффекты расписания ключа сокращаются в дифференциальных парах.

Дифференциальная пара

Дифференциальная пара (P, P') имеет разность на входе ΔP = P XOR P'. После шифрования получаем (C, C') с разностью на выходе ΔC = C XOR C'. Полезная дифференциальная характеристика — это ΔP → ΔC с высокой вероятностью p, то есть множество пар (P, P') с разностью ΔP порождает разность на выходе ΔC.

Таблица распределения разностей S-блока

DDT (таблица распределения разностей) подсчитывает для каждой разности на входе Δx и разности на выходе Δy количество входов x, удовлетворяющих условию S(x) XOR S(x XOR Δx) = Δy. Деление на 2^n даёт вероятность. У хорошего S-блока максимальное значение DDT равно 2 (вероятность 1/2^{n-1}), поэтому сильных дифференциальных характеристик нет.

Дифференциальный след через шифр

Для блочного шифра с r раундами найдите последовательность ΔP → ΔU1 → ΔU2 → ... → ΔU_{r-1}, в которой вероятность каждого перехода между раундами известна. Перемножьте вероятности раундов: общая вероятность p = p1 * p2 * ... * p_{r-1}. Для восстановления ключа последнего раунда атака использует 2/p пар.

Атака на последний раунд

При дифференциальной характеристике r-1 раундов с высокой вероятностью соберите N = 2/p пар открытых текстов. Для каждого кандидата на ключ последнего раунда K' расшифруйте оба шифртекста на один раунд, примените XOR к результатам и проверьте, совпадает ли разность с ΔU_{r-1}. Правильный K' совпадёт примерно N/2 раз, а неправильные ключи — примерно N/2^{bit_size} раз.

Проектирование S-блока AES

S-блок AES — это мультипликативная инверсия над GF(2^8), за которой следует аффинное преобразование. Максимум его DDT равен 4 из 256, поэтому дифференциальная вероятность для одного S-блока не превышает 4/256 = 1/64. В каждом раунде AES используются 4 S-блока, но проектирование по стратегии широкого следа гарантирует, что вероятность полных дифференциальных следов ниже 2^{-100}.

Стратегия широкого следа

Стратегия широкого следа Джоана Деймэна, использованная в AES/Rijndael: определить число ветвей B для MixColumns. Любой нетривиальный дифференциальный след через один раунд активирует не менее B S-блоков. 4 раунда × 4 S-блока на раунд гарантируют не менее 25 активных S-блоков → вероятность < 2^{-100}.

Усечённые дифференциальные характеристики

Усечённые дифференциальные характеристики задают только часть разности, например какие столбцы активны, но не точные значения разностей. Это позволяет атаковать больше раундов, когда полные дифференциальные характеристики слишком слабы. Такой подход используется против AES с уменьшенным числом раундов, SERPENT и других шифров SPN.

Невозможные дифференциальные характеристики

Невозможная дифференциальная характеристика — это пара (ΔP, ΔC), которая не может возникнуть ни при каком ключе. Любой ключ, который отображает наблюдаемую пару (P, P') с такой разностью, исключается. Собрав достаточно пар, можно исключить все неправильные ключи и оставить правильный.

Атака бумерангом

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

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

Каково назначение таблицы распределения разностей (DDT) в криптоанализе?

Итоги

Дифференциальный криптоанализ использует распространение разностей на входе→выходе с высокой вероятностью. AES противостоит ему благодаря оптимальному с точки зрения DDT S-блоку и стратегии широкого следа. Далее: линейный криптоанализ и таблицы аппроксимаций.

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

Урок «Основы дифференциального криптоанализа» бесплатный?

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

Чему я научусь в уроке «Основы дифференциального криптоанализа»?

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

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

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

Сколько времени занимает урок «Основы дифференциального криптоанализа»?

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

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

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

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

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