Advertisement
Guest User

RAF

a guest
Dec 6th, 2019
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. ︠4d4139fa-b787-4daa-b0a0-d472302e4465s︠
  2. from random import*
  3.  
  4. class DiffieHelman(object):
  5. def __init__(self,name, private_key,p_key=None,g_key=None):
  6. self.name=name
  7. self.private_key=private_key
  8. self.p_key=p_key
  9. self.g_key=g_key
  10. self.public_key=0
  11. self.recieved_public_key=0
  12. self.secret_shared_key=0
  13.  
  14. def recieve_keys(self,keys):
  15. self.p_key=keys[0]
  16. self.g_key=keys[1]
  17.  
  18. def recieve_public_key(self,key):
  19. self.recieved_public_key=key
  20.  
  21. def calculate_public_key(self):
  22. self.public_key=(self.g_key**self.private_key)%self.p_key
  23. print(self.name + "'s public key: " + str(self.public_key))
  24. return self.public_key
  25.  
  26. def calculate_secred_shared_key(self):
  27. self.secret_shared_key=(self.recieved_public_key**self.private_key)%self.p_key
  28.  
  29. def get_keys(self):
  30. keys=(self.p_key,self.g_key)
  31. return keys
  32.  
  33. def reveal_secret_shared_key(self):
  34. print(self.name + "'s secret shared key: " + str(self.secret_shared_key))
  35.  
  36.  
  37.  
  38. alice_private_key=randint(1,100)
  39. bob_private_key=randint(1,100)
  40. p_key=randint(1,100)
  41. g_key=randint(1,100)
  42. print("P_key = "+str(p_key))
  43. print("G_key = "+str(g_key))
  44. print("Alice's private key = "+str(alice_private_key))
  45. print("Bob's private key = "+str(bob_private_key))
  46.  
  47. Alice=DiffieHelman('Alice',alice_private_key, p_key, g_key)
  48. Bob=DiffieHelman('Bob',bob_private_key)
  49.  
  50. #Bob otrzymuje klucze p i g od Alice
  51. Bob.recieve_keys(Alice.get_keys())
  52.  
  53. #Bob otrzymuje klucz publiczny A obliczony przez Alice
  54. Bob.recieve_public_key(Alice.calculate_public_key())
  55.  
  56. #Alice otrzymuje klucz publiczny B obliczony przez Boba
  57. Alice.recieve_public_key(Bob.calculate_public_key())
  58. #Alice oraz bob obliczają sekretny wspólny klucz
  59. Alice.calculate_secred_shared_key()
  60. Bob.calculate_secred_shared_key()
  61.  
  62. Alice.reveal_secret_shared_key()
  63. Bob.reveal_secret_shared_key()
  64. ︡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