Рейтинг:1

быстрое шифрование одним ключом и быстрое дешифрование несколькими ключами последовательно

флаг ng

Существует ли такой механизм шифрования и дешифрования: при шифровании C = E(K1, M), где K1 — ключ шифрования, а M — обычный текст, необходимо применить дешифрование с двумя ключами K2 и K3 последовательно, чтобы восстановить M, что равно D(K3, D(K2, C)) = M. Учитывая K1, идеально сгенерировать неограниченное количество пар K2 и K3 для обеспечения распределенного доверия. Шифрование и дешифрование не должны быть слишком медленными для больших объемов данных, поэтому предпочтительным является симметричный шифр.

В качестве альтернативы, есть ли способ сгенерировать три последовательности случайных чисел R1(K1), R2(K2), R3(K3) из трех ключей/начальных чисел K1, K2, K3, таких что R1(K1) = R2(K2) XOR R3 ( К3)? Если это так, вышеуказанная проблема также может быть решена.

Я знаю Threshold ElGamal или другую криптографию с открытым ключом для многопартийной криптографии, но они слишком медленные по сравнению с симметричным кибер, таким как RC4.


Позвольте мне описать историю по-другому: Алиса загружает свои данные на узел Боба, позже Кэрол запрашивает Боба и загружает данные Алисы. Несколько соображений дизайна:

  1. Данные Алисы должны быть зашифрованы при загрузке Бобу или извлечении Кэрол;
  2. Ни Кэрол, ни Боб никогда не смогут расшифровать данные Алисы в одиночку;
  3. Данные могут быть очень большими, поэтому требуется быстрое шифрование и дешифрование;
  4. Алиса может быть не всегда онлайн;
  5. Допустимо предположить, что Боб и Кэрол не будут вступать в сговор, но было бы лучше, если бы можно было разработать механизм аудита (например, блокчейн), чтобы убедиться, что Боб и Кэрол не будут сотрудничать без разрешения Алисы.
fgrieu avatar
флаг ng
Вам требуется асимметричное шифрование, то есть общедоступное K1? Можем ли мы считать доверенным лицом создание и распространение K1/K2/K3? Есть ли причина, по которой требование «шифрование и дешифрование не должно быть слишком медленным для больших объемов данных» не может быть решено обычным способом: с помощью случайного уникального для сообщения ключа для шифрования большей части данных с использованием стандартного быстрого ( аутентифицированный) шифр типа AES-GCM; а что с несколькими ключами, когда K1/K2/K3 (асимметричный или нет) защищает уникальный для сообщения ключ?
флаг ng
Здесь К1, К2 и К3 — все секреты. По сути, пользователь 1 шифрует данные в E(K1, M), тогда расшифровка должна выполняться двумя сторонами последовательно D(K3, D(K2, C)) = M. Мы не хотим, чтобы пользователь 2 видел открытый текст, и не хочу, чтобы пользователь 3 знал K1. Здесь мы предполагаем, что пользователи 2 и 3 не вступают в сговор. Как я понимаю, для шифрования с открытым ключом это слишком медленно для большого объема данных, верно? Если это неправильно, мы можем рассмотреть публичную криптографию.
Maarten Bodewes avatar
флаг in
«Для шифрования с открытым ключом, насколько я понимаю, это слишком медленно для большого объема данных, верно?». Как правило, гибридную криптосистему можно использовать, даже когда необходимо использовать пороговое шифрование, на что намекал fgrieu (просто вводя здесь некоторые термины :))
James Smith avatar
флаг br
у вас есть полный ответ на этот вопрос? тот, который вы разместили
Рейтинг:1
флаг my

В качестве альтернативы, есть ли способ сгенерировать три последовательности случайных чисел R1, R2, R3 из трех ключей K1, K2, K3 так, чтобы R1 XOR R2 XOR R3 = 0?

Эта часть проста; мы можем просто определить:

$$R1 = \text{ВЗЯТИЕ}(K1) \oplus \text{ВЗЯТИЕ}(K2)$$ $$R2 = \text{ВЗЯТИЕ}(K3) \oplus \text{ВЗЯТИЕ}(K1)$$ $$R3 = \text{ВЗЯТИЕ}(K2) \oplus \text{ВЗЯТИЕ}(K3)$$

(куда $\text{ВЗЯТИЕ}$ может быть, например, расширяемая функция вывода; то есть функция, которая преобразует прообраз в битовую строку произвольной длины).

Индивидуально (и парно), $R1, R2, R3$ все выглядят случайными (при условии, что ключи нельзя угадать), однако они взаимно исключают 0, как вы просили.

флаг ng
Хорошо, но пользователь 1 хочет сохранить K1 в секрете и не давать пользователю 2 или 3.
Рейтинг:0
флаг ng

Предложение направлено на 1/2/3/4 последнего раздела вопроса: цепное гибридное шифрование.

мы будем использовать

  • Схема быстрого симметричного аутентифицированного шифрования, такая как AES-GCM или же ЧаЧа20-Поли1305 с 256-битным секретным ключом, шифрование с ключом $К$ отмеченный $С=Е_К(М)$ и расшифровка $М=Д_К(С)$.
  • Схема асимметричного шифрования, способная шифровать 256-битные сообщения, с отмеченным шифрованием. $C=\mathcal E_P(M)$ и расшифровка $M=\mathcal D_S(C)$, куда $(П,С)$ представляет собой пару ключей (открытый, закрытый/секретный). РГАЭС-ОАЭП или же ECIES Сделаю.

Мы предполагаем, что Боб и Кэрол сгенерировали пары ключей $(P_B,S_B)$ и $(P_C,S_C)$, и переданные открытые ключи $P_B$ и $P_C$ Алисе способом, гарантирующим целостность и доказательство происхождения (возможно, посредством цифровых сертификатов).

Чтобы зашифровать Кэрол по доверенности Боба, Алиса

  • рисует два случайных 256-битных ключа $K_B$ и $K_C$
  • вычисляет $C_B=\mathcal E_{P_B}(K_B)$
  • вычисляет $C_C=\mathcal E_{P_C}(K_C)$
  • вычисляет $C_0=E_{K_B}(C_C)$
  • вычисляет $C_1=E_{K_C}(М)$
  • отправляет Бобу сообщение $C=C_B\mathbin\|C_0\mathbin\|C_1$.

Боб получает и хранит $С$. Когда Кэрол запрашивает зашифрованное сообщение, Боб

  • экстракты $C_B$, $C_0$ и $C_1$ от $С$
  • вычисляет $K_B=\mathcal D_{S_B}(C_B)$
  • вычисляет $C_C=D_{K_B}(C_0)$
  • формирует и отправляет Кэрол $C'=C_C\mathbin\|C_1$.

Кэрол получает $С'$ и

  • экстракты $C_C$ и $C_1$ от $С'$
  • вычисляет $K_C=\mathcal D_{S_C}(C_C)$
  • вычисляет $M=D_{K_C}(C_1)$

Всякий раз, когда расшифровка терпит неудачу, Боб или Кэрол прекращают работу.

Обратите внимание, что массовое сообщение $ млн $ шифруется только один раз, что соответствует требованиям производительности.

Мы можем заменить асимметричную схему шифрования на симметричную, $(P_B,S_B)$ с вопросом $K_2$ и $(P_C,S_C)$ с вопросом $K_3$ (и затем, как дополнение, систему можно упростить, чтобы избавиться от $K_B$). Но переходя на симметричную криптографию, мы теряем преимущество асимметричной криптографии: Алисе не нужно ничего хранить в секрете, и она не может использовать этот секрет, чтобы попытаться расшифровать другое сообщение, отправленное Бобу или Кэрол.

James Smith avatar
флаг br
fgrieu, не могли бы вы объяснить, как получить эту часть вопроса. R1(K1) = R2(K2) Исключающее ИЛИ R3 (K3). это важно ответить.
fgrieu avatar
флаг ng
@James Smith: метод в моем ответе не генерирует последовательности случайных чисел (или делает это способом, встроенным в используемые схемы шифрования), поэтому уравнение R1 (K1) = R2 (K2) XOR R3 (K3) не применить к ответу (и в любом случае это только вариант вопроса). Мой $(P_B,P_C)$ относится к типу вопроса K1, $S_B$ относится к типу K2, $S_C$ относится к типу K3. Я не говорю, что есть идеальное совпадение, просто я думаю, что решаю функциональную потребность в 1/2/3/4.

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

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