Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ︠4d4139fa-b787-4daa-b0a0-d472302e4465s︠
- from random import*
- class DiffieHelman(object):
- def __init__(self,name, private_key,p_key=None,g_key=None):
- self.name=name
- self.private_key=private_key
- self.p_key=p_key
- self.g_key=g_key
- self.public_key=0
- self.recieved_public_key=0
- self.secret_shared_key=0
- def recieve_keys(self,keys):
- self.p_key=keys[0]
- self.g_key=keys[1]
- def recieve_public_key(self,key):
- self.recieved_public_key=key
- def calculate_public_key(self):
- self.public_key=(self.g_key**self.private_key)%self.p_key
- print(self.name + "'s public key: " + str(self.public_key))
- return self.public_key
- def calculate_secred_shared_key(self):
- self.secret_shared_key=(self.recieved_public_key**self.private_key)%self.p_key
- def get_keys(self):
- keys=(self.p_key,self.g_key)
- return keys
- def reveal_secret_shared_key(self):
- print(self.name + "'s secret shared key: " + str(self.secret_shared_key))
- alice_private_key=randint(1,100)
- bob_private_key=randint(1,100)
- p_key=randint(1,100)
- g_key=randint(1,100)
- print("P_key = "+str(p_key))
- print("G_key = "+str(g_key))
- print("Alice's private key = "+str(alice_private_key))
- print("Bob's private key = "+str(bob_private_key))
- Alice=DiffieHelman('Alice',alice_private_key, p_key, g_key)
- Bob=DiffieHelman('Bob',bob_private_key)
- #Bob otrzymuje klucze p i g od Alice
- Bob.recieve_keys(Alice.get_keys())
- #Bob otrzymuje klucz publiczny A obliczony przez Alice
- Bob.recieve_public_key(Alice.calculate_public_key())
- #Alice otrzymuje klucz publiczny B obliczony przez Boba
- Alice.recieve_public_key(Bob.calculate_public_key())
- #Alice oraz bob obliczają sekretny wspólny klucz
- Alice.calculate_secred_shared_key()
- Bob.calculate_secred_shared_key()
- Alice.reveal_secret_shared_key()
- Bob.reveal_secret_shared_key()
- ︡93c32591-4521-42a4-8a38-4bf2543c5954︡{"stdout":"P_key = 67\n"}︡{"stdout":"G_key = 71\n"}︡{"stdout":"Alice's private key = 84\n"}︡{"stdout":"Bob's private key = 29\n"}︡{"stdout":"Alice's public key: 59\n"}︡{"stdout":"Bob's public key: 39\n"}︡{"stdout":"Alice's secret shared key: 15\n"}︡{"stdout":"Bob's secret shared key: 15\n"}︡{"done":true}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement