В настоящее время я сталкиваюсь с ситуацией, когда доступны пары ключей Ed448 (закрытый + открытый ключ), и систему следует расширить с помощью операции Диффи-Хеллмана (ECDH). Прежде всего позвольте мне обобщить то, что я понял до сих пор.
Эд448: Есть алгоритм цифровой подписи на edwards448.
Х448: построена ли функция Диффи-Хеллмана для Curve448.
Кривая448: представляет собой эллиптическую кривую в формате Монтгомери, как указано в RFC7748.
Эдвардс448: Эллиптическая кривая, связанная с Curve448 картой, как указано в RFC7748.
Для Curve25519 я прочитал Curve25519 вместо Ed25519 для обмена ключами? Почему? и для меня это звучало так, как будто можно преобразовать существующий открытый ключ Ed25519 в ключ X25519, применив определенную карту. Почему-то я не очень хорошо знаком со всей используемой здесь математикой. Затем, прочитав еще немного, я нашел Что означает «бирациональная эквивалентность» в криптографическом контексте? что дало мне еще несколько идей. Потом я прочитал RFC7748 снова и увидел, что бирациональная эквивалентность верна и для Curve448. Кроме того, существует определение «edwards448», которое также предоставляет карту между точками кривой Монтгомери и Эдвардса. Используемая карта определяется как:
$$
(u, v) = (\frac{y^2}{x^2}, \frac{(2 - x^2 - y^2)*y}{x^3})
$$
Если я правильно понял приведенные выше ссылки, можно преобразовать открытый ключ в координату, которая будет использоваться в функции X448. Исключением является то, что в случае $х$ из приведенного выше уравнения равно 0, то карта не может быть применена и трансформация невозможна. Кроме того, глава, относящаяся к Curve448 в Эллиптическая кривая Cryptographx Ecc приводит меня в том же направлении, что возможно преобразовать существующий ключевой материал и впоследствии повторно использовать его для X448. Если я правильно понял, закрытый ключ в ECC представляет собой целое число, а не «точку кривой».
Теперь мне любопытно, действительно ли можно преобразовать существующую пару ключей, чтобы ее можно было повторно использовать для ECDH, и как это сделать.Или если нужно "ввести" вторую пару ключей только для ECDH. Поэтому я прошу помощи, так как я новичок в этой теме.