[Moscow.pm] шифрование с дедупликацией

Stanislaw Pusep creaktive на gmail.com
Вт Июн 10 13:09:26 PDT 2014


Можно, например, так:

my $private_key = 'qwertyuiop';
for my $file (@files) {
    my $key = hash($file);
    my $encrypted = crypt($key, $file);
    my $remote = hash($encrypted);
    $index{$remote} = $key;
    upload($remote, $encrypted);
}
upload("$username.index", crypt($private_key, serialize(\%index)));

Т.е. ключ для каждого $file - хеш его содержимого. Если имеешь хеш, то
имеешь и содержимое, приблизительно как у P2P. При этом каждый пользователь
хранит там же словарь-список своих файлов, зашифрованный личным ключем.
Таким образом, даже если кто-то завладеет шифром от одного файла, не сумеет
установить принадлежность тому или иному пользователю (разве что по IP, но
это другой разговор).

вторник, 10 июня 2014 г. пользователь Анатолий Гришаев <0body0 на rambler.ru>
написал:

>  Получается нужно два ключа: один для передачи по сети, а второй для
> хранения и дедупликации.
> Минуса этого дела два:
> 1) Нужно шифровать и дешифровать на сервере --- лишняя нагрузка на
> процессор
> 2) В случае взлома сервера возможно поиметь весь контент всех
> пользователей.
>
> Или недалеко с шифрованным файлом хранить его ключ. Тогда при получении
> файла дешифруем его считаем хэш и решаем дубль или нет.
>
>
> 08.06.2014 15:40, Alexander Lourier пишет:
>
> 1. А хранить тогда файл, зашифрованный чьим ключом?
> 2. Что будет, если клиент соврёт, что он прислал зашифрованный файл с
> контентом A, а на самом деле - там контент B? Сервер потом попытается
> дедуплицировать данные другого пользователя, который пытается сохранить
> контент A, а сервер уже имеет такой файл (как он думает), и не сохранит
> его. Потом второй пользователь запросит свой файл обратно, и получит B.
>
>  По поводу п. 2 можно подумать в сторону алгоритмов доказательства с
> нулевым разглашением. Клиент, сохраняя файл, должен доказать, что
> зашифрованный файл, который он присылает, имеет указанную контрольную
> сумму. Не уверен, что даже если это получится, будет хоть сколь-либо быстро
> работать.
>
>
> 8 июня 2014 г., 13:07 пользователь Walery Studennikov <despairr на gmail.com
> <javascript:_e(%7B%7D,'cvml','despairr на gmail.com');>> написал:
>
>> Считать хеш на клиенте, перед отправкой шифрованного контента, пока он
>> ещё не зашифрован.
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org <javascript:_e(%7B%7D,'cvml','moscow-pm на pm.org');> |
>> http://moscow.pm.org
>>
>>
>
>
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140610/b8253fb2/attachment.html>


Подробная информация о списке рассылки Moscow-pm