Diffie-Hellman
Overview
import Crypto.Util.number as cun
import Crypto.Random.random as crr
class DiffieHellman:
def __init__(self, p: int):
self.p = p
self.g = 5
self.private_key = crr.randrange(2, p-1)
def public_key(self) -> int:
return pow(self.g, self.private_key, self.p)
def shared_key(self, other_public_key: int) -> int:
return pow(other_public_key, self.private_key, self.p)
p = cun.getPrime(512)
alice = DiffieHellman(p)
bob = DiffieHellman(p)
shared_key = bob.shared_key(alice.public_key())
assert shared_key == alice.shared_key(bob.public_key())Last updated
Was this helpful?