…Открытые ключи получаются из закрытых ключей с использованием ECDSA … с использованием secp256k1.
Не совсем. Преобразование закрытого ключа в открытый ключ не с использованием ЭКДСА. Это соответствует параметрам secp256k1 с использованием операции, называемой умножением точек, и для того, чтобы сделать пару открытого/закрытого ключа пригодной для использования. позже за ЭЦДСА.
Это односторонняя функция… пока вы не примете во внимание квантовые вычисления. С помощью квантовых вычислений вы можете использовать грубую силу и вычислять закрытые ключи из открытых ключей.
Правильный. Легко перейти от закрытого ключа к открытому ключу, а не наоборот, если только мы не выдвигаем гипотезу. Криптографически значимые квантовые компьютеры (не задерживайте дыхание).
Почему ECDSA был выбран вместо алгоритмов хеширования?
Чтобы мы могли подписывать сообщения в цифровой форме с помощью закрытого ключа и проверять пары сообщение/подпись с помощью открытого ключа; таким образом, что закрытый ключ необходим для создания пар сообщение/подпись, которые проходят проверку, для разных сообщений. Мы не смогли бы этого сделать, если бы открытый ключ был получен путем хеширования закрытого ключа¹. Другими словами: то, что функция от закрытого ключа к открытому ключу является однонаправленной, не является достаточным условием, чтобы сделать цифровая подпись возможное.
¹ Есть алгоритмы подписи на основе хеширования, но публичный ключ получается не одним хешем закрытого ключа со стандартным хешем. Открытый ключ состоит из нескольких хэшей, что делает его намного больше, чем 33 байта открытого ключа ECDSA secp256k1. Также ограничено количество сообщений, которые можно безопасно подписать.