Уровень криптостойкости
Уровень криптостойкости (англ. 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]
Уровень криптостойкости | Симметричные криптосистемы | FFC | IFC | ECC |
---|---|---|---|---|
≤ | 2TDEA | = 1024, = 160 | = 1024 | = 160—223 |
3TDEA | = 2048, = 224 | = 2048 | = 224—255 | |
AES-128 | = 3072, = 256 | = 3072 | = 256—383 | |
AES-192 | = 7680, = 384 | = 7680 | = 384—511 | |
AES-256 | = 15360, = 512 | = 15360 | = 512+ |
Где — длина открытого ключа, — длина закрытого ключа, — размер модуля n, — размер порядка точки .
- FFC (Finite-Field Cryptography) — алгоритмы, основанные на операциях в конечных полях. Например, DSA, Diffie-Hellman.
- IFC (Integer-Factorization Cryptography) — алгоритмы, стойкость которых основывается на сложности задачи факторизации чисел по модулю. Например, RSA.
- ECC (Elliptic-Curve Cryptography) — алгоритмы в группах точек эллиптических кривых. Например, ECDSA.
См. такжеПравить
ПримечанияПравить
- ↑ Richard Kissel, NIST. Glossary of Key Information Security Terms (англ.). Архивировано 5 декабря 2017 года.
- ↑ Под редакцией Б. А. Погорелова и В. Н. Сачкова. Словарь криптографических терминов (рус.). Архивная копия от 29 марта 2017 на Wayback Machine Архивированная копия (неопр.). Дата обращения: 4 декабря 2017. Архивировано из оригинала 29 марта 2017 года.
- ↑ Arjen K. Lenstra. Key Lengths: Contribution to The Handbook of Information Security (англ.). Архивировано 1 декабря 2017 года.
- ↑ Daniel J. Bernstein, Tanja Lange,. Non-uniform cracks in the concrete: the power of free precomputation // Advances in Cryptology - ASIACRYPT 2013 (англ.). — 2012. — P. 321–340. — ISBN 9783642420443. — doi:10.1007/978-3-642-42045-0_17. Архивная копия от 25 августа 2017 на Wayback Machine
- ↑ 1 2 Daniel J. Bernstein. Understanding brute force (англ.). — 2005. — 25 April. Архивировано 25 августа 2017 года.
- ↑ 1 2 3 Arjen K. Lenstra. Unbelievable Security: Matching AES Security Using Public Key Systems // Advances in Cryptology — ASIACRYPT 2001 (англ.). — Springer, Berlin, Heidelberg. — 2001. — P. 67–86. — ISBN 3540456821. — doi:10.1007/3-540-45682-1_5.
- ↑ Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Chapter 9 - Hash Functions and Data Integrity // Handbook of Applied Cryptography (англ.). — P. 336. Архивная копия от 3 февраля 2021 на Wayback Machine
- ↑ SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions (англ.). — 2015. — August. — doi:10.6028/nist.fips.202. Архивировано 27 января 2018 года.
- ↑ 1 2 Elaine Barker. Recommendation for Key Management, Part 1: General (англ.). — 2016. — January. — P. 53. — doi:10.6028/nist.sp.800-57pt1r4. Архивировано 10 декабря 2020 года.
- ↑ Algorithms, key size and parameters report – 2014 (англ.). — 2014. — P. 37. — doi:10.2824/36822. Архивировано 17 октября 2015 года.
- ↑ Orman Hilarie, Paul Hoffman. Determining Strengths For Public Keys Used For Exchanging Symmetric Keys (англ.). — 2004. — April. — P. 37. Архивировано 15 марта 2018 года.
- ↑ Damien Giry. Keylength - Compare all Methods (англ.). Архивировано 2 сентября 2017 года.
- ↑ A.K. Lenstra, E.R. Verheul. Selecting cryptographic key sizes (англ.) // Journal of Cryptology. — 2001. — 14 August. Архивировано 9 октября 2017 года.