Как создать общий 128-битный ключ AES-GCM с помощью ECDH?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как создать общий 128-битный ключ AES-GCM с помощью ECDH?

Сообщение Anonymous »

Учитывая предоставленный открытый ключ, плюс мой собственный закрытый ключ, как мне генерировать «общий 128-битный ключ AES-GCM ... с использованием ECDH», используя что-то подходящее для JVM и /или Android? Частично это включает в себя «соглашение ключей», описанное как: < /p>

Клиент и транспортное средство получают общий 128-битный ключ AES-GCM с использованием ECDH: < /p>

Код: Выделить всё

S = (Sx, Sy) = ECDH(c, V) = ECDH(v, C)
K = SHA1(BIG_ENDIAN(Sx, 32))[:16]
< /code>
< /blockquote>
Я использую эту библиотеку Kotlin для доступа к API флота. Эта библиотека специально не реализует приведенный выше алгоритм. Вместо этого потребители своей библиотеки должны предоставить его сами, в форме реализации SharedSecretfetcher < /code>: < /p>

SharedSecretFetcher< /code> ... принимает открытый ключ транспортного средства, который предоставит SDK, и требуется, что вы используете это для возврата шестнадцатеричного дигеста SHA1 Sha1 Share Secret.val sharedSecretFetcher = { vehiclePublicKey ->
/** A pseudocode example:
val ecdh = createECDH(curveName = "p256")
ecdh.setPrivateKey(YOUR_CLIENT_PRIVATE_KEY)
val sharedSecret = ecdh.computeSecretAsHex(vehiclePublicKey)
sharedSecret.sha1Hash().toHex()
*/
}
Примечательно, что реализация createecdh () и computesrecretashex () остается в качестве упражнения для читателя. Пример кода нет, и я не определил потребителя этой библиотеки. < /P>
Tesla показывает, что использует OpenSSL в командной строке для этого: < /p>

Код: Выделить всё

export K=$(openssl pkeyutl -derive -inkey client.key -peerkey vehicle.pem \
| openssl dgst -sha1 -binary \
| head -c 16 \
| xxd -p)
echo $K
1b2fce19967b79db696f909cff89ea9a
Я также вижу этот Javascript и этот питон, который, кажется, реализует этот алгоритм. Java/Kotlin Friendy для достижения того же.

Подробнее здесь: https://stackoverflow.com/questions/795 ... using-ecdh
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как создать общий 128-битный ключ AES-GCM с помощью ECDH?
    Anonymous » » в форуме JAVA
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как зашифровать AES-GCM в программировании на C Sharp? Я хочу зашифровать и расшифровать AES-GCM на языке C Sharp. Но я
    Anonymous » » в форуме C#
    0 Ответы
    53 Просмотры
    Последнее сообщение Anonymous
  • Ожидался 512-битный ключ, но был предоставлен 256-битный ключ
    Anonymous » » в форуме JAVA
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка файла, зашифрованного aes-128-gcm, с помощью openssl_decrypt
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Расшифровка файла, зашифрованного aes-128-gcm, с помощью openssl_decrypt
    Anonymous » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»