Рівень криптостійкості
Рівень криптостійкості (англ. 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, — розмір порядку точки .
- 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.
- ↑ Arjen K. Lenstra. Key Lengths: Contribution to The Handbook of Information Security. Архівовано з джерела 1 грудня 2017.
- ↑ а б Daniel J. Bernstein. Understanding brute force. — 2005. — . — 4. Архівовано з джерела 25 серпня 2017.
- ↑ а б в 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:
- ↑ SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions. — 2015. — 8. — DOI: . Архівовано з джерела 27 січня 2018.
- ↑ а б Elaine Barker. Recommendation for Key Management, Part 1: General. — 2016. — 1. — P. 53. — DOI: . Архівовано з джерела 10 грудня 2020.
- ↑ Algorithms, key size and parameters report – 2014. — 2014. — 21 April. — P. 37. — DOI: . Архівовано з джерела 17 жовтня 2015.
- ↑ Orman Hilarie, Paul Hoffman. Determining Strengths For Public Keys Used For Exchanging Symmetric Keys. — 2004. — 4. — 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. — . — 8. Архівовано з джерела 9 жовтня 2017.