Рейтинг:0

Используйте Диффи Хеллмана, чтобы поделиться секретом

флаг br

Я пытался использовать Диффи Хеллмана, чтобы сначала согласовать ключ, а затем использовать этот ключ для симметричного обмена секретом. Код python3 с использованием криптографической библиотеки выглядит так:

#Сгенерировать некоторые параметры. Их можно использовать повторно.
параметры = dh.generate_parameters (генератор = 2, key_size = 2048)
# Создайте закрытый ключ для использования в обмене.
server_key = параметры.generate_private_key()
п=1
client_key=[parameters.generate_private_key() для i в диапазоне (n)]

#общий ключ для каждого клиента
shared_key = [server_key.exchange(client_key[i].public_key()) для i в диапазоне(n)]

Теперь размер общего ключа составляет 256 байт, поэтому, когда я пытаюсь использовать перенос и развертывание AES или любую другую схему симметричного шифрования, я получаю ошибки, связанные с размерами ключа. Может ли кто-нибудь помочь мне с тем, какую схему использовать, возможно, формат ключа DH, который будет использоваться с другой схемой шифрования в криптобиблиотеке. Спасибо

Maarten Bodewes avatar
флаг in
Обычно вы используете KDF один или несколько раз на выходе *статического размера* для получения ключей. Таким образом, `shared_key`, вероятно, лучше назвать `shared_secret`, потому что, как вы выяснили, его нельзя использовать напрямую в качестве ключа. Для современного KDF вы можете использовать HKDF. Для быстрого взлома просто используйте SHA-256.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.