Как мне напрямую добавить G к самому себе K раз при суммировании, чтобы вычислить открытый ключ из одного закрытого ключPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как мне напрямую добавить G к самому себе K раз при суммировании, чтобы вычислить открытый ключ из одного закрытого ключ

Сообщение Anonymous »

У меня есть небольшой скрипт на Python, который позволяет мне вычислить открытый ключ Ethereum на основе целого числа закрытого ключа. Я хочу использовать суммирование, чтобы напрямую добавить G к самому себе k раз (базовое умножение), чтобы я мог сгенерировать из этого открытый ключ.
Я знаю, что есть что-то, называемое двойным и add метод, который вычисляет открытый ключ из закрытого ключа, и именно так он обычно работает с точки зрения шифрования, но я уже пробовал делать это вручную, умножая g k раз, и он по-прежнему работает нормально. Я хотел бы сделать это, но в виде суммирования, чтобы он мог сделать это мгновенно для 1 значения закрытого ключа.
Код, который я использую до сих пор:

Код: Выделить всё

def scalar_multiply(k, G, p):
"""Multiply point G by scalar k by directly adding G k times."""
result = None  # This will represent the point at infinity

# Add G to result k times
for _ in range(k):
result = point_add(result, G, p)

#The code below is what I want you guys to change for me. It's based off of the for loop above.
y = symbols('y')
#result = G
result2 = summation(point_add(None,G,p),(n,0,k)) # just a placeholder, someone will have to fix this

return result
Как вы можете видеть в моем коде, это формула, которая правильно вычисляет открытый ключ из закрытого ключа. Формула point_add просто устанавливает это для меня, но проблема у меня возникает в функции scalar_multiply.
Я хочу, чтобы вы, ребята, посмотрели, как работает функция scalar_multiply перед #result = G и на основе этого создайте суммирование с помощью Sympy, чтобы я мог использовать его в своем коде. Не беспокойтесь о неизвестном коде, таком как функция point_add. В общем, просто покажите мне, как я могу использовать суммирование вместо цикла for для k с помощью функции point_add.
Просто примечание. Когда я пытаюсь использовать result2 и оценить его с помощью Sympy, он каждый раз возвращает один и тот же открытый ключ. Что-то не так с кодом суммирования.

Подробнее здесь: https://stackoverflow.com/questions/791 ... a-public-k
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»