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