Рейтинг:7

Существует ли форма криптографии, в которой ключ получается из открытого текста?

флаг dz

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

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

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

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

caveman avatar
флаг in
Если цель состоит в том, чтобы просто дедублировать, то почему бы не сделать протокол таким, чтобы идентификатором файла был его хеш, и пусть это будет совершенно независимо от того, как пользователи его шифруют? Например. позволить пользователям выбирать любые пароли, которые им нравятся, но ожидать, что они предоставят хэш открытого текста вместе с зашифрованным текстом?
флаг dz
Конечно, но мне нужно зашифровать файл для всех одним и тем же ключом, фактически не зная ключа, это то, что меня интересует. Как мои пользователи могут поделиться ключом шифрования для этого большого двоичного объекта? Моя идея заключается в том, что все они знают содержимое файла, и если они уже знают содержимое, то для них безопасно расшифровать файл. Если все они выберут разные пароли, мне придется хранить копию для каждого из них, поскольку все зашифрованные тексты будут разными?
SAI Peregrinus avatar
флаг si
«Мне нужно зашифровать все файлы одним и тем же ключом». Почему? Это очень странное требование.
флаг dz
Если я использую два ключа, не придется ли мне дважды хранить зашифрованный BLOB-объект? Я не хочу этого делать. Чтобы было ясно, я имею в виду один и тот же файл, поэтому, если у Алисы есть foo.mp3, а у Боба есть foo.mp3, я хочу, чтобы они оба загружали один и тот же зашифрованный большой двоичный объект, чтобы я мог понять, что они одинаковы, и хранить только одну копию, но без центральная служба может знать, что находится в файле.
caveman avatar
флаг in
Вы хотите, чтобы пользователи давали вам возможность расшифровывать свои файлы, которые вы размещаете для них?
флаг id
Если выбрать такой хэш, что никакие два файла не будут иметь одинаковый хеш, и никакие два хэша не будут иметь один и тот же хэш, можно зашифровать каждый файл, используя один хэш содержимого, а затем идентифицировать файл на носителе данных, используя хеш хэша. Каждому пользователю потребуется копия одного хэша, зашифрованного с использованием его индивидуального закрытого ключа. Кто-то без копии хэша не сможет расшифровать файл, не имея возможности обратить второй хеш, который, если хеш хороший, должен быть полностью неразрешимым, кроме как угадать полное содержимое файла.
флаг id
Как отмечали другие, это включает в себя отказ от некоторых видов гарантий конфиденциальности, поскольку можно было бы определить, есть ли у пользователя файл с определенным содержимым; могут быть способы несколько скрыть такую ​​информацию, но если действие пользователя, загружающего 20-мегабайтный файл, не уменьшает доступное дисковое пространство на 20 мегабайт, это может означать, что файл уже существует.
флаг cn
@ Мэтт, я не понимаю, почему предложенный вами метод не сработает. Возможно, ключ будет SHA256 (файл) вместе с солью, которая может быть SHA256 (SHA256 (файл)). И затем они могут сохранить файл у вас и отправить URL-адрес файла вместе с SHA (256) файла. Обратите внимание, что вы можете создавать разные URL-адреса для разных отправителей, чтобы они могли «удалить» файл с сервера. Вы просто удалите их URL-адрес, но можете сохранить основной файл, пока на него не укажут URL-адреса. Если хэш 256 недостаточно длинный, вы можете объединить другие хэши и соли. Наверное, не нужен.
флаг cn
Сложная часть, конечно, состоит в том, чтобы убедить «владельца» файла в том, что поставщик хранилища (вы) действительно не в состоянии расшифровать файл, хотя вы предоставляете алгоритм и, возможно, библиотеку и Ux для шифрования! Требуется доверие или авторитетное техническое лицо, чтобы благословить ваш метод!
Рейтинг:16
флаг us

Шифрование $ млн $ с использованием $Ч(М)$ поскольку ключом является естественный и хорошо изученный подход к дедупликации. В литературе известен как конвергентное шифрование или же шифрование с блокировкой сообщений.

Естественная проблема с этим подходом заключается в том, что он не может обеспечить стандартные понятия безопасности для шифрования (IND-CPA, IND-CCA и т. д.). Действительно, кто знает $ млн $ сможет проверить, расшифровывает ли шифротекст-кандидат $ млн $. Тогда возникает вопрос: каков «наилучший возможный» уровень безопасности, на который можно надеяться, и можем ли мы его достичь?

Самый тщательный анализ шифрования с блокировкой сообщений, который я знаю, это:

Михир Белларе, Шрирам Килведи, Томас Ристенпарт: Шифрование с блокировкой сообщений и безопасная дедупликация, Еврокрипт 2013.

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

Ты можешь поиск ePrint и найдите много других статей со словами «блокировка сообщений» или «дедупликация» (для других подходов) в заголовке. Обратите внимание, что шифрование с блокировкой сообщений не является интерактивным, но проблема дедупликации становится немного проще, когда вы разрешаете взаимодействие. Следовательно, многие из методов, которые вы найдете, могут быть интерактивными.

caveman avatar
флаг in
Смогут ли отдельные пользователи после удаления дубликатов различных шифровок одного и того же открытого текста расшифровать уникальную дедуплицированную копию, используя свой собственный пароль? Насколько я понял, в сценарии OP разные пользователи загружают копии одного и того же файла, за исключением того, что каждый из них зашифрован собственным паролем пользователя.
флаг us
Если $M$ зашифрован с помощью $H(M)$, то он не зашифрован паролем пользователя. Если вы хотите, чтобы пользователь мог расшифровывать, вы должны хранить $H(M)$ в зашифрованном виде под паролем этого пользователя. Обратите внимание, что это очень короткий зашифрованный текст.

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

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