Как безопасно дедуплицировать файлы, зашифрованные на стороне клиента? - PullRequest
1 голос
/ 19 сентября 2011

Bitcasa заявляет, что обеспечивает бесконечное хранение за фиксированную плату.

Согласно TechCrunch интервью , Bitcasa использует конвергентное шифрование на стороне клиента. Таким образом, незашифрованные данные никогда не достигают сервера. При использовании конвергентного шифрования ключ шифрования получается из зашифрованных исходных данных.

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

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

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

1 Ответ

1 голос
/ 19 сентября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...