Рейтинг:0

Подпись анонимной группы

флаг il

Я проводил некоторые исследования в литературе по групповым и кольцевым подписям для анонимных подписей. Я пытаюсь найти схему групповой подписи, которая обеспечивает следующие свойства:

  • Анонимность для подписавшего
  • Подпись может быть проверена универсальным получателем
  • Выведите только одну подпись (мне не нужна схема подписи LSAG)
  • Подписант в группе должен иметь возможность самостоятельно создать подпись
  • Конструкция должна быть основана на эллиптическая кривая и должно быть бесплатное сопряжение
knaccc avatar
флаг es
Если вам не нужно, чтобы его можно было связать, тогда технический термин для того, что вы ищете, — подпись спонтанной анонимной группы (SAG). Существует множество способов реализации SAG, и SAG всегда представляет собой одну подпись. Я думаю, вы могли бы иметь в виду, что некоторые SAG, которые вы видели до сих пор, слишком дороги с точки зрения хранения или проверки?
meshcollider avatar
флаг gb
@knaccc в чем разница между SAG и обычной кольцевой подписью? Насколько я понимаю, спонтанность подразумевает отсутствие менеджера группы, следовательно, это похоже на кольцевую подпись (подписавшийся может создать специальное кольцо самостоятельно и сгенерировать подпись под ним).
meshcollider avatar
флаг gb
«Конструкция должна основываться на эллиптической кривой» -> что именно это означает? Можно ли также использовать другие примитивы (например, примитивы с симметричным ключом)? Вы просто имеете в виду, что открытые ключи должны быть баллами EC?
knaccc avatar
флаг es
@meshcollider Кольцевая подпись на основе EC Schnorr — это один из способов реализации подписи SAG. Другой недавний метод, который может достичь этого, — ZK-STARKS.
knaccc avatar
флаг es
@meshcollider «спонтанная подпись анонимной группы» — это просто список требований. Кольцевая подпись — это особый способ достижения этих требований с использованием хэш-полу-хамелеона, который позволяет каждому участнику кольца ответить на запрос от предыдущей ссылки в кольце, но при этом иметь возможность «закрыть» кольцо, зная одну из закрытые ключи.
meshcollider avatar
флаг gb
@knaccc Я не согласен, кольцевые подписи - это общий класс конструкций, а тот, на который вы ссылаетесь, - это просто возможная реализация.
knaccc avatar
флаг es
@meshcollider Возможно, я могу немного обобщить и определить кольцевую подпись как кольцо вызовов и ответов, где только владелец одного из закрытых ключей может соединить кольцо вместе, чтобы сформировать действительную подпись. Это другой подход, чем SAG, основанный на аккумуляторах, или какой-либо другой существенно отличающийся подход к доказательству с нулевым разглашением, который не включает кольцо вызовов и ответов.Мне не совсем понятно, как вы определяете и отличаете SAG от кольцевых подписей.
CipherX avatar
флаг il
@meshcollider, если общий получатель должен иметь возможность проверять подпись, я не знаю, как это сделать, возможно ли это сделать с помощью симметричного ключа (ранее вам нужно соглашение о ключе, такое как DH, или вам нужно знать, что такое симметричный ключ раньше так делал). Но, если вы имеете в виду протокол, который может быть полезен для моего варианта использования, сообщите мне об этом.
knaccc avatar
флаг es
@meshcollider Кстати, я нашел ссылку на свою терминологию: «Некоторые другие работы в литературе также называют этот тип подписи «кольцевой подписью», хотя некоторые из них могут не иметь кольцевой структуры для своей конструкции. В альтернативной терминологии мы назовите этот тип подписи «Спонтанная подпись анонимной группы (SAG)», поскольку они выполняют свойства SAG независимо от структуры построения» (https://eprint.iacr.org/2004/027.pdf, стр. 2). Таким образом, согласно более строгому определению, подписи AOS не являются кольцевыми подписями, они являются подписями 1 из n или спонтанными анонимными групповыми подписями.
meshcollider avatar
флаг gb
@knaccc Спасибо! Кстати, AOS называют свой третий шаг (вычисление $s = c - ax$) «формированием кольца», поэтому даже по более строгому определению я бы все равно считал их кольцевыми подписями :)
knaccc avatar
флаг es
@meshcollider Когда AOS говорит о «формировании кольца», они действительно формируют кольцо, потому что каждая задача зависит от предыдущей ссылки в кольце. Так что вы правы в том, что подписи AOS — это кольцевые подписи. Путаница заключалась в том, что ответ, который вы дали, не совпадает с той конструкцией, которая упоминается в статье, где говорится о формировании кольца. Версия Приложения A является «неразделимой» в своей терминологии и не основана на кольце.
Рейтинг:2
флаг gb

Кольцевые подписи похожи на групповые подписи, но не имеют групповых менеджеров. Еще одно ключевое отличие заключается в том, что во время подписания может быть сформировано «кольцо» с любыми ключами, которые вам нравятся — у вас нет фиксированной «группы», как в групповой подписи.

Подписи не могут быть «связаны», если вы специально не используете связываемый схема кольцевой подписи. Более того, личность подписавшего скрыта в кольце и не может быть идентифицирована по замыслу, как в групповой подписи.В большинстве схем верификация может быть выполнена любым (публично проверяемым). А подписавшие могут создать кольцо и подписать самостоятельно, без чьего-либо участия. Так что это соответствует всем вашим требованиям, игнорируя последнее (что они основаны на эллиптических кривых).

Первая кольцевая подпись была построена Ривест, Шамир и Тауман. В их схеме используются ключи RSA. Абэ, Окубо и Судзуки дал схему, в которой можно использовать смесь ключей типа RSA и DL. Приложение A к их статье показывает, как вы можете создать кольцевую подпись, используя только открытые ключи подписи Шнорра, которые можно адаптировать к настройке эллиптической кривой (и использовать EC-schnorr).

В частности, предположим, что у каждой стороны в кольце есть открытый ключ. $Y_i = [x_i]G$, и участник $к$ хочет создать подпись от их имени. Пусть порядок $G$ быть $р$, и разреши $Ч$ быть хэш-функцией, кодовый домен которой $\mathbb{Z}/p\mathbb{Z}$. Подписавший выберет случайное значение $\альфа$и случайные значения $c_i$ для всех остальных членов кольца. Затем подписывающая сторона создаст «агрегированный ключ». $$ K = [\alpha]G + \sum_{i \neq k} [c_i]Y_i \, . $$

Затем подписывающая сторона вычислит хэш $c = H(Y_0, Y_1, \ldots, Y_n, M, K)$ для сообщения $ млн $. Вычислить $$ c_k = c - \sum_{i \neq k} c_i \pmod{p}, $$ так что все $c_i$ в том числе $c_k$ сумма к $с$ (хэш).

Наконец, пусть $s = \alpha - c_k \cdot x_k \bmod{p}$. Подпись $(s, c_0, \ldots, c_n)$. Для проверки просто пересчитайте совокупный ключ и хэш следующим образом: $$ K' = [s]G + \sum_i [c_i]Y_i\ c' = H(Y_0, Y_1, \ldots, Y_n, M, K') $$ и проверьте это $c' = \sum_i c_i \pmod{p}$.

Вы можете видеть, что честное выполнение протокола позволит $К' = К$ так как $$ K' = [s]G + \sum_i [c_i]Y_i \ = [\alpha]G - [c_k \cdot x_k]G + \sum_i [c_i]Y_i\ = [\alpha]G - [c_k]Y_k + \sum_i [c_i]Y_i\ = [\alpha]G + \sum_{i \neq k} [c_i]Y_i = K. $$

Тогда проверка работает вне зависимости от того, какой $к$ был подписантом, как и требовалось, и любой может проверить подпись с помощью набора открытых ключей $Y_i$, сообщение $ млн $, подпись $(s, c_i)$, а общедоступные параметры $(G, p, E, \ldots)$.

CipherX avatar
флаг il
В этой схеме размер подписи будет зависеть от количества объектов, участвующих в кольце. Я думал о накладных расходах на передачу (даже с использованием метода сжатия) в случае N = 10, 100, 1000, 10000. Что вы думаете об этом?
meshcollider avatar
флаг gb
@CipherX подпись растет линейно по количеству участников — вы включаете один открытый ключ и одно значение $c_i$ для каждого.
CipherX avatar
флаг il
именно... этот аспект может быть проблемой для моего сценария, но большое спасибо за ваше предложение
meshcollider avatar
флаг gb
Нет проблем, вы не упомянули, что вам нужен более короткий. Вы можете поискать кольцевые подписи логарифмического размера, они есть. В любом случае, пожалуйста, примите мой ответ, если он помог :)
CipherX avatar
флаг il
Конечно @meshcollider. Если у вас есть предложения по поводу протоколов кольцевых подписей логарифмического размера, соответствующих моим требованиям, было бы здорово!

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

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