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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Рівень криптостійкості (англ. 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. — 21 April. — 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.