Размер ключа

В криптографии и криптосистемах, разме́р ключа́ (также: длина ключа или пространство ключей) — это число бит в ключе, используемом в криптографических операциях, таких как шифрование и подписывание электронной цифровой подписью.

Так, например, если указано, что криптосистема использует ключ шифрования размером 8 бит, это означает, что из 8 разрядов двоичного кода можно получить возможных комбинаций ключей, а, например, длина ключа в 256 бит подразумевает уже комбинаций[1].

Размер ключа не следует путать с количеством символов обычного пароля, а также с символьным представлением открытого или закрытого ключей в асимметричных криптосистемах.

Системы шифрования

Существуют два семейства шифрования: симметричные системы (например, AES) и асимметричные системы (например, RSA). Поскольку каждое из них имеет разный уровень криптографической сложности, обычно для одного и того же уровня безопасности используются ключи разного размера в зависимости от используемого алгоритма. Например, безопасность, обеспечиваемая 1024-битным ключом с использованием асимметричного алгоритма, считается примерно равной безопасности 80-битного ключа в симметричном алгоритме[2].

Степень безопасности криптосистемы, зафиксированная на этапе выпуска, со временем снижается по мере того, как становится доступной бо́льшая вычислительная мощность и более мощные методы математического анализа. По этой причине криптологи, как правило, обращают внимание на индикаторы того, что алгоритм или длина ключа демонстрируют признаки потенциальной уязвимости, чтобы увеличить размеры ключей или перейти на более сложные алгоритмы[3]. Так, например, в 2010 году группе учёных удалось успешно вычислить данные, зашифрованные при помощи криптографического ключа стандарта RSA длиной 768 бит. Что могло быть заблаговременным предупреждением о том, что 1024-битный RSA, используемый с 2007 года, должен быть признан устаревшим, поскольку в ближайшем будущем он может стать уязвимым[4].

Эффективная криптостойкость

Работа Шеннона по теории информации в частности показала, что для получения абсолютно стойкого шифра совершенной секретности длина ключа должна быть не меньше длины сообщения[5]. Из-за практической сложности управления такими длинными ключами, современная криптографическая практика отказалась от понятия совершенной секретности и сосредоточилась на эффективной криптостойкости, при которой вычислительные требования для взлома зашифрованного текста должны быть невыполнимы для атакующего. Таким образом, длина ключа должна быть такова, чтобы атака методом грубой силы стала бы невозможна, то есть выполнялась бы слишком долго.

В симметричных криптосистемах длина ключа указывает на верхний порог безопасности криптосистемы. Поскольку оценка безопасности (или криптостойкости) такой криптосистемы основывается на предположении, что не существует способа атаки более эффективного, чем метод «грубой силы», длину ключа также можно определить как логарифмический показатель числа итераций, необходимых для полного перебора всех ключей[6].

В соответствии с принципом Керкгоффса большинство криптосистем проектируют так, чтобы степень их безопасности полностью определялась длиной ключа и не снижалась конструкцией алгоритма.[7]. Также следует отметить, что заданный изначально порог безопасности вследствие обнаруженной уязвимости может быть снижен. Так, например, Triple DES был разработан для использования со 168-битным ключом, но затем стала известна атака на сложности [8]. То есть нижний порог криптостойкости этой системы снизился до 112. Тем не менее, пока эффективная криптостойкость (то есть количество усилий, которые потребуются для получения доступа) достаточна для применения в конкретном приложении, несовпадение длины ключа с нижним порогом безопасности не имеет практического значения, что нашло подтверждение в рекомендациях NIST[9].

Эффективность криптосистем с асимметричным ключом зависит от неразрешимости или трудности решения той или иной математической задачи по правилам которой генерируется ключ. Например, в случае RSA, атака производится не полным перебором всего пространства ключей, а методом разложения ключа на простые множители[10].

С 2015 года NIST рекомендует минимум 2048-битные ключи для RSA[11]. Например, для DSA или эллиптической криптографии атакующему нужно решать дискретное логарифмическое уравнение. В 2009 году АНБ рекомендовало 256-битный ключ для защиты секретной информации для эллиптической криптографии[12].

Примечания

  1. wolframalpha.com (англ.). Дата обращения: 26 июля 2022. Архивировано 26 июля 2022 года.
  2. Anatomy of a change – Google announces it will double its SSL key sizes – Naked Security (англ.). Дата обращения: 26 июля 2022. Архивировано 15 июня 2022 года.
  3. Researchers: 307-digit key crack endangers 1024-bit RSA (англ.) (24 мая 2007). Дата обращения: 27 июля 2022. Архивировано 22 января 2009 года.
  4. Факториация RSA-768 Архивная копия от 13 декабря 2012 на Wayback Machine
  5. Шеннон К. Работы по теории информации и кибернетике. — М.: Иностранная литература, 1963 г. — 830 с.
  6. Шнайер Б.. Прикладная криптография. 2-е изд. Протоколы, алгоритмы и исходные тексты на языке Си. Глава 7.1 Длина симметричного ключа.
  7. Шнайер Б.. Прикладная криптография. 2-е изд. Протоколы, алгоритмы и исходные тексты на языке Си. Глава 1.1 Алгоритмы и ключи.
  8. Attacking Triple Encryption by Stefan Lucks (англ.). Дата обращения: 27 июля 2022. Архивировано 27 июля 2022 года.
  9. Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher (англ.). Дата обращения: 27 июля 2022. Архивировано 21 июня 2022 года.
  10. Шнайер Б.. Прикладная криптография. 2-е изд. Протоколы, алгоритмы и исходные тексты на языке Си. Глава 7.2 Длина открытого ключа.
  11. NIST Special Publication 800-57 Part 3 Revision 1: Recommendation for Key Management (англ.). Дата обращения: 26 июля 2022. Архивировано 19 июля 2022 года.
  12. NSA Suite B Cryptography (англ.) (15 января 2009). Дата обращения: 26 июля 2022. Архивировано 4 июня 2019 года.