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

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

Похожие вопросы