В настоящее время я пытаюсь смоделировать отображение сообщения на эллиптической кривой и пытаюсь найти точку на кривой y**2 = (x**3 + a*x + b) % p
, задав переменную x в виде шестнадцатеричной преобразованной строки.
Однако я неЯ не знаю, является ли это проблемой с моей реализацией или сбоем в программе, но результат полностью отличается от того, что я ожидаю.
// variables
b = 2455155546008943817740293915197451784769108058161191238065
a = -3
x = 1894290318373708250692331360974342813437992324945519136769
p = 6277101735386680763835789423176059013767194773182842284081
//square root of y to its 4th power
y = (x**3 + a*x + b) % p
y = y ** .5
(y ** 4 - 1 ** 3 - a * x - b) % p
//y itself to its 2nd power
y = (x**3 + a*x + b) % p
y = y
(y ** 2 - 1 ** 3 - a * x - b) % p
Для квадратного корня из y в его 4-й степени результатоказывается 0.0
, тогда как результат для самой своей 2-й степени дает результат 4575606179561504294120638508707052089783083374310823885174
.Может ли кто-нибудь объяснить мне, что происходит или что я делаю не так?
Спасибо.