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

показник криптостійкості криптографічного алгоритм

Рівень криптостійкості (англ. security level) — показник криптостійкості криптографічного алгоритму, пов'язаний з обчислювальною складністю виконання успішної атаки на криптосистему найшвидшим із відомих алгоритмів[1]. Зазвичай вимірюється в бітах. N -бітовий рівень криптостійкості криптосистеми означає, що для її злому потрібно виконати обчислювальних операцій. Наприклад, якщо симетрична криптосистема зламується не швидше, ніж за повний перебір значень N-бітового ключа, то кажуть, що рівень криптостійкості дорівнює N. Збільшення ж у x разів кількості операцій, необхідних для злому, додає до рівня криптостійкості[2].

Існують й інші методи, які точніше моделюють необхідну для злому кількість операцій, що дозволяє зручніше порівнювати криптографічні алгоритми та їх гібриди. Наприклад, AES -128 (розмір ключа 128 біт) призначений для забезпечення 128-бітового рівня криптостійкості, який вважають приблизно еквівалентним 3072-бітовому RSA.

У симетричній криптографії

ред.

У симетричних алгоритмів рівень криптостійкості зазвичай строго визначений, але зміниться, якщо з'явиться успішніша криптоатака. Для симетричних шифрів він, загалом, дорівнює розміру ключа шифрування, що еквівалентно повному перебору значень ключа[3][4]. Для криптографічних геш-функцій із довжиною значень n біт атака «днів народження» дозволяє знаходити колізії в середньому за   обчислень геш-функції. Таким чином, рівень криптостійкості при знаходженні колізій дорівнює n/2, а при знаходженні прообразу — n. Наприклад, SHA-256 надає 128-бітовий захист від колізій та 256-бітовий захист від знаходження прообразу.

Є й винятки. Наприклад, Phelix і Helix — 256-бітові шифри, що забезпечують 128-бітовий рівень криптостійкості[3]. SHAKE варіанти SHA-3 також різні: для 256-бітового розміру даних, що повертаються, SHAKE-128 забезпечує 128-бітовий рівень криптостійкості і при знаходженні колізій, і при знаходженні прообразу[5].

В асиметричній криптографії

ред.

В асиметричній криптографії, наприклад, у криптосистемах з відкритим ключем, використовують односторонні функції, тобто функції, що легко обчислюються за аргументом, але з високою обчислювальною складністю знаходження аргументу за значенням функції, проте атаки на наявні системи з відкритим ключем зазвичай швидші, ніж повний перебір простору ключів. Рівень криптостійкості таких систем невідомий під час розробки, але припускається за найвідомішою на даний момент криптоатакою[4].

Існують різні рекомендації щодо оцінення рівня криптостійкості асиметричних алгоритмів, що відрізняються в силу різних методологій. Наприклад, для криптосистеми RSA на 128-бітовому рівні криптостійкості NIST і ENISA рекомендують використовувати 3072-бітові ключі[6][7] та IETF 3253[8][9]. Еліптична криптографія дозволяє використовувати коротші ключі, тому рекомендуються 256—383 біт (NIST), 256 біт (ENISA) та 242 біт (IETF).

Еквівалентність рівнів криптостійкості

ред.

Дві криптосистеми забезпечують однаковий рівень криптостійкості, якщо очікувані зусилля, необхідні для злому обох систем, еквівалентні[4]. Оскільки поняття зусилля можна інтерпретувати кількома способами, є два шляхи для порівняння[10]:

  • дві криптосистеми є обчислювально еквівалентними, якщо їх зламування в середньому потребує однакових обчислювальних зусиль;
  • дві криптосистеми є грошово еквівалентними, якщо апаратне забезпечення для їхнього злому за однаковий час тотожне за вартістю.

Порівняльний список рівнів криптостійкості алгоритмів

ред.

У таблиці наведено оцінки максимальних рівнів криптостійкості, які можуть надати симетричні та асиметричні криптографічні алгоритми, з урахуванням ключів певної довжини на підставі рекомендацій NIST[6].

Рівень криптостійкості Симетричні криптосистеми 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. Arjen K. Lenstra. Key Lengths: Contribution to The Handbook of Information Security. Архівовано з джерела 1 грудня 2017.
  3. а б Daniel J. Bernstein. Understanding brute force. — 2005. — . — 4. Архівовано з джерела 25 серпня 2017.
  4. а б в Arjen K. Lenstra. Unbelievable Security: Matching AES Security Using Public Key Systems // Advances in Cryptology — ASIACRYPT 2001. — Springer, Berlin, Heidelberg. — 2001. — С. 67–86. — ISBN 3540456821. — DOI:10.1007/3-540-45682-1_5.
  5. SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions. — 2015. — 8. — DOI:10.6028/nist.fips.202. Архівовано з джерела 27 січня 2018.
  6. а б Elaine Barker. Recommendation for Key Management, Part 1: General. — 2016. — 1. — P. 53. — DOI:10.6028/nist.sp.800-57pt1r4. Архівовано з джерела 10 грудня 2020.
  7. Algorithms, key size and parameters report – 2014. — 2014. — 8 July. — P. 37. — DOI:10.2824/36822. Архівовано з джерела 17 жовтня 2015.
  8. Orman Hilarie, Paul Hoffman. Determining Strengths For Public Keys Used For Exchanging Symmetric Keys. — 2004. — 4. — P. 37. Архівовано з джерела 15 березня 2018.
  9. Damien Giry. Keylength - Compare all Methods. Архівовано з джерела 2 вересня 2017.
  10. A.K. Lenstra, E.R. Verheul. Selecting cryptographic key sizes // Journal of Cryptology. — 2001. — . — 8. Архівовано з джерела 9 жовтня 2017.