Ключ (криптография) - Key (cryptography)

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

Потребность в секретности

При разработке систем безопасности разумно предположить, что детали криптографического алгоритма уже доступны злоумышленнику. Это известно как Принцип Керкхоффа — "только секретность ключа обеспечивает безопасность", или переформулировано как Изречение Шеннона, "враг знает систему". история криптографии предоставляет свидетельства того, что может быть сложно сохранить в секрете детали широко используемого алгоритма (см. безопасность через безвестность ). Ключ часто легче защитить (обычно это небольшая часть информации), чем алгоритм шифрования, и его легче изменить в случае компрометации. Таким образом, безопасность системы шифрования в большинстве случаев зависит от секретности ключа.[2]

Попытка сохранить ключи в секрете - одна из самых сложных проблем практической криптографии; увидеть ключевой менеджмент. Злоумышленник, получивший ключ (например, путем кражи, вымогательства, дайвинг в мусорном контейнере, нападение, пытки или социальная инженерия ) может восстанавливать исходное сообщение из зашифрованных данных и выдавать подписи.

Ключевой объем

Ключи генерируются для использования с заданным набор алгоритмов, называется криптосистема. Алгоритмы шифрования, которые используют один и тот же ключ как для шифрования, так и для дешифрования, известны как алгоритмы с симметричным ключом. Новый класс криптографических алгоритмов с «открытым ключом» был изобретен в 1970-х годах. Эти асимметричные ключевые алгоритмы используйте пару ключей или пара ключей- открытый ключ и частный. Открытые ключи используются для шифрования или проверки подписи; частные расшифровывают и подписывают. Конструкция такова, что узнать закрытый ключ чрезвычайно сложно, даже если известен соответствующий открытый ключ. Поскольку этот дизайн требует длительных вычислений, пара ключей часто используется для обмен симметричный ключ на лету, который будет использоваться только для текущего сеанса. ЮАР и DSA две популярные криптосистемы с открытым ключом; Ключи DSA можно использовать только для подписи и проверки, но не для шифрования.

Право собственности и отзыв

Отчасти безопасность, обеспечиваемая криптографией, связана с уверенностью в том, кто подписал данный документ или кто отвечает на другой стороне соединения. Если предположить, что ключи не скомпрометированы, этот вопрос состоит в определении владельца соответствующего открытого ключа. Чтобы иметь возможность узнать владельца ключа, открытые ключи часто дополняются такими атрибутами, как имена, адреса и подобные идентификаторы. Упакованная коллекция открытого ключа и его атрибутов может быть подписана цифровой подписью одним или несколькими сторонниками. в PKI модель, получившийся объект называется свидетельство и подписан центр сертификации (CA). в PGP Модель, она по-прежнему называется «ключом» и подписывается разными людьми, которые лично проверяли соответствие атрибутов предмету.[3]

В моделях PKI и PGP скомпрометированные ключи могут быть отозваны. Отзыв имеет побочный эффект, заключающийся в нарушении связи между атрибутами ключа и субъектом, которые могут оставаться действительными. Чтобы иметь возможность восстановиться после такого сбоя, подписанты часто используют разные ключи для повседневных задач: Подписание с помощью промежуточный сертификат (для PKI) или подключ (для PGP) позволяет хранить основной закрытый ключ в автономном сейфе.

Удаление ключа с целью сделать данные недоступными называется крипто-шрединг.

Ключевые размеры

Для одноразовый блокнот Системный ключ должен быть не меньше длины сообщения. В системах шифрования, использующих шифр По алгоритму сообщения могут быть намного длиннее ключа. Однако ключ должен быть достаточно длинным, чтобы злоумышленник не мог попробовать все возможные комбинации.

Длина ключа 80 бит обычно считается минимальной для надежной защиты с симметричными алгоритмами шифрования. Обычно используются 128-битные ключи, которые считаются очень надежными. Увидеть размер ключа статья для более полного обсуждения.

Ключи, используемые в криптография с открытым ключом имеют некоторую математическую структуру. Например, открытые ключи, используемые в ЮАР системы являются произведением двух простых чисел. Таким образом, системы с открытым ключом требуют большей длины ключа, чем симметричные системы для эквивалентной уровень безопасности. 3072 бита - рекомендуемая длина ключа для систем, основанных на факторинг и целое число дискретные логарифмы которые стремятся обеспечить безопасность, эквивалентную 128-битному симметричному шифру. Криптография на эллиптических кривых могут позволить использовать ключи меньшего размера для эквивалентной защиты, но эти алгоритмы были известны только относительно короткое время, и текущие оценки сложности поиска их ключей могут не сохраниться. Еще в 2004 году сообщение, зашифрованное с использованием алгоритма эллиптической кривой с 109-битным ключом, было взломано грубой силой.[4] Текущее практическое правило - использовать ключ ECC в два раза дольше желаемого уровня безопасности симметричного ключа. Кроме случайного одноразовый блокнот, безопасность этих систем не была доказано математически по состоянию на 2018 год, поэтому теоретический прорыв может сделать все, что было зашифровано, открытой книгой (см. P против проблемы NP ). Это еще одна причина ошибиться в выборе более длинных клавиш.

Выбор ключа

Чтобы ключ не был угадан, ключи должны быть созданы правильно. случайно и содержать достаточно энтропия. Проблема того, как безопасно генерировать действительно случайные ключи, сложна и многими способами решается различными криптографическими системами. Существует RFC на генерирование случайности (RFC 4086, Требования к случайности для безопасности). Некоторые операционные системы включают инструменты для «сбора» энтропии по времени непредсказуемых операций, таких как дисковод движения головы. Для производства небольшого количества ключевого материала обычный игральная кость обеспечить хороший источник случайности высокого качества.

Ключ против пароля

Для большинства целей компьютерной безопасности и для большинства пользователей «ключ» не является синонимом «пароля» (или «кодовая фраза "), хотя на самом деле пароль может использоваться в качестве ключа. Основное практическое различие между ключами и паролями заключается в том, что последние предназначены для создания, чтения, запоминания и воспроизведения пользователем-человеком (хотя пользователь может делегировать эти Задачи программного обеспечения для управления паролями). Ключ, напротив, предназначен для использования программным обеспечением, реализующим криптографический алгоритм, и поэтому не требуется его удобочитаемость и т. д. На самом деле, большинство пользователей в большинстве случаев не знают даже о существовании ключей, используемых от их имени компонентами безопасности их повседневных программных приложений.

Если пароль является используется в качестве ключа шифрования, то в хорошо спроектированной криптосистеме он не будет использоваться как таковой сам по себе. Это связано с тем, что пароли обычно удобочитаемы и, следовательно, могут быть не особенно надежными. Чтобы компенсировать это, хорошая криптосистема будет использовать пароль, действующий как ключ не для выполнения самой основной задачи шифрования, а для того, чтобы действовать как вход для ключевая деривационная функция (KDF). Этот KDF использует пароль в качестве отправной точки, из которой он затем сам сгенерирует фактический ключ безопасного шифрования. Различные методы, такие как добавление поваренная соль и при генерации может использоваться растяжение ключа.

Смотрите также

использованная литература

  1. ^ «Что такое криптография? - Определение с сайта WhatIs.com». ПоискБезопасность. Получено 2019-07-20.
  2. ^ «Квантовая генерация ключей от ID Quantique». ID Quantique. Получено 2019-07-20.
  3. ^ Мэтью Коупленд; Йорген Гран; Дэвид А. Уиллер (1999). Майк Эшли (ред.). «Справочник по конфиденциальности GNU». GnuPG. Архивировано из оригинал 12 апреля 2015 г.. Получено 14 декабря 2013.
  4. ^ Биджоли, Хоссейн (2004). Интернет-энциклопедия. Джон Вили. п. 567. ISBN  0-471-22201-1 - через Google Книги.