Cryptology Academy · Урок

Почему одного XOR недостаточно для безопасности

Изучите атаки с повторным использованием ключа и подбором фрагментов против слабого шифрования XOR

Урок 3 из 413 шагов

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

Добро пожаловать

В этом уроке Вы выйдете за рамки теории и рассмотрите конкретные атаки на шифрование XOR: повторное использование ключа, атаку с известным открытым текстом и подбор фрагмента.

Сценарий повторного использования слабого ключа

Представьте веб-приложение, которое шифрует маркеры сеанса одним и тем же ключом XOR. Атакующий перехватывает два зашифрованных маркера. При выполнении XOR ключ сокращается: C1^C2 = P1^P2.

Атака с известным открытым текстом

Если P1 известен: K = P1 XOR C1. Теперь можно расшифровать любой другой шифротекст, зашифрованный тем же K: Pi = Ci XOR K. Одного известного открытого текста достаточно, чтобы взломать всю систему.

Подбор фрагмента, шаг 1

Если P1 неизвестен, угадайте распространённую английскую фразу — зацепку, например «это ». Выполняйте XOR зацепки с P1^P2 в каждой позиции. Если в P2 появляется читаемый текст, значит, зацепка находится в этой позиции.

Подбор фрагмента, шаг 2

Используя обнаруженный текст P2 как новую, более длинную зацепку, продолжайте перемещаться по потоку XOR. Каждое найденное слово помогает обнаружить следующее. Полные сообщения часто удаётся восстановить за несколько минут.

Статистическое восстановление ключа

Для множества шифротекстов, использующих один и тот же ключ: позиция, в которой результат XOR равен 0, означает, что Pi = Pj в этой позиции. Выравнивание десятков сообщений позволяет восстанавливать байты ключа один за другим.

Короткие повторяющиеся ключи XOR

Ключи, длина которых меньше длины сообщений, повторяются. Рассматривайте такую схему как шифр Виженера: определите длину ключа с помощью IoC, затем отдельно проанализируйте частоты для каждой позиции. Взлом выполняется за несколько секунд.

Атака с выбранным открытым текстом

Если атакующий может шифровать произвольные открытые тексты, отправьте P=0x00...00. Тогда C напрямую равен ключу. Или отправьте известное значение P, чтобы узнать K = P XOR C в любой позиции.

Атака с инвертированием битов

Шифры XOR без MAC допускают инвертирование битов: инверсия бита i в шифротексте → инверсия бита i в открытом тексте. Атакующий изменяет зашифрованные данные, не зная ключа.

Почему одного AES недостаточно

AES в режиме ECB детерминирован: один и тот же блок всегда шифруется одинаково. Режим CTR без аутентификации допускает инвертирование битов. Всегда используйте аутентифицированное шифрование (AES-GCM).

Защита: аутентифицированное шифрование

Аутентифицированное шифрование (AE) объединяет шифрование с MAC. Любое изменение шифротекста приводит к сбою проверки MAC ещё до расшифрования. Схемы AEAD, такие как AES-GCM, предотвращают инвертирование битов.

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

Атакующий получил два сообщения, зашифрованных XOR с одним и тем же ключом. Что станет известно при выполнении XOR над шифротекстами?

Итоги

Вы увидели, как XOR даёт сбой без надлежащего управления ключами и аутентификации. Далее мы рассмотрим правильную роль XOR внутри AES и современных потоковых шифров.
Можно начать бесплатно

Изучай Cryptology Academy с ИИ-репетитором — бесплатно

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

Курсы
67
Уроки
261

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

Урок «Почему одного XOR недостаточно для безопасности» бесплатный?

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

Чему я научусь в уроке «Почему одного XOR недостаточно для безопасности»?

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

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

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

Сколько времени занимает урок «Почему одного XOR недостаточно для безопасности»?

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

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

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

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

  1. Повторение побитовых операций
  2. Шифрование XOR и одноразовый блокнот
  3. Почему одного XOR недостаточно для безопасности
  4. XOR внутри AES и потоковых шифров
← Назад к Cryptology Academy