Открыть сервис

Атака по открытому тексту

Атака по открытому тексту — это класс криптоаналитических атак, при которых злоумышленник располагает парами «открытый текст — шифротекст», полученными с использованием одного и того же ключа шифрования. Целью атаки является восстановление ключа или создание возможности расшифровывать другие сообщения, зашифрованные тем же ключом. Атака по открытому тексту считается одной из наиболее мощных в криптоанализе, поскольку предполагает, что противник знает не только зашифрованное сообщение, но и его исходное содержание.

Классификация атак по открытому тексту

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

  • Атака по известному открытому тексту (Known-Plaintext Attack, KPA) — противник имеет доступ к нескольким парам «открытый текст — шифротекст», но не может выбирать, какие именно тексты будут зашифрованы. Пример: перехват сообщения и его расшифровка через компрометацию одного из каналов, после чего становится известна пара.
  • Атака по выбранному открытому тексту (Chosen-Plaintext Attack, CPA) — злоумышленник может выбирать произвольные открытые тексты и получать их шифротексты. Это более мощная атака, так как позволяет подбирать тексты, максимально раскрывающие свойства шифра. Например, в классическом шифре Цезаря можно подать на вход текст «АААА» и по шифротексту определить сдвиг.
  • Адаптивная атака по выбранному открытому тексту (Adaptive Chosen-Plaintext Attack, CPA2) — разновидность CPA, при которой злоумышленник может выбирать следующие открытые тексты на основе результатов предыдущих шифрований. Это позволяет постепенно уточнять ключ.
  • Атака по выбранному шифротексту (Chosen-Ciphertext Attack, CCA) — хотя формально относится к другому классу, часто рассматривается совместно. При CCA противник может выбирать шифротексты и получать их расшифровки. В комбинации с атакой по открытому тексту даёт ещё более серьёзные возможности.

История и примеры

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

В XX веке атаки по открытому тексту сыграли ключевую роль в криптоанализе немецкой шифровальной машины «Энигма» во время Второй мировой войны. Британские криптоаналитики в Блетчли-парке активно использовали так называемые «крибы» (cribs) — предполагаемые или известные фрагменты открытого текста, такие как стандартные приветствия, метеосводки или повторяющиеся фразы в сообщениях. Сопоставляя эти фрагменты с шифротекстом, они могли восстанавливать ключи текущего дня.

Другой пример — атака на шифр Лоренца (немецкая телетайпная шифровальная машина), где британский криптоаналитик Билл Татт применил метод, основанный на известных открытых текстах, что позволило взломать систему без захвата самой машины.

Методы защиты

Современные криптографические алгоритмы проектируются с учётом устойчивости к атакам по открытому тексту. Основные подходы включают:

  • Стойкость к CPA — шифр считается семантически безопасным, если даже при выборе злоумышленником любых двух открытых текстов он не может отличить, какой из них был зашифрован, глядя на шифротекст. Это свойство обычно достигается использованием режимов шифрования с обратной связью (CBC, CFB, OFB) или гаммирования (CTR), а также добавлением случайного вектора инициализации.
  • Стойкость к CCA — более сильное требование, необходимое для систем с открытым ключом и некоторых протоколов. Реализуется через схемы, устойчивые к атакам по выбранному шифротексту (например, OAEP для RSA).
  • Использование хеширования и аутентификации — добавление к шифротексту кода аутентичности сообщения (MAC) или использование режимов аутентифицированного шифрования (GCM, CCM) предотвращает подмену шифротекста и, как следствие, атаки по выбранному шифротексту.
  • Случайные векторы инициализации (IV) — каждый раз при шифровании одного и того же открытого текста с одним ключом должен получаться разный шифротекст, что делает атаку по известному открытому тексту бесполезной.

Применение в криптоанализе

Атаки по открытому тексту являются стандартным инструментом при оценке стойкости шифров. Криптоаналитики моделируют сценарии, в которых противник может получить доступ к парам «текст — шифротекст» через различные уязвимости: перехват сообщений с известным содержанием (например, стандартные заголовки протоколов), компрометацию сеансовых ключей, использование слабых генераторов случайных чисел.

В современных симметричных шифрах (AES, ChaCha20) атаки по открытому тексту в чистом виде неэффективны при правильном использовании — они требуют либо колоссальных вычислительных ресурсов, либо наличия дополнительных уязвимостей в реализации (например, утечки по времени или по побочным каналам). Однако для старых или ослабленных алгоритмов (DES, RC4, шифры с коротким ключом) такие атаки могут быть успешными.

Критика и ограничения

Основное ограничение атаки по открытому тексту — необходимость знать открытый текст хотя бы для одного сообщения. В реальных условиях это может быть сложно обеспечить, особенно если система использует надёжные протоколы сжатия, шифрования и аутентификации. Кроме того, современные алгоритмы спроектированы так, чтобы даже при знании миллиардов пар «текст — шифротекст» восстановление ключа оставалось вычислительно невозможным.

Тем не менее, атаки по открытому тексту остаются актуальными в контексте анализа протоколов и реализаций. Например, уязвимости в реализации TLS (например, атака POODLE) использовали знание структуры открытого текста (заголовков протокола) для расшифровки данных.

Источники

  • Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. — М.: Триумф, 2002.
  • Смарт Н. Криптография. — М.: Техносфера, 2005.
  • Менезес А., ван Ооршот П., Ванстон С. Справочник по прикладной криптографии. — М.: Мир, 2002.
  • Стандарт NIST SP 800-38A «Recommendation for Block Cipher Modes of Operation».
  • Документация по криптоанализу «Энигмы» (архивы Блетчли-парка).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →