Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2019(UTC) Сообщений: 6  Откуда: Moscow Сказал(а) «Спасибо»: 2 раз
|
Добрый день. Стоит задача - на открытом ключе пользователя, полученном из сертификата с помощью CryptoPro JCP зашифровать сообщение, которое пользователь должен суметь расшифровать при помощи своего закрытого ключа (Шифрование по ГОСТ 28147).
Подскажите пожалуйста - какой из приложенных к CryptoPro JCP примеров реализации подходит для подобной задачи наилучшим образом? Пример из cmsutil, который принимает на вход массив байтов для шифрования и сертификат пользователя выглядит как наиболее разумный выбор, но возможно есть варианты лучшей реализации?
Возможно ли после шифрования как-нибудь проверить его корректность в случае, если на руках имеется закрытый ключ пользователя в виде файла с расширением .key, не установленный в хранилище? Заранее прошу прощения за возможно глупые вопросы, с реализацией шифрования имею дело впервые.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,098  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 751 раз в 708 постах
|
Здравствуйте. Автор: Sagot86  Подскажите пожалуйста - какой из приложенных к CryptoPro JCP примеров реализации подходит для подобной задачи наилучшим образом?
Рекомендуемый вариант - класс EnvelopedSignature из CAdES.jar, примеры есть в папке Enveloped в samples-sources.jar в дистрибутиве JCP, а также в CAdES-javadoc.jar (в папке javadoc дистрибутива) в описании класса EnvelopedSignature. Шифрование в адрес получателя ключом подписи (key_agreement-структура) или ключом шифрования (key_transport-структура). Автор: Sagot86  Пример из cmsutil, который принимает на вход массив байтов для шифрования и сертификат пользователя выглядит как наиболее разумный выбор, но возможно есть варианты лучшей реализации?
Да, его тоже можно использовать, хотя доработки в нем делаются реже. Последний вариант - низкоуровневый пример PKCS7EnvEphTransport. Автор: Sagot86  Возможно ли после шифрования как-нибудь проверить его корректность в случае, если на руках имеется закрытый ключ пользователя в виде файла с расширением .key, не установленный в хранилище?
Нет, ключ должен быть установлен в место, из которого JCP умеет загружать ключи. |
|
 2 пользователей поблагодарили Евгений Афанасьев за этот пост.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2019(UTC) Сообщений: 6  Откуда: Moscow Сказал(а) «Спасибо»: 2 раз
|
Спасибо за ответ. Еще уточню: получается, что для тестирования корректности шифрования не обязательно даже сохранять куда-то ключи и сертификаты пользователя. Достаточно сгенерировать ключевую пару, создать запрос на сертификат с ее использованием и сохранить результат. После же произвести шифрование с использованием этого сертификата, а затем расшифровку с использованием закрытого ключа из пары? Если это так, то возможно ли сгенерировать ключевую пару без участия пользователя (Биодатчика)? Не нашел как отключить опцию доинициализации в KeyPairGenerator.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,098  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 751 раз в 708 постах
|
Для тестов - да, можно так делать. Без ДСЧ не обойтись, но попробуйте эфемерные ключи использовать, в их алгоритме есть вставка EPH, имена алгоритмов есть в рук-ве разработчика. |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2019(UTC) Сообщений: 6  Откуда: Moscow Сказал(а) «Спасибо»: 2 раз
|
Не могли бы Вы уточнить о каких эфемерных ключах идет речь и что такое ЕРН? Есть ли примеры с генерацией подобных ключей в сэмплах?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,098  Откуда: Крипто-Про Сказал(а) «Спасибо»: 22 раз Поблагодарили: 751 раз в 708 постах
|
EPH - ephemeral, временные ключи, алгоритмы для эфемерных ключей те же, что и у долговременных ключей в примерах, только в названии присутствует EPH, например, JCP.GOST_EPH_DH_2012_256. В названии могу ошибаться, правильные названия в рук-ве программиста. Среди примеров должны быть с использованием эфемерных ключей, нужно поискать по EPH. Отредактировано пользователем 21 ноября 2019 г. 19:56:21(UTC)
| Причина: Не указана |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.11.2019(UTC) Сообщений: 6  Откуда: Moscow Сказал(а) «Спасибо»: 2 раз
|
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close