2016-12-22 4 views
2

Так что мне нужно отправить ключ AES нескольким клиентам с их собственными ключами EC, я не могу использовать обмен DH, поскольку ключ должен быть отправлен всем клиентам. Как я могу зашифровать предварительно расширенный ключ AES и зашифровать его с помощью открытого ключа EC?Как вы можете асимметрично шифровать ключ с помощью ECC в Java?

EC: эллиптическая кривая

+0

добро пожаловать в stackoverflow ... что вы пробовали? – DarkSquirrel42

ответ

1

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

Удостоверьтесь, что вы защищаете свои данные в пути, хотя вы можете использовать аутентифицированное шифрование, такое как AES-GCM, чтобы убедиться, что ключ не может быть изменен или извлечен через атаки оскорбления.

Для этого вы можете использовать API Bouncy Castle (легкий), хотя вам может потребоваться изменить текущую реализацию для использования AES-GCM.