Введение
Количество бит в ключе, используемом криптографическим алгоритмом.
В криптографии размер ключа или длина ключа относится к количеству бит в ключе, используемом криптографическим алгоритмом (например, шифром). Длина ключа определяет верхний предел безопасности алгоритма (то есть, логарифмическую меру самой быстрой известной атаки на алгоритм), поскольку безопасность всех алгоритмов может быть скомпрометирована перебором. В идеале, нижний предел безопасности алгоритма по замыслу равен длине ключа (то есть, конструкция алгоритма не снижает степень безопасности, присущую длине ключа). Большинство алгоритмов с симметричным ключом разработаны таким образом, чтобы их безопасность соответствовала длине ключа. Однако после разработки может быть обнаружена новая атака. Например, Triple DES был разработан с 168-битным ключом, но теперь известна атака со сложностью 2<sup>112</sup> (то есть, Triple DES теперь имеет только 112 бит безопасности, и из 168 бит ключа атака сделала 56 бит «неэффективными» с точки зрения безопасности). Тем не менее, пока безопасность (понимаемая как «объем усилий, необходимых для получения доступа») достаточна для конкретного приложения, не имеет значения, совпадают ли длина ключа и фактическая безопасность. Это особенно важно для асимметричных алгоритмов, поскольку ни один из известных алгоритмов не обладает этим свойством; криптография на эллиптических кривых наиболее близка к этому, обеспечивая эффективную безопасность примерно в половину длины ключа.
In cryptography, key size or key length refers to the number of bits in a key used by a cryptographic algorithm (such as a cipher). Key length defines the upper bound on an algorithm's security (i. e. a logarithmic measure of the fastest known attack against an algorithm), because the security of all algorithms can be violated by brute force attacks. Ideally, the lower bound on an algorithm's security is by design equal to the key length (that is, the algorithm's design does not detract from the degree of security inherent in the key length). Most symmetric key algorithms are designed to have security equal to their key length. However, after design, a new attack might be discovered. For instance, Triple DES was designed to have a 168 bit key, but an attack of complexity 2112 is now known (i. e. Triple DES now only has 112 bits of security, and of the 168 bits in the key the attack has rendered 56 'ineffective' towards security). Nevertheless, as long as the security (understood as "the amount of effort it would take to gain access") is sufficient for a particular application, then it does not matter if key length and security coincide. This is important for asymmetric key algorithms, because no such algorithm is known to satisfy this property; elliptic curve cryptography comes the closest with an effective security of roughly half its key length.
Значение
Ключи используются для управления работой шифра, так что только правильный ключ может преобразовать зашифрованный текст (шифротекст) в открытый текст. Все широко используемые шифры основаны на общеизвестных алгоритмах или имеют открытый исходный код, и поэтому безопасность системы определяется исключительно сложностью получения ключа, при условии отсутствия аналитической атаки (то есть "структурной слабости" в используемых алгоритмах или протоколах) и при условии, что ключ не стал доступен иным путем (например, в результате кражи, вымогательства или компрометации компьютерных систем). Широко распространенное представление о том, что безопасность системы должна зависеть только от ключа, было явно сформулировано Огюстом Керкхоффсом (в 1880-х годах) и Клодом Шенноном (в 1940-х годах); эти утверждения известны как принцип Керкхоффса и максима Шеннона соответственно. Следовательно, ключ должен быть достаточно большим, чтобы атака полным перебором (возможная против любого алгоритма шифрования) была невыполнимой – то есть требовала бы чрезмерно много времени и/или памяти для осуществления. Работа Шеннона в области теории информации показала, что для достижения так называемой "идеальной секретности" длина ключа должна быть не меньше длины сообщения и использоваться только один раз (этот алгоритм называется одноразовым шифром). Учитывая это и практическую сложность управления такими длинными ключами, современная криптографическая практика отказалась от идеальной секретности как обязательного требования к шифрованию и вместо этого сосредоточилась на вычислительной безопасности, при которой вычислительные затраты на взлом зашифрованного текста должны быть непомерно высоки для злоумышленника.
Размер ключа и система шифрования
Шифровальные системы часто группируются по семействам. Распространенные семейства включают симметричные системы (например, AES) и асимметричные системы (например, RSA и криптография на эллиптических кривых [ECC]). Их также можно группировать в соответствии с центральным используемым алгоритмом (например, ECC и шифры Фейстеля). Поскольку каждый из этих алгоритмов обладает различной степенью криптографической сложности, для достижения одного и того же уровня безопасности обычно используются ключи разной длины, в зависимости от выбранного алгоритма. Например, безопасность, обеспечиваемая 1024-битным ключом RSA, приблизительно эквивалентна безопасности 80-битного ключа в симметричном алгоритме. Разложенное число имело особую форму; специальное решето числового поля неприменимо к ключам RSA. Вычисление примерно соответствует взлому 700-битного ключа RSA. Однако это может служить предупреждением о том, что 1024-битные ключи RSA, используемые в безопасной онлайн-коммерции, следует прекратить использовать, поскольку в обозримом будущем они могут стать уязвимыми. Профессор криптографии Арьен Ленстра отметил, что "в прошлый раз нам потребовалось девять лет, чтобы обобщить результат с особого числа на сложное для факторизации число общего вида", и отвечая на вопрос, мертвы ли 1024-битные ключи RSA, сказал: "Ответ на этот вопрос – однозначное да". Атака Logjam 2015 года выявила дополнительные риски, связанные с использованием обмена ключами Диффи-Хеллмана, когда используется только один или несколько общих простых модулей длиной 1024 бита или меньше. Эта практика, довольно распространенная в то время, позволяет скомпрометировать большие объемы данных, атакуя небольшое количество простых чисел.
Нападение грубой силы
Даже если симметричный шифр в настоящее время невозможно взломать, используя структурные слабости в его алгоритме, может быть возможно перебрать все пространство ключей методом, известным как атака полным перебором. Поскольку для атаки полным перебором более длинных симметричных ключей требуется экспоненциально больше вычислительных ресурсов, достаточно длинный симметричный ключ делает этот вид атаки непрактичным. При длине ключа n бит существует 2n возможных ключей. Это число очень быстро растет с увеличением n. Огромное количество операций (2128), необходимое для перебора всех возможных 128-битных ключей, в обозримом будущем считается недостижимым для традиционных цифровых вычислительных средств. Однако квантовый компьютер, способный выполнять алгоритм Гровера, сможет осуществлять поиск по пространству ключей более эффективно. Квантовый компьютер подходящего размера может снизить стойкость 128-битного ключа до уровня 64-битной защиты, что примерно эквивалентно DES. Это одна из причин, по которой AES поддерживает длины ключей 256 бит и более.
Длина ключей симметричного алгоритма
Шифр IBM Lucifer был выбран в 1974 году в качестве основы для будущего стандарта шифрования данных. Длина ключа Lucifer была уменьшена с 128 до 56 бит, что, по мнению АНБ и NIST, было достаточно для защиты не связанных с правительством организаций в то время. АНБ располагает значительными вычислительными ресурсами и большим бюджетом; некоторые криптографы, включая Уитфилда Диффи и Мартина Хеллмана, выражали обеспокоенность тем, что это сделало шифр настолько слабым, что компьютеры АНБ смогут взломать ключ DES за один день методом полного перебора с использованием параллельных вычислений. АНБ опровергало это утверждение, заявляя, что для взлома DES методом полного перебора потребуется "около 91 года". Однако к концу 90-х стало очевидно, что DES можно взломать за несколько дней, используя специализированное оборудование, доступное крупным корпорациям или правительствам. В книге Cracking DES (O'Reilly and Associates) описывается успешный взлом 56-битного DES в 1998 году группой по защите цифровых прав с ограниченными ресурсами методом полного перебора; см. EFF DES cracker. Еще до этой демонстрации 56 бит считались недостаточной длиной ключа для симметричных алгоритмов общего назначения. По этой причине DES в большинстве приложений безопасности был заменен на Triple DES, обеспечивающий 112 бит безопасности при использовании 168-битных ключей (тройной ключ). С 2015 года рекомендации NIST гласят, что "использование ключей, обеспечивающих менее 112 бит прочности для согласования ключей, теперь запрещено". NIST одобрил симметричные алгоритмы шифрования, включая Triple DES с тремя ключами и AES. Одобрение для Triple DES с двумя ключами и Skipjack было отозвано в 2015 году; алгоритм Skipjack, разработанный АНБ для программы Fortezza, использует 80-битные ключи.
Длина ключей асимметричного алгоритма
Эффективность криптосистем с открытым ключом зависит от вычислительной и теоретической сложности определенных математических задач, таких как факторизация целых чисел. Решение этих задач требует значительных затрат времени, но обычно быстрее, чем перебор всех возможных ключей методом грубой силы. Таким образом, для обеспечения эквивалентной устойчивости к атакам асимметричные ключи должны быть длиннее, чем ключи симметричных алгоритмов. Считается, что наиболее распространенные методы будут уязвимы для достаточно мощных квантовых компьютеров в будущем. С 2015 года NIST рекомендует использовать ключи RSA длиной не менее 2048 бит, что является обновлением широко принятой рекомендации о минимальной длине ключа в 1024 бит, действующей как минимум с 2002 года. 1024-битные ключи RSA эквивалентны по прочности 80-битным симметричным ключам, 2048-битные ключи RSA – 112-битным симметричным ключам, 3072-битные ключи RSA – 128-битным симметричным ключам, а 15360-битные ключи RSA – 256-битным симметричным ключам. В 2003 году RSA Security заявила, что 1024-битные ключи, вероятно, станут взламываемыми в период с 2006 по 2010 год, в то время как 2048-битных ключей будет достаточно до 2030 года. По состоянию на 2020 год самым крупным RSA ключом, публично известным как взломанный, является RSA-250 с длиной 829 бит. Алгоритм Диффи-Хеллмана с конечным полем обладает примерно такой же прочностью ключа, как RSA при одинаковой длине ключа. Устойчивость алгоритма Диффи-Хеллмана к взлому основана на задаче дискретного логарифмирования, которая связана с задачей факторизации целых чисел, лежащей в основе прочности RSA. Таким образом, 2048-битный ключ Диффи-Хеллмана обладает примерно такой же прочностью, как и 2048-битный ключ RSA. Криптография на эллиптических кривых (ECC) представляет собой альтернативный набор асимметричных алгоритмов, обеспечивающих эквивалентный уровень безопасности при использовании более коротких ключей, требующих примерно вдвое больше бит, чем эквивалентный симметричный алгоритм. 256-битный ключ Эллиптического криптографического Диффи-Хеллмана (ECDH) обеспечивает примерно такой же уровень безопасности, как и 128-битный ключ AES. Ранее АНБ рекомендовало использовать ECC длиной 256 бит для защиты секретной информации уровня SECRET и 384 бита для TOP SECRET; в 2015 году было объявлено о планах перехода к квантовостойким алгоритмам к 2024 году, и до этого времени рекомендуется использовать 384 бита для всей секретной информации.