Python ecdsa通信比特币库

Python ecdsa通信比特币库,python,cryptography,bitcoin,ecdsa,Python,Cryptography,Bitcoin,Ecdsa,Alice有她的私钥,公钥,还有Bob的公钥和Bob发来的消息 但是坏人也有鲍勃的公钥和鲍勃的信息 神奇发生在哪里,他们如何从这里确保通信安全 这也不起作用: from bitcoin import * Alice_private = 1 Alice_public = privtopub(Alice_private) Bob_private = 2 Bob_public = privtopub(Bob_private) #they exchange publics Alice_mess

Alice有她的私钥,公钥,还有Bob的公钥和Bob发来的消息

但是坏人也有鲍勃的公钥和鲍勃的信息

神奇发生在哪里,他们如何从这里确保通信安全

这也不起作用:

from bitcoin import *


Alice_private = 1
Alice_public = privtopub(Alice_private)

Bob_private = 2
Bob_public = privtopub(Bob_private)

#they exchange publics

Alice_message=ecdsa_raw_sign(sha256('Hello'), Alice_private)
Bob_message = ecdsa_raw_sign(sha256('Hello back'), Bob_private)

看起来您正在使用

我想你要做的是,这与ECDSA不同

在第二个示例中,您似乎有正确的想法,但不像您正在做的那样简单

您正在使用的库确实有一个
乘法(pubkey,privkey)
函数,它可以满足您的需要:

from bitcoin import *


a = 10

b = 20

a1,a2 = privkey_to_pubkey(a)
b1,b2 = privkey_to_pubkey(b)

a3,a4 = b1*a, b2*a
b3,b4 = a1*b, a2*b


if a3 == b3:
    print(True)

共享秘密是曲线上的一个点,即(x,y)坐标对(此库中的元组)。您通常会获取X坐标并对其进行散列,以导出对称加密的密钥。

看起来您正在使用

我想你要做的是,这与ECDSA不同

在第二个示例中,您似乎有正确的想法,但不像您正在做的那样简单

您正在使用的库确实有一个
乘法(pubkey,privkey)
函数,它可以满足您的需要:

from bitcoin import *


a = 10

b = 20

a1,a2 = privkey_to_pubkey(a)
b1,b2 = privkey_to_pubkey(b)

a3,a4 = b1*a, b2*a
b3,b4 = a1*b, a2*b


if a3 == b3:
    print(True)

共享秘密是曲线上的一个点,即(x,y)坐标对(此库中的元组)。您通常会获取X坐标并对其进行散列,以导出对称加密的密钥。

Matt,您完全正确:)非常感谢。我真的很感激。马特,你完全正确:)非常感谢。我真的很感激。