2013-06-27 2 views
1

У меня возник вопрос, связанный с попыткой обновления зашифрованного хранилища (например, облачного хранилища) без повторной загрузки всего обновленного зашифрованного текста - мне разрешено вычислять на стороне нашего зашифрованного хранилища - d хотел бы достичь этого без обработки какой-либо секретной информации, например закрытый ключ. Очевидным подходом было бы загрузить только зашифрованные отличия и сохранить их вместе с оригинальным зашифрованным текстом - например, управление версиями, но это может увеличить общее требование к хранилищу. Иногда повторная загрузка всего зашифрованного текста также не является тем, что я ищу. Я ищу алгоритмическое решение, которое не ослабляет сторону шифрования.Обновление зашифрованного текста с изменениями в cleartext

Более формально: если у меня есть некоторый зашифрованный текст C, сгенерированный из открытого текста T, с использованием некоторого криптографического алгоритма, который имеет секретный ключевой компонент. Предположим, что я модифицировал открытый текст T для создания нового открытого текста T1 с их различиями, зафиксированными в открытом тексте D, - можно ли было бы построить функцию F такую, что C1 = F (C, E), где C1 - соответствующий обновленный зашифрованный текст, а E - зашифрованный текст D?

Я осмотрелся, но не смог найти решение. Я посмотрел «Безопасное многопартийное вычисление» и «Общий секрет», но не уверен, что это просто вариация этих проблем или другая проблема.

ответ

3

Алгоритм, который вы ищете, называется Гомоморфное шифрование, см. here.

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

Исходный код для гомоморфного шифрования here и полностью гомоморфологическое шифрование here.