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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Криптостойкость»)
Перейти к навигации Перейти к поиску

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

Типы криптостойких систем шифрования[править | править код]

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

Абсолютно стойкие системы[править | править код]

Aбсолютно стойкие (или теоретической стойкости) - если криптосистема не может быть раскрыта ни теоретически, ни практически даже при наличии у атакующего бесконечно больших вычислительных ресурсов.

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

Стойкость этих систем не зависит от того, какими вычислительными возможностями обладает криптоаналитик. Практическое применение систем, удовлетворяющих требованиям абсолютной стойкости, ограничено соображениями стоимости и удобства пользования.

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

Достаточно стойкие системы[править | править код]

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

Стойкость таких систем базируется на теории сложности и оценивается в расчёте на определённый момент времени и последовательно c двух позиций:

В каждом конкретном случае могут существовать дополнительные критерии оценки стойкости.

О доказуемой стойкости говорят в случае, если доказательство стойкости криптосистемы сводится к решению определённой трудно решаемой математической проблемы, положенной в основу алгоритма.

Оценка криптостойкости систем шифрования[править | править код]

Начальная оценка[править | править код]

Поскольку атака методом грубой силы (полным перебором всех ключей) возможна для всех типов криптографических алгоритмов, кроме абсолютно стойких «по Шеннону», для вновь созданного алгоритма она может являться единственной существующей. Способы её оценки основываются на вычислительной сложности, которая затем может быть выражена во времени, деньгах, и требуемой производительности вычислительных ресурсов, например, в MIPS. Эта оценка пока является максимальной и минимальной одновременно.

Текущая оценка[править | править код]

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

Например, для многих симметричных шифров существуют слабые ключи[en] и S-блоки, применение которых снижает криптографическую стойкость.

Также важным способом проверки стойкости являются атаки на реализацию, выполняемые для конкретного программно-аппаратно-человеческого комплекса.

Важность длительной проверки и открытого обсуждения[править | править код]

Чем более длительным и экспертным является анализ алгоритма и реализаций, тем более достоверной можно считать его стойкость. В нескольких случаях длительный и внимательный анализ приводил к снижению оценки стойкости ниже приемлемого уровня (например, в черновых версиях FEAL).

Недостаточная проверка (по мнению многих криптографов — искусственное ослабление) алгоритма потокового шифрования А5/1 привела к успешной атаке.

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]

Ссылки[править | править код]