Ключ в криптографии — это фрагмент информации, обычно строка цифр или букв, которая хранится в файле, который при обработке криптографическим алгоритмом может кодировать или декодировать криптографические данные. В зависимости от используемого метода ключ может быть разного размера и разновидности, но во всех случаях надежность шифрования зависит от безопасности поддерживаемого ключа. Надежность безопасности ключа зависит от его алгоритма, размера ключа, генерации ключа и процесса обмена ключами.
Ключ — это то, что используется для шифрования данных из открытого текста в зашифрованный текст . [1] Существуют различные методы использования ключей и шифрования.
Симметричная криптография подразумевает использование одного и того же ключа как для шифрования, так и для дешифрования. [2]
Асимметричная криптография имеет отдельные ключи для шифрования и дешифрования. [3] [4] Эти ключи известны как открытый и закрытый ключи соответственно. [5]
Поскольку ключ защищает конфиденциальность и целостность системы, важно хранить его в тайне от неавторизованных лиц. При криптографии с открытым ключом только закрытый ключ должен храниться в тайне, но при симметричной криптографии важно сохранять конфиденциальность ключа. Принцип Керкхоффа гласит, что вся безопасность криптографической системы основана на секретности ключа. [6]
Размер ключа — это количество бит в ключе, определенное алгоритмом. Этот размер определяет верхнюю границу безопасности криптографического алгоритма. [7] Чем больше размер ключа, тем больше времени пройдет, прежде чем ключ будет скомпрометирован атакой методом подбора. Поскольку идеальная секретность невозможна для ключевых алгоритмов, исследования теперь больше сосредоточены на вычислительной безопасности.
Раньше ключи должны были быть длиной не менее 40 бит, однако с развитием технологий эти ключи взламывались все быстрее и быстрее. В ответ ограничения на симметричные ключи были усилены и стали больше по размеру.
В настоящее время обычно используется 2048-битный RSA [8] , что достаточно для современных систем. Однако все текущие размеры ключей будут быстро взломаны мощным квантовым компьютером. [ необходима цитата ]
«Ключи, используемые в криптографии с открытым ключом, имеют некоторую математическую структуру. Например, открытые ключи, используемые в системе RSA, являются произведением двух простых чисел. Таким образом, системы с открытым ключом требуют более длинных ключей, чем симметричные системы, для эквивалентного уровня безопасности. 3072 бита — это рекомендуемая длина ключа для систем, основанных на факторизации и целочисленных дискретных логарифмах, которые стремятся иметь безопасность, эквивалентную 128-битному симметричному шифру». [9]
Чтобы предотвратить угадывание ключа, ключи должны генерироваться случайным образом и содержать достаточную энтропию . Проблема того, как безопасно генерировать случайные ключи, сложна и решалась многими способами различными криптографическими системами. Ключ может быть напрямую сгенерирован с использованием выходных данных генератора случайных битов (RBG), системы, которая генерирует последовательность непредсказуемых и несмещенных битов. [10] RBG может использоваться для непосредственного создания либо симметричного ключа, либо случайного выхода для генерации асимметричной пары ключей. В качестве альтернативы, ключ также может быть косвенно создан во время транзакции согласования ключей, из другого ключа или из пароля. [11]
Некоторые операционные системы включают инструменты для «сбора» энтропии из времени непредсказуемых операций, таких как движения головки дисководов. Для производства небольших объемов ключевого материала обычные игральные кости являются хорошим источником высококачественной случайности.
Безопасность ключа зависит от того, как происходит обмен ключом между сторонами. Необходимо установить защищенный канал связи, чтобы посторонние не могли получить ключ. Схема установления ключа (или обмен ключами) используется для передачи ключа шифрования между субъектами. Соглашение о ключах и транспортировка ключей — это два типа схемы обмена ключами, которые используются для удаленного обмена между субъектами. В схеме соглашения о ключах секретный ключ, который используется между отправителем и получателем для шифрования и дешифрования информации, настраивается для отправки косвенно. Все стороны обмениваются информацией (общим секретом), которая позволяет каждой стороне получить материал секретного ключа. В схеме транспортировки ключей зашифрованный материал ключа, выбранный отправителем, транспортируется получателю. В обеих схемах могут использоваться методы как симметричного, так и асимметричного ключа. [11]
Обмен ключами Диффи –Хеллмана и Ривеста-Шамира-Адлемана (RSA) являются двумя наиболее широко используемыми алгоритмами обмена ключами. [12] В 1976 году Уитфилд Диффи и Мартин Хеллман построили алгоритм Диффи–Хеллмана , который был первым алгоритмом открытого ключа. Протокол обмена ключами Диффи–Хеллмана позволяет обмениваться ключами по незащищенному каналу путем электронной генерации общего ключа между двумя сторонами. С другой стороны, RSA является формой асимметричной ключевой системы, которая состоит из трех этапов: генерация ключа, шифрование и расшифровка. [12]
Подтверждение ключа обеспечивает уверенность между получателем подтверждения ключа и поставщиком в том, что общие ключевые материалы верны и установлены. Национальный институт стандартов и технологий рекомендует интегрировать подтверждение ключа в схему установления ключа для проверки ее реализации. [11]
Управление ключами касается генерации, создания, хранения, использования и замены криптографических ключей. Система управления ключами (KMS) обычно включает три этапа создания, хранения и использования ключей. Основа безопасности для генерации, хранения, распространения, использования и уничтожения ключей зависит от успешных протоколов управления ключами. [13]
Пароль — это запомненная последовательность символов, включая буквы, цифры и другие специальные символы, которые используются для проверки личности. Он часто создается пользователем-человеком или программным обеспечением для управления паролями для защиты личной и конфиденциальной информации или генерации криптографических ключей. Пароли часто создаются для запоминания пользователями и могут содержать неслучайную информацию, такую как словарные слова. [11] С другой стороны, ключ может помочь усилить защиту пароля, реализуя криптографический алгоритм, который трудно угадать или полностью заменить пароль. Ключ генерируется на основе случайных или псевдослучайных данных и часто может быть нечитаемым для людей. [14]
Пароль менее безопасен, чем криптографический ключ из-за его низкой энтропии, случайности и свойств, доступных для чтения человеком. Однако пароль может быть единственными секретными данными, которые доступны криптографическому алгоритму для обеспечения информационной безопасности в некоторых приложениях, таких как защита информации на устройствах хранения. Таким образом, детерминированный алгоритм, называемый функцией вывода ключа (KDF), использует пароль для генерации безопасного криптографического ключевого материала для компенсации слабости пароля. При генерации могут использоваться различные методы, такие как добавление соли или растяжение ключа. [11]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь )