- Каждый участник не имеет права подписывать более 1 сообщения;
Как указано в комментариях, любой механизм, предотвращающий создание членом группы двух подписей, потребует либо доверенного оборудования, либо взаимодействия во время процесса подписания с групповым контроллером Алисой (чтобы предотвратить сброс подписывающим лицом своего состояния после создания первой подписи и затем приступаем ко второй подписи).
Итак, я переведу это как «обнаруживается, если участник пытается подписать два сообщения», то есть, учитывая две подписи, мы можем проверить, подписал ли их оба один и тот же член группы.
С таким переводом это возможно; вот один подход:
Алиса создает систему подписи на основе хэша с отслеживанием состояния (например, LMS или XMSS), при этом различные ключи одноразовой подписи являются независимыми (то есть вы не можете восстановить один из другого).
Для каждого члена группы Боба, Кэрол и Дэна Алиса выбирает случайный лист (одноразовую подпись) и дает этому члену группы индекс, закрытый ключ для одноразовой подписи и путь аутентификации.
Когда Боб хочет подписать свое сообщение, он подписывает его своим закрытым ключом и выводит эту подпись (вместе с индексом и путем аутентификации), создавая действительную подпись LMS или XMSS.
Верификатор выполняет стандартную проверку действительности LMS/XMSS по открытому ключу.
Если подпись подтверждается, верификатор знает, что тот, кто сгенерировал подпись, имел действительный ключ одноразовой подписи, и поэтому он должен быть действительным членом группы (или контроллером группы). И, поскольку индексы были присвоены случайным образом, он понятия не имеет, какой именно).
И, если Боб решит подписать два разных сообщения, он должен будет включить один и тот же конечный индекс в обе подписи (это единственный индекс, которым она умеет подписывать) — очевидно, что две подписи имеют один и тот же индекс. Это остается верным, даже если у нас есть Боб и Кэрол (и, возможно, другие) взаимно сотрудничающие - они могут генерировать только подписи, которые имеют индекс, который есть у одного из этих членов группы.
В этом подходе есть оговорка, что если Боб действительно подпишет два разных сообщения, то кто-то другой может подписать третье сообщение (на основе двух подписей Боба); поддельная подпись будет выглядеть так, как будто она также исходила от Боба.
Как написано, этот подход основан на том факте, что члену группы разрешено подписывать только одно сообщение — его можно расширить, если члену группы разрешено подписывать N сообщений (путем назначения каждому члену группы N последовательных листовых индексов и закрытых ключей).