Атака с выбранным открытым текстом
Атака с выбранным открытым текстом (англ. chosen-plaintext attack, CPA) — это модель криптоанализа, в которой злоумышленник имеет возможность временно получать доступ к шифрующему устройству или алгоритму и выбирать произвольные открытые тексты, после чего получать их шифротексты. Данная атака является одной из стандартных моделей, используемых для оценки стойкости симметричных и асимметричных криптосистем, и применяется как в теоретических исследованиях, так и при практическом тестировании защищённости.
История и развитие концепции
Понятие атаки с выбранным открытым текстом было формализовано в середине XX века в рамках развития теории криптоанализа. В 1949 году Клод Шеннон в работе «Теория связи в секретных системах» заложил основы математической модели криптосистем, но активное изучение CPA началось с появлением компьютерных сетей и стандартов шифрования.
В 1970-х годах, с разработкой алгоритма DES (Data Encryption Standard), криптографы осознали, что многие классические шифры (например, шифр Цезаря или Виженера) не выдерживают даже простых атак с выбранным текстом. В 1980-х годах, с развитием асимметричной криптографии, модель CPA была адаптирована для систем с открытым ключом, где злоумышленник может шифровать произвольные сообщения, используя открытый ключ жертвы.
В 1990-х годах, после появления атак на алгоритмы RSA и Эль-Гамаля, были разработаны схемы, устойчивые к CPA (например, OAEP для RSA). В XXI веке, с распространением облачных сервисов и протоколов TLS, атаки CPA стали важным инструментом для проверки безопасности реализаций, а не только математических моделей.
Классификация атак с выбранным открытым текстом
В криптографии выделяют несколько разновидностей CPA, различающихся по степени контроля злоумышленника над процессом шифрования.
Полная атака с выбранным открытым текстом (Full CPA)
Злоумышленник может многократно выбирать произвольные открытые тексты и получать их шифротексты без ограничений. Эта модель считается наиболее сильной для симметричных шифров, так как предполагает, что противник имеет доступ к шифрующему устройству (например, к аппаратному модулю или программному API). Примером служит атака на блочный шифр в режиме ECB (Electronic Codebook), где одинаковые блоки открытого текста дают одинаковые блоки шифротекста, что позволяет злоумышленнику выявлять повторяющиеся структуры.
Адаптивная атака с выбранным открытым текстом (Adaptive CPA)
В этой модели злоумышленник может выбирать следующие открытые тексты на основе предыдущих полученных шифротекстов. Это более реалистичный сценарий для интерактивных протоколов, где противник может постепенно уточнять свои запросы. Адаптивная CPA часто используется для анализа протоколов аутентификации и шифрования с подтверждением.
Атака с выбранным открытым текстом в асимметричной криптографии
В системах с открытым ключом CPA является тривиальной: злоумышленник, зная открытый ключ, может зашифровать любое сообщение самостоятельно. Поэтому стойкость к CPA для асимметричных схем означает, что шифротекст не должен раскрывать информацию об открытом тексте даже при многократном шифровании одного и того же сообщения. Такая стойкость называется семантической безопасностью (IND-CPA — Indistinguishability under Chosen-Plaintext Attack).
Принцип работы и примеры
Симметричные шифры
Рассмотрим простой пример: блочный шифр с размером блока 64 бита, работающий в режиме ECB. Если злоумышленник может выбрать открытый текст, состоящий из повторяющихся блоков, он получит шифротекст, в котором повторяющиеся блоки будут одинаковыми. Это позволяет, например, определить, какие блоки исходного сообщения совпадают, или выявить структуру данных (например, изображения или текста).
Более сложный пример — атака на шифр с гаммированием (потоковый шифр). Если злоумышленник знает пару «открытый текст — шифротекст», он может вычислить гамму (ключевой поток) и затем расшифровать другие сообщения, зашифрованные той же гаммой. Это классическая атака на шифры с повторным использованием одноразового блокнота.
Асимметричные шифры
Для схемы RSA без дополнительной обработки (например, с использованием малого показателя степени e) атака CPA может быть реализована через вычисление корня e-й степени по модулю n. Если злоумышленник зашифрует два сообщения m1 и m2, он может сравнить их шифротексты и, зная открытый ключ, определить, какое из сообщений соответствует данному шифротексту. Это нарушает свойство неразличимости.
Для защиты от CPA в RSA применяется преобразование OAEP (Optimal Asymmetric Encryption Padding), которое добавляет случайность в процесс шифрования, делая шифротексты для одного и того же сообщения различными.
Защита от атак с выбранным открытым текстом
Симметричная криптография
Основной метод защиты — использование режимов шифрования, которые обеспечивают неразличимость шифротекстов. Например, режим CBC (Cipher Block Chaining) с использованием случайного вектора инициализации (IV) делает каждый шифротекст уникальным даже для одинаковых открытых текстов. Режим CTR (Counter) также обеспечивает CPA-стойкость, если счётчик не повторяется.
Дополнительно применяются аутентифицированное шифрование (AEAD), которое включает проверку целостности данных, что предотвращает модификацию шифротекста злоумышленником, но не защищает от CPA как такового.
Асимметричная криптография
Для достижения IND-CPA-стойкости в асимметричных схемах используются вероятностные алгоритмы шифрования, которые вводят случайность в каждый сеанс шифрования. Примеры:
- RSA-OAEP (стандартизирован в PKCS#1 v2.1).
- Схема Эль-Гамаля, которая по своей природе является вероятностной (использует случайный эфемерный ключ).
- Криптосистемы на основе решёток (например, NewHope, Kyber), которые изначально проектируются как CPA-стойкие.
Практические рекомендации
- Использовать только современные криптографические библиотеки (OpenSSL, Bouncy Castle), которые реализуют защищённые режимы.
- Не допускать повторного использования IV или nonce (например, в режиме CTR).
- Для асимметричного шифрования применять стандартизированные схемы с доказанной стойкостью к CPA.
- В протоколах, где злоумышленник может влиять на открытый текст (например, в веб-формах), использовать аутентифицированное шифрование.
Применение в криптоанализе
Атака с выбранным открытым текстом является стандартным инструментом для проверки стойкости криптосистем. Она используется в следующих контекстах:
- Тестирование алгоритмов: при сертификации (например, по стандартам FIPS 140-3) алгоритмы шифрования проверяются на устойчивость к CPA.
- Анализ протоколов: в протоколах TLS, SSH, IPsec CPA используется для проверки корректности реализации (например, атака на TLS 1.0 с использованием CBC).
- Криптоанализ аппаратных модулей: если злоумышленник имеет физический доступ к устройству (например, к смарт-карте), он может подавать на вход выбранные данные и анализировать выходные шифротексты, что позволяет восстанавливать ключи.
Критика и ограничения
Модель CPA не учитывает возможность атак с выбранным шифротекстом (CCA — chosen-ciphertext attack), где злоумышленник может получать расшифровку произвольных шифротекстов. Для многих приложений, особенно в асимметричной криптографии, требуется стойкость к CCA (IND-CCA), которая является более сильной. Кроме того, CPA не защищает от атак по сторонним каналам (например, по времени выполнения или энергопотреблению), которые могут быть реализованы на практике.
Некоторые исследователи отмечают, что в реальных системах злоумышленник редко имеет полный контроль над выбором открытого текста, но может влиять на него косвенно (например, через внедрение вредоносного кода в передаваемые данные). Поэтому CPA-стойкость считается минимальным требованием, а не достаточным условием безопасности.
Интересные факты
- В 2011 году была опубликована атака на протокол BEAST (Browser Exploit Against SSL/TLS), которая использовала CPA для дешифрования куки-файлов в TLS 1.0, работающем в режиме CBC. Атака требовала, чтобы злоумышленник мог влиять на часть открытого текста (например, через JavaScript).
- Стойкость к CPA является обязательным условием для всех алгоритмов, участвующих в конкурсе NIST на постквантовые криптосистемы.
- В классической криптографии (до 1970-х годов) CPA считалась нереалистичной, так как предполагала физический доступ к шифровальному устройству, что было маловероятно в условиях военной связи.
Источники
- Шеннон К. «Теория связи в секретных системах» (1949).
- Менезес А., ван Ооршот П., Ванстон С. «Handbook of Applied Cryptography» (1996).
- Голдвассер С., Микали С. «Probabilistic Encryption» (1984).
- Стандарт NIST SP 800-38A «Recommendation for Block Cipher Modes of Operation» (2001).
- Барроуз М., Абди М., Нидхэм Р. «A Laboratory for Cryptologic Education» (1999).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →