Вот некоторые рабочий питон код, который генерирует точку открытого ключа для секретного ключа = 2
# Инверсия с использованием расширенной алгоритма Евклида.
Защиту EEA_invert (а, б):
г = {}; s = {}; г [0] = а; г [1] = Ь; с [0] = 1; с [1] = 0
I = 1;
в то время как True:
если г [я] == 0: Перерыв
д = г [I-1] // г [I]; г [г + 1] = г [I-1] - д * г [I]; S [I + 1] = S [I-1] - Q * s [I]
I + 1 =
Return S [I-1]% б
Параметры EC # Bitcoin в: см https://en.bitcoin.it/wiki/Secp256k1
G = '79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8'.replace ('», '')
дх, Gy = INT (G [: 64], 16), Int (G [64:], 16)
р = 2 ** 256 - ** 2 32 - 2 ** 9 - 2 ** 8 - 2 ** 7 - 2 ** 6 - 2 ** 4 - 1
# Вычислить дифференциал в точке генератора.
Наклон = (3 * ** дх 2) * EEA_invert (2 * Gy, р) р%
# Вычислить х, у.
х = (наклон ** 2 - 2 * дх)% р
у = (наклон * (дх - х) - Gy)% р
печать (гекс (х), шестигранная (у))
который дает:
( '0xc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5',
'0x1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52a')