@Tamul

Почему функция ECDH (bitcoin) возвращает два публичных ключа?

Играюсь с функцией генерации открытого ключа по закрытому из статьи Доступно о криптографии на эллиптических кривых
Скрипт на Gitub
Почему на один закрытый ключ функция выдаёт два открытых? И какой из них есть кто?
Пример:
Alice's private key: 0x6cfc11293c8f1ddc4eb121b4a5138d3fa8241162a91b5d2d3cd86c17e9bceb2a
Alice's public key: (0xd618d67c650483a8f7bc785c0271c76dd0d2de14eb123b3b796f1a21fb8ea8c4, 0x9e93b13c39997055f0c74b31d794cd4abf04888d896b25e7c3215eaa6c01278f)

В коде функции point_add результат присваивается как кортежу:
result = (x3 % curve.p, -y3 % curve.p)
И дальше по функциям значения уже парами ходят. А почему их два то? Из одного генерируется публичный ключ, привязанный к приватному, а из другого что? Не могут же два публичных соответствовать одному приватному.
Или может весь питоновский скрипт неправильный и для игр с биткоиновскими ключами нужно что-то другое поискать?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Tamul Автор вопроса
Это не два ключа, а координаты X и Y точки на эллиптической кривой. Обычно для генерации адреса из публичного ключа используется только X и бит знака от Y, поскольку уравнение кривой известно и при необходимости сам Y можно вычислить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы