Я кодирую в Python, и я ищу альтернативу моей текущей функции «Добавить». Когда я использую invert () или pow (a, -1, p) или какую-то другую модульную обратную библиотеку, это вычисляет неправильное значение как результат с символом симпей, но когда я использую ее с целым числом, он вычисляет правильное значение. < /P>
Функция добавления: < /p>
< /p>
Функция: < /p>
from sympy import symbols, summation, gcdex, Piecewise, Eq, Abs, Mul, Le, mod_inverse, solve, invert, Mod, Max, log, \
floor, simplify, And, Ge, Symbol
x = symbols('x')
def point_add(P1_c, P2_c, p, k):
"""Add two points represented as combined numbers on the elliptic curve."""
if P1_c == 0:
return P2_c # P1 is the point at infinity
if P2_c == 0:
return P1_c # P2 is the point at infinity
x1, y1 = P1_c % k, P1_c // k
x2, y2 = P2_c % k, P2_c // k
if x1 == x2 and y1 != y2:
return 0 # Point at infinity (neutral element)
if x1 == x2 and y1 == y2:
m = (3 * x1 ** 2 * invert(2 * y1, p)) % p # Point doubling
else:
m = ((y2 - y1) * invert(x2 - x1, p)) % p # Point addition
x3 = (m ** 2 - x1 - x2) % p
y3 = (m * (x1 - x3) - y1) % p
return x3 + k * y3
k = 2 ** 256
p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
Gx = (0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,
0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)[0]
Gy = (0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,
0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8)[1]
G_c = Gx + k * Gy # Combine Gx and Gy
< /code>
Вы можете запустить это с помощью point_add (0, g_c, p, k) и использовать предыдущее значение для текущего значения каждый раз, начиная с 0. Я просто хочу альтернативу моей функции «Добавить». Кто -нибудь может дать мне решение для этого?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ill-calcul
Я ищу альтернативу моей текущей функции «Добавить», которая будет рассчитать те же значения, но не использовать invert ( ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
ViewCompat.getWindowInsetsController устарел – какую альтернативу использовать?
Anonymous » » в форуме Android - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-