Уровень криптостойкостиУровень криптостойкости (англ. security level) — показатель криптостойкости криптографического алгоритма, связанный с вычислительной сложностью выполнения успешной атаки на криптосистему наиболее быстрым из известных алгоритмов[1][2]. Обычно измеряется в битах. N-битный уровень криптостойкости криптосистемы означает, что для её взлома потребуется выполнить 2N вычислительных операций. Например, если симметричная криптосистема взламывается не быстрее, чем за полный перебор значений N-битного ключа, то говорят, что уровень криптостойкости равен N. Увеличение же в x раз количества операций, требуемых для взлома, прибавляет к уровню криптостойкости[3]. Существуют и другие методы, более точно моделирующие требуемое количество операций для взлома, что позволяет удобнее сравнивать криптографические алгоритмы и их гибриды.[4] Например, AES-128 (размер ключа 128 бит) предназначен для обеспечения 128-битного уровня криптостойкости, который считается примерно эквивалентным 3072-битному RSA. В симметричной криптографииУ симметричных алгоритмов уровень криптостойкости обычно строго определён, но изменится, если появится более успешная криптоатака. Для симметричных шифров он в общем случае равен размеру ключа шифрования, что эквивалентно полному перебору значений ключа.[5][6] Для криптографических хеш-функций с длиной значений n бит атака "дней рождения" позволяет находить коллизии в среднем за вычислений хеш-функции. Таким образом, уровень криптостойкости при нахождении коллизий равен n/2, а при нахождении прообраза — n.[7] Например, SHA-256 предоставляет 128-битную защиту от коллизий и 256-битную защиту от нахождения прообраза. Есть и исключения. Например, Phelix и Helix — 256-битные шифры, обеспечивающие 128-битный уровень криптостойкости.[5] SHAKE варианты SHA-3 также различны: для 256-битного размера возвращаемых данных SHAKE-128 обеспечивает 128-битный уровень криптостойкости и при нахождении коллизий, и при нахождении прообраза.[8] В асимметричной криптографииВ асимметричной криптографии, например, в криптосистемах с открытым ключом, используются односторонние функции, то есть функции, легко вычисляемые по аргументу, но с высокой вычислительной сложностью нахождения аргумента по значению функции, однако атаки на существующие системы с открытым ключом обычно быстрее, чем полный перебор пространства ключей. Уровень криптостойкости таких систем неизвестен во время разработки, но предполагается по самой известной на текущий момент криптоатаке.[6] Существуют различные рекомендации оценки уровня криптостойкости асимметричных алгоритмов, отличающиеся в силу различных методологий. Например, для криптосистемы RSA на 128-битном уровне криптостойкости NIST и ENISA рекомендуют использовать 3072-битные ключи[9][10] и IETF 3253.[11][12] Эллиптическая криптография позволяет использовать более короткие ключи, поэтому рекомендуются 256—383 бит (NIST), 256 бит (ENISA) и 242 бит (IETF). Эквивалентность уровней криптостойкостиДве криптосистемы обеспечивают одинаковый уровень криптостойкости, если ожидаемые усилия, необходимые для взлома обеих систем, эквивалентны.[6] Поскольку понятие усилия можно интерпретировать несколькими способами, существуют два пути сравнения:[13]
Сравнительный список уровней криптостойкости алгоритмовВ таблице приведены оценки максимальных уровней криптостойкости, которые могут быть предоставлены симметричными и асимметричными криптографическими алгоритмами, с учетом ключей определённой длины на основании рекомендаций NIST.[9]
Где — длина открытого ключа, — длина закрытого ключа, — размер модуля n, — размер порядка точки .
См. также
Примечания
|