Введение
Используется для шифрования или дешифрования шифротекста. Ключ в криптографии — это фрагмент информации, как правило, последовательность чисел или букв, хранящаяся в файле, который при обработке криптографическим алгоритмом позволяет шифровать или дешифровать криптографические данные. В зависимости от используемого метода, ключ может иметь различные размеры и типы, но во всех случаях прочность шифрования зависит от сохранения конфиденциальности ключа. Устойчивость ключа к взлому определяется используемым алгоритмом, размером ключа, способом его генерации и процессом обмена ключами.
A key in cryptography is a piece of information, usually a string of numbers or letters that are stored in a file, which, when processed through a cryptographic algorithm, can encode or decode cryptographic data. Based on the used method, the key can be different sizes and varieties, but in all cases, the strength of the encryption relies on the security of the key being maintained. A key's security strength is dependent on its algorithm, the size of the key, the generation of the key, and the process of key exchange.
Область применения
Ключ — это то, что используется для шифрования данных, преобразуя их из открытого текста в зашифрованный. Существуют различные способы применения ключей и методов шифрования.
Симметрическая криптография
Симметричная криптография — это использование одного и того же ключа для шифрования и дешифрования данных.
Асимметричная криптография
Асимметричная криптография использует разные ключи для шифрования и расшифровки. Эти ключи называются открытым и закрытым соответственно.
Цель
Поскольку ключ защищает конфиденциальность и целостность системы, важно хранить его в тайне от несанкционированных лиц. В криптографии с открытым ключом необходимо сохранять в секрете только закрытый ключ, а в симметричной криптографии – конфиденциальность ключа. Принцип Керкгоффса утверждает, что вся безопасность криптографической системы основана на секретности ключа.
Размеры ключей
Размер ключа — это количество бит в ключе, определяемое алгоритмом. Этот размер определяет верхний предел безопасности криптографического алгоритма. Чем больше размер ключа, тем больше времени потребуется для его взлома методом полного перебора. Поскольку абсолютная секретность недостижима для ключевых алгоритмов, современные исследования сосредоточены на вычислительной безопасности. Ранее требовалось, чтобы ключи имели длину не менее 40 бит, однако с развитием технологий эти ключи стали взламываться все быстрее и быстрее. В ответ на это ограничения на симметричные ключи были усилены, чтобы увеличить их размер. В настоящее время широко используется 2048-битный RSA, которого достаточно для современных систем. Однако существующие размеры ключей могут быть быстро взломаны с помощью мощного квантового компьютера. Ключи, используемые в криптографии с открытым ключом, обладают определенной математической структурой. Например, открытые ключи, используемые в системе RSA, являются произведением двух простых чисел. Поэтому системы с открытым ключом требуют большей длины ключей, чем симметричные системы, для достижения эквивалентного уровня безопасности. 3072 бита — рекомендуемая длина ключа для систем, основанных на факторизации и дискретном логарифмировании целых чисел, которые стремятся обеспечить безопасность, эквивалентную 128-битному симметричному шифру.
Генерация ключей
Чтобы предотвратить угадывание ключа, ключи должны генерироваться случайным образом и содержать достаточную энтропию. Проблема безопасной генерации случайных ключей сложна и решалась различными криптографическими системами. Ключ может быть сгенерирован напрямую, используя выходные данные генератора случайных бит (RBG) – системы, генерирующей последовательность непредсказуемых и несмещенных бит. RBG может использоваться для непосредственного получения как симметричного ключа, так и случайных данных для генерации асимметричной пары ключей. Альтернативно, ключ может быть создан косвенно в процессе согласования ключей, из другого ключа или из пароля. Некоторые операционные системы включают инструменты для "сбора" энтропии на основе времени выполнения непредсказуемых операций, таких как перемещение головок дискового накопителя. Для получения небольшого объема ключевого материала обычные игральные кости служат хорошим источником высококачественной случайности.
Система учреждения
Безопасность ключа зависит от способа обмена ключами между сторонами. Для предотвращения получения ключа посторонними необходимо установить защищенный канал связи. Схема установления ключа (или обмена ключами) используется для передачи ключа шифрования между участниками. Существуют два типа схем обмена ключами: согласование ключа и транспортировка ключа, которые используются для удаленного обмена между участниками. В схеме согласования ключа секретный ключ, используемый отправителем и получателем для шифрования и расшифровки информации, устанавливается для косвенной передачи. Все участники обмениваются информацией (общим секретом), позволяющей каждому участнику вывести секретный ключ. В схеме транспортировки ключа зашифрованный материал ключа, выбранный отправителем, передается получателю. В обеих схемах могут использоваться как симметричные, так и асимметричные методы шифрования. В 1976 году Уитфилд Диффи и Мартин Хеллман разработали алгоритм Диффи-Хеллмана, который стал первым алгоритмом с открытым ключом. Протокол обмена ключами Диффи-Хеллмана позволяет обмениваться ключами по незащищенному каналу путем электронного генерирования общего ключа между двумя сторонами. С другой стороны, RSA представляет собой форму асимметричной системы ключей, состоящую из трех этапов: генерация ключа, шифрование и расшифровка.
Ключ против пароля
Пароль – это запоминаемая последовательность символов, включающая буквы, цифры и другие специальные символы, используемая для подтверждения личности. Он часто создается пользователем или программой для управления паролями для защиты личной и конфиденциальной информации или для генерации криптографических ключей. Пароли часто разрабатываются так, чтобы их можно было запомнить, и могут содержать неслучайные данные, такие как слова из словаря. Пароль менее надежен, чем криптографический ключ, из-за его низкой энтропии, недостаточной случайности и удобочитаемости. Однако в некоторых приложениях, например, при защите информации на устройствах хранения, пароль может быть единственными секретными данными, доступными криптографическому алгоритму для обеспечения безопасности информации. Поэтому детерминированный алгоритм, называемый функцией вывода ключа (KDF), использует пароль для генерации надежного криптографического ключа, компенсируя слабость пароля. В процессе генерации могут применяться различные методы, такие как добавление соли или растяжение ключа.