22 lines
455 B
Python
22 lines
455 B
Python
from utils import generate_secret, coin_toss
|
|
from utils import prime, FILE
|
|
from Crypto.Math.Numbers import Integer
|
|
|
|
def alice_1():
|
|
g = Integer(2)
|
|
a = generate_secret()
|
|
A_secret = pow(g, Integer(int.from_bytes(a)), prime)
|
|
return A_secret
|
|
|
|
def bob_1(A_secret):
|
|
g = Integer(2)
|
|
b = generate_secret()
|
|
B_secret = pow(g, Integer.from_bytes(b), prime)
|
|
if coin_toss():
|
|
B_secret = A_secret * B_secret
|
|
return B_secret
|
|
|
|
a = alice_1()
|
|
b = bob_1(a)
|
|
print(b)
|