Поделиться через


Асимметричные ключи

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

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

Если закрытый ключ используется для подписи сообщения, для проверки подписи необходимо использовать открытый ключ из этой пары. Например, если Алиса хочет отправить кому-то сообщение с цифровой подписью, она подписывает сообщение своим закрытым ключом, а другой человек может проверить свою подпись с помощью открытого ключа. Поскольку предположительно доступ к закрытому ключу имеет только Алиса, тот факт, что подпись может быть проверена с помощью открытого ключа Алисы, указывает на то, что Алиса создала подпись.

К сожалению, алгоритмы с открытым ключом работают очень медленно, примерно в 1000 раз медленнее, чем симметричные алгоритмы. Использовать их для шифрования больших объемов данных нецелесообразно. На практике алгоритмы открытых ключей используются для шифрования ключей сеанса. Симметричные алгоритмы используются для шифрования и расшифровки большинства данных.

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

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

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

Все ключи в CryptoAPI хранятся в CSP. Поставщики служб конфигурации также отвечают за создание ключей, их уничтожение и использование для выполнения различных криптографических операций. Экспорт ключей из CSP для их отправки другим пользователям рассматривается в разделе Хранилище криптографических ключей и Exchange.