До сих пор я только видел, что это использовало в протоколах согласования ключей и цифровых подписях. Это может использоваться как RSA для фактического шифрования данных? Есть ли какие-либо библиотеки для этого?
Отредактированный:
Мне нужно что-то как RSA. Зашифруйте данные с открытым ключом получателей поэтому позже, он может дешифровать его со своим закрытым ключом.
Я знаю, что ECDH может использоваться, чтобы отправить секретное значение кому-то, но Вы не решаете то, какие данные отправляются. В отличие от "регулярного" DH с ECDH получающееся секретное значение всегда является тем же, так как это только зависит от пар ключей. Я предполагаю, что мог использовать это значение в качестве ключа к симметричному шифру и зашифровать еще один ключ, который выбран мной, и зашифруйте данные с тем ключом (если я хочу поддерживать несколько получателей). Действительно ли это - хороший путь?
Его можно использовать с конструкцией в стиле Эль-Гамаля для шифрования битов. Более современным примером этого является схема IES , в вашем случае - ECIES. Bouncycastle поддерживает это с помощью класса IESEngine . В частности, первый конструктор делает то, что вы, кажется, пытаетесь сделать.
Подобно RSA, ECC может использоваться для шифрования данных. Фактически, этот режим используется для протоколов ключей.
Как и RSA, ECC является относительно медленным, поэтому его чаще всего используют для согласования ключей сеанса с использованием ECC и переключения на симметричные шифры после выбора одного из них.