Играюсь с функцией генерации открытого ключа по закрытому из статьи
Доступно о криптографии на эллиптических кривых
Скрипт на Gitub
Почему на один закрытый ключ функция выдаёт два открытых? И какой из них есть кто?
Пример:
Alice's private key: 0x6cfc11293c8f1ddc4eb121b4a5138d3fa8241162a91b5d2d3cd86c17e9bceb2a
Alice's public key: (0xd618d67c650483a8f7bc785c0271c76dd0d2de14eb123b3b796f1a21fb8ea8c4, 0x9e93b13c39997055f0c74b31d794cd4abf04888d896b25e7c3215eaa6c01278f)
В коде функции point_add результат присваивается как кортежу:
result = (x3 % curve.p, -y3 % curve.p)
И дальше по функциям значения уже парами ходят. А почему их два то? Из одного генерируется публичный ключ, привязанный к приватному, а из другого что? Не могут же два публичных соответствовать одному приватному.
Или может весь питоновский скрипт неправильный и для игр с биткоиновскими ключами нужно что-то другое поискать?