@Stefan75

Протокол Диффи-Хеллмана почему у меня Ева подбирает ключ (Python3)?

Привет! решил разобраться с Протоколом Диффи-Хеллмана и попутно накидал его на Пайтоне.
Только вот загвоздка, почему у меня в качестве шпиёна Евы получается подобрать ключ ну например Алисы?
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
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что в реальных системах используют гораздо большие числа. Для p, например, рекомендуется 2048-битное простое число. Как понимаете, ga и gb должны быть существенно больше, чем p, иначе теряется смысл модуля.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Droice Labs Москва
от 120 000 до 220 000 ₽
EQWILE Казань
от 80 000 до 110 000 ₽
Level Travel Москва
До 160 000 ₽