как использовать закрытый ключ для шифрования данных в API веб-криптографии

Я следовал учебнику, чтобы использовать открытый ключ для шифрования данных и использования закрытый ключ для расшифровки данных в браузере.
Но когда я пытаюсь использовать закрытый ключ для шифрования данных, возникает ошибка Uncaught (in promise) DOMException: key.usages does not permit this operation.
Как использовать закрытый ключ для шифрования данных в API веб-криптографии?
И я также ищу библиотеку javascript, которая позволяет мне генерировать пары ключей RSA, шифровать и расшифровывать данные в браузере. Я нашел некоторую библиотеку javascript RSA, но все они должны использовать команды open-ssl для создания пар ключей RSA.


person user5440753    schedule 03.05.2016    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что 1) он слишком широк, 2) не содержит кода и 3) запрашивает рекомендацию по библиотеке.   -  person President James K. Polk    schedule 04.05.2016
comment
@user5440753 user5440753 Я уже работаю над библиотекой, которая позволит вам легко и плавно генерировать пары ключей RSA прямо в JavaScript с помощью мощного генератора псевдослучайных чисел, созданного поверх WebCrypto API.   -  person Peter Bielak    schedule 08.08.2016


Ответы (1)


Вы не можете шифровать с помощью закрытого ключа в API-интерфейсах Web Crypto.

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

Шифрование данных с помощью закрытого ключа позволяет публике убедиться, что данные были зашифрованы кем-то, у кого есть закрытый ключ. Это основа для криптографических подписей. Но поскольку шифрование данных с помощью RSA требует больших вычислительных ресурсов, вместо того, чтобы шифровать весь блок данных, мы обычно берем криптографический хэш и просто шифруем хэш.

API-интерфейсы Web Crypto сгенерируют для вас ключи RSA, а ссылка, которую вы предоставили, даже показывает, как это сделать.

person AusIV    schedule 10.12.2016