Уровень криптостойкости

(перенаправлено с «Уровень безопасности»)

Уровень криптостойкости (англ. 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,   — размер порядка   точки  .

См. также править

Примечания править

  1. Richard Kissel, NIST. Glossary of Key Information Security Terms (англ.). Архивировано 5 декабря 2017 года.
  2. Под редакцией Б. А. Погорелова и В. Н. Сачкова. Словарь криптографических терминов. Архивировано 29 марта 2017 года. Архивированная копия. Дата обращения: 4 декабря 2017. Архивировано 29 марта 2017 года.
  3. Arjen K. Lenstra. Key Lengths: Contribution to The Handbook of Information Security (англ.). Архивировано 1 декабря 2017 года.
  4. 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 года.
  5. 1 2 Daniel J. Bernstein. Understanding brute force (англ.). — 2005. — 25 April. Архивировано 25 августа 2017 года.
  6. 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.
  7. 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 года.
  8. SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions (англ.). — 2015. — August. — doi:10.6028/nist.fips.202. Архивировано 27 января 2018 года.
  9. 1 2 Elaine Barker. Recommendation for Key Management, Part 1: General (англ.). — 2016. — January. — P. 53. — doi:10.6028/nist.sp.800-57pt1r4. Архивировано 10 декабря 2020 года.
  10. Algorithms, key size and parameters report – 2014 (англ.). — 2014. — P. 37. — doi:10.2824/36822. Архивировано 17 октября 2015 года.
  11. Orman Hilarie, Paul Hoffman. Determining Strengths For Public Keys Used For Exchanging Symmetric Keys (англ.). — 2004. — April. — P. 37. Архивировано 15 марта 2018 года.
  12. Damien Giry. Keylength - Compare all Methods (англ.). Архивировано 2 сентября 2017 года.
  13. A.K. Lenstra, E.R. Verheul. Selecting cryptographic key sizes (англ.) // Journal of Cryptology. — 2001. — 14 August. Архивировано 9 октября 2017 года.