В криптографии уровень безопасности — это мера прочности, которую достигает криптографический примитив — такой как шифр или хэш-функция . Уровень безопасности обычно выражается как число « бит безопасности» (также прочность безопасности ), [1] где n -битная безопасность означает, что злоумышленнику придется выполнить 2 n операций, чтобы взломать ее, [2] но были предложены другие методы, которые более точно моделируют затраты для злоумышленника. [3] Это позволяет удобно сравнивать алгоритмы и полезно при объединении нескольких примитивов в гибридной криптосистеме , поэтому нет четкого самого слабого звена. Например, AES -128 ( размер ключа 128 бит) разработан для обеспечения 128-битного уровня безопасности, который считается примерно эквивалентным RSA, использующему 3072-битный ключ.
В этом контексте требование безопасности или целевой уровень безопасности — это уровень безопасности, для достижения которого был изначально разработан примитив, хотя в этих контекстах иногда используется и «уровень безопасности». Когда обнаруживаются атаки, имеющие меньшую стоимость, чем требование безопасности, примитив считается сломанным . [4] [5]
Симметричные алгоритмы обычно имеют строго определенное требование безопасности. Для симметричных шифров оно обычно равно размеру ключа шифра — эквивалентно сложности атаки методом перебора . [ 5] [6] Криптографические хэш-функции с выходным размером n бит обычно имеют уровень безопасности устойчивости к коллизиям n /2 и уровень устойчивости к прообразу n . Это связано с тем, что общая атака дня рождения всегда может найти коллизии за 2 n / 2 шагов. [7] Например, SHA-256 предлагает 128-битную устойчивость к коллизиям и 256-битную устойчивость к прообразу.
Однако есть некоторые исключения. Phelix и Helix — это 256-битные шифры, предлагающие 128-битный уровень безопасности. [5] [8] Варианты SHA-3 SHAKE также отличаются: для выходного размера 256 бит SHAKE-128 обеспечивает 128-битный уровень безопасности как для коллизий, так и для устойчивости к прообразам. [9]
Проектирование большинства асимметричных алгоритмов (т. е. криптографии с открытым ключом ) основано на аккуратных математических задачах , которые эффективны для вычисления в одном направлении, но неэффективны для обратного выполнения злоумышленником. Однако атаки на текущие системы с открытым ключом всегда быстрее, чем поиск методом перебора пространства ключей. Их уровень безопасности не устанавливается во время проектирования, а представляет собой предположение о вычислительной сложности , которое корректируется для соответствия лучшей известной на данный момент атаке. [6]
Были опубликованы различные рекомендации, оценивающие уровень безопасности асимметричных алгоритмов, которые немного различаются из-за разных методологий.
В следующей таблице приведены примеры типичных уровней безопасности для типов алгоритмов, которые указаны в s5.6.1.1 Рекомендаций NIST SP-800-57 по управлению ключами США. [16] : Таблица 2
Согласно рекомендациям NIST, ключ определенного уровня безопасности должен передаваться только под защитой, использующей алгоритм эквивалентного или более высокого уровня безопасности. [14]
Уровень безопасности указан для стоимости взлома одной цели, а не амортизированной стоимости для группы целей. Требуется 2 128 операций, чтобы найти ключ AES-128, но то же самое количество амортизированных операций требуется для любого количества m ключей. С другой стороны, для взлома m ключей ECC с использованием метода rho требуется sqrt( m ) раз больше базовой стоимости. [15] [17]
Криптографический примитив считается сломанным, когда обнаруживается, что атака имеет уровень безопасности ниже заявленного. Однако не все такие атаки практичны: большинство продемонстрированных в настоящее время атак занимают менее 2 40 операций, что соответствует нескольким часам на среднем ПК. Самой дорогостоящей продемонстрированной атакой на хэш-функции является атака 2 61.2 на SHA-1, которая заняла 2 месяца на 900 GTX 970 GPU и стоила 75 000 долларов США (хотя исследователи подсчитали, что для обнаружения коллизии потребовалось всего 11 000 долларов США). [18]
Омассон проводит границу между практическими и непрактичными атаками в 2 80 операциях. Он предлагает новую терминологию: [19]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite book}}
: CS1 maint: другие ( ссылка ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )