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

Криптографическая стойкость

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

История развития понятия

До середины XX века стойкость шифров оценивалась эмпирически, на основе опыта криптоаналитиков и отсутствия известных методов взлома. Шифры считались стойкими, если они не поддавались дешифрованию доступными на тот момент средствами. Классическим примером является шифр Цезаря, который в своё время считался надёжным, но сегодня взламывается тривиально.

Научный подход к определению стойкости начал формироваться после работ Клода Шеннона, который в 1949 году в статье «Теория связи в секретных системах» ввёл понятия теоретической (безусловной) и практической (вычислительной) стойкости. Шеннон показал, что абсолютная стойкость достижима только при использовании одноразового блокнота (шифра Вернама), где ключ случаен, не короче сообщения и используется только один раз.

С развитием компьютерной техники и появлением в 1970-х годах алгоритмов с открытым ключом (RSA, Диффи-Хеллмана) акцент сместился на вычислительную стойкость. Современная криптография базируется на предположении, что определённые математические задачи (факторизация больших чисел, дискретное логарифмирование) являются трудноразрешимыми для существующих вычислительных мощностей.

Классификация видов стойкости

Абсолютная (теоретическая, безусловная) стойкость

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

Вычислительная (практическая) стойкость

Алгоритм считается вычислительно стойким, если для его взлома требуется время или ресурсы, значительно превышающие возможности атакующего (например, тысячи лет работы всех компьютеров мира). Оценка такой стойкости всегда привязана к текущему уровню развития технологий. Например, алгоритм RSA с длиной ключа 1024 бита ещё в начале 2010-х годов считался стойким, но к середине 2020-х годов был рекомендован к замене на ключи длиной 2048 или 4096 бит из-за роста вычислительных мощностей и совершенствования алгоритмов факторизации.

Современные симметричные алгоритмы (AES, «Кузнечик») и асимметричные (RSA, ECDSA) относятся именно к классу вычислительно стойких.

Доказуемая стойкость

Этот тип стойкости устанавливается в рамках формальной модели безопасности. Доказуемая стойкость означает, что взлом криптосистемы сводится к решению некоторой математической задачи, которая считается трудноразрешимой. Например, стойкость схемы RSA доказывается в модели случайного оракула при условии трудноразрешимости задачи факторизации. Однако доказуемая стойкость не гарантирует абсолютной защиты на практике, так как модель может не учитывать все возможные виды атак (например, атаки по побочным каналам).

Основные факторы, определяющие стойкость

Длина ключа

Длина ключа является первичным, но не единственным фактором. Для симметричных алгоритмов каждый дополнительный бит ключа удваивает количество вариантов, которые необходимо перебрать при атаке полным перебором (brute force). Для асимметричных алгоритмов связь сложнее: например, для RSA длина ключа в битах определяет размер модуля, и стойкость растёт медленнее, чем экспоненциально.

Структура алгоритма

Стойкость зависит от внутренней архитектуры алгоритма. Для блочных шифров важны количество раундов (циклов преобразования), наличие нелинейных элементов (S-блоков), качество перемешивания (диффузии) и запутывания (конфузии). Например, алгоритм DES (56-битный ключ) был признан нестойким не только из-за короткого ключа, но и из-за обнаруженных линейных и дифференциальных атак.

Стойкость к известным видам атак

Различают несколько базовых моделей атак:

  • Атака только по шифротексту (ciphertext-only): противник имеет только перехваченные зашифрованные сообщения.
  • Атака с известным открытым текстом (known-plaintext): противнику известны пары (открытый текст, шифротекст).
  • Атака с выбранным открытым текстом (chosen-plaintext): противник может временно получить доступ к шифрующему устройству и зашифровать произвольные сообщения.
  • Атака с выбранным шифротекстом (chosen-ciphertext): противник может временно получить доступ к расшифровывающему устройству.

Стойкий алгоритм должен сохранять свои свойства даже в самых неблагоприятных условиях — например, при атаке с выбранным открытым текстом.

Методы оценки стойкости

Теоретический криптоанализ

Специалисты пытаются найти математические уязвимости в алгоритме. Например, для блочных шифров применяется линейный и дифференциальный криптоанализ. Успешный криптоанализ снижает эффективную стойкость алгоритма ниже заявленной длины ключа. Если для взлома AES-128 требуется не 2^128 операций, а, скажем, 2^126, это не считается практической угрозой, но если сложность падает до 2^100 — алгоритм может быть признан потенциально уязвимым.

Практические испытания (benchmarking)

Проводятся в рамках стандартизации. Например, Национальный институт стандартов и технологий США (NIST) проводил открытые конкурсы на выбор стандарта шифрования (AES в 1997–2000 годах) и хэш-функции (SHA-3 в 2007–2012 годах). Кандидаты подвергались публичному криптоанализу сообществом. В России аналогичные процедуры проводит Технический комитет по стандартизации «Криптографическая защита информации» (ТК 26).

Использование квантовых вычислений

Появление квантовых компьютеров потенциально способно радикально изменить оценки стойкости. Алгоритм Шора позволяет эффективно решать задачи факторизации и дискретного логарифмирования, что делает уязвимыми RSA, DSA и ECDSA. Симметричные алгоритмы (AES) более устойчивы: квантовый алгоритм Гровера сокращает эффективную длину ключа вдвое (AES-256 становится эквивалентен AES-128 по стойкости). В связи с этим активно разрабатывается постквантовая криптография — алгоритмы, стойкие к атакам как на классических, так и на квантовых компьютерах.

Примеры оценки стойкости

Симметричные алгоритмы

  • AES-256: считается вычислительно стойким. Эффективная стойкость — 256 бит (2^256 операций при полном переборе). Криптоанализ не выявил атак, снижающих сложность ниже 2^200 операций.
  • ГОСТ Р 34.12-2015 («Кузнечик»): российский стандарт блочного шифрования с длиной ключа 256 бит. Стойкость оценивается как 256 бит. Алгоритм прошёл верификацию в рамках ТК 26.
  • DES: исторический стандарт, ныне признанный нестойким. Эффективная стойкость — 56 бит. В 1998 году был взломан за 56 часов специализированным устройством.

Асимметричные алгоритмы

  • RSA-2048: стойкость оценивается примерно в 112 бит симметричного эквивалента (то есть для взлома требуется примерно 2^112 операций). Рекомендован к использованию до 2030 года.
  • ECDSA (эллиптическая криптография): при длине ключа 256 бит обеспечивает стойкость, эквивалентную 128 битам симметричного алгоритма. Считается более эффективной, чем RSA при сопоставимом уровне защиты.

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

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

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

Источники

  1. Шеннон К. «Теория связи в секретных системах» (1949).
  2. Шнайер Б. «Прикладная криптография» (2-е издание, 1996).
  3. Мао В. «Современная криптография: теория и практика» (2003).
  4. ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
  5. NIST SP 800-57 «Recommendation for Key Management» (2020).
  6. Bernstein D.J., Lange T. «Post-Quantum Cryptography» (2009).

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

На главную BFOmetr →