Привет! решил разобраться с Протоколом Диффи-Хеллмана и попутно накидал его на Пайтоне.
Только вот загвоздка, почему у меня в качестве шпиёна Евы получается подобрать ключ ну например Алисы?
g = 3
p = 7334832323
a = 15
b = 30
# функция для получения AB
def crypt_dh(g,p,ab):
    result = g**ab % p
    return result
A = crypt_dh(g,p,a)
B = crypt_dh(g,p,b)
# секретные ключиАлисы и Боба
k_Alice = B**a % p
k_Bob = A**b % p
print('Alice Key: ', k_Alice)
print('Bob Key: ', k_Bob)
# Ева знает g,p,A,B
def encrypt(g,p,AB,k_Name):
    encryption = 'Fail'
    for key in range(1000):
        result = AB**key % p
        if result == k_Name:
            encryption = A**key % p  
    return encryption
# Результат шпиона
k_Eva = encrypt(g,p,A,k_Alice)
print('Eva Key: ', k_Eva)
Результат:
Alice Key:  5283143412
Bob Key:  5283143412
Eva Key  5283143412