Рейтинг:1

Подтверждение владения ключом шифрования

флаг pk

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

Другими словами, есть ли у сервера способ убедиться, что 1) загруженный файл зашифрован и что 2) пользователь владеет ключом для расшифровки этого файла?

Рейтинг:1
флаг cn

Большинство стандартных схем алгебраического шифрования допускают такое доказательство знания секретного ключа с нулевым разглашением. Например, если используется схема шифрования Эль-Гамаля (по подходящей группе, например, по эллиптической кривой) с открытым ключом $(Г,Ч)$, доказательство знания секретного ключа просто подтверждает знание значения $s$ такой, что $G^s = H$, которое является стандартным доказательством Шнорра (последнее является только честным верификатором с нулевым разглашением, но его можно изменить, чтобы оно было полноценным с нулевым разглашением). Аналогичные системы проверки существуют и для других схем шифрования с открытым ключом, например. Гольдвассера-Микали или Пайе (для них это означает доказательство знания факторов модуля RSA, что можно сделать, но значительно менее эффективно).

Thierry Sans avatar
флаг pk
Спасибо Жоффруа! Вы случайно не знаете какую-нибудь публичную библиотеку, которая могла бы выполнить полноценное шифрование + доказательство с нулевым разглашением?
Geoffroy Couteau avatar
флаг cn
Я не знаю, но это в основном потому, что я никогда не применяю криптографию сам (я занимаюсь в основном теоретическими исследованиями). Я почти уверен, что такая библиотека существует, хотя я не уверен, где уместно спросить об этом (я думаю, что это выходит за рамки этого веб-сайта). Быстрый поиск в Google указал мне на zksk, но я мало что о нем знаю.
флаг us
Не уверен, что это то, что имеет в виду OP, но я думаю, что это решает только половину части 2. То есть можно доказать, что они владеют данным секретным ключом, но не обязательно, действительно ли этот секретный ключ может расшифровать файл. Есть ли в такой схеме способ для сервера проверить, что открытый ключ (предположительно загруженный с зашифрованными данными) действительно соответствует секретному ключу, который расшифрует файл? Если это не распространяется, не может ли загрузчик включить ключ, не связанный с зашифрованными данными, и, следовательно, доказать, что он владеет ключом, но не может расшифровать файл?
Geoffroy Couteau avatar
флаг cn
Неплохо подмечено. Однако для всех примеров, которые я упомянул выше (Эль-Гамаль, Гольдвассер-Микали и Пайе), проблемы не существует, поскольку любой зашифрованный текст можно публично проверить на корректность (относительно данного открытого ключа).Следовательно, если кто-то доказывает знание секретного ключа, связанного с открытым ключом, это всегда подразумевает, что любой зашифрованный текст может быть правильно расшифрован доказывающим.

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

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