Спасибо за ваш ответ. Оценил. Однако, похоже, как инструмент делает всю работу за меня. Я пытаюсь узнать, как расчет сам работает.
С номерами, как большой, как это, как правило, представляет собой программу, или язык программирования библиотека, которая действительно делает всю фактическую работу. Выполнение этих расчетов вручную заняло бы слишком много времени.
Если вы заинтересованы, то здесь есть PDF, который объясняет ECC действительно легко и хорошо
https://www.entrust.com/wp-content/uploads/2014/03/WP_Entrust_Zero-to-ECC_March2014.pdfЕсли вы хотите практиковать на самом деле делает эти вычисления, я рекомендую попробовать их на меньшем поле первой.
например:
yІ = xі + 7 моды тысячи пятьдесят-одина
бы создать простое поле 1093 точек.
Вы можете выбрать любую точку из области, чтобы быть G
Для делать умножение с фактической кривой Bitcoin вы сначала должны кратным G 2, то множественные результат на 2, и так далее. до тех пор, пока вы сделали это 255 раз. И сохранить результаты.
Тогда вы будете иметь список точек
G, 2 * G, 4 * G, 8 * G, 16 * G ... 57896044618658097711785492504343953926634992332820282019728792003956564819968 * G
для умножений-использовать эти формулы:
s = (3xІ + а) / (2y1) по модулю р
x2 = sІ-2x1 тойр
у2 = -y1 + S (x1-x2) по модулю р
Тогда вам превратить ваш закрытый ключ двоичного числа и позволяет сказать, что это 1001101 (очень короткий ключ собств)
то вы можете сделать дополнение.
1 G
0 (2)
1 4G
1 8G
0 (16)
0 (32)
1 64G
В результате открытого ключа будет:
G + 4G + 8G + 64G
Для добавления использовать эти формулы:
s = (у2-у1) / (х2-х1) по модулю р
x3 = sІ-x2-x1 тойр
у3 = у2 + S (х2-х3) по модулю р
PDF объяснит это лучше.
Повеселись