Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
422 views
in Technique[技术] by (71.8m points)

elliptic curve - Python implementation of ed25519 shared secret agreement

Let's consider the following example. Using Python library tinyec I can write the following code:

def compress(pubKey):
     return hex(pubKey.x) + hex(pubKey.y % 2)[2:]


curve = registry.get_curve('brainpoolP256r1')
alicePrivKey = secrets.randbelow(curve.field.n)
alicePubKey = alicePrivKey * curve.g
bobPrivKey = secrets.randbelow(curve.field.n)
bobPubKey = bobPrivKey * curve.g

print("Now exchange the public keys (e.g. through Internet)")

aliceSharedKey = alicePrivKey * bobPubKey
print("Alice shared key:", compress(aliceSharedKey))

bobSharedKey = bobPrivKey * alicePubKey

In this way Alice and Bob are able to derive a shared secret through the Internet. Now, I need to know if I can do the same thing with the ed25519 curve, since I was not able to found any kind of libraries.

So, I am interested in finding a way to do this type of operation safely. How could I do ? What are the best practices for this specific operation?

Thanks

question from:https://stackoverflow.com/questions/65841175/python-implementation-of-ed25519-shared-secret-agreement

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...