Bitcoin Forum

Local => Кодеры => Topic started by: c2h5ohx on July 17, 2018, 10:53:29 PM



Title: Инверсия открытого ключа
Post by: c2h5ohx on July 17, 2018, 10:53:29 PM
Опытные кодеры, подскажите, а есть ли возможность и реализация на python инверсии открытого ключа?
Секрет инверсию делать получается, а обратно по открытому (x,y) - нет.

Подскажите юзеру.

Как инверсировать к примеру

c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5
1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52a


Title: Re: Инверсия открытого ключа
Post by: kzv on July 18, 2018, 07:37:29 AM
Что такое инверсия ключа?


Title: Re: Инверсия открытого ключа
Post by: c2h5ohx on July 18, 2018, 07:46:48 AM
Что такое инверсия ключа?

def inverse_mod( a, m ):

    if a < 0 or m <= a: a = a % m

    c, d = a, m
    uc, vc, ud, vd = 1, 0, 0, 1
    while c != 0:
        q, c, d = divmod( d, c ) + ( c, )
        uc, vc, ud, vd = ud - q*uc, vd - q*vc, uc, vc


    assert d == 1
    if ud > 0: return ud
    else: return ud + m
   


   




Title: Re: Инверсия открытого ключа
Post by: kzv on July 18, 2018, 09:07:59 AM
Что такое инверсия ключа?

def inverse_mod( a, m ):

    if a < 0 or m <= a: a = a % m

    c, d = a, m
    uc, vc, ud, vd = 1, 0, 0, 1
    while c != 0:
        q, c, d = divmod( d, c ) + ( c, )
        uc, vc, ud, vd = ud - q*uc, vd - q*vc, uc, vc


    assert d == 1
    if ud > 0: return ud
    else: return ud + m
   


Своими словами можете объяснить?
Что это написано и зачем оно нужно?


Title: Re: Инверсия открытого ключа
Post by: DevilOper on July 18, 2018, 11:25:43 AM
Ну, судя по коду - автор хощет обратное по модулю 1/a(mod M).
(Правда, подобный алгоритм весьма уныл, есть более весёленькие реализации, но вопрос был не об этом.)

Другой вопрос, о какого рода публичном ключе идёт речь. Если имеется ввиду ЕСС - то там операция умножения (и, как следствие - деления) для точек не определена, точнее, определена единственная "групповая операция", которую кто как хочет, тот так и называет.
Обратной же точке с координатами (X,Y) (которые и составляют обычно публичный ключ) считается точка с координатами (X,-Y).


Title: Re: Инверсия открытого ключа
Post by: c2h5ohx on July 18, 2018, 01:31:11 PM
Ну, судя по коду - автор хощет обратное по модулю 1/a(mod M).
(Правда, подобный алгоритм весьма уныл, есть более весёленькие реализации, но вопрос был не об этом.)


Да, вы меня правильно поняли. Простите за не совсем корректный изначально вопрос. А можно спросить у Вас этот алгоритм?


Title: Re: Инверсия открытого ключа
Post by: DevilOper on July 18, 2018, 01:57:16 PM
Да, вы меня правильно поняли. Простите за не совсем корректный изначально вопрос. А можно спросить у Вас этот алгоритм?
Готового решения не дам, тем более, на питоне. Но сам алгоритм неплохо описан здесь:
http://e-maxx.ru/algo/reverse_element
Ну, и педивикия, конечно же:
https://en.wikibooks.org/wiki/Algorithm_Implementation/Mathematics/Extended_Euclidean_algorithm


Title: Re: Инверсия открытого ключа
Post by: c2h5ohx on July 18, 2018, 02:54:18 PM
Да, вы меня правильно поняли. Простите за не совсем корректный изначально вопрос. А можно спросить у Вас этот алгоритм?
Готового решения не дам, тем более, на питоне. Но сам алгоритм неплохо описан здесь:
http://e-maxx.ru/algo/reverse_element
Ну, и педивикия, конечно же:
https://en.wikibooks.org/wiki/Algorithm_Implementation/Mathematics/Extended_Euclidean_algorithm


ok, спасибо. попробую, программер я еще тот.. думал, может есть что готовенького  ???


Title: Re: Инверсия открытого ключа
Post by: c2h5ohx on July 18, 2018, 03:38:08 PM
Да, вы меня правильно поняли. Простите за не совсем корректный изначально вопрос. А можно спросить у Вас этот алгоритм?
Готового решения не дам, тем более, на питоне. Но сам алгоритм неплохо описан здесь:
http://e-maxx.ru/algo/reverse_element
Ну, и педивикия, конечно же:
https://en.wikibooks.org/wiki/Algorithm_Implementation/Mathematics/Extended_Euclidean_algorithm


ok, спасибо. попробую, программер я еще тот.. думал, может есть что готовенького  ???

проблему решил, спасибо! тему можно закрывать  ;D


Title: Re: Инверсия открытого ключа
Post by: OddEvenBets.com on July 18, 2018, 03:46:41 PM
Да, вы меня правильно поняли. Простите за не совсем корректный изначально вопрос. А можно спросить у Вас этот алгоритм?
Готового решения не дам, тем более, на питоне. Но сам алгоритм неплохо описан здесь:
http://e-maxx.ru/algo/reverse_element
Ну, и педивикия, конечно же:
https://en.wikibooks.org/wiki/Algorithm_Implementation/Mathematics/Extended_Euclidean_algorithm


ok, спасибо. попробую, программер я еще тот.. думал, может есть что готовенького  ???

Все же для чего это нужно объясните?
Бывает, что смысла нет делать какой-то алгоритм.. а проще новый и простой написать с нуля


Title: Re: Инверсия открытого ключа
Post by: c2h5ohx on July 18, 2018, 07:18:03 PM
Да, вы меня правильно поняли. Простите за не совсем корректный изначально вопрос. А можно спросить у Вас этот алгоритм?
Готового решения не дам, тем более, на питоне. Но сам алгоритм неплохо описан здесь:
http://e-maxx.ru/algo/reverse_element
Ну, и педивикия, конечно же:
https://en.wikibooks.org/wiki/Algorithm_Implementation/Mathematics/Extended_Euclidean_algorithm


ok, спасибо. попробую, программер я еще тот.. думал, может есть что готовенького  ???

Все же для чего это нужно объясните?
Бывает, что смысла нет делать какой-то алгоритм.. а проще новый и простой написать с нуля

Это для себя, чтобы по алгоритму ключи генерировать и.. не записывать их  ;D ;D ;D (без шуток)