Как зашифровать что-то так, чтобы мог быть дешифрован с помощью каких-либо двух из трех ключей?

Я добавил бы Код, Завершенный 2 к списку (я знаю, что Jeff является своего рода поклонником здесь)... Если Вы - младший разработчик, книга пригождается для установки ума способом, который закладывает основу лучших методов записи кода и программного обеспечения, создающего существует.

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

Это стоит проверить;)

13
задан a paid nerd 12 November 2009 в 02:04
поделиться

5 ответов

Создайте уникальный ключ содержимого для шифрования сообщения (это общее для многих стандартов шифрования сообщений), затем примените схему кода стирания , такую ​​как Кодирование Рида-Соломона по этому ключу содержимого, объединенное с достаточным количеством дополнительных случайных данных, чтобы гарантировать, что любые m из n «фрагментов» ключа могут быть объединены в создать финальный ключ. Осколки выдаются только из части случайных данных , так что ни один из выданных осколков не содержит фактических битов из ключа содержимого. Таким образом, любое количество собранных осколков, меньшее m , не дает никакой полезной информации о самом ключе.

РЕДАКТИРОВАТЬ: Рид-Соломон для генерации ключевых осколков, похоже, идентичен секрету Шамира. -шаринг , впервые опубликовано в 1979 г .; спасибо @caf за указание на статью.

14
ответ дан 1 December 2019 в 22:39
поделиться

Сгенерировать симметричный ключ key1 случайным образом и использовать его для зашифровать данные, а затем сгенерировать key2, key3 и key4 из key1 с помощью протокола совместного использования секретов Шамира .

Для безопасного распространения ключей key2, key3 и key4 вы можете затем использовать алгоритм открытого ключа, чтобы зашифровать их с использованием общедоступных ключи получателей.

4
ответ дан 1 December 2019 в 22:39
поделиться

Допустим, вы назначаете ключи x1, x2, .. xN

Зашифруйте файл с помощью главного симметричного ключа M . Затем сохраните несколько зашифрованных копий M :

  • Зашифрованные с помощью x1 и x2
  • Зашифрованные с помощью x2 и x3
  • Зашифрованные с помощью x1 и x3
  • ...

Любые два ключа разблокирует одну из зашифрованных копий мастера, который расшифрует файл.

2
ответ дан 1 December 2019 в 22:39
поделиться

Я не думаю, как вы это утверждаете. Но вы можете получить такой же эффект: используйте шифрование с открытым ключом; теперь есть 4 публичных и 4 приватных ключа. Как человек №1, зашифруйте свое сообщение каждой попарной комбинацией другого 3. Например, зашифруйте сообщение ключом 2, затем зашифруйте его ключом 3. Теперь зашифруйте сообщение ключом 2, затем зашифруйте его ключом 4. Наконец, 3 затем 4. Теперь, если двое других соберутся вместе, они смогут восстановить исходное сообщение.

1
ответ дан 1 December 2019 в 22:39
поделиться

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

  1. ключ 4 бит 1 был контрольной суммой бит 1 в ключах 1-3, и
  2. ключ 1 бит 2 был контрольной суммой бита 2 в ключах 2-4, а
  3. ключ 2 бит 3 был контрольной суммой бита 3 в ключах 1,3,4, и
  4. ключ 3 бит 4 был контрольной суммой бита 4 в ключах 1,2,4, а
  5. ключ 4 бит 5 был контрольной суммой бита 5 в ключах 1,2,3, и т.д. ...

что-то вроде полосатого рейда 5 ...

Таким образом, независимо от того, какие три из четырех ключей у вас были, вы могли воссоздать недостающий. используйте комбинацию всех четырех ключей, чтобы зашифровать сообщение.

0
ответ дан 1 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: