Атака с выбором шифротекста
Атака с выбором шифротекста (англ. Chosen-Ciphertext Attack, CCA) — это криптографическая атака, при которой злоумышленник имеет возможность временно использовать устройство расшифрования (дешифратор) для получения открытого текста по произвольно выбранным им шифротекстам, за исключением целевого. Цель атаки — восстановить ключ шифрования или расшифровать конкретный перехваченный шифротекст. Данный класс атак считается одним из наиболее сильных и используется для оценки стойкости криптосистем, особенно в схемах с открытым ключом и гибридных протоколах.
История и развитие
Концепция атаки с выбором шифротекста была впервые формально описана в 1980-х годах в контексте анализа криптосистем с открытым ключом. Ранние работы, такие как статья Шафи Гольдвассер и Сильвио Микали (1984), показали, что многие схемы, считавшиеся стойкими к атакам с выбором открытого текста, уязвимы при наличии у противника доступа к оракулу расшифрования. В 1991 году Чарльз Ракофф и Дэниел Саймон ввели понятие «атаки с адаптивным выбором шифротекста» (CCA2), которая стала стандартом для доказательства семантической стойкости.
Развитие атаки было тесно связано с созданием практических криптосистем. В 1998 году была предложена схема OAEP (Optimal Asymmetric Encryption Padding), которая в сочетании с RSA (RSA-OAEP) обеспечивает стойкость к CCA2. В 1999 году стандарт IEEE P1363 включил требования к стойкости к CCA для схем шифрования с открытым ключом. В 2001 году схема Cramer-Shoup стала первой практической криптосистемой с доказанной стойкостью к CCA2 без использования случайных оракулов.
Классификация атак с выбором шифротекста
Неадаптивная атака (CCA1)
При неадаптивной атаке (CCA1, или «lunchtime attack») злоумышленник получает доступ к оракулу расшифрования до того, как ему предъявлен целевой шифротекст. Он может задать оракулу конечное множество шифротекстов, получить соответствующие открытые тексты, а затем, после отключения оракула, пытается расшифровать целевой шифротекст. Эта модель моделирует ситуацию, когда противник временно имеет доступ к устройству (например, в обеденный перерыв), но теряет его после перехвата цели.
Адаптивная атака (CCA2)
Адаптивная атака (CCA2) является более сильной моделью. Злоумышленник может задавать оракулу расшифрования произвольные шифротексты в любой момент, включая время после получения целевого шифротекста. Единственное ограничение — он не может запросить расшифрование самого целевого шифротекста. Эта модель считается наиболее реалистичной для современных протоколов, где противник может активно взаимодействовать с системой (например, через API или смарт-карты).
Атака с выбором шифротекста на основе побочных каналов
Отдельный подкласс — атаки, использующие физические утечки информации (время выполнения, энергопотребление, электромагнитное излучение) при работе оракула расшифрования. Например, атака по времени на RSA (1996) позволила восстанавливать ключи, измеряя задержки при расшифровании разных шифротекстов. Такие атаки требуют более сложных контрмер, чем чисто математические.
Принцип работы и примеры
Пример уязвимости: RSA без дополнений
Классический пример — атака на «учебный» RSA (без дополнений). Пусть злоумышленник перехватил шифротекст \( c = m^e \mod n \). Он может выбрать случайное число \( r \), вычислить \( c' = c \cdot r^e \mod n \) и отправить \( c' \) оракулу расшифрования. Оракул вернёт \( m' = (c')^d \mod n = m \cdot r \mod n \). Зная \( r \), злоумышленник легко восстанавливает \( m = m' \cdot r^{-1} \mod n \). Эта атака показывает, почему RSA без дополнений (textbook RSA) не является стойким к CCA.
Схема Cramer-Shoup
Схема, предложенная Рональдом Крамером и Виктором Шупом в 1998 году, является примером криптосистемы с доказанной стойкостью к CCA2. Она использует криптографию на эллиптических кривых и включает механизм проверки целостности шифротекста. Любое изменение шифротекста приводит к неверной проверке, и оракул отказывает в расшифровании, что предотвращает адаптивные атаки.
Атака на протокол SSL/TLS
В 1998 году была продемонстрирована атака с выбором шифротекста на ранние версии протокола SSL (Secure Sockets Layer). Злоумышленник мог модифицировать зашифрованное сообщение и наблюдать за ошибками расшифрования (например, по коду ошибки или времени ответа), что позволяло постепенно восстанавливать открытый текст. Это привело к внедрению в TLS механизмов MAC-then-encrypt и явных проверок целостности.
Методы защиты
Дополнения и форматы
Для защиты от CCA используются специальные схемы дополнений (padding), которые делают шифротекст негибким. Наиболее известные:
- OAEP (Optimal Asymmetric Encryption Padding) — для RSA, преобразует открытый текст перед шифрованием, добавляя случайные биты и хеш-значения.
- OAEP+ — улучшенная версия, устойчивая к CCA2 даже при слабых хеш-функциях.
- SAEP (Simplified OAEP) — упрощённый вариант для некоторых эллиптических кривых.
Интеграция аутентификации
Современные схемы шифрования (например, AEAD — Authenticated Encryption with Associated Data) объединяют шифрование и аутентификацию. При расшифровании сначала проверяется аутентификационный тег (MAC), и только в случае успеха выдается открытый текст. Это предотвращает атаки, основанные на модификации шифротекста. Примеры: AES-GCM, ChaCha20-Poly1305.
Доказательная безопасность
Криптосистемы с доказанной стойкостью к CCA2 строятся на основе сложных математических предположений (например, задача Диффи-Хеллмана, задача о квадратичных вычетах) и используют «симуляцию» противника в модели случайного оракула. Такие схемы, как Cramer-Shoup или RSA-OAEP, имеют формальные доказательства, что любая успешная атака CCA2 может быть преобразована в алгоритм решения сложной задачи.
Применение в криптографии
Атака с выбором шифротекста является стандартным критерием стойкости для:
- Криптосистем с открытым ключом: все современные стандарты (NIST, IEEE, ISO) требуют стойкости к CCA2 для схем шифрования, используемых в гибридных протоколах (например, в TLS 1.3, PGP, Signal).
- Гибридного шифрования: асимметричная часть (например, RSA-OAEP) должна быть CCA-стойкой, так как противник может манипулировать зашифрованным сессионным ключом.
- Протоколов аутентификации и обмена ключами: в протоколах типа Needham-Schroeder или STS уязвимости к CCA могут приводить к раскрытию сессионных ключей.
- Систем электронных денег и голосования: где противник может иметь доступ к устройству расшифрования (например, к смарт-карте избирателя).
Критика и ограничения
Несмотря на свою силу, модель CCA2 имеет ограничения. В реальных системах злоумышленник может не иметь прямого доступа к оракулу расшифрования, но может получать косвенную информацию через побочные каналы (время, ошибки, мощность). Атаки, основанные на таких утечках, часто не покрываются формальной моделью CCA. Кроме того, некоторые схемы, доказуемо стойкие к CCA2 в теории, оказываются уязвимыми на практике из-за неверной реализации (например, неправильное использование OAEP в ранних версиях Java Cryptography Extension).
Источники
- Goldwasser S., Micali S. Probabilistic Encryption // Journal of Computer and System Sciences, 1984.
- Rackoff C., Simon D. Non-Interactive Zero-Knowledge Proof of Knowledge and Chosen Ciphertext Attack // CRYPTO, 1991.
- Bellare M., Rogaway P. Optimal Asymmetric Encryption // EUROCRYPT, 1994.
- Cramer R., Shoup V. A Practical Public Key Cryptosystem Provably Secure Against Adaptive Chosen Ciphertext Attack // CRYPTO, 1998.
- Menezes A., van Oorschot P., Vanstone S. Handbook of Applied Cryptography, CRC Press, 1996.
- Шнайер Б. Прикладная криптография, 2-е издание, 2002.
- NIST Special Publication 800-56B: Recommendation for Pair-Wise Key Establishment Schemes Using Integer Factorization Cryptography, 2019.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →