Рейтинг:2

Как поделиться возможностью расшифровки с другими, чьи открытые ключи не используются при шифровании?

флаг br
Leo

как следует из названия, например, A использует открытый ключ B, чтобы зашифровать сообщение и отправить его B. На более поздних этапах присоединяется новый член C, и B хотел бы, чтобы C мог видеть это зашифрованное сообщение (т. е. дать способность к расшифровке C). Как добиться этого, не позволяя A снова зашифровать сообщение с помощью открытого ключа C?

Один из способов, о котором я могу думать сейчас, заключается в том, что B сначала расшифровывает сообщение и использует открытый ключ C, чтобы снова зашифровать его, а затем отправить его C. Но существует ли какой-либо метод, который требует меньше операций, чтобы разделить способность расшифровки с C более автоматически? ? Спасибо.

Eugene Styer avatar
флаг dz
См. https://crypto.stackexchange.com/questions/86483/using-public-key-cryptography-with-multiple-recipients.
Leo avatar
флаг br
Leo
Спасибо @EugeneStyer. Но моя проблема здесь заключается в том, чтобы позволить другим присоединившимся позже, чьи открытые ключи не использовались в начале, также иметь возможность прочитать сообщение, что немного отличается от этого вопроса, где требуется зашифровать сообщение с использованием нескольких открытых ключей получателя. .
Eugene Styer avatar
флаг dz
Причина, по которой я связался с этим конкретным вопросом, заключается в том, чтобы отметить, что при гибридном шифровании мы шифруем сообщение один раз с помощью AES (или аналогичного), а затем используем общедоступное шифрование для отправки ключа AES. Таким образом, добавление другого получателя просто означает шифрование ключа AES с использованием открытого ключа нового получателя. Тот факт, что это происходит позже, не имеет большого значения.
Рейтинг:0
флаг us

Если вы хотите, чтобы C мог расшифровать все, что адресовано B, то самое простое — просто передать ключ дешифрования B C.

Еще есть что-то под названием перешифрование прокси это также соответствует духу «переадресации» зашифрованного текста. В перешифровании прокси есть алгоритм $\textsf{ProxyKey}(sk_B, pk_C) \to rk_{B\to C}$: он принимает закрытый ключ B и открытый ключ C в качестве входных данных и генерирует ключ повторного шифрования. $rk_{B \to C}$. Тот, у кого есть этот ключ повторного шифрования, может сделать $\textsf{ReEncrypt}(rk_{B \to C}, ctxt) \to ctxt'$, который принимает зашифрованный текст $ctxt$ адресовано $В$ и превращает его в $ctxt'$, шифрование того же самого, но адресованное $С$.

(Есть также варианты, где $\textsf{ProxyKey}$ нужен закрытый ключ обеих сторон.)

Важным отличием здесь является то, что лицо, которое «переадресует» зашифрованный текст («прокси»), может быть кем угодно, кроме B или C. Прокси, у которого есть только $rk_{B\to C}$ но тот, кто не знает закрытых ключей B или C, не может открывать шифротексты, адресованные B или C. Они могут только преобразовывать шифротексты для B в шифротексты для C (а не наоборот), не заглядывая внутрь.Предполагая, что прокси-сервер и C являются разными сторонами, тогда C может читать только те сообщения, адресованные B, которые прокси-сервер решит преобразовать.

Leo avatar
флаг br
Leo
Спасибо @Mikero. В моем случае закрытый ключ B не может быть передан C, поэтому самый простой способ здесь не работает. Повторное шифрование прокси звучит интересно. Но после того, как прокси-сервер использует ключ повторного шифрования rkB-C для повторного шифрования ctxt, чтобы получить ctxt' и отправить его на C, как C может расшифровать ctxt'? Использует ли он закрытый ключ C?
флаг us
Да, ctxt обычно выглядит как обычный зашифрованный текст, адресованный непосредственно C, и расшифровывается обычным способом.
Leo avatar
флаг br
Leo
Звучит здорово. Я сначала поищу и попробую. Спасибо @Mikero. Я нашел библиотеку, которая выглядит хорошо https://github.com/nucypher/pyUmbral. Просто интересно, есть ли у вас рекомендованные?

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

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