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

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

Войти через центр авторизации
Похожие вопросы
ZClick Москва
от 50 000 до 130 000 руб.
Protoplan Краснодар
от 80 000 до 150 000 руб.
23 июл. 2019, в 16:20
500 руб./в час
23 июл. 2019, в 16:01
1500 руб./в час
23 июл. 2019, в 15:50
1000 руб./в час