0Pricing
Cryptology Academy · Урок

Атака «встреча посередине» и компромиссы времени и памяти

Атакуйте двойной DES с помощью MITM и изучите таблицы Хеллмана

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

Атака «встреча посередине» (MITM)

Атаки MITM разделяют шифр на две половины и атакуют их независимо. Атакующий строит таблицу с одного конца, затем ищет с другого конца совпадение. Сложность атаки снижается с O(2^{2n}) до O(2^n) ценой использования O(2^n) памяти.

Взлом двойного DES

Двойной DES применяет DES дважды: C = DES_{K2}(DES_{K1}(P)). Пространство ключей: 2^{112}. Атака MITM: для всех 2^{56} значений K1 вычислите DES_{K1}(P) и сохраните результат. Для всех 2^{56} значений K2 вычислите DES_{K2}^{-1}(C) и выполните поиск в таблице. Совпадение → кандидат (K1, K2). Всего требуется только 2^{57} операций.

Алгоритм MITM

Шаг 1: зашифруйте открытый текст P со всеми возможными K1 → таблица T[DES_{K1}(P)] = K1. Шаг 2: для каждого K2 расшифруйте шифротекст C: v = DES^{-1}_{K2}(C). Проверьте, принадлежит ли v множеству T. Если существует T[v] = K1, проверьте пару (K1, K2) на второй паре «открытый текст—шифротекст». Ожидается 1–2 ложных совпадения; отбросьте их.

Устойчивость тройного DES

Тройной DES (3DES) использует три ключа K1,K2,K3: C = DES_{K3}(DES^{-1}_{K2}(DES_{K1}(P))). MITM по-прежнему применима, но менее эффективно: двухключевой 3DES (K3=K1) сводится к 2^{112} операциям. Для трёхключевого 3DES существует атака MITM с 2^{112} операциями, поэтому 3DES обеспечивает лишь около 112 бит эффективной безопасности, несмотря на 168-битный ключ.

Компромисс времени и памяти Хеллмана

Hellman (1980): заранее вычислите таблицу цепочек (start_point, end_point), чтобы ускорить автономный поиск ключа. Получив целевой хеш или шифротекст, найдите в таблице Хеллмана цепочку, содержащую его. Компромисс: P = N (время × память = постоянная величина пространства). Это основа радужных таблиц.

Радужные таблицы

Радужные таблицы (Oechslin, 2003) улучшают таблицы Хеллмана, используя разные функции сокращения на каждой позиции цепочки и устраняя ложные срабатывания (объединённые цепочки). Они эффективны для взлома несолёных хешей паролей. Поиск занимает O(table_size/chain_length) времени.

Защита от радужных таблиц с помощью соли

Соль — это случайное значение, добавляемое перед паролем до хеширования: H(salt||password). Разные соли дают разные хеши для одного и того же пароля — радужная таблица для "password" бесполезна, если использовалась другая соль. Соли необходимо хранить вместе с хешем.

MITM в расписании ключей AES

Атаки MITM на AES-128 (10 раундов): известные атаки разделяют шифрование на раунде 5 — выполняют 5 раундов шифрования вперёд и 5 раундов расшифрования назад, встречаясь посередине. Лучшая известная атака — атака на основе биклик снижает сложность с 2^{128} до 2^{126.1}; это непрактично, но показывает, что у AES нет запаса безопасности против подходов типа MITM.

MITM для нахождения прообраза хеша

Для хешей Меркла—Дамгарда MITM в некоторых конструкциях может находить прообразы быстрее полного перебора. Атака: постройте таблицу из блоков сообщения, начиная с IV; выполняйте поиск в обратном направлении от целевого хеша. Против SHA-256 с полным числом раундов сложность всё ещё составляет около 2^{255}, то есть улучшения по сравнению с полным перебором нет.

Атака рассечения

Атака рассечения обобщает MITM на разбиение на r частей. При разбиении шифра на 3 части зашифруйте вперёд 1/3 раундов, встретьтесь посередине цепочки, затем расшифруйте назад 1/3 раундов. Требуются O(2^{n*2/3}) времени и O(2^{n/3}) памяти — это более сбалансированный компромисс.

Вывод ключа предотвращает MITM

В протоколах атаки MITM можно предотвратить следующими способами: использовать длинные ключи, полученные с помощью KDF из паролей с высокой энтропией (это уменьшает пространство ключей, которое можно перебрать), использовать аппаратные токены (FIDO2), в которых ключ никогда не покидает устройство, или применять аутентификацию с открытым ключом (нет общего секрета для перебора).

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

Какова эффективная безопасность двойного DES (2x DES, объединённый ключ длиной 112 бит) против атаки MITM?

Повторение

Атаки MITM разделяют шифры на половины, снижая время с 2^{2n} до 2^n при использовании 2^n памяти. Они взламывают двойной DES; 3DES смягчает эту проблему, но имеет 112 бит эффективной безопасности. Радужные таблицы используют логику MITM для взлома паролей — защита достигается добавлением соли. Далее: атаки по времени и атаки по побочным каналам.

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

Урок «Атака «встреча посередине» и компромиссы времени и памяти» бесплатный?

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

Чему я научусь в уроке «Атака «встреча посередине» и компромиссы времени и памяти»?

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

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

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

Сколько времени занимает урок «Атака «встреча посередине» и компромиссы времени и памяти»?

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

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

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

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

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