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