Рейтинг:1

Асимметричное шифрование с использованием существующего секретного ключа

флаг cm

Я использую Python для создания системы, в которой пользователям (учетным записям в блокчейне, определяемым открытым ключом и секретным ключом) необходимо безопасно общаться друг с другом, и я думаю, что асимметричное шифрование — это способ сделать это.

Например, если пользователь А хочет отправить сообщение пользователю Б, он шифрует сообщение с помощью открытого ключа пользователя Б и отправляет его ему. Затем пользователь B использует свой закрытый ключ для расшифровки сообщения и может его прочитать.

Однако я не думаю, что это возможно (или я не знаю, как) сделать такое шифрование с существующей парой ключей, которая у меня есть для каждой учетной записи. Вместо этого я думаю, что мне следует использовать специальный алгоритм асимметричного шифрования и сгенерировать пары ключей для него. использование закрытого ключа исходной пары ключей в качестве семени/источника (по сути, детерминированное получение пары ключей, с помощью которой я могу выполнять асимметричное шифрование из исходного закрытого ключа).

Это возможно? Я слишком усложняю? Какие библиотеки или алгоритмы мне следует изучить (предпочтительно специфичные для Python)? Спасибо, любая помощь приветствуется!

Aman Grewal avatar
флаг gb
Спрашивать библиотеки здесь не по теме. Люди *могут* дать некоторые предложения при предоставлении других ответов, но не рассчитывайте на это.
pdemicheli avatar
флаг cm
Ах, хорошо, спасибо - да, я должен прояснить, вопрос больше о том, возможно ли это с точки зрения криптографии/безопасно и какие алгоритмы я должен смотреть, а не код (хотя помощь по коду * приветствуется!)
Рейтинг:1
флаг gb

Вы почти наверняка можете использовать текущие пары ключей для шифрования (например, через ECIES или же РСА-ОАЭП). Для гибридной криптографии вы, по сути, шифруете сообщение с помощью симметричного шифра и асимметрично шифруете этот ключ.

Конечно, вы также можете просто сгенерировать новые пары ключей. Вы можете детерминистически сгенерировать новые закрытые ключи из исходного начального числа, используя функцию деривации ключей, или вы можете просто сгенерировать полностью случайные ключи.

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

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